Last active
August 3, 2023 11:37
-
-
Save mouseos/0817265ec81bce70761dc620ff1f13e5 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include "20.aboot.h" | |
void thunk_FUN_8f600020(void) | |
{ | |
int iVar1; | |
undefined *puVar2; | |
undefined *puVar3; | |
uint uVar4; | |
code *pcVar5; | |
undefined4 *puVar6; | |
undefined4 *puVar7; | |
undefined4 *puVar8; | |
puVar3 = PTR_DAT_8f600124; | |
puVar2 = PTR_DAT_8f60006c; | |
uVar4 = coproc_movefrom_Control(); | |
coproc_moveto_Control(uVar4 & 0xffff4ff8 | 0x20); | |
pcVar5 = thunk_FUN_8f600020; | |
puVar7 = (undefined4 *)PTR_thunk_FUN_8f600020_8f600068; | |
if ((code *)PTR_thunk_FUN_8f600020_8f600068 != thunk_FUN_8f600020) { | |
do { | |
puVar6 = puVar7 + 1; | |
*puVar7 = *(undefined4 *)pcVar5; | |
pcVar5 = (code *)((int)pcVar5 + 4); | |
puVar7 = puVar6; | |
} while (puVar6 != (undefined4 *)puVar2); | |
// WARNING: Could not recover jumptable at 0x8f600064. Too many branches | |
// WARNING: Treating indirect jump as call | |
(*DAT_8f600070)(); | |
return; | |
} | |
puVar7 = (undefined4 *)PTR_DAT_8f600128; | |
puVar6 = (undefined4 *)PTR_DAT_8f60011c; | |
puVar8 = (undefined4 *)PTR_DAT_8f600120; | |
iVar1 = DAT_8f60012c; | |
if (PTR_DAT_8f60011c != PTR_DAT_8f600120) { | |
for (; puVar7 = (undefined4 *)PTR_DAT_8f600128, iVar1 = DAT_8f60012c, (int)puVar8 < (int)puVar3; | |
puVar8 = puVar8 + 1) { | |
*puVar8 = *puVar6; | |
puVar6 = puVar6 + 1; | |
} | |
} | |
for (; (int)puVar7 < iVar1; puVar7 = puVar7 + 1) { | |
*puVar7 = 0; | |
} | |
DataSynchronizationBarrier(0xf); | |
InstructionSynchronizationBarrier(0xf); | |
FUN_8f627200(puVar7,iVar1,(char *)0x0); | |
do { | |
// WARNING: Do nothing block with infinite loop | |
} while( true ); | |
} | |
void FUN_8f600020(void) | |
{ | |
int iVar1; | |
undefined *puVar2; | |
undefined *puVar3; | |
uint uVar4; | |
code *pcVar5; | |
undefined4 *puVar6; | |
undefined4 *puVar7; | |
undefined4 *puVar8; | |
puVar3 = PTR_DAT_8f600124; | |
puVar2 = PTR_DAT_8f60006c; | |
uVar4 = coproc_movefrom_Control(); | |
coproc_moveto_Control(uVar4 & 0xffff4ff8 | 0x20); | |
pcVar5 = thunk_FUN_8f600020; | |
puVar7 = (undefined4 *)PTR_thunk_FUN_8f600020_8f600068; | |
if ((code *)PTR_thunk_FUN_8f600020_8f600068 != thunk_FUN_8f600020) { | |
do { | |
puVar6 = puVar7 + 1; | |
*puVar7 = *(undefined4 *)pcVar5; | |
pcVar5 = (code *)((int)pcVar5 + 4); | |
puVar7 = puVar6; | |
} while (puVar6 != (undefined4 *)puVar2); | |
// WARNING: Could not recover jumptable at 0x8f600064. Too many branches | |
// WARNING: Treating indirect jump as call | |
(*DAT_8f600070)(); | |
return; | |
} | |
puVar7 = (undefined4 *)PTR_DAT_8f600128; | |
puVar6 = (undefined4 *)PTR_DAT_8f60011c; | |
puVar8 = (undefined4 *)PTR_DAT_8f600120; | |
iVar1 = DAT_8f60012c; | |
if (PTR_DAT_8f60011c != PTR_DAT_8f600120) { | |
for (; puVar7 = (undefined4 *)PTR_DAT_8f600128, iVar1 = DAT_8f60012c, (int)puVar8 < (int)puVar3; | |
puVar8 = puVar8 + 1) { | |
*puVar8 = *puVar6; | |
puVar6 = puVar6 + 1; | |
} | |
} | |
for (; (int)puVar7 < iVar1; puVar7 = puVar7 + 1) { | |
*puVar7 = 0; | |
} | |
DataSynchronizationBarrier(0xf); | |
InstructionSynchronizationBarrier(0xf); | |
FUN_8f627200(puVar7,iVar1,(char *)0x0); | |
do { | |
// WARNING: Do nothing block with infinite loop | |
} while( true ); | |
} | |
void FUN_8f600140(undefined4 param_1,int *param_2) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f61a968(param_1,param_2); | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f61ad58(); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6115d0) | |
// WARNING: Removing unreachable block (ram,0x8f6115d4) | |
// WARNING: Removing unreachable block (ram,0x8f6001c0) | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f60017c(undefined4 param_1,undefined4 param_2) | |
{ | |
int iVar1; | |
int iVar2; | |
uint uVar3; | |
int *in_lr; | |
bool bVar4; | |
iVar1 = DAT_8f69d118; | |
FUN_8f60374c((int *)0x1); | |
DataSynchronizationBarrier(0xf); | |
FUN_8f6044a4(); | |
DataSynchronizationBarrier(0xf); | |
DataSynchronizationBarrier(0xf); | |
_DAT_078af0a0 = 0xcc; | |
DataSynchronizationBarrier(0xf); | |
_DAT_078af000 = 0; | |
_DAT_078af004 = 0x34; | |
_DAT_078af0b0 = 0x99; | |
_DAT_078af01c = 0; | |
_DAT_078af020 = 0; | |
_DAT_078af018 = 0xf; | |
_DAT_078af0b8 = 0; | |
_DAT_078af024 = 0; | |
_DAT_078af03c = 0; | |
_DAT_078af034 = 0x220; | |
_DAT_078af0a8 = 0x500; | |
FUN_8f611378((int)&DAT_078af000,(byte *)s_Android_Bootloader___UART_DM_Ini_8f65ec8c,0x2c); | |
uVar3 = (uint)DAT_8f688270; | |
if (3 < uVar3) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_uart_dm_c_8f65ecbc,0x1a0); | |
uVar3 = (uint)DAT_8f688270; | |
} | |
iVar2 = DAT_8f69d118; | |
bVar4 = iVar1 == DAT_8f69d118; | |
(&DAT_8f688274)[uVar3] = &DAT_078af000; | |
DAT_8f688270 = (byte)(uVar3 + 1); | |
DAT_8f68826c = 1; | |
if (bVar4) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar2,uVar3 + 1,(int *)0x1); | |
} | |
void FUN_8f6001c4(void) | |
{ | |
int iVar1; | |
undefined4 extraout_r1; | |
int iVar2; | |
undefined4 uVar3; | |
int *in_lr; | |
undefined8 uVar4; | |
byte local_94; | |
undefined4 local_90; | |
undefined4 local_8c; | |
undefined4 local_88; | |
undefined2 local_84; | |
undefined4 local_80; | |
undefined local_7b; | |
undefined4 local_78; | |
undefined4 uStack_74; | |
undefined4 uStack_70; | |
undefined4 local_6c; | |
undefined4 uStack_68; | |
undefined4 uStack_64; | |
undefined4 uStack_60; | |
undefined4 local_5c; | |
undefined4 uStack_58; | |
undefined4 uStack_54; | |
undefined4 uStack_50; | |
undefined4 local_4c; | |
undefined4 local_48; | |
undefined4 uStack_44; | |
undefined4 uStack_40; | |
undefined4 uStack_3c; | |
undefined4 local_38; | |
undefined4 uStack_34; | |
undefined4 uStack_30; | |
undefined4 uStack_2c; | |
undefined4 local_28; | |
int *local_24; | |
local_6c = DAT_8f659778; | |
uStack_68 = DAT_8f65977c; | |
uStack_64 = DAT_8f659780; | |
uStack_60 = DAT_8f659784; | |
local_24 = DAT_8f69d118; | |
local_5c = DAT_8f659788; | |
uStack_58 = DAT_8f65978c; | |
uStack_54 = DAT_8f659790; | |
uStack_50 = DAT_8f659794; | |
local_4c = DAT_8f659798; | |
local_48 = DAT_8f65979c; | |
uStack_44 = DAT_8f6597a0; | |
uStack_40 = DAT_8f6597a4; | |
uStack_3c = DAT_8f6597a8; | |
local_38 = DAT_8f6597ac; | |
uStack_34 = DAT_8f6597b0; | |
uStack_30 = DAT_8f6597b4; | |
uStack_2c = DAT_8f6597b8; | |
local_78 = DAT_8f6597c0; | |
uStack_74 = DAT_8f6597c4; | |
uStack_70 = DAT_8f6597c8; | |
local_28 = DAT_8f6597bc; | |
FUN_8f6197cc((int)&local_6c,3); | |
FUN_8f61986c((int)&local_48,3); | |
FUN_8f61986c((int)&local_78,1); | |
local_80 = 192000000; | |
local_8c = 0x7824900; | |
local_88 = 0x7824000; | |
local_94 = 1; | |
local_7b = 1; | |
local_84 = 2; | |
local_90 = 0xaa; | |
uVar4 = FUN_8f60bd48((undefined4 *)&local_94,extraout_r1,2); | |
DAT_8f69d110 = (int)uVar4; | |
iVar2 = DAT_8f69d110; | |
if (DAT_8f69d110 == 0) { | |
iVar2 = local_94 - 1; | |
local_8c = (&DAT_8f659804)[iVar2]; | |
local_88 = (&DAT_8f6597f4)[iVar2]; | |
uVar3 = (&DAT_8f6597fc)[iVar2]; | |
local_7b = 0; | |
local_80 = 200000000; | |
local_90 = uVar3; | |
uVar4 = FUN_8f60bd48((undefined4 *)&local_94,iVar2,uVar3); | |
iVar2 = (int)uVar4; | |
if (iVar2 == 0) { | |
iVar1 = DAT_8f69d110; | |
DAT_8f69d110 = iVar2; | |
dprintf((byte *)s_mmc_init_failed__8f65980c,(int *)((ulonglong)uVar4 >> 0x20),uVar3,iVar1); | |
uVar4 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_target_msm8953_init_c_8f659840,0xaf); | |
iVar2 = DAT_8f69d110; | |
} | |
} | |
DAT_8f69d110 = iVar2; | |
if (local_24 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),local_24); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6003a0) | |
void FUN_8f600364(void) | |
{ | |
return; | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void keys_get_state(uint param_1) | |
{ | |
uint uVar1; | |
undefined *puVar2; | |
undefined4 extraout_r1; | |
int iVar3; | |
ulonglong uVar4; | |
uint local_44 [8]; | |
int *local_24; | |
local_44[0] = *(uint *)PTR_DAT_8f6004a4; | |
local_44[1] = *(undefined4 *)(PTR_DAT_8f6004a4 + 4); | |
local_44[2] = *(undefined4 *)(PTR_DAT_8f6004a4 + 8); | |
local_44[3] = *(undefined4 *)(PTR_DAT_8f6004a4 + 0xc); | |
local_24 = DAT_8f69d118; | |
local_44[4] = *(undefined4 *)(PTR_DAT_8f6004a4 + 0x10); | |
local_44[5] = *(undefined4 *)(PTR_DAT_8f6004a4 + 0x14); | |
local_44[6] = *(undefined4 *)(PTR_DAT_8f6004a4 + 0x18); | |
local_44[7] = *(undefined4 *)(PTR_DAT_8f6004a4 + 0x1c); | |
if ((DAT_8f684404 == '\0') && (DAT_8f684405 == '\0')) { | |
_DAT_8f684404 = FUN_8f602b84(); | |
} | |
iVar3 = 0; | |
do { | |
puVar2 = (undefined *)(iVar3 * 8); | |
if (param_1 == local_44[iVar3 * 2]) { | |
puVar2 = &stack0xffffffe0 + (int)puVar2; | |
uVar1 = local_44[iVar3 * 2 + 1]; | |
if (uVar1 != 0) { | |
FUN_8f6043cc(uVar1,0,0,3,0,0); | |
FUN_8f6104fc(10000); | |
uVar4 = FUN_8f604460(uVar1,extraout_r1); | |
puVar2 = (undefined *)(uVar4 >> 0x20); | |
uVar1 = (uint)((uVar4 & 0xff) == 0); | |
} | |
goto LAB_8f600420; | |
} | |
iVar3 = iVar3 + 1; | |
} while (iVar3 != 4); | |
uVar1 = 0; | |
LAB_8f600420: | |
if (local_24 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar1,puVar2,local_24); | |
} | |
return; | |
} | |
void FUN_8f6004a8(void) | |
{ | |
int *piVar1; | |
undefined4 extraout_r1; | |
ulonglong uVar2; | |
piVar1 = DAT_8f69d118; | |
FUN_8f6043cc(0x55,0,0,3,0,0); | |
FUN_8f627cfc(10); | |
uVar2 = FUN_8f604460(0x55,extraout_r1); | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((uint)((uVar2 & 0xff) == 0),(int)(uVar2 >> 0x20),piVar1); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f60054c) | |
void FUN_8f600518(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f632efc(0x810); | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((uint)uVar2 & 2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
return; | |
} | |
void FUN_8f600550(byte *param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
int *piVar2; | |
int *piVar3; | |
int *piVar4; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
uVar5 = FUN_8f626460(param_1,param_2); | |
piVar3 = (int *)((ulonglong)uVar5 >> 0x20); | |
piVar2 = (int *)uVar5; | |
if (piVar2 == (int *)0x0) { | |
piVar4 = piVar1; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
} | |
else { | |
piVar2 = (int *)FUN_8f60d524(piVar2,piVar3); | |
piVar3 = piVar1; | |
piVar4 = DAT_8f69d118; | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f636618(param_1,0xd,&DAT_8f659858,piVar2); | |
return; | |
} | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(piVar2,piVar3,piVar4); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6005fc) | |
void FUN_8f6005c8(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f600630) | |
void FUN_8f600600(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f611834) | |
// WARNING: Removing unreachable block (ram,0x8f600720) | |
void FUN_8f6006ec(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
void FUN_8f600724(int param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
undefined4 extraout_r1; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f6160c4(param_1,param_2,param_3); | |
FUN_8f633554(); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,extraout_r1,piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f60079c) | |
void FUN_8f600768(undefined4 param_1,undefined4 param_2) | |
{ | |
undefined uVar1; | |
uint uVar2; | |
undefined4 *puVar3; | |
int iVar4; | |
undefined4 uVar5; | |
uint *puVar6; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
undefined4 extraout_r1_03; | |
char *pcVar7; | |
undefined4 *puVar8; | |
undefined4 uVar9; | |
uint *puVar10; | |
int *piVar11; | |
uint uVar12; | |
int *in_lr; | |
undefined8 uVar13; | |
longlong lVar14; | |
uint local_30; | |
int *local_2c; | |
pcVar7 = (char *)0x0; | |
local_30 = 0; | |
local_2c = DAT_8f69d118; | |
piVar11 = DAT_8f69d118; | |
uVar2 = FUN_8f60d5cc(param_1,param_2); | |
uVar13 = FUN_8f6366a8((int *)0x40,uVar2); | |
puVar3 = (undefined4 *)uVar13; | |
if (puVar3 == (undefined4 *)0x0) { | |
piVar11 = (int *)0x183; | |
pcVar7 = s_app_aboot_recovery_c_8f664178; | |
uVar13 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_app_aboot_recovery_c_8f664178,0x183); | |
} | |
uVar2 = FUN_8f60d5cc((int)uVar13,(int)((ulonglong)uVar13 >> 0x20)); | |
uVar13 = FUN_8f606760(&DAT_8f65b080); | |
iVar4 = (int)uVar13; | |
if (iVar4 < 0) { | |
dprintf((byte *)s__s__Partition_not_found_8f664194,(int *)&DAT_8f65b080,pcVar7,piVar11); | |
uVar9 = extraout_r1_03; | |
} | |
else { | |
lVar14 = FUN_8f60688c(iVar4,(int)((ulonglong)uVar13 >> 0x20)); | |
uVar1 = FUN_8f606904(iVar4); | |
FUN_8f60db18(uVar1); | |
if (lVar14 == 0) { | |
dprintf((byte *)s_partition__s_doesn_t_exist_8f6641b0,(int *)&DAT_8f65b080,pcVar7,0); | |
uVar9 = extraout_r1_00; | |
} | |
else { | |
puVar8 = puVar3; | |
uVar12 = uVar2; | |
iVar4 = FUN_8f60d85c((uint)lVar14,(uint)((ulonglong)lVar14 >> 0x20),(uint)puVar3,uVar2); | |
if (iVar4 == 0) { | |
*(undefined *)((int)puVar3 + 0x1f) = 0; | |
iVar4 = FUN_8f636bdc((int)puVar3,(byte *)s_boot_recovery_8f6640f4); | |
if (iVar4 == 0) { | |
puVar8 = (undefined4 *)0x1; | |
boot_into_recovery = 1; | |
} | |
iVar4 = FUN_8f636bdc((int)s_update_radio_8f66411c,(byte *)puVar3); | |
if (iVar4 == 0) { | |
iVar4 = FUN_8f62e6c0(2,&local_30); | |
if ((iVar4 == 0) && ((local_30 & 1) != 0)) { | |
FUN_8f636d18((int)(puVar3 + 8),&DAT_8f664014,0x20); | |
} | |
else { | |
FUN_8f636d18((int)(puVar3 + 8),(byte *)s_failed_update_8f66410c,0x20); | |
} | |
puVar8 = (undefined4 *)0x1; | |
boot_into_recovery = 1; | |
} | |
uVar13 = FUN_8f636bdc((int)s_reset_device_info_8f6641e4,(byte *)puVar3); | |
if ((int)uVar13 == 0) { | |
FUN_8f62a5e8(0,(int *)((ulonglong)uVar13 >> 0x20),puVar8); | |
} | |
uVar13 = FUN_8f636bdc((int)s_root_detect_8f6641f8,(byte *)puVar3); | |
if ((int)uVar13 == 0) { | |
FUN_8f62a63c(0,(int *)((ulonglong)uVar13 >> 0x20),puVar8); | |
uVar9 = 0x20; | |
uVar13 = FUN_8f636d18((int)puVar3,(byte *)(s__device_command_failed__8f66183c + 0x1c),0x20 | |
); | |
uVar13 = FUN_8f60d5cc((int)uVar13,(int)((ulonglong)uVar13 >> 0x20)); | |
uVar2 = (int)uVar13 + 0x43f; | |
uVar12 = -(int)uVar13 & uVar2; | |
if (uVar12 < 0x440) { | |
uVar12 = 0xffffffff; | |
} | |
uVar13 = FUN_8f63666c(uVar12,(int)((ulonglong)uVar13 >> 0x20)); | |
puVar6 = (uint *)uVar13; | |
if (puVar6 == (uint *)0x0) { | |
dprintf((byte *)s_memory_allocation_error_8f664204,(int *)((ulonglong)uVar13 >> 0x20), | |
uVar9,uVar2); | |
} | |
else { | |
uVar13 = FUN_8f606760(&DAT_8f65b080); | |
lVar14 = FUN_8f60688c((int)uVar13,(int)((ulonglong)uVar13 >> 0x20)); | |
uVar1 = FUN_8f606904((int)uVar13); | |
FUN_8f60db18(uVar1); | |
if (lVar14 == 0) { | |
dprintf((byte *)s_partition__s_doesn_t_exist_8f6641b0,(int *)&DAT_8f65b080,uVar9,0); | |
} | |
else { | |
FUN_8f636968(puVar6,0,uVar12); | |
FUN_8f63685c(puVar6,puVar3,0x440); | |
puVar10 = puVar6; | |
iVar4 = FUN_8f60d620((uint)lVar14,(uint)((ulonglong)lVar14 >> 0x20),uVar12, | |
(uint)puVar6); | |
if (iVar4 != 0) { | |
dprintf((byte *)s_mmc_write_failure__s__d_8f664220,(int *)&DAT_8f65b080,0x440, | |
puVar10); | |
} | |
} | |
FUN_8f636758((int)puVar6); | |
} | |
} | |
FUN_8f636758((int)puVar3); | |
uVar5 = 0; | |
uVar9 = extraout_r1; | |
goto LAB_8f62eb14; | |
} | |
dprintf((byte *)s_mmc_read_failure__s__d_8f6641cc,(int *)&DAT_8f65b080,uVar2,uVar12); | |
uVar9 = extraout_r1_02; | |
} | |
} | |
if (puVar3 == (undefined4 *)0x0) { | |
uVar5 = 0xffffffff; | |
} | |
else { | |
FUN_8f636758((int)puVar3); | |
uVar5 = 0xffffffff; | |
uVar9 = extraout_r1_01; | |
} | |
LAB_8f62eb14: | |
if (local_2c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar5,uVar9,local_2c); | |
} | |
void FUN_8f6007a0(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
uint uVar2; | |
int iVar3; | |
undefined4 uVar4; | |
undefined8 uVar5; | |
undefined8 uVar6; | |
piVar1 = DAT_8f69d118; | |
uVar5 = FUN_8f6268ac(param_1,param_2); | |
uVar2 = FUN_8f633314((int)uVar5,(int)((ulonglong)uVar5 >> 0x20)); | |
iVar3 = FUN_8f6334fc(); | |
uVar6 = FUN_8f632efc(0x21310); | |
if (((iVar3 == 0) || ((uVar2 & 1) != 0)) || ((((uint)uVar6 & 1 ^ 1) & ~uVar2 >> 7) == 0)) { | |
if ((int)uVar5 < 3600000) { | |
uVar4 = 1; | |
} | |
else { | |
uVar4 = 0; | |
} | |
} | |
else { | |
uVar4 = 1; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar4,(int)((ulonglong)uVar6 >> 0x20),piVar1); | |
} | |
return; | |
} | |
void FUN_8f600838(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
piVar1 = DAT_8f69d118; | |
iVar2 = FUN_8f6268ac(param_1,param_2); | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((uint)(iVar2 < 3600000),piVar1,DAT_8f69d118); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f608820) | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f600884(undefined4 param_1,undefined4 param_2,char *param_3) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined4 uVar3; | |
int *piVar4; | |
int *in_lr; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
piVar4 = DAT_8f69d118; | |
FUN_8f60d15c(DAT_8f69d110); | |
FUN_8f60aff0((int)DAT_8f69d110); | |
uVar5 = FUN_8f619ed0(); | |
uVar3 = (undefined4)((ulonglong)uVar5 >> 0x20); | |
if ((int)uVar5 == 0) { | |
iVar2 = FUN_8f6264d0(0,uVar3); | |
} | |
else { | |
uVar5 = FUN_8f61af54((int)uVar5,uVar3); | |
iVar2 = FUN_8f6264d0((int)uVar5,(int)((ulonglong)uVar5 >> 0x20)); | |
} | |
if (iVar2 == 0) { | |
uVar5 = FUN_8f608638(); | |
} | |
else { | |
FUN_8f603da8((int *)0x1); | |
uVar5 = FUN_8f608638(); | |
} | |
if (((int)uVar5 != 0) && (uVar5 = FUN_8f608548(), (int)uVar5 < 0)) { | |
dprintf((byte *)s_Failed_to_unload_App_for_rpmb_8f659880,(int *)((ulonglong)uVar5 >> 0x20), | |
param_3,piVar4); | |
param_3 = s_target_msm8953_init_c_8f659840; | |
piVar4 = (int *)0x23e; | |
uVar5 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_target_msm8953_init_c_8f659840,0x23e); | |
} | |
uVar5 = FUN_8f6251fc((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),param_3); | |
if ((int)uVar5 < 0) { | |
dprintf((byte *)s_RPMB_uninit_failed_8f6598a0,(int *)((ulonglong)uVar5 >> 0x20),param_3,piVar4); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_target_msm8953_init_c_8f659840,0x245); | |
} | |
uVar5 = FUN_8f603da8((int *)0x1); | |
piVar4 = DAT_8f69d118; | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),piVar1); | |
} | |
FUN_8f626f38((undefined4 *)&DAT_8f6880a4,0,1); | |
uVar5 = FUN_8f608ffc((uint *)&DAT_8f69d124,4,1); | |
uVar3 = (undefined4)((ulonglong)uVar5 >> 0x20); | |
_DAT_0b111008 = 1; | |
if (piVar4 == DAT_8f69d118) { | |
FUN_8f627034((int)&DAT_8f6880a4,uVar3); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,uVar3,piVar4); | |
} | |
void FUN_8f6009b0(void) | |
{ | |
int iVar1; | |
int iVar2; | |
undefined4 *puVar3; | |
int *in_lr; | |
iVar1 = DAT_8f69d118; | |
puVar3 = (undefined4 *)FUN_8f6366fc(1,0x14); | |
if (puVar3 == (undefined4 *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_target_msm8953_init_c_8f659840,0x274); | |
} | |
iVar2 = DAT_8f69d118; | |
puVar3[2] = FUN_8f61a9a0; | |
puVar3[1] = FUN_8f600140; | |
puVar3[3] = FUN_8f603210; | |
*puVar3 = 0; | |
*(undefined *)(puVar3 + 4) = 1; | |
if (iVar1 == iVar2) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(puVar3,iVar2,(int *)0x0); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f600a98) | |
void FUN_8f600a60(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
void FUN_8f600a9c(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
uint uVar2; | |
uint uVar3; | |
uint uVar4; | |
char *pcVar5; | |
int *piVar6; | |
uint uVar7; | |
uint uVar8; | |
longlong lVar9; | |
undefined8 uVar10; | |
piVar1 = DAT_8f69d118; | |
lVar9 = FUN_8f6264d0(param_1,param_2); | |
if ((int)lVar9 == 0) { | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
} | |
else { | |
uVar10 = FUN_8f606760(&DAT_8f6598c4); | |
lVar9 = FUN_8f60688c((int)uVar10,(int)((ulonglong)uVar10 >> 0x20)); | |
piVar6 = (int *)((ulonglong)lVar9 >> 0x20); | |
uVar2 = (uint)lVar9; | |
if (lVar9 == 0) { | |
if (piVar1 == DAT_8f69d118) { | |
pcVar5 = s_Error__ssd_partition_not_found_8f6598c8; | |
LAB_8f600b9c: | |
dprintf((byte *)pcVar5,piVar6,piVar1,DAT_8f69d118); | |
return; | |
} | |
} | |
else { | |
lVar9 = FUN_8f606814((int)uVar10,piVar6); | |
uVar3 = (uint)lVar9; | |
if (lVar9 == 0) { | |
if (piVar1 == DAT_8f69d118) { | |
pcVar5 = s_Error__invalid_ssd_partition_siz_8f6598e8; | |
piVar6 = (int *)((ulonglong)lVar9 >> 0x20); | |
goto LAB_8f600b9c; | |
} | |
} | |
else { | |
lVar9 = FUN_8f6366a8((int *)0x40,uVar3 + 0x3f & 0xffffffc0); | |
uVar4 = (uint)lVar9; | |
if (uVar4 == 0) { | |
if (piVar1 == DAT_8f69d118) { | |
pcVar5 = s_Error__allocating_memory_for_ssd_8f65990c; | |
piVar6 = (int *)((ulonglong)lVar9 >> 0x20); | |
goto LAB_8f600b9c; | |
} | |
} | |
else { | |
uVar7 = uVar4; | |
uVar8 = uVar3; | |
uVar10 = FUN_8f60d85c(uVar2,(uint)piVar6,uVar4,uVar3); | |
if ((int)uVar10 == 0) { | |
FUN_8f603bb4((int *)0x1); | |
FUN_8f615538(uVar4,uVar3); | |
lVar9 = FUN_8f603da8((int *)0x1); | |
} | |
else { | |
lVar9 = dprintf((byte *)s_Error__cannot_read_data_8f659938, | |
(int *)((ulonglong)uVar10 >> 0x20),uVar7,uVar8); | |
} | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f636758(uVar4); | |
return; | |
} | |
} | |
} | |
} | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)lVar9,(int)((ulonglong)lVar9 >> 0x20),piVar1); | |
} | |
void FUN_8f600c00(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f6264d0(param_1,param_2); | |
if ((int)uVar2 == 0) { | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
} | |
else { | |
uVar2 = FUN_8f603bb4((int *)0x1); | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f600a9c((int)uVar2,(int)((ulonglong)uVar2 >> 0x20)); | |
return; | |
} | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f600c98) | |
void FUN_8f600c64(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
void FUN_8f600c9c(void) | |
{ | |
undefined8 uVar1; | |
undefined4 local_30; | |
undefined4 local_2c; | |
undefined4 local_28; | |
undefined4 local_24; | |
undefined4 local_20; | |
undefined4 local_1c; | |
undefined4 local_18; | |
undefined local_14; | |
undefined local_13; | |
undefined local_12; | |
undefined local_11; | |
undefined local_10; | |
int *local_c; | |
local_30 = 0x73a000; | |
local_c = DAT_8f69d118; | |
local_28 = 0x704000; | |
local_2c = 1; | |
local_24 = 1; | |
local_11 = 0; | |
local_10 = 0; | |
local_14 = 0; | |
local_1c = 0x40; | |
local_18 = 0x40; | |
local_13 = 3; | |
local_12 = 2; | |
local_20 = 0x14; | |
uVar1 = FUN_8f61af10(&local_30,0x14); | |
if (local_c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar1,(int)((ulonglong)uVar1 >> 0x20),local_c); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6087e0) | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f600d30(void) | |
{ | |
ushort uVar1; | |
short sVar2; | |
int iVar3; | |
int *piVar4; | |
undefined4 uVar5; | |
int *extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
char *pcVar6; | |
undefined4 uVar7; | |
int **ppiVar8; | |
int *piVar9; | |
ushort *puVar10; | |
uint uVar11; | |
uint uVar12; | |
int *piVar13; | |
int *in_lr; | |
bool bVar14; | |
undefined8 uVar15; | |
ushort uStack_26; | |
undefined4 local_24; | |
undefined4 uStack_20; | |
int *local_1c; | |
local_1c = DAT_8f69d118; | |
uVar15 = FUN_8f612210(0,0); | |
iVar3 = FUN_8f626618((int)uVar15,(int)((ulonglong)uVar15 >> 0x20)); | |
if ((((iVar3 != 0) && (iVar3 = FUN_8f60300c(), iVar3 != 0)) && | |
(sVar2 = FUN_8f6119f8(1), sVar2 == 0x11)) && (uVar11 = FUN_8f6332c8(), uVar11 != 0)) { | |
FUN_8f611938(1,uVar11); | |
} | |
puVar10 = &uStack_26; | |
local_24 = *(undefined4 *)PTR_DAT_8f600f84; | |
uStack_20 = *(undefined4 *)(PTR_DAT_8f600f84 + 4); | |
ppiVar8 = &local_1c; | |
pcVar6 = PTR_DAT_8f600f84; | |
FUN_8f632dcc(local_24,uStack_20); | |
do { | |
puVar10 = puVar10 + 1; | |
uVar1 = *puVar10; | |
iVar3 = keys_get_state((uint)uVar1); | |
if (iVar3 != 0) { | |
FUN_8f632e14((uint)uVar1,1); | |
} | |
} while (puVar10 != (ushort *)((int)&uStack_20 + 2)); | |
uVar15 = FUN_8f6001c4(); | |
uVar15 = FUN_8f605ea8((int)uVar15,(int)((ulonglong)uVar15 >> 0x20),pcVar6); | |
if ((int)uVar15 != 0) { | |
dprintf((byte *)s_Error_reading_the_partition_tabl_8f659954,(int *)((ulonglong)uVar15 >> 0x20), | |
pcVar6,ppiVar8); | |
pcVar6 = s_target_msm8953_init_c_8f659840; | |
ppiVar8 = (int **)0x17f; | |
uVar15 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_target_msm8953_init_c_8f659840,0x17f); | |
} | |
iVar3 = FUN_8f626498((int)uVar15,(int)((ulonglong)uVar15 >> 0x20)); | |
if (iVar3 != 0) { | |
FUN_8f600c9c(); | |
} | |
FUN_8f603bb4((int *)0x1); | |
piVar4 = (int *)FUN_8f6177f8(); | |
if ((int)piVar4 < 0) { | |
dprintf((byte *)s_Failed_to_initialize_qseecom__er_8f65997c,piVar4,pcVar6,ppiVar8); | |
ppiVar8 = (int **)0x198; | |
pcVar6 = s_target_msm8953_init_c_8f659840; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_target_msm8953_init_c_8f659840,0x198); | |
piVar4 = (int *)FUN_8f61769c(); | |
} | |
else { | |
piVar4 = (int *)FUN_8f61769c(); | |
} | |
uVar15 = CONCAT44(piVar4,piVar4); | |
if ((int)piVar4 < 0) { | |
dprintf((byte *)s_Failed_to_start_qseecom__error____8f6599a8,piVar4,pcVar6,ppiVar8); | |
pcVar6 = s_target_msm8953_init_c_8f659840; | |
ppiVar8 = (int **)0x1a1; | |
uVar15 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_target_msm8953_init_c_8f659840,0x1a1); | |
} | |
uVar15 = FUN_8f624e9c((int)uVar15,(int)((ulonglong)uVar15 >> 0x20),pcVar6); | |
if ((int)uVar15 < 0) { | |
dprintf((byte *)s_RPMB_init_failed_8f6599cc,(int *)((ulonglong)uVar15 >> 0x20),pcVar6,ppiVar8); | |
pcVar6 = s_target_msm8953_init_c_8f659840; | |
ppiVar8 = (int **)0x1a7; | |
uVar15 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_target_msm8953_init_c_8f659840,0x1a7); | |
} | |
uVar15 = FUN_8f6083f8((int)uVar15,(int)((ulonglong)uVar15 >> 0x20),(int **)pcVar6); | |
if ((int)uVar15 < 0) { | |
dprintf((byte *)s_Failed_to_load_App_for_verified_8f6599e0,(int *)((ulonglong)uVar15 >> 0x20), | |
pcVar6,ppiVar8); | |
uVar15 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_target_msm8953_init_c_8f659840,0x1b0); | |
} | |
piVar4 = DAT_8f69d118; | |
if (local_1c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar15,(int)((ulonglong)uVar15 >> 0x20),local_1c); | |
} | |
piVar9 = DAT_8f69d118; | |
DAT_8f69d190 = FUN_8f6366a8((int *)0x40,0x800); | |
if (DAT_8f69d190 == 0) { | |
piVar9 = (int *)0x7e; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_smd_c_8f65be98,0x7e); | |
} | |
uVar12 = 0; | |
uVar11 = 1000000; | |
do { | |
uVar7 = 0x800; | |
uVar15 = FUN_8f6045dc(0xd,DAT_8f69d190,0x800); | |
if ((int)uVar15 != 0) { | |
dprintf((byte *)s_ERROR_reading_smem_channel_alloc_8f65bf34,(int *)((ulonglong)uVar15 >> 0x20) | |
,uVar7,piVar9); | |
uVar5 = 0xffffffff; | |
uVar7 = extraout_r1_00; | |
goto LAB_8f609230; | |
} | |
bVar14 = uVar11 == 0; | |
uVar11 = uVar11 - 1; | |
uVar12 = uVar12 - bVar14; | |
iVar3 = FUN_8f608af4((undefined4 *)&DAT_8f69d124,0xf); | |
FUN_8f6104fc(10); | |
piVar9 = (int *)(uint)((uVar11 | uVar12) != 0); | |
piVar13 = piVar9; | |
if (iVar3 == 0) { | |
piVar13 = (int *)0x0; | |
} | |
} while (piVar13 != (int *)0x0); | |
if ((uVar11 | uVar12) == 0) { | |
dprintf((byte *)s_Apps_timed_out_waiting_for_RPM___8f65bf5c,extraout_r1,uVar7,0); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_smd_c_8f65be98,0x95); | |
} | |
FUN_8f61097c(200,FUN_8f609378,(int *)&DAT_8f69d124); | |
FUN_8f608ffc((uint *)&DAT_8f69d124,1,1); | |
_DAT_0b111008 = 1; | |
FUN_8f610944(200,extraout_r1_01); | |
uVar5 = 0; | |
uVar7 = extraout_r1_02; | |
LAB_8f609230: | |
if (piVar4 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar5,uVar7,piVar4); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f600fbc) | |
void FUN_8f600f88(undefined param_1) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
FUN_8f63303c(0,0x85b,0); | |
FUN_8f63303c(2,0x85b,0); | |
FUN_8f6104fc(300); | |
FUN_8f63303c(0,0x85a,param_1); | |
FUN_8f63303c(2,0x85a,param_1); | |
uVar2 = FUN_8f63303c(0,0x85b,0x80); | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
FUN_8f63303c(2,0x85b,0x80); | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f600ff4) | |
void FUN_8f600fc0(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f601030) | |
void FUN_8f600ff8(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f601068) | |
void FUN_8f601034(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
void FUN_8f60106c(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
uint uVar2; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
if (DAT_8f684400 == '\0') { | |
uVar3 = FUN_8f611838(); | |
param_2 = (undefined4)((ulonglong)uVar3 >> 0x20); | |
uVar2 = (int)uVar3 - 1; | |
if (uVar2 < 0x15) { | |
uVar2 = 1 << (uVar2 & 0xff) & 0x100481; | |
if (uVar2 != 0) { | |
uVar2 = 1; | |
} | |
goto LAB_8f60109c; | |
} | |
} | |
uVar2 = 0; | |
LAB_8f60109c: | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,param_2,piVar1); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f601124) | |
void FUN_8f6010e8(undefined4 param_1) | |
{ | |
DAT_8f684400 = (undefined)param_1; | |
return; | |
} | |
void FUN_8f601128(uint *param_1,uint param_2) | |
{ | |
int iVar1; | |
int iVar2; | |
int *extraout_r1; | |
int *extraout_r1_00; | |
int *piVar3; | |
int *piVar4; | |
uint uVar5; | |
int *in_lr; | |
undefined8 uVar6; | |
undefined8 uVar7; | |
undefined4 auStack_6c [4]; | |
int *local_5c; | |
uint local_58; | |
int *local_54; | |
uint local_50; | |
int local_48; | |
int local_40; | |
int *local_24; | |
local_24 = DAT_8f69d118; | |
iVar1 = FUN_8f604aa4(); | |
if (iVar1 == 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_target_msm8953_meminfo_c_8f659a04,0x2e); | |
} | |
uVar6 = FUN_8f604c04(); | |
piVar3 = (int *)((ulonglong)uVar6 >> 0x20); | |
if ((int)uVar6 != 0) { | |
iVar1 = 0; | |
do { | |
FUN_8f604bb4(auStack_6c,iVar1); | |
piVar3 = extraout_r1; | |
if ((local_48 == 0xe) && (local_40 == 1)) { | |
piVar4 = local_5c; | |
uVar5 = local_58; | |
uVar7 = FUN_8f6190c8(param_1,param_2,local_5c,local_58,local_54,local_50); | |
piVar3 = (int *)((ulonglong)uVar7 >> 0x20); | |
iVar2 = (int)uVar7; | |
if (iVar2 != 0) { | |
dprintf((byte *)s_Failed_to_add_secondary_banks_me_8f659a3c,piVar3,piVar4,uVar5); | |
piVar3 = extraout_r1_00; | |
goto LAB_8f6011e0; | |
} | |
} | |
iVar1 = iVar1 + 1; | |
} while (iVar1 != (int)uVar6); | |
} | |
iVar2 = 0; | |
LAB_8f6011e0: | |
if (local_24 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar2,piVar3,local_24); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f601260) | |
void FUN_8f601228(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f601298) | |
void FUN_8f601264(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
void FUN_8f60129c(short *param_1,int *param_2) | |
{ | |
undefined2 uVar1; | |
undefined4 extraout_r1; | |
char *extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 uVar2; | |
undefined4 extraout_r1_02; | |
undefined4 extraout_r1_03; | |
undefined8 uVar3; | |
char local_28; | |
char cStack_27; | |
int local_24; | |
undefined local_20; | |
char local_1f; | |
int *local_1c; | |
local_1c = DAT_8f69d118; | |
uVar1 = FUN_8f602b84(); | |
uVar2 = extraout_r1; | |
if (*param_1 != 2) { | |
local_28 = (char)uVar1; | |
if ((local_28 == '\0') && (cStack_27 = (char)((ushort)uVar1 >> 8), cStack_27 == '\x01')) { | |
FUN_8f632ebc(0); | |
local_24 = 0xa300; | |
local_20 = 3; | |
if (param_2 == (int *)0x0) { | |
FUN_8f633c9c(0,extraout_r1_02); | |
FUN_8f6333c8(&local_24,0); | |
} | |
else { | |
FUN_8f633c9c(0,extraout_r1_02); | |
uVar3 = FUN_8f633a24((int *)0x36,(int *)0x3c); | |
if ((int)uVar3 < 0) { | |
local_1f = cStack_27; | |
} | |
else { | |
local_1f = '\n'; | |
FUN_8f633c9c(1,(int)((ulonglong)uVar3 >> 0x20)); | |
} | |
FUN_8f633458(&local_24); | |
FUN_8f6333c8(&local_24,1); | |
FUN_8f6330ac(0x1bcd0,0xa5); | |
FUN_8f6330ac(0x1bce3,2); | |
} | |
FUN_8f6104a8(0x14); | |
uVar2 = extraout_r1_03; | |
} | |
else { | |
FUN_8f6339e4(3); | |
FUN_8f6345e4(param_2,extraout_r1_00); | |
FUN_8f6344bc((uint)param_2); | |
uVar2 = extraout_r1_01; | |
} | |
} | |
if (local_1c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,uVar2,local_1c); | |
} | |
return; | |
} | |
void FUN_8f60159c(int param_1,int param_2,int param_3) | |
{ | |
int *piVar1; | |
uint uVar2; | |
undefined4 extraout_r1; | |
undefined4 uVar3; | |
undefined4 extraout_r1_00; | |
int iVar4; | |
int iVar5; | |
undefined8 uVar6; | |
piVar1 = DAT_8f69d118; | |
uVar6 = FUN_8f611838(); | |
if (param_1 == 0) { | |
uVar6 = FUN_8f60106c((int)uVar6,(int)((ulonglong)uVar6 >> 0x20)); | |
uVar3 = (undefined4)((ulonglong)uVar6 >> 0x20); | |
if ((int)uVar6 == 0) { | |
FUN_8f604420(0x3d,0); | |
FUN_8f604420(0x3e,0); | |
uVar3 = extraout_r1_00; | |
} | |
} | |
else { | |
if (*(int *)(param_3 + 0x294) != 0) { | |
FUN_8f6043cc(0x3e,0,1,0,3,1); | |
FUN_8f604420(0x3e,2); | |
} | |
if ((int)uVar6 != 0xb) { | |
FUN_8f6043cc(0x18,0,1,0,3,1); | |
FUN_8f604420(0x18,2); | |
} | |
FUN_8f6043cc(0x3d,0,1,0,3,1); | |
iVar4 = 0; | |
FUN_8f604420(0x3d,2); | |
iVar5 = param_2; | |
do { | |
uVar2 = (uint)*(byte *)(param_2 + iVar4); | |
iVar4 = iVar4 + 1; | |
if (uVar2 != 0) { | |
uVar2 = 2; | |
} | |
FUN_8f604420(0x3d,uVar2); | |
FUN_8f6104a8(*(uint *)(iVar5 + 8)); | |
uVar3 = extraout_r1; | |
iVar5 = iVar5 + 4; | |
} while (iVar4 != 3); | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,uVar3,piVar1); | |
} | |
void FUN_8f6016e8(undefined4 *param_1) | |
{ | |
int *piVar1; | |
undefined4 extraout_r1; | |
piVar1 = DAT_8f69d118; | |
FUN_8f63685c(param_1 + 0x33,(undefined4 *)&DAT_8f659b60,0x28); | |
FUN_8f63685c(param_1,(undefined4 *)&DAT_8f659b88,0x14); | |
FUN_8f63685c((undefined4 *)((int)param_1 + 0xfa),(undefined4 *)&DAT_8f659a80,0x14); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,extraout_r1,piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f601794) | |
void FUN_8f601760(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Could not reconcile some variable overlaps | |
void FUN_8f601798(int param_1,int param_2) | |
{ | |
uint uVar1; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 uVar2; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
undefined4 extraout_r1_03; | |
byte *pbVar3; | |
undefined8 uVar4; | |
byte *local_44; | |
undefined4 local_40; | |
undefined4 local_3c; | |
undefined4 local_38; | |
undefined4 local_34; | |
undefined4 local_30; | |
undefined4 local_2c; | |
undefined4 local_28; | |
int local_24; | |
undefined4 local_20; | |
int *local_1c; | |
local_1c = DAT_8f69d118; | |
uVar4 = FUN_8f611838(); | |
if (param_1 == 0) { | |
if ((int)uVar4 != 0xb) { | |
FUN_8f60271c(0x10000,(int)((ulonglong)uVar4 >> 0x20)); | |
FUN_8f60271c(0x200,extraout_r1); | |
} | |
FUN_8f632ebc(2); | |
local_44 = (byte *)0xa100; | |
local_40 = CONCAT22(local_40._2_2_,0x100); | |
FUN_8f6333c8((int *)&local_44,0); | |
FUN_8f6104a8(0x14); | |
uVar2 = extraout_r1_00; | |
goto LAB_8f601814; | |
} | |
FUN_8f632ebc(2); | |
local_40 = CONCAT22(local_40._2_2_,0x100); | |
local_44 = (byte *)0xa100; | |
FUN_8f633458((int *)&local_44); | |
FUN_8f6333c8((int *)&local_44,1); | |
FUN_8f6104a8(0x14); | |
if ((int)uVar4 == 0xb) { | |
uVar1 = 0xa4; | |
} | |
else { | |
uVar1 = 0x102a4; | |
} | |
FUN_8f602638(uVar1,extraout_r1_01); | |
FUN_8f6104a8(10); | |
pbVar3 = *(byte **)(param_2 + 0x4f0); | |
local_40 = 0; | |
local_3c = 0; | |
local_38 = 0; | |
local_34 = 0; | |
local_30 = 0; | |
local_24 = 0; | |
local_20 = 0; | |
local_44 = pbVar3; | |
if (pbVar3 == (byte *)0x0) { | |
LAB_8f6019b0: | |
local_40 = 0x10303; | |
local_3c = 5500000; | |
local_38 = 5500000; | |
local_34 = 5500000; | |
local_30 = 5500000; | |
} | |
else { | |
local_44 = (byte *)(uint)*pbVar3; | |
if (local_44 == (byte *)0x0) { | |
LAB_8f601938: | |
if (pbVar3[1] == 0) { | |
local_40 = 0x10303; | |
if (local_44 == (byte *)0x0) goto LAB_8f6019b0; | |
local_3c = 4600000; | |
local_38 = 4600000; | |
local_34 = 4000000; | |
local_30 = 4000000; | |
} | |
else { | |
local_3c = *(undefined4 *)(pbVar3 + 0xc); | |
local_38 = *(undefined4 *)(pbVar3 + 0x10); | |
local_34 = *(undefined4 *)(pbVar3 + 4); | |
local_30 = *(undefined4 *)(pbVar3 + 8); | |
local_40 = (uint)*(uint3 *)(pbVar3 + 0x14); | |
} | |
} | |
else { | |
local_24 = *(int *)(pbVar3 + 0x18); | |
local_20 = 1; | |
if (local_24 == 0) goto LAB_8f601938; | |
} | |
} | |
local_28 = 4600000; | |
local_2c = 1400000; | |
FUN_8f6339e4(3); | |
FUN_8f634744((uint *)&local_44,extraout_r1_02); | |
FUN_8f6344bc(1); | |
FUN_8f6104a8(0x32); | |
uVar2 = extraout_r1_03; | |
LAB_8f601814: | |
if (local_1c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,uVar2,local_1c); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f601a40) | |
void FUN_8f601a0c(int param_1,uint param_2) | |
{ | |
int iVar1; | |
byte **ppbVar2; | |
int iVar3; | |
int iVar4; | |
uint uVar5; | |
int *piVar6; | |
undefined4 extraout_r1; | |
char *pcVar7; | |
undefined4 extraout_r1_00; | |
undefined4 uVar8; | |
int *extraout_r1_01; | |
undefined4 extraout_r1_02; | |
int *extraout_r1_03; | |
int *extraout_r1_04; | |
undefined4 extraout_r1_05; | |
undefined4 extraout_r1_06; | |
undefined4 extraout_r1_07; | |
char *pcVar9; | |
int *piVar10; | |
undefined4 *puVar11; | |
char *pcVar12; | |
char *pcVar13; | |
byte *pbVar14; | |
byte **ppbVar15; | |
uint uVar16; | |
int iVar17; | |
ulonglong uVar18; | |
undefined8 uVar19; | |
ulonglong uVar20; | |
uint local_e0; | |
uint local_d4; | |
byte **local_bc; | |
byte **local_b8 [28]; | |
int **local_48; | |
ushort local_44; | |
undefined2 local_42; | |
undefined2 local_40; | |
undefined2 local_3e; | |
undefined2 local_3c; | |
ushort local_38; | |
undefined2 local_36; | |
undefined2 local_34; | |
undefined2 local_32; | |
undefined2 local_30; | |
int *local_2c; | |
local_2c = DAT_8f69d118; | |
local_bc = (byte **)0x0; | |
pcVar7 = (char *)DAT_8f69d118; | |
iVar1 = FUN_8f636de0((byte *)s__mdss_mdp_panel__8f6648a4); | |
local_42 = 0; | |
piVar10 = (int *)(uint)DAT_8f66479c; | |
local_40 = 0; | |
local_3e = 0; | |
local_44 = DAT_8f66479c; | |
local_38 = DAT_8f66479c; | |
local_3c = 0; | |
local_36 = 0; | |
local_34 = 0; | |
local_32 = 0; | |
local_30 = 0; | |
FUN_8f630600(local_b8); | |
uVar18 = FUN_8f636bdc((int)&DAT_8f68006c,(byte *)s_sim_video_panel_8f659b10); | |
if ((byte **)uVar18 == (byte **)0x0) { | |
pcVar13 = s_qcom_mdss_dsi_sim_video_8f66488c; | |
ppbVar15 = (byte **)uVar18; | |
LAB_8f631194: | |
pcVar12 = s_dsi_0__8f65a114; | |
LAB_8f63119c: | |
piVar6 = (int *)(uVar18 >> 0x20); | |
ppbVar2 = (byte **)uVar18; | |
if ((undefined4 *)pcVar13 == (undefined4 *)0x0) { | |
LAB_8f631170: | |
dprintf((byte *)s_panel_node_or_dsi_ctrl_not_prese_8f6648e4,piVar6,pcVar7,piVar10); | |
ppbVar2 = (byte **)0x0; | |
uVar8 = extraout_r1; | |
goto LAB_8f63153c; | |
} | |
if ((((uint)ppbVar15 & 0x18) != 0) && (ppbVar2 == (byte **)0x0)) { | |
dprintf((byte *)s_slave_node_not_present_in_split__8f664930,piVar6,pcVar7,piVar10); | |
uVar8 = extraout_r1_06; | |
goto LAB_8f63153c; | |
} | |
uVar19 = FUN_8f636bdc((int)PTR_DAT_8f631920,(byte *)(s__device_command_failed__8f66183c + 0x1c)) | |
; | |
piVar6 = (int *)((ulonglong)uVar19 >> 0x20); | |
if ((int)uVar19 != 0) { | |
LAB_8f631638: | |
if (((uint)ppbVar15 & 0x19) == 0) { | |
pcVar7 = s_adv7533_1080p_video_8f680148; | |
puVar11 = &DAT_8f681f30; | |
do { | |
iVar3 = 0x40; | |
uVar19 = FUN_8f636e98(PTR_DAT_8f631920,(byte *)pcVar7,(int *)0x40); | |
piVar10 = (int *)((ulonglong)uVar19 >> 0x20); | |
if ((int)uVar19 == 0) { | |
iVar3 = *(int *)((int)pcVar7 + 0x80); | |
ppbVar2 = (byte **)((int)pcVar7 + 0x40); | |
if (iVar3 < 0) goto LAB_8f6316d4; | |
if (iVar3 != 1) goto LAB_8f6311cc; | |
dprintf((byte *)s_Invalid_config__Secondary_panel_c_8f6649dc,piVar10,1,puVar11); | |
goto LAB_8f6317cc; | |
} | |
pcVar7 = (char *)((int)pcVar7 + 0x84); | |
} while ((undefined4 *)pcVar7 != &DAT_8f681f30); | |
dprintf((byte *)s_Panel_name__s_not_found_in_looku_8f6648b8,(int *)PTR_DAT_8f631920,iVar3, | |
puVar11); | |
piVar10 = extraout_r1_03; | |
LAB_8f6316d4: | |
dprintf((byte *)s_Sec__panel_not_found__Continue_w_8f6649a8,piVar10,iVar3,puVar11); | |
} | |
else { | |
dprintf((byte *)s_Invalid_config__Primary_panel_is_8f66495c,piVar6,pcVar7,piVar10); | |
} | |
} | |
LAB_8f6311cc: | |
if (ppbVar2 == (byte **)0x0) { | |
LAB_8f6317cc: | |
FUN_8f636d18((int)PTR_s_single_dsi_8f631924,(byte *)s_single_dsi_8f664a44,0xf); | |
iVar3 = FUN_8f636de0(PTR_s_single_dsi_8f631924); | |
iVar3 = iVar3 + 5; | |
local_d4 = FUN_8f636de0((byte *)pcVar12); | |
local_d4 = local_d4 & 0xffff; | |
local_e0 = FUN_8f636de0((byte *)pcVar13); | |
local_e0 = local_e0 & 0xffff; | |
LAB_8f63123c: | |
ppbVar15 = (byte **)&DAT_8f659b08; | |
} | |
else { | |
if (((uint)ppbVar15 & 0x19) == 0) { | |
pcVar7 = s_dual_dsi_8f664a38; | |
} | |
else { | |
pcVar7 = s_split_dsi_8f664a2c; | |
} | |
FUN_8f636d18((int)PTR_s_single_dsi_8f631924,(byte *)pcVar7,0xf); | |
iVar3 = FUN_8f636de0(PTR_s_single_dsi_8f631924); | |
iVar3 = iVar3 + 5; | |
local_d4 = FUN_8f636de0((byte *)pcVar12); | |
local_d4 = local_d4 & 0xffff; | |
local_e0 = FUN_8f636de0((byte *)pcVar13); | |
local_e0 = local_e0 & 0xffff; | |
iVar4 = FUN_8f636bdc((int)ppbVar2,(byte *)(s__device_command_failed__8f66183c + 0x1c)); | |
ppbVar15 = ppbVar2; | |
if (iVar4 == 0) goto LAB_8f63123c; | |
} | |
uVar5 = FUN_8f636de0((byte *)ppbVar15); | |
if (local_b8[0] == (byte **)0x0) { | |
pbVar14 = &DAT_8f664834; | |
} | |
else { | |
iVar4 = FUN_8f636bdc((int)local_b8[0][4],(byte *)s_DISPLAY_2_8f664668); | |
pbVar14 = &DAT_8f664834; | |
if (iVar4 == 0) { | |
pbVar14 = &DAT_8f664830; | |
} | |
} | |
iVar4 = FUN_8f636de0(pbVar14); | |
uVar16 = iVar3 + 3 + (uVar5 & 0xffff) + local_d4 + iVar1 + local_e0 + iVar4; | |
if (DAT_8f6800f0 == (int *)0x0) { | |
LAB_8f631554: | |
pcVar9 = (char *)DAT_8f68010c; | |
if (DAT_8f68010c == (byte *)0x0) goto LAB_8f6312f8; | |
pcVar9 = s__pll1_8f664808; | |
if (DAT_8f68010c == (byte *)0x1) { | |
pcVar9 = s__pll0_8f664800; | |
} | |
iVar3 = FUN_8f636de0((byte *)pcVar9); | |
uVar16 = uVar16 + iVar3; | |
if (DAT_8f6800f8 == (int *)0x0) goto LAB_8f631304; | |
LAB_8f631594: | |
pcVar7 = (char *)DAT_8f6800f8; | |
FUN_8f630b84((int *)&DAT_8f680118,(int *)0x3,(int)DAT_8f6800f8,(int **)&local_bc); | |
ppbVar2 = local_bc; | |
if (local_bc == (byte **)0x0) { | |
dprintf((byte *)s_SIM_string_NULL_but_mode_is_not_N_8f664a7c,extraout_r1_01,pcVar7,0); | |
uVar8 = extraout_r1_07; | |
goto LAB_8f63153c; | |
} | |
iVar3 = FUN_8f636de0((byte *)local_bc); | |
uVar16 = uVar16 + 10 + iVar3; | |
if ((int *)0x63 < DAT_8f680110) goto LAB_8f631310; | |
LAB_8f6315d0: | |
pcVar7 = s__config_d_8f664aa4; | |
piVar10 = DAT_8f680110; | |
FUN_8f636618((byte *)&local_44,10,(byte *)s__config_d_8f664aa4,DAT_8f680110); | |
iVar3 = FUN_8f636de0((byte *)&local_44); | |
uVar16 = uVar16 + iVar3; | |
} | |
else { | |
uVar19 = FUN_8f636bdc((int)s_single_dsi_8f6800fc,(byte *)s_dual_dsi_8f664a38); | |
if ((byte *)uVar19 != (byte *)0x0) goto LAB_8f631554; | |
if (DAT_8f68010c != (byte *)0x0) { | |
dprintf((byte *)s_Dual_DSI_config_detected__Use_de_8f664a50, | |
(int *)((ulonglong)uVar19 >> 0x20),DAT_8f68010c,0); | |
DAT_8f68010c = (byte *)uVar19; | |
} | |
pcVar9 = (char *)(byte *)0x0; | |
LAB_8f6312f8: | |
if (DAT_8f6800f8 != (int *)0x0) goto LAB_8f631594; | |
LAB_8f631304: | |
pcVar7 = (char *)DAT_8f6800f8; | |
if (DAT_8f680110 < (int *)0x64) goto LAB_8f6315d0; | |
LAB_8f631310: | |
piVar10 = DAT_8f680110; | |
if (local_48 != (int **)0x0) { | |
piVar10 = *local_48; | |
pcVar7 = &DAT_8f664ab0; | |
FUN_8f636618((byte *)&local_44,10,&DAT_8f664ab0,piVar10); | |
iVar3 = FUN_8f636de0((byte *)&local_44); | |
uVar16 = uVar16 + iVar3; | |
} | |
} | |
iVar3 = FUN_8f636bdc((int)PTR_s_single_dsi_8f631924,(byte *)s_split_dsi_8f664a2c); | |
if (iVar3 == 0) { | |
pcVar7 = s__bluetooth_MAC___s_8f662428 + 0x10; | |
piVar10 = (int *)&local_44; | |
FUN_8f636618((byte *)&local_38,10,(byte *)(s__bluetooth_MAC___s_8f662428 + 0x10),piVar10); | |
} | |
uVar19 = FUN_8f636bdc((int)s_single_dsi_8f6800fc,(byte *)s_dual_dsi_8f664a38); | |
piVar6 = (int *)((ulonglong)uVar19 >> 0x20); | |
if (((int)uVar19 == 0) && (piVar10 = DAT_8f680114, DAT_8f680114 < (int *)0x64)) { | |
pcVar7 = s__config_d_8f664aa4; | |
FUN_8f636618((byte *)&local_38,10,(byte *)s__config_d_8f664aa4,DAT_8f680114); | |
uVar19 = FUN_8f636de0((byte *)&local_38); | |
piVar6 = (int *)((ulonglong)uVar19 >> 0x20); | |
uVar16 = uVar16 + (int)uVar19; | |
} | |
if (uVar16 <= param_2) { | |
FUN_8f636d18(param_1,(byte *)s__mdss_mdp_panel__8f6648a4,param_2); | |
uVar16 = param_2 - iVar1 & 0xffff; | |
iVar17 = param_1 + iVar1 + 2; | |
iVar3 = iVar17 + local_d4; | |
FUN_8f636d18(param_1 + iVar1,&DAT_8f664664,uVar16); | |
iVar4 = iVar3 + local_e0; | |
uVar16 = uVar16 - 2 & 0xffff; | |
FUN_8f636d18(iVar17,(byte *)pcVar12,uVar16); | |
uVar16 = uVar16 - local_d4 & 0xffff; | |
FUN_8f636d18(iVar3,(byte *)pcVar13,uVar16); | |
iVar1 = FUN_8f636de0((byte *)&local_44); | |
uVar16 = uVar16 - local_e0 & 0xffff; | |
if (iVar1 != 0) { | |
FUN_8f636d18(iVar4,(byte *)&local_44,uVar16); | |
iVar1 = FUN_8f636de0((byte *)&local_44); | |
iVar4 = iVar4 + iVar1; | |
uVar16 = uVar16 - iVar1 & 0xffff; | |
} | |
FUN_8f636d18(iVar4,pbVar14,uVar16); | |
iVar1 = FUN_8f636de0(pbVar14); | |
iVar3 = iVar4 + iVar1 + (uVar5 & 0xffff); | |
uVar16 = uVar16 - iVar1 & 0xffff; | |
FUN_8f636d18(iVar4 + iVar1,(byte *)ppbVar15,uVar16); | |
iVar1 = FUN_8f636de0((byte *)&local_38); | |
uVar5 = uVar16 - uVar5 & 0xffff; | |
if (iVar1 != 0) { | |
FUN_8f636d18(iVar3,(byte *)&local_38,uVar5); | |
iVar1 = FUN_8f636de0((byte *)&local_38); | |
iVar3 = iVar3 + iVar1; | |
uVar5 = uVar5 - iVar1 & 0xffff; | |
} | |
uVar16 = uVar5 - 5 & 0xffff; | |
FUN_8f636d18(iVar3,(byte *)s__cfg__8f664ab4,uVar5); | |
FUN_8f636d18(iVar3 + 5,PTR_s_single_dsi_8f631924,uVar16); | |
uVar19 = FUN_8f636de0(PTR_s_single_dsi_8f631924); | |
uVar8 = (undefined4)((ulonglong)uVar19 >> 0x20); | |
iVar1 = iVar3 + 5 + (int)uVar19; | |
uVar5 = uVar16 - (int)uVar19 & 0xffff; | |
if ((byte *)pcVar9 != (byte *)0x0) { | |
FUN_8f636d18(iVar1,(byte *)pcVar9,uVar5); | |
uVar19 = FUN_8f636de0((byte *)pcVar9); | |
uVar8 = (undefined4)((ulonglong)uVar19 >> 0x20); | |
iVar1 = iVar1 + (int)uVar19; | |
uVar5 = uVar5 - (int)uVar19 & 0xffff; | |
} | |
if (local_bc == (byte **)0x0) { | |
ppbVar2 = (byte **)0x1; | |
} | |
else { | |
FUN_8f636d18(iVar1,(byte *)s__override__8f664abc,uVar5); | |
FUN_8f636d18(iVar1 + 10,(byte *)local_bc,uVar5 - 10 & 0xffff); | |
ppbVar2 = (byte **)0x1; | |
uVar8 = extraout_r1_00; | |
} | |
goto LAB_8f63153c; | |
} | |
} | |
else { | |
uVar18 = FUN_8f636bdc((int)&DAT_8f68006c,(byte *)s_sim_dualdsi_video_panel_8f659b20); | |
if ((int)uVar18 == 0) { | |
pcVar13 = s_qcom_mdss_dsi_dual_sim_video_8f66486c; | |
ppbVar15 = (byte **)0x1; | |
uVar18 = uVar18 & 0xffffffff00000000 | ZEXT48(s_qcom_mdss_dsi_dual_sim_video_8f66486c); | |
goto LAB_8f631194; | |
} | |
uVar18 = FUN_8f636bdc((int)&DAT_8f68006c,(byte *)s_sim_cmd_panel_8f659b38); | |
if ((byte **)uVar18 == (byte **)0x0) { | |
pcVar13 = s_qcom_mdss_dsi_sim_cmd_8f664854; | |
ppbVar15 = (byte **)uVar18; | |
goto LAB_8f631194; | |
} | |
uVar18 = FUN_8f636bdc((int)&DAT_8f68006c,(byte *)s_sim_dualdsi_cmd_panel_8f659b48); | |
piVar6 = (int *)(uVar18 >> 0x20); | |
if ((int)uVar18 == 0) { | |
pcVar13 = s_qcom_mdss_dsi_dual_sim_cmd_8f664838; | |
ppbVar15 = (byte **)0x1; | |
uVar18 = uVar18 & 0xffffffff00000000 | ZEXT48(s_qcom_mdss_dsi_dual_sim_cmd_8f664838); | |
goto LAB_8f631194; | |
} | |
piVar10 = DAT_8f6800f0; | |
if (DAT_8f6800f0 != (int *)0x0) { | |
pcVar13 = s_adv7533_1080p_video_8f680148; | |
do { | |
pcVar7 = (char *)0x40; | |
uVar20 = FUN_8f636e98(&DAT_8f68006c,(byte *)pcVar13,(int *)0x40); | |
piVar6 = (int *)(uVar20 >> 0x20); | |
if ((byte **)uVar20 == (byte **)0x0) { | |
ppbVar15 = *(byte ***)((int)pcVar13 + 0x80); | |
pcVar13 = (char *)((int)pcVar13 + 0x40); | |
uVar18 = uVar20 & 0xffffffff00000000 | ZEXT48(pcVar13); | |
if ((int)ppbVar15 < 0) goto LAB_8f631150; | |
if (ppbVar15 != (byte **)0x1) { | |
ppbVar15 = (byte **)uVar20; | |
uVar18 = uVar20; | |
} | |
goto LAB_8f631194; | |
} | |
pcVar13 = (char *)((int)pcVar13 + 0x84); | |
} while ((undefined4 *)pcVar13 != &DAT_8f681f30); | |
dprintf((byte *)s_Panel_name__s_not_found_in_looku_8f6648b8,(int *)&DAT_8f68006c,pcVar7, | |
piVar10); | |
piVar6 = extraout_r1_04; | |
} | |
LAB_8f631150: | |
if (local_b8[0] != (byte **)0x0) { | |
pcVar12 = (char *)local_b8[0][1]; | |
pcVar13 = (char *)*local_b8[0]; | |
uVar18 = CONCAT44(piVar6,local_b8[0][0xf]); | |
if ((byte *)pcVar12 != (byte *)0x0) { | |
ppbVar15 = (byte **)((uint)local_b8[0][0xc] & 0x1a); | |
goto LAB_8f63119c; | |
} | |
goto LAB_8f631170; | |
} | |
uVar19 = FUN_8f636bdc((int)PTR_DAT_8f631920,(byte *)(s__device_command_failed__8f66183c + 0x1c)) | |
; | |
piVar6 = (int *)((ulonglong)uVar19 >> 0x20); | |
if ((int)uVar19 != 0) { | |
pcVar13 = &DAT_8f659b08; | |
pcVar12 = s_dsi_0__8f65a114; | |
ppbVar2 = local_b8[0]; | |
ppbVar15 = local_b8[0]; | |
goto LAB_8f631638; | |
} | |
uVar19 = FUN_8f636de0((byte *)(s_event_status____0_8f6616e8 + 0x10)); | |
piVar6 = (int *)((ulonglong)uVar19 >> 0x20); | |
if ((uint)((int)uVar19 + iVar1) <= param_2) { | |
FUN_8f636d18(param_1,(byte *)s__mdss_mdp_panel__8f6648a4,param_2); | |
FUN_8f636d18(param_1 + iVar1,(byte *)(s_event_status____0_8f6616e8 + 0x10), | |
param_2 - iVar1 & 0xffff); | |
ppbVar2 = (byte **)0x1; | |
uVar8 = extraout_r1_05; | |
goto LAB_8f63153c; | |
} | |
} | |
dprintf((byte *)s_display_command_line_buffer_is_s_8f664908,piVar6,pcVar7,piVar10); | |
ppbVar2 = (byte **)0x0; | |
uVar8 = extraout_r1_02; | |
LAB_8f63153c: | |
if (local_2c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(ppbVar2,uVar8,local_2c); | |
} | |
return; | |
} | |
void FUN_8f601a44(byte *param_1,undefined4 param_2,int *param_3) | |
{ | |
int iVar1; | |
uint uVar2; | |
undefined8 uVar3; | |
undefined4 auStack_170 [44]; | |
undefined4 auStack_c0 [32]; | |
int local_40; | |
int local_3c; | |
int *local_14; | |
local_14 = DAT_8f69d118; | |
FUN_8f630cb0(param_1,param_2,param_3); | |
FUN_8f630c30(auStack_170); | |
FUN_8f63685c(auStack_c0,auStack_170,0xac); | |
iVar1 = FUN_8f636bdc((int)auStack_c0,&DAT_8f659b08); | |
if ((((iVar1 == 0) || | |
(iVar1 = FUN_8f636bdc((int)auStack_c0,(byte *)s_sim_video_panel_8f659b10), iVar1 == 0)) || | |
(iVar1 = FUN_8f636bdc((int)auStack_c0,(byte *)s_sim_dualdsi_video_panel_8f659b20), iVar1 == 0) | |
) || (((iVar1 = FUN_8f636bdc((int)auStack_c0,(byte *)s_sim_cmd_panel_8f659b38), iVar1 == 0 || | |
(iVar1 = FUN_8f636bdc((int)auStack_c0,(byte *)s_sim_dualdsi_cmd_panel_8f659b48), | |
iVar1 == 0)) || (local_3c != 0)))) { | |
local_40 = 0; | |
} | |
uVar2 = 0; | |
do { | |
FUN_8f6010e8(0); | |
uVar3 = FUN_8f630644((byte *)auStack_c0,0xd,-0x70000000); | |
if ((int)uVar3 == -0x18 || (int)uVar3 == 0) break; | |
uVar2 = uVar2 + 1; | |
uVar3 = FUN_8f6010e8(1); | |
uVar3 = FUN_8f61db00((int)uVar3,(int)((ulonglong)uVar3 >> 0x20)); | |
uVar3 = FUN_8f601c9c((int)uVar3,(int)((ulonglong)uVar3 >> 0x20)); | |
} while (uVar2 <= (uint)uVar3); | |
if (local_40 == 0) { | |
uVar3 = FUN_8f6010e8(1); | |
} | |
if (local_14 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,(int)((ulonglong)uVar3 >> 0x20),local_14); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f630b08) | |
// WARNING: Removing unreachable block (ram,0x8f601bb4) | |
void FUN_8f601b80(undefined4 param_1,undefined4 param_2) | |
{ | |
if (DAT_8f69cfa4 == 0) { | |
return; | |
} | |
FUN_8f61db00(param_1,(uint)DAT_8f69cfa4); | |
return; | |
} | |
void FUN_8f601c9c(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
uVar3 = FUN_8f626570(param_1,param_2); | |
if ((int)uVar3 == 0) { | |
uVar2 = 0; | |
} | |
else { | |
uVar2 = 2; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,(int)((ulonglong)uVar3 >> 0x20),piVar1); | |
} | |
return; | |
} | |
void FUN_8f601ce0(byte *param_1,undefined4 *param_2,byte *param_3,int param_4) | |
{ | |
int *piVar1; | |
int *piVar2; | |
int iVar3; | |
undefined4 uVar4; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
undefined4 extraout_r1_03; | |
undefined4 extraout_r1_04; | |
undefined4 extraout_r1_05; | |
undefined4 extraout_r1_06; | |
undefined4 extraout_r1_07; | |
undefined4 extraout_r1_08; | |
byte *pbVar5; | |
undefined4 uVar6; | |
piVar1 = DAT_8f69d118; | |
pbVar5 = param_3; | |
piVar2 = (int *)FUN_8f611838(); | |
uVar6 = 2; | |
*(undefined4 *)(param_4 + 0x128) = 2; | |
if (param_1 == (byte *)0x0) { | |
LAB_8f601da8: | |
switch((int)piVar2 + -1) { | |
case 0: | |
case 7: | |
case 0x14: | |
DAT_8f684428 = 8; | |
*(undefined4 *)(param_3 + 0x24) = 1; | |
switchD_8f601d60_caseD_8: | |
*param_2 = &PTR_s_qcom_mdss_dsi_nt51018c_wsvga_vid_8f67a164; | |
param_2[1] = &DAT_8f67a648; | |
param_2[2] = &DAT_8f679ee4; | |
param_2[3] = &DAT_8f679b8c; | |
param_2[4] = &DAT_8f6844ac; | |
param_2[5] = &DAT_8f67b164; | |
param_2[6] = &DAT_8f679ed8; | |
param_2[7] = &DAT_8f6759d8; | |
param_2[8] = &DAT_8f6798e0; | |
param_2[9] = &DAT_8f677e04; | |
*(undefined **)(param_3 + 0x264) = &DAT_8f67ac54; | |
*(undefined **)(param_3 + 0x26c) = &DAT_8f679e6c; | |
*(undefined4 *)(param_3 + 0x268) = 1; | |
*(undefined4 *)(param_3 + 0x270) = 2; | |
FUN_8f63685c((undefined4 *)(param_4 + 0x1c),(undefined4 *)&DAT_8f659e1c,0xa0); | |
uVar6 = extraout_r1_00; | |
break; | |
default: | |
dprintf((byte *)s_Display_not_enabled_for__d_HW_ty_8f65a0c0,piVar2,pbVar5,(int)piVar2 + -1); | |
uVar4 = 0; | |
uVar6 = extraout_r1_01; | |
goto LAB_8f601fc4; | |
case 10: | |
DAT_8f684428 = 3; | |
*(undefined4 *)(param_3 + 0x24) = 1; | |
switchD_8f601d60_caseD_3: | |
*param_2 = &PTR_s_qcom_mdss_dsi_r69006_1080p_cmd_8f675d4c; | |
param_2[1] = &DAT_8f67a564; | |
param_2[2] = &DAT_8f67a450; | |
param_2[3] = &DAT_8f675c60; | |
param_2[4] = &DAT_8f6756ec; | |
param_2[5] = &DAT_8f6759a8; | |
param_2[6] = &DAT_8f675ef4; | |
param_2[7] = &DAT_8f67b108; | |
param_2[8] = &DAT_8f677954; | |
param_2[9] = &DAT_8f677a38; | |
*(undefined **)(param_3 + 0x4f0) = &DAT_8f677a14; | |
*(undefined **)(param_3 + 0x264) = &DAT_8f679900; | |
*(undefined4 *)(param_3 + 0x268) = 0x20; | |
*(undefined **)(param_3 + 0x26c) = &DAT_8f675e5c; | |
*(undefined4 *)(param_3 + 0x270) = 2; | |
FUN_8f63685c((undefined4 *)(param_4 + 0x1c),(undefined4 *)&DAT_8f659b9c,0xa0); | |
param_3[0x252] = 1; | |
*(undefined4 *)(param_3 + 0x290) = 0xffff; | |
param_3[0x251] = 1; | |
uVar6 = extraout_r1; | |
} | |
} | |
else { | |
pbVar5 = param_1; | |
iVar3 = FUN_8f6325d0((byte *)s_truly_1080p_video_8f677a60,(int *)0x9,param_1); | |
if (iVar3 < 0) { | |
iVar3 = FUN_8f637074(param_1,&DAT_8f661410); | |
dprintf((byte *)s_Not_able_to_search_the_panel__s_8f65a09c,(int *)(param_1 + iVar3),pbVar5, | |
uVar6); | |
goto LAB_8f601da8; | |
} | |
if (8 < iVar3) goto LAB_8f601da8; | |
DAT_8f684428 = iVar3; | |
*(undefined4 *)(param_3 + 0x24) = 1; | |
switch(iVar3) { | |
case 1: | |
*param_2 = &PTR_s_qcom_mdss_dsi_truly_1080p_cmd_8f67acc8; | |
DAT_8f67acfc = 0; | |
param_2[1] = &DAT_8f679a80; | |
param_2[2] = &DAT_8f675a68; | |
param_2[3] = &DAT_8f675c48; | |
param_2[4] = &DAT_8f67a0c8; | |
param_2[5] = &DAT_8f67a094; | |
param_2[6] = &DAT_8f675d30; | |
param_2[7] = &DAT_8f67549c; | |
param_2[8] = &DAT_8f67a0a4; | |
param_2[9] = &DAT_8f67cc58; | |
*(undefined **)(param_3 + 0x264) = &DAT_8f67575c; | |
*(undefined **)(param_3 + 0x26c) = &DAT_8f675e80; | |
*(undefined4 *)(param_3 + 0x268) = 0x16; | |
*(undefined4 *)(param_3 + 0x270) = 2; | |
FUN_8f63685c((undefined4 *)(param_4 + 0x1c),(undefined4 *)&DAT_8f659d7c,0xa0); | |
*(undefined4 *)(param_3 + 0x290) = 0xffff; | |
uVar6 = extraout_r1_08; | |
break; | |
case 2: | |
*param_2 = &PTR_s_qcom_mdss_dsi_r69006_1080p_video_8f677d00; | |
param_2[1] = &DAT_8f67a400; | |
param_2[2] = &DAT_8f67acbc; | |
param_2[3] = &DAT_8f677e68; | |
param_2[4] = &DAT_8f68442c; | |
param_2[5] = &DAT_8f67a66c; | |
param_2[6] = &DAT_8f679b4c; | |
param_2[7] = &DAT_8f67ad74; | |
param_2[8] = &DAT_8f67a4cc; | |
param_2[9] = &DAT_8f67a594; | |
*(undefined **)(param_3 + 0x4f0) = &DAT_8f675dd4; | |
*(undefined **)(param_3 + 0x264) = &DAT_8f67aa74; | |
*(undefined4 *)(param_3 + 0x268) = 0x17; | |
*(undefined **)(param_3 + 0x26c) = &DAT_8f67b110; | |
*(undefined4 *)(param_3 + 0x270) = 2; | |
FUN_8f63685c((undefined4 *)(param_4 + 0x1c),(undefined4 *)&DAT_8f659ebc,0xa0); | |
*(undefined4 *)(param_3 + 0x290) = 0xffff; | |
uVar6 = extraout_r1_02; | |
break; | |
case 3: | |
goto switchD_8f601d60_caseD_3; | |
case 4: | |
*param_2 = &PTR_s_qcom_mdss_dsi_truly_wuxga_video_8f6755f0; | |
DAT_8f675624 = 1; | |
param_2[1] = &DAT_8f67a780; | |
param_2[2] = &DAT_8f67cbe0; | |
param_2[3] = &DAT_8f6756c4; | |
param_2[4] = &DAT_8f6844cc; | |
param_2[5] = &DAT_8f679b10; | |
param_2[6] = &DAT_8f675b64; | |
param_2[7] = &DAT_8f6798dc; | |
param_2[8] = &DAT_8f67a878; | |
param_2[9] = &DAT_8f67a7a8; | |
*(undefined4 *)(param_3 + 0x268) = 1; | |
*(undefined **)(param_3 + 0x264) = &DAT_8f6755dc; | |
*(undefined4 *)(param_3 + 0x270) = 1; | |
*(undefined **)(param_3 + 0x26c) = &DAT_8f675ac8; | |
FUN_8f63685c((undefined4 *)(param_4 + 0x1c),(undefined4 *)&DAT_8f659f5c,0xa0); | |
FUN_8f636968((uint *)(param_3 + 0x300),0,0x58); | |
*(undefined4 *)(param_3 + 0x304) = 0xd; | |
*(undefined4 *)(param_3 + 0x308) = 0x30; | |
*(undefined4 *)(param_3 + 0x30c) = 0x31; | |
*(undefined4 *)(param_3 + 0x310) = 0x32; | |
*(undefined4 *)(param_3 + 0x314) = 0x33; | |
*(undefined4 *)(param_3 + 0x318) = 0x34; | |
*(undefined4 *)(param_3 + 0x31c) = 0x35; | |
*(undefined4 *)(param_3 + 800) = 0x36; | |
*(undefined4 *)(param_3 + 0x324) = 0x37; | |
*(undefined4 *)(param_3 + 0x328) = 0x38; | |
*(undefined4 *)(param_3 + 0x32c) = 0x39; | |
*(undefined4 *)(param_3 + 0x330) = 0x3a; | |
*(undefined4 *)(param_3 + 0x334) = 0x3b; | |
*(undefined4 *)(param_3 + 0x300) = 1; | |
*(undefined4 *)(param_3 + 0x338) = 0x3c; | |
*(undefined4 *)(param_3 + 0x290) = 0xffff; | |
uVar6 = extraout_r1_06; | |
break; | |
case 5: | |
*param_2 = &PTR_s_qcom_mdss_dsi_nt35532h_1080p_vid_8f67ae28; | |
param_2[1] = &DAT_8f67af14; | |
param_2[2] = &DAT_8f675a18; | |
param_2[3] = &DAT_8f675d8c; | |
param_2[4] = &DAT_8f68446c; | |
param_2[5] = &DAT_8f67a06c; | |
param_2[6] = &DAT_8f67794c; | |
param_2[7] = &DAT_8f67a020; | |
param_2[8] = &DAT_8f67589c; | |
param_2[9] = &DAT_8f675a00; | |
*(undefined **)(param_3 + 0x264) = &DAT_8f67b264; | |
*(undefined **)(param_3 + 0x26c) = &DAT_8f675f80; | |
*(undefined4 *)(param_3 + 0x268) = 0x21a; | |
*(undefined4 *)(param_3 + 0x270) = 2; | |
FUN_8f63685c((undefined4 *)(param_4 + 0x1c),(undefined4 *)&DAT_8f659ffc,0xa0); | |
uVar6 = extraout_r1_05; | |
break; | |
case 6: | |
*param_2 = &PTR_s_qcom_mdss_dsi_ili7807d_1080p_vid_8f67a1b4; | |
param_2[1] = &DAT_8f67b178; | |
param_2[2] = &DAT_8f675df8; | |
param_2[3] = &DAT_8f675478; | |
param_2[4] = &DAT_8f68444c; | |
param_2[5] = &DAT_8f67a44c; | |
param_2[6] = &DAT_8f67558c; | |
param_2[7] = &DAT_8f67a748; | |
param_2[8] = &DAT_8f677988; | |
param_2[9] = &DAT_8f67a6f8; | |
*(undefined **)(param_3 + 0x264) = &DAT_8f676014; | |
*(undefined **)(param_3 + 0x26c) = &DAT_8f677e50; | |
*(undefined4 *)(param_3 + 0x268) = 0x21a; | |
*(undefined4 *)(param_3 + 0x270) = 2; | |
FUN_8f63685c((undefined4 *)(param_4 + 0x1c),(undefined4 *)&DAT_8f659cdc,0xa0); | |
uVar6 = extraout_r1_04; | |
break; | |
case 7: | |
*param_2 = &PTR_s_qcom_mdss_dsi_ili7807d_1080p_vid_8f67a2c0; | |
param_2[1] = &DAT_8f677e18; | |
param_2[2] = &DAT_8f67cbe8; | |
param_2[3] = &DAT_8f675e50; | |
param_2[4] = &DAT_8f68448c; | |
param_2[5] = &DAT_8f679b14; | |
param_2[6] = &DAT_8f67a308; | |
param_2[7] = &DAT_8f67a294; | |
param_2[8] = &DAT_8f67a044; | |
param_2[9] = &DAT_8f675a70; | |
*(undefined **)(param_3 + 0x264) = &DAT_8f677f80; | |
*(undefined **)(param_3 + 0x26c) = &DAT_8f67a27c; | |
*(undefined4 *)(param_3 + 0x268) = 0x215; | |
*(undefined4 *)(param_3 + 0x270) = 2; | |
FUN_8f63685c((undefined4 *)(param_4 + 0x1c),(undefined4 *)&DAT_8f65a254,0xa0); | |
uVar6 = extraout_r1_03; | |
break; | |
case 8: | |
goto switchD_8f601d60_caseD_8; | |
default: | |
*param_2 = &PTR_s_qcom_mdss_dsi_truly_1080p_video_8f675fd4; | |
DAT_8f676008 = 0; | |
param_2[1] = &DAT_8f67af8c; | |
param_2[2] = &DAT_8f6758bc; | |
param_2[3] = &DAT_8f67a118; | |
param_2[4] = &DAT_8f684408; | |
param_2[5] = &DAT_8f67a01c; | |
param_2[6] = &DAT_8f67a708; | |
param_2[7] = &DAT_8f67af74; | |
param_2[8] = &DAT_8f675684; | |
param_2[9] = &DAT_8f67a530; | |
*(undefined **)(param_3 + 0x264) = &DAT_8f679ef0; | |
*(undefined **)(param_3 + 0x26c) = &DAT_8f675d08; | |
*(undefined4 *)(param_3 + 0x268) = 0x15; | |
*(undefined4 *)(param_3 + 0x270) = 2; | |
FUN_8f63685c((undefined4 *)(param_4 + 0x1c),(undefined4 *)&DAT_8f659c3c,0xa0); | |
FUN_8f636968((uint *)(param_3 + 0x300),0,0x58); | |
*(undefined4 *)(param_3 + 0x300) = 1; | |
*(undefined4 *)(param_3 + 0x304) = 0xd; | |
*(undefined4 *)(param_3 + 0x308) = 0x30; | |
*(undefined4 *)(param_3 + 0x30c) = 0x31; | |
*(undefined4 *)(param_3 + 0x310) = 0x32; | |
*(undefined4 *)(param_3 + 0x314) = 0x33; | |
*(undefined4 *)(param_3 + 0x318) = 0x34; | |
*(undefined4 *)(param_3 + 0x31c) = 0x35; | |
*(undefined4 *)(param_3 + 800) = 0x36; | |
*(undefined4 *)(param_3 + 0x324) = 0x37; | |
*(undefined4 *)(param_3 + 0x328) = 0x38; | |
*(undefined4 *)(param_3 + 0x32c) = 0x39; | |
*(undefined4 *)(param_3 + 0x330) = 0x3a; | |
*(undefined4 *)(param_3 + 0x334) = 0x3b; | |
*(undefined4 *)(param_3 + 0x338) = 0x3c; | |
*(undefined4 *)(param_3 + 0x290) = 0xffff; | |
uVar6 = extraout_r1_07; | |
} | |
} | |
uVar4 = 1; | |
LAB_8f601fc4: | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar4,uVar6,piVar1); | |
} | |
return; | |
} | |
void FUN_8f602638(uint param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = CONCAT44(param_2,param_1); | |
if ((param_1 & 4) != 0) { | |
uVar2 = FUN_8f608768((undefined4 *)PTR_DAT_8f602718,0x24,(int *)0x0); | |
} | |
if ((param_1 & 0x10000) != 0) { | |
uVar2 = FUN_8f608768((undefined4 *)PTR_DAT_8f602714,0x24,(int *)0x0); | |
} | |
if ((param_1 & 0x20) != 0) { | |
uVar2 = FUN_8f608768((undefined4 *)PTR_DAT_8f602710,0x24,(int *)0x0); | |
} | |
if ((param_1 & 0x80) != 0) { | |
uVar2 = FUN_8f608768((undefined4 *)PTR_DAT_8f60270c,0x24,(int *)0x0); | |
} | |
if ((param_1 & 0x200) == 0) { | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
} | |
else if (piVar1 == DAT_8f69d118) { | |
FUN_8f608768((undefined4 *)PTR_s_ldoa_8f602708,0x24,(int *)0x0); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
void FUN_8f60271c(uint param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = CONCAT44(param_2,param_1); | |
if ((param_1 & 4) != 0) { | |
uVar2 = FUN_8f608768((undefined4 *)&DAT_8f67cda8,0x24,(int *)0x0); | |
} | |
if ((param_1 & 0x10000) != 0) { | |
uVar2 = FUN_8f608768((undefined4 *)&DAT_8f67cd50,0x24,(int *)0x0); | |
} | |
if ((param_1 & 0x20) != 0) { | |
uVar2 = FUN_8f608768((undefined4 *)&DAT_8f67ce00,0x24,(int *)0x0); | |
} | |
if ((param_1 & 0x80) != 0) { | |
uVar2 = FUN_8f608768((undefined4 *)&DAT_8f67cca0,0x24,(int *)0x0); | |
} | |
if ((param_1 & 0x200) == 0) { | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
} | |
else if (piVar1 == DAT_8f69d118) { | |
FUN_8f608768((undefined4 *)s_ldoa_8f67ccf8,0x24,(int *)0x0); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
void FUN_8f602800(undefined4 *param_1,int param_2,int param_3) | |
{ | |
int *piVar1; | |
undefined uVar2; | |
int iVar3; | |
int *piVar4; | |
uint *puVar5; | |
undefined4 uVar6; | |
undefined4 extraout_r1; | |
undefined4 uVar7; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
undefined4 extraout_r1_03; | |
undefined4 extraout_r1_04; | |
undefined4 extraout_r1_05; | |
uint uVar8; | |
uint *puVar9; | |
int *piVar10; | |
char *pcVar11; | |
uint uVar12; | |
char *pcVar13; | |
undefined8 uVar14; | |
longlong lVar15; | |
piVar1 = DAT_8f69d118; | |
pcVar13 = s_backup1_8f65a2f4; | |
pcVar11 = s_devinfo_8f65a2fc; | |
if (param_3 == 0) { | |
pcVar13 = pcVar11; | |
} | |
uVar14 = FUN_8f606760((byte *)pcVar13); | |
piVar10 = (int *)((ulonglong)uVar14 >> 0x20); | |
iVar3 = (int)uVar14; | |
if (iVar3 < 0) { | |
dprintf((byte *)s__factory__ERROR__Cannot_find_dev_8f65a304,piVar10,param_3,pcVar11); | |
uVar6 = 0xffffffff; | |
uVar7 = extraout_r1_03; | |
goto LAB_8f602900; | |
} | |
lVar15 = FUN_8f60688c(iVar3,piVar10); | |
piVar10 = (int *)((ulonglong)lVar15 >> 0x20); | |
uVar12 = (uint)lVar15 | (uint)piVar10; | |
if (lVar15 == 0) { | |
dprintf((byte *)s__factory__ERROR__devinfo_partiti_8f65a334,piVar10,param_3,0); | |
uVar6 = 0xffffffff; | |
uVar7 = extraout_r1_02; | |
goto LAB_8f602900; | |
} | |
uVar2 = FUN_8f606904(iVar3); | |
uVar14 = FUN_8f60db18(uVar2); | |
piVar4 = (int *)FUN_8f60d5cc((int)uVar14,(int)((ulonglong)uVar14 >> 0x20)); | |
uVar8 = (int)piVar4 + 0xff; | |
piVar10 = (int *)(-(int)piVar4 & uVar8); | |
if ((int *)(-(int)piVar4 & uVar8) < piVar4) { | |
piVar10 = piVar4; | |
} | |
uVar14 = FUN_8f6366a8(piVar4,(uint)piVar10); | |
puVar5 = (uint *)uVar14; | |
if (puVar5 == (uint *)0x0) { | |
dprintf((byte *)s__factory__Failed_to_allocate_mem_8f65a36c,(int *)((ulonglong)uVar14 >> 0x20), | |
uVar8,uVar12); | |
uVar6 = 0xffffffff; | |
uVar7 = extraout_r1_05; | |
goto LAB_8f602900; | |
} | |
uVar12 = (uint)(lVar15 + 0x4000); | |
uVar8 = (uint)((ulonglong)(lVar15 + 0x4000) >> 0x20); | |
FUN_8f636968(puVar5,0,(int)piVar10); | |
if (param_2 == 0) { | |
puVar9 = puVar5; | |
uVar14 = FUN_8f60d85c(uVar12,uVar8,(uint)puVar5,(uint)piVar10); | |
if ((int)uVar14 != 0) { | |
dprintf((byte *)s__factory__ERROR__Cannot_read_fac_8f65a400,(int *)((ulonglong)uVar14 >> 0x20) | |
,puVar9,piVar10); | |
FUN_8f636758((int)puVar5); | |
uVar6 = 0xffffffff; | |
uVar7 = extraout_r1_04; | |
goto LAB_8f602900; | |
} | |
piVar4 = (int *)(uint)*(ushort *)puVar5; | |
if (piVar4 != (int *)0x705) goto LAB_8f602970; | |
FUN_8f63685c(param_1,puVar5,0x100); | |
if (*(short *)((int)param_1 + 2) == 1) { | |
*(undefined2 *)(param_1 + 0x30) = 0; | |
} | |
} | |
else { | |
puVar9 = (uint *)0x100; | |
FUN_8f63685c(puVar5,param_1,0x100); | |
piVar4 = (int *)(uint)*(ushort *)puVar5; | |
if (piVar4 != (int *)0x705) { | |
LAB_8f602970: | |
dprintf((byte *)s__factory__ERROR__Invalid_MAGIC___8f65a3ac,piVar4,puVar9,0x705); | |
FUN_8f636758((int)puVar5); | |
uVar6 = 0xffffffff; | |
uVar7 = extraout_r1_01; | |
goto LAB_8f602900; | |
} | |
puVar9 = puVar5; | |
uVar14 = FUN_8f60d620(uVar12,uVar8,(uint)piVar10,(uint)puVar5); | |
if ((int)uVar14 != 0) { | |
dprintf((byte *)s__factory__ERROR__Cannot_write_fa_8f65a3d4,(int *)((ulonglong)uVar14 >> 0x20) | |
,piVar10,puVar9); | |
FUN_8f636758((int)puVar5); | |
uVar6 = 0xffffffff; | |
uVar7 = extraout_r1_00; | |
goto LAB_8f602900; | |
} | |
} | |
FUN_8f636758((int)puVar5); | |
uVar6 = 0; | |
uVar7 = extraout_r1; | |
LAB_8f602900: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar6,uVar7,piVar1); | |
} | |
void FUN_8f6029e8(undefined4 *param_1) | |
{ | |
uint uVar1; | |
uint uVar2; | |
int iVar3; | |
int *piVar4; | |
int *extraout_r1; | |
int *extraout_r1_00; | |
int *extraout_r1_01; | |
undefined4 uVar5; | |
uint uVar6; | |
undefined8 uVar7; | |
uint uStack_21c; | |
uint local_218; | |
undefined4 uStack_11c; | |
uint local_118; | |
int *local_1c; | |
local_1c = DAT_8f69d118; | |
FUN_8f636968(&uStack_21c,0,0x200); | |
uVar1 = FUN_8f602800(&uStack_21c,0,0); | |
uVar2 = FUN_8f602800(&uStack_11c,0,1); | |
uVar6 = uVar2 | uVar1; | |
if (uVar6 == 0) { | |
uVar6 = local_118; | |
if (local_218 == 1) { | |
if (local_118 == 1) { | |
iVar3 = FUN_8f636a7c((char *)&uStack_21c,(char *)&uStack_11c,0x100); | |
uVar6 = local_118; | |
if (iVar3 == 0) goto LAB_8f602b10; | |
goto LAB_8f602ac8; | |
} | |
local_218 = local_118; | |
if (local_118 == 0) goto LAB_8f602a7c; | |
} | |
else if ((local_218 == 0) && (local_218 = local_118, local_118 == 1)) { | |
LAB_8f602ac8: | |
FUN_8f63685c(param_1,&uStack_21c,0x100); | |
uVar5 = 1; | |
uVar7 = FUN_8f602800(&uStack_21c,1,1); | |
piVar4 = (int *)((ulonglong)uVar7 >> 0x20); | |
uVar2 = uVar1; | |
if ((int)uVar7 != 0) { | |
dprintf((byte *)s__factory__ERROR__backup_failed_8f65a42c,piVar4,uVar5,uVar6); | |
piVar4 = extraout_r1; | |
} | |
goto LAB_8f602aa8; | |
} | |
iVar3 = FUN_8f636a7c((char *)&uStack_21c,(char *)&uStack_11c,0x100); | |
uVar6 = local_218; | |
if (iVar3 == 0) { | |
LAB_8f602b10: | |
FUN_8f60dbb0((byte *)s_backup1_8f65a2f4,'\x01'); | |
FUN_8f63685c(param_1,&uStack_21c,0x100); | |
uVar2 = uVar1; | |
piVar4 = extraout_r1_00; | |
goto LAB_8f602aa8; | |
} | |
} | |
else { | |
if (uVar1 == 0) goto LAB_8f602ac8; | |
if (uVar2 != 0) goto LAB_8f602b10; | |
} | |
LAB_8f602a7c: | |
FUN_8f63685c(param_1,&uStack_11c,0x100); | |
uVar5 = 0; | |
uVar7 = FUN_8f602800(&uStack_11c,1,0); | |
piVar4 = (int *)((ulonglong)uVar7 >> 0x20); | |
if ((int)uVar7 != 0) { | |
dprintf((byte *)s__factory__ERROR__restore_failed_8f65a44c,piVar4,uVar5,uVar6); | |
piVar4 = extraout_r1_01; | |
} | |
LAB_8f602aa8: | |
if (local_1c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,piVar4,local_1c); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f602b84(void) | |
{ | |
uint uVar1; | |
uint uVar2; | |
uint uVar3; | |
uint *puVar4; | |
uint *puVar5; | |
uint uVar6; | |
uint uVar7; | |
int iVar8; | |
uint uVar9; | |
int iVar10; | |
uint local_dc; | |
undefined4 auStack_d0 [2]; | |
uint local_c8 [41]; | |
local_c8[39] = DAT_8f69d118; | |
if (DAT_8f6844ec == '\0') { | |
local_dc = (uint)DAT_8f6844ed; | |
if (local_dc == 0) { | |
FUN_8f63685c(auStack_d0,(undefined4 *)&DAT_8f65a470,0xa0); | |
FUN_8f63388c(1,(int *)0x1); | |
uVar3 = FUN_8f6336bc(0x11); | |
iVar10 = 0; | |
puVar4 = local_c8; | |
uVar9 = uVar3; | |
do { | |
puVar5 = puVar4 + 4; | |
uVar2 = -(puVar4[1] + (uint)(uVar3 < *puVar4)); | |
uVar1 = (int)uVar2 >> 0x1f; | |
uVar6 = uVar3 - *puVar4 ^ uVar1; | |
uVar7 = uVar6 - uVar1; | |
iVar8 = (uVar2 ^ uVar1) - (uVar1 + (uVar6 < uVar1)); | |
if ((int)(iVar8 - (iVar10 + (uint)(uVar7 < uVar9))) < 0 != | |
(SBORROW4(iVar8,iVar10) != SBORROW4(iVar8 - iVar10,(uint)(uVar7 < uVar9)))) { | |
local_dc = (uint)*(byte *)(puVar4 + -2); | |
uVar9 = uVar7; | |
iVar10 = iVar8; | |
} | |
puVar4 = puVar5; | |
} while (puVar5 != local_c8 + 0x28); | |
_DAT_8f6844ec = CONCAT11((char)local_dc,(char)(local_dc >> 4)) & 0xfff; | |
} | |
} | |
if (local_c8[39] != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(_DAT_8f6844ec & 0xff | (int)(int *)(uint)(_DAT_8f6844ec >> 8) << 8,DAT_8f69d118, | |
(int *)(uint)(_DAT_8f6844ec >> 8)); | |
} | |
return; | |
} | |
void FUN_8f602c98(void) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
uVar3 = FUN_8f61203c(); | |
FUN_8f604388((int)uVar3,(int)((ulonglong)uVar3 >> 0x20)); | |
uVar3 = FUN_8f608118(); | |
uVar3 = FUN_8f610554((int)uVar3,(int)((ulonglong)uVar3 >> 0x20)); | |
uVar2 = (undefined4)((ulonglong)uVar3 >> 0x20); | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f615328((int)uVar3,uVar2,piVar1); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,uVar2,piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f602d10) | |
void FUN_8f602ce0(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6104a4) | |
// WARNING: Removing unreachable block (ram,0x8f6107fc) | |
// WARNING: Removing unreachable block (ram,0x8f602d48) | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f602d14(undefined4 param_1,undefined4 param_2) | |
{ | |
_DAT_0b02102c = _DAT_0b02102c & 0xfffffffe | 2; | |
DataSynchronizationBarrier(0xf); | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f602d88) | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f602d4c(void) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f602dc4) | |
void FUN_8f602d8c(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f602dfc) | |
void FUN_8f602dc8(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f602e00(undefined4 param_1,undefined4 param_2,char *param_3) | |
{ | |
int *piVar1; | |
int iVar2; | |
uint uVar3; | |
int iVar4; | |
uint uVar5; | |
int iVar6; | |
undefined *puVar7; | |
undefined *puVar8; | |
undefined *puVar9; | |
undefined8 uVar10; | |
piVar1 = DAT_8f69d118; | |
iVar2 = FUN_8f604c84(param_1,param_2,param_3); | |
if ((_DAT_0193d000 == (int *)0x0) || (*_DAT_0193d000 != 0x49494953)) { | |
uVar5 = 0x86300000; | |
} | |
else { | |
uVar5 = _DAT_0193d000[2]; | |
} | |
iVar4 = 0; | |
do { | |
uVar3 = iVar2 + 0x5900000 + iVar4; | |
iVar4 = iVar4 + -0x100000; | |
FUN_8f626208(uVar3,uVar3,0xc18); | |
puVar7 = PTR_DAT_8f602f00; | |
} while (iVar4 != -0x5a00000); | |
uVar10 = FUN_8f626208(uVar5,uVar5,0xc18); | |
puVar8 = puVar7 + -8; | |
puVar9 = puVar7 + 0x70; | |
do { | |
iVar2 = *(int *)(puVar8 + 8); | |
if (iVar2 != 0) { | |
iVar4 = *(int *)(puVar7 + -8); | |
iVar6 = *(int *)(puVar7 + -4); | |
uVar3 = *(uint *)(puVar8 + 0xc); | |
uVar5 = iVar4 + (iVar2 + 0xfff) * 0x100000; | |
do { | |
uVar10 = FUN_8f626208(uVar5,(iVar6 - iVar4) + uVar5,uVar3); | |
iVar2 = iVar2 + -1; | |
uVar5 = uVar5 - 0x100000; | |
} while (iVar2 != 0); | |
} | |
puVar7 = puVar7 + 0x10; | |
puVar8 = puVar8 + 0x10; | |
} while (puVar7 != puVar9); | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar10,(int)((ulonglong)uVar10 >> 0x20),piVar1); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f602f34) | |
void FUN_8f602f04(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f602f68) | |
void FUN_8f602f38(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f602fa0) | |
void FUN_8f602f6c(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f603008) | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f602fa4(void) | |
{ | |
return; | |
} | |
void FUN_8f60300c(void) | |
{ | |
int *piVar1; | |
uint uVar2; | |
undefined4 uVar3; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
uVar4 = FUN_8f611778(); | |
uVar2 = (uint)uVar4; | |
if (uVar2 == 0x130) { | |
LAB_8f603074: | |
uVar3 = 1; | |
} | |
else { | |
if (uVar2 < 0x131) { | |
if (uVar2 == 0x125) goto LAB_8f603074; | |
} | |
else if ((uVar2 == 0x152) || (uVar2 == 0x15f)) goto LAB_8f603074; | |
uVar3 = 0; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar3,(int)((ulonglong)uVar4 >> 0x20),piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6030d4) | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f603080(void) | |
{ | |
return; | |
} | |
void FUN_8f6030d8(uint *param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
uint uVar2; | |
int iVar3; | |
int *in_lr; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
uVar4 = CONCAT44(param_2,param_1); | |
iVar3 = 500; | |
do { | |
uVar2 = *param_1; | |
if ((uVar2 & 1) == 0) goto LAB_8f60311c; | |
uVar4 = FUN_8f6104fc(1); | |
iVar3 = iVar3 + -1; | |
} while (iVar3 != 0); | |
dprintf((byte *)s_failed_to_update_rcg_config_for_r_8f65a580,(int *)param_1,param_3,uVar2); | |
uVar4 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0x1e2); | |
LAB_8f60311c: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),piVar1); | |
} | |
void FUN_8f603174(int *param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
int iVar2; | |
int iVar3; | |
int *in_lr; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
uVar4 = CONCAT44(param_2,param_1); | |
iVar3 = 500; | |
do { | |
iVar2 = *param_1; | |
if (-1 < iVar2) goto LAB_8f6031b8; | |
uVar4 = FUN_8f6104fc(1); | |
iVar3 = iVar3 + -1; | |
} while (iVar3 != 0); | |
dprintf((byte *)s_failed_to_enable_branch_for_reg___8f65a5cc,param_1,param_3,iVar2); | |
uVar4 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0x1f0); | |
LAB_8f6031b8: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),piVar1); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f603210(void) | |
{ | |
int *piVar1; | |
int *piVar2; | |
int *piVar3; | |
undefined4 uVar4; | |
undefined4 uVar5; | |
int *in_lr; | |
undefined8 uVar6; | |
piVar1 = DAT_8f69d118; | |
uVar4 = 1; | |
piVar3 = DAT_8f69d118; | |
piVar2 = (int *)FUN_8f610ca8((int *)s_usb30_iface_clk_8f65a5f4,(int *)0x0,1); | |
if (piVar2 != (int *)0x0) { | |
dprintf((byte *)s_failed_to_set_usb30_iface_clk__r_8f65a604,piVar2,uVar4,piVar3); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0x3f); | |
} | |
uVar5 = 0x183f000; | |
uVar4 = 1; | |
_DAT_0183f078 = _DAT_0183f078 & 0xfffffffe; | |
piVar3 = (int *)FUN_8f610ca8((int *)(s_gcc_usb30_master_clk_8f65acd8 + 4),(int *)0x7f27450,1); | |
if (piVar3 != (int *)0x0) { | |
dprintf((byte *)s_failed_to_set_usb30_master_clk__r_8f65a630,piVar3,uVar4,uVar5); | |
uVar5 = 0x48; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0x48); | |
} | |
uVar4 = 1; | |
piVar3 = (int *)FUN_8f610ca8((int *)s_usb30_pipe_clk_8f65a65c,(int *)0x0,1); | |
if (piVar3 != (int *)0x0) { | |
dprintf((byte *)s_failed_to_set_usb30_pipe_clk__re_8f65a66c,piVar3,uVar4,uVar5); | |
uVar5 = 0x4e; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0x4e); | |
} | |
uVar4 = 1; | |
piVar3 = (int *)FUN_8f610ca8((int *)(s_gcc_usb30_aux_clk_8f65acb0 + 4),(int *)0x124f800,1); | |
if (piVar3 != (int *)0x0) { | |
dprintf((byte *)s_failed_to_set_usb30_aux_clk__ret_8f65a694,piVar3,uVar4,uVar5); | |
uVar5 = 0x55; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0x55); | |
} | |
uVar4 = 1; | |
piVar3 = (int *)FUN_8f610ca8((int *)s_usb30_mock_utmi_clk_8f65a6bc,(int *)0x3938700,1); | |
if (piVar3 != (int *)0x0) { | |
dprintf((byte *)s_failed_to_set_usb30_mock_utmi_cl_8f65a6d0,piVar3,uVar4,uVar5); | |
uVar5 = 0x5c; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0x5c); | |
} | |
uVar4 = 1; | |
piVar3 = (int *)FUN_8f610ca8((int *)s_usb30_sleep_clk_8f65a6fc,(int *)0x0,1); | |
if (piVar3 != (int *)0x0) { | |
dprintf((byte *)s_failed_to_set_usb30_sleep_clk_re_8f65a70c,piVar3,uVar4,uVar5); | |
uVar5 = 99; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,99); | |
} | |
uVar4 = 1; | |
piVar3 = (int *)FUN_8f610ca8((int *)(s_gcc_usb_phy_cfg_ahb_clk_8f65ad08 + 4),(int *)0x0,1); | |
uVar6 = CONCAT44(piVar3,piVar3); | |
if (piVar3 != (int *)0x0) { | |
dprintf((byte *)s_failed_to_set_usb_phy_cfg_ahb_cl_8f65a734,piVar3,uVar4,uVar5); | |
uVar6 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0x6a); | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar6,(int)((ulonglong)uVar6 >> 0x20),piVar1); | |
} | |
void FUN_8f6034b0(int *param_1) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
int *in_lr; | |
undefined8 uVar3; | |
int aiStack_54 [16]; | |
int *local_14; | |
local_14 = DAT_8f69d118; | |
FUN_8f636618((byte *)aiStack_54,0x40,(byte *)s_sdc_u_iface_clk_8f65a760,param_1); | |
uVar2 = 1; | |
piVar1 = (int *)FUN_8f610ca8(aiStack_54,(int *)0x0,1); | |
uVar3 = CONCAT44(piVar1,piVar1); | |
if (piVar1 != (int *)0x0) { | |
dprintf((byte *)s_failed_to_set_sdc1_iface_clk_ret_8f65a770,piVar1,uVar2,param_1); | |
uVar3 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0x7a); | |
} | |
if (local_14 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,(int)((ulonglong)uVar3 >> 0x20),local_14); | |
} | |
void FUN_8f60354c(int *param_1,int *param_2) | |
{ | |
int iVar1; | |
char *pcVar2; | |
undefined4 uVar3; | |
int *in_lr; | |
undefined8 uVar4; | |
int aiStack_54 [16]; | |
int *local_14; | |
pcVar2 = s_sdc_u_core_clk_8f65a798; | |
local_14 = DAT_8f69d118; | |
FUN_8f636618((byte *)aiStack_54,0x40,(byte *)s_sdc_u_core_clk_8f65a798,param_1); | |
uVar3 = 400000; | |
if (param_2 == (int *)0x61a80) { | |
LAB_8f60366c: | |
uVar4 = FUN_8f610ca8(aiStack_54,param_2,1); | |
LAB_8f60367c: | |
iVar1 = (int)uVar4; | |
if (iVar1 == 0) goto LAB_8f603654; | |
} | |
else { | |
uVar3 = 0x2ee0000; | |
if (param_2 == (int *)0x2ee0000) { | |
uVar4 = FUN_8f610ca8(aiStack_54,(int *)0x2faf080,1); | |
goto LAB_8f60367c; | |
} | |
uVar3 = 0xa988e10; | |
if (((param_2 == (int *)0xa988e10) || (uVar3 = 192000000, param_2 == (int *)0xb71b000)) || | |
(uVar3 = 200000000, param_2 == (int *)0xbebc200)) goto LAB_8f60366c; | |
uVar3 = 400000000; | |
if (param_2 == (int *)0x17d78400) { | |
uVar4 = FUN_8f610ca8(aiStack_54,(int *)0x16e36000,1); | |
goto LAB_8f60367c; | |
} | |
dprintf((byte *)s_sdc_frequency___u__is_not_suppor_8f65a7a8,param_2,pcVar2,400000000); | |
uVar3 = 0xa1; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0xa1); | |
iVar1 = 1; | |
} | |
dprintf((byte *)s_failed_to_set__s_ret____d_8f65a7d0,aiStack_54,iVar1,uVar3); | |
uVar4 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0xa7); | |
LAB_8f603654: | |
if (local_14 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),local_14); | |
} | |
return; | |
} | |
void FUN_8f6036c4(void) | |
{ | |
int *piVar1; | |
int *piVar2; | |
undefined4 uVar3; | |
int *piVar4; | |
int *in_lr; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
uVar3 = 1; | |
piVar4 = DAT_8f69d118; | |
piVar2 = (int *)FUN_8f610ca8((int *)s_usb30_pipe_clk_8f65a65c,(int *)0x0,1); | |
uVar5 = CONCAT44(piVar2,piVar2); | |
if (piVar2 != (int *)0x0) { | |
dprintf((byte *)s_failed_to_set_usb30_pipe_clk__re_8f65a66c,piVar2,uVar3,piVar4); | |
uVar5 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0xb3); | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),piVar1); | |
} | |
void FUN_8f60374c(int *param_1) | |
{ | |
int iVar1; | |
int *in_lr; | |
undefined8 uVar2; | |
int aiStack_94 [16]; | |
int aiStack_54 [16]; | |
int *local_14; | |
local_14 = DAT_8f69d118; | |
FUN_8f636618((byte *)aiStack_94,0x40,(byte *)s_uart_u_iface_clk_8f65a7ec,param_1); | |
FUN_8f636618((byte *)aiStack_54,0x40,(byte *)s_uart_u_core_clk_8f65a800,param_1); | |
iVar1 = FUN_8f610ca8(aiStack_94,(int *)0x0,1); | |
if (iVar1 != 0) { | |
dprintf((byte *)s_failed_to_set__s_ret____d_8f65a7d0,aiStack_94,iVar1,param_1); | |
param_1 = (int *)0xc5; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0xc5); | |
} | |
uVar2 = FUN_8f610ca8(aiStack_54,(int *)0x708000,1); | |
if ((int)uVar2 != 0) { | |
dprintf((byte *)s_failed_to_set__s_ret____d_8f65a7d0,aiStack_54,(int)uVar2,param_1); | |
uVar2 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0xcc); | |
} | |
if (local_14 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),local_14); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6038e8) | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f603860(int param_1) | |
{ | |
if (param_1 == 0) { | |
_DAT_0184d078 = _DAT_0184d078 | 1; | |
do { | |
} while ((int)_DAT_0184d078 < 0); | |
} | |
else if (-1 < (int)_DAT_0184d078) { | |
_DAT_0184d078 = _DAT_0184d078 & 0xfff0fffe | 0x80000; | |
do { | |
} while (-1 < (int)_DAT_0184d078); | |
} | |
return; | |
} | |
void FUN_8f6038ec(void) | |
{ | |
int *piVar1; | |
int *piVar2; | |
undefined4 uVar3; | |
int *piVar4; | |
int *in_lr; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
uVar3 = 1; | |
piVar4 = DAT_8f69d118; | |
piVar2 = (int *)FUN_8f610ca8((int *)s_mdp_ahb_clk_8f65a810,(int *)0x0,1); | |
if (piVar2 != (int *)0x0) { | |
dprintf((byte *)s_failed_to_set_mdp_ahb_clk_ret_____8f65a81c,piVar2,uVar3,piVar4); | |
piVar4 = (int *)0xee; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0xee); | |
} | |
uVar3 = 1; | |
piVar2 = (int *)FUN_8f610ca8((int *)s_mdss_mdp_clk_src_8f65a840,(int *)0x1312d000,1); | |
if (piVar2 != (int *)0x0) { | |
dprintf((byte *)s_failed_to_set_mdp_clk_src_ret_____8f65a854,piVar2,uVar3,piVar4); | |
piVar4 = (int *)0xf7; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0xf7); | |
} | |
uVar3 = 1; | |
piVar2 = (int *)FUN_8f610ca8((int *)s_mdss_vsync_clk_8f65a878,(int *)0x0,1); | |
if (piVar2 != (int *)0x0) { | |
dprintf((byte *)s_failed_to_set_mdss_vsync_clk_ret_8f65a888,piVar2,uVar3,piVar4); | |
piVar4 = (int *)0xfe; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0xfe); | |
} | |
uVar3 = 1; | |
piVar2 = (int *)FUN_8f610ca8((int *)s_mdss_mdp_clk_8f65a8b0,(int *)0x0,1); | |
uVar5 = CONCAT44(piVar2,piVar2); | |
if (piVar2 != (int *)0x0) { | |
dprintf((byte *)s_failed_to_set_mdp_clk_ret____d_8f65a8c0,piVar2,uVar3,piVar4); | |
uVar5 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0x105); | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),piVar1); | |
} | |
void FUN_8f603a74(undefined4 param_1,int *param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
int *extraout_r1; | |
int *extraout_r1_00; | |
int *extraout_r1_01; | |
undefined4 uVar2; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
uVar3 = FUN_8f610bf4((int *)s_mdss_vsync_clk_8f65a878,param_2,param_3); | |
FUN_8f610a0c((int)uVar3,(int)((ulonglong)uVar3 >> 0x20)); | |
uVar3 = FUN_8f610bf4((int *)s_mdss_mdp_clk_8f65a8b0,extraout_r1,param_3); | |
FUN_8f610a0c((int)uVar3,(int)((ulonglong)uVar3 >> 0x20)); | |
uVar3 = FUN_8f610bf4((int *)s_mdss_mdp_clk_src_8f65a840,extraout_r1_00,param_3); | |
FUN_8f610a0c((int)uVar3,(int)((ulonglong)uVar3 >> 0x20)); | |
uVar3 = FUN_8f610bf4((int *)s_mdp_ahb_clk_8f65a810,extraout_r1_01,param_3); | |
uVar2 = (undefined4)((ulonglong)uVar3 >> 0x20); | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f610a0c((int)uVar3,uVar2); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,uVar2,piVar1); | |
} | |
void FUN_8f603ae8(undefined4 param_1,int *param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
uVar3 = FUN_8f610bf4((int *)s_mdss_axi_clk_8f65a8e0,param_2,param_3); | |
uVar2 = (undefined4)((ulonglong)uVar3 >> 0x20); | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f610a0c((int)uVar3,uVar2); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,uVar2,piVar1); | |
} | |
void FUN_8f603b2c(void) | |
{ | |
int *piVar1; | |
int *piVar2; | |
undefined4 uVar3; | |
int *piVar4; | |
int *in_lr; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
uVar3 = 1; | |
piVar4 = DAT_8f69d118; | |
piVar2 = (int *)FUN_8f610ca8((int *)s_mdss_axi_clk_8f65a8e0,(int *)0x0,1); | |
uVar5 = CONCAT44(piVar2,piVar2); | |
if (piVar2 != (int *)0x0) { | |
dprintf((byte *)s_failed_to_set_mdss_axi_clk_ret___8f65a8f0,piVar2,uVar3,piVar4); | |
uVar5 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0x123); | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),piVar1); | |
} | |
void FUN_8f603bb4(int *param_1) | |
{ | |
int iVar1; | |
int *piVar2; | |
int *in_lr; | |
undefined8 uVar3; | |
int aiStack_54 [16]; | |
int *local_14; | |
local_14 = DAT_8f69d118; | |
piVar2 = param_1; | |
FUN_8f636618((byte *)aiStack_54,0x40,(byte *)s_ce_u_src_clk_8f65a918,param_1); | |
iVar1 = FUN_8f610ca8(aiStack_54,(int *)0x9896800,1); | |
if (iVar1 != 0) { | |
dprintf((byte *)s_failed_to_set_ce_u_src_clk_ret___8f65a928,param_1,iVar1,piVar2); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0x141); | |
} | |
piVar2 = param_1; | |
FUN_8f636618((byte *)aiStack_54,0x40,(byte *)s_ce_u_core_clk_8f65a950,param_1); | |
iVar1 = FUN_8f610ca8(aiStack_54,(int *)0x0,1); | |
if (iVar1 != 0) { | |
dprintf((byte *)s_failed_to_set_ce_u_core_clk_ret___8f65a960,param_1,iVar1,piVar2); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0x149); | |
} | |
piVar2 = param_1; | |
FUN_8f636618((byte *)aiStack_54,0x40,(byte *)s_ce_u_ahb_clk_8f65a988,param_1); | |
iVar1 = FUN_8f610ca8(aiStack_54,(int *)0x0,1); | |
if (iVar1 != 0) { | |
dprintf((byte *)s_failed_to_set_ce_u_ahb_clk_ret___8f65a998,param_1,iVar1,piVar2); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0x151); | |
} | |
piVar2 = param_1; | |
FUN_8f636618((byte *)aiStack_54,0x40,(byte *)s_ce_u_axi_clk_8f65a9c0,param_1); | |
iVar1 = FUN_8f610ca8(aiStack_54,(int *)0x0,1); | |
if (iVar1 != 0) { | |
dprintf((byte *)s_failed_to_set_ce_u_axi_clk_ret___8f65a9d0,param_1,iVar1,piVar2); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0x159); | |
} | |
uVar3 = FUN_8f6104fc(1); | |
if (local_14 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,(int)((ulonglong)uVar3 >> 0x20),local_14); | |
} | |
void FUN_8f603da8(int *param_1) | |
{ | |
int iVar1; | |
int iVar2; | |
int iVar3; | |
int *extraout_r1; | |
int *extraout_r1_00; | |
int *extraout_r1_01; | |
int *extraout_r1_02; | |
undefined4 extraout_r1_03; | |
undefined4 extraout_r1_04; | |
undefined4 extraout_r1_05; | |
char *pcVar4; | |
undefined8 uVar5; | |
int aiStack_5c [16]; | |
int *local_1c; | |
pcVar4 = s_ce_u_src_clk_8f65a918; | |
local_1c = DAT_8f69d118; | |
FUN_8f636618((byte *)aiStack_5c,0x40,(byte *)s_ce_u_src_clk_8f65a918,param_1); | |
iVar1 = FUN_8f610bf4(aiStack_5c,extraout_r1,pcVar4); | |
pcVar4 = s_ce_u_ahb_clk_8f65a988; | |
FUN_8f636618((byte *)aiStack_5c,0x40,(byte *)s_ce_u_ahb_clk_8f65a988,param_1); | |
iVar2 = FUN_8f610bf4(aiStack_5c,extraout_r1_00,pcVar4); | |
pcVar4 = s_ce_u_axi_clk_8f65a9c0; | |
FUN_8f636618((byte *)aiStack_5c,0x40,(byte *)s_ce_u_axi_clk_8f65a9c0,param_1); | |
iVar3 = FUN_8f610bf4(aiStack_5c,extraout_r1_01,pcVar4); | |
pcVar4 = s_ce_u_core_clk_8f65a950; | |
FUN_8f636618((byte *)aiStack_5c,0x40,(byte *)s_ce_u_core_clk_8f65a950,param_1); | |
uVar5 = FUN_8f610bf4(aiStack_5c,extraout_r1_02,pcVar4); | |
FUN_8f610a0c(iVar2,(int)((ulonglong)uVar5 >> 0x20)); | |
FUN_8f610a0c(iVar3,extraout_r1_03); | |
FUN_8f610a0c((int)uVar5,extraout_r1_04); | |
FUN_8f610a0c(iVar1,extraout_r1_05); | |
uVar5 = FUN_8f6104fc(1); | |
if (local_1c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),local_1c); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f603e98(int *param_1) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
FUN_8f603bb4(param_1); | |
FUN_8f603da8(param_1); | |
_DAT_01816000 = 1; | |
FUN_8f6104fc(2); | |
_DAT_01816000 = 0; | |
uVar2 = FUN_8f6104fc(2); | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f603bb4(param_1); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f604114(undefined4 param_1,uint param_2,char *param_3,undefined4 param_4,uint param_5) | |
{ | |
int *piVar1; | |
int *piVar2; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
undefined4 extraout_r1_03; | |
undefined4 extraout_r1_04; | |
undefined4 uVar3; | |
char *pcVar4; | |
undefined4 uVar5; | |
int *in_lr; | |
undefined8 uVar6; | |
piVar1 = DAT_8f69d118; | |
uVar6 = CONCAT44(DAT_8f69d118,param_1); | |
pcVar4 = param_3; | |
uVar5 = param_4; | |
if ((param_2 & 1) != 0) { | |
_DAT_0184d044 = 1; | |
_DAT_0184d048 = param_1; | |
FUN_8f6030d8((uint *)&DAT_0184d044,DAT_8f69d118,param_3); | |
_DAT_0184d094 = 1; | |
FUN_8f603174((int *)&DAT_0184d094,extraout_r1_02,pcVar4); | |
_DAT_0184d000 = 1; | |
_DAT_0184d004 = param_1; | |
_DAT_0184d008 = param_3; | |
_DAT_0184d00c = param_4; | |
_DAT_0184d010 = param_5 & 0xff; | |
FUN_8f6030d8((uint *)&DAT_0184d000,extraout_r1_03,pcVar4); | |
_DAT_0184d084 = 1; | |
FUN_8f603174((int *)&DAT_0184d084,extraout_r1_04,pcVar4); | |
pcVar4 = (char *)0x1; | |
piVar2 = (int *)FUN_8f610ca8((int *)s_mdss_esc0_clk_8f65ab24,(int *)0x0,1); | |
uVar6 = CONCAT44(piVar2,piVar2); | |
if (piVar2 != (int *)0x0) { | |
dprintf((byte *)s_failed_to_set_esc0_clk_ret____d_8f65ab34,piVar2,pcVar4,uVar5); | |
pcVar4 = s_platform_msm8953_acpuclock_c_8f65a5ac; | |
uVar5 = 0x20e; | |
uVar6 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0x20e); | |
} | |
} | |
if ((param_2 & 2) != 0) { | |
_DAT_0184d0b0 = 1; | |
_DAT_0184d0b4 = param_1; | |
FUN_8f6030d8((uint *)&DAT_0184d0b0,(int)((ulonglong)uVar6 >> 0x20),pcVar4); | |
_DAT_0184d0a0 = 1; | |
FUN_8f603174((int *)&DAT_0184d0a0,extraout_r1,pcVar4); | |
_DAT_0184d0b8 = 1; | |
_DAT_0184d0bc = param_1; | |
_DAT_0184d0c0 = param_3; | |
_DAT_0184d0c4 = param_4; | |
_DAT_0184d0c8 = param_5 & 0xff; | |
FUN_8f6030d8((uint *)&DAT_0184d0b8,extraout_r1_00,pcVar4); | |
_DAT_0184d0a4 = 1; | |
FUN_8f603174((int *)&DAT_0184d0a4,extraout_r1_01,pcVar4); | |
uVar3 = 1; | |
piVar2 = (int *)FUN_8f610ca8((int *)s_mdss_esc1_clk_8f65ab58,(int *)0x0,1); | |
uVar6 = CONCAT44(piVar2,piVar2); | |
if (piVar2 != (int *)0x0) { | |
uVar6 = dprintf((byte *)s_failed_to_set_esc1_clk_ret____d_8f65ab68,piVar2,uVar3,uVar5); | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0x227); | |
return; | |
} | |
goto LAB_8f6042f0; | |
} | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
LAB_8f6042f0: | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar6,(int)((ulonglong)uVar6 >> 0x20),piVar1); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f6042f4(uint param_1,int *param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = CONCAT44(param_2,param_1); | |
if ((param_1 & 1) != 0) { | |
uVar2 = FUN_8f610bf4((int *)s_mdss_esc0_clk_8f65ab24,param_2,param_3); | |
uVar2 = FUN_8f610a0c((int)uVar2,(int)((ulonglong)uVar2 >> 0x20)); | |
param_3 = 0; | |
_DAT_0184d094 = 0; | |
_DAT_0184d084 = 0; | |
} | |
if ((param_1 & 2) != 0) { | |
uVar2 = FUN_8f610bf4((int *)s_mdss_esc1_clk_8f65ab58,(int *)((ulonglong)uVar2 >> 0x20),param_3); | |
uVar2 = FUN_8f610a0c((int)uVar2,(int)((ulonglong)uVar2 >> 0x20)); | |
_DAT_0184d0a0 = 0; | |
_DAT_0184d0a4 = 0; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6043c8) | |
// WARNING: Removing unreachable block (ram,0x8f610bf0) | |
void FUN_8f604388(undefined4 param_1,undefined4 param_2) | |
{ | |
DAT_8f688264 = &PTR_s_sdc1_iface_clk_8f67d7f8; | |
DAT_8f688268 = 0x1b; | |
return; | |
} | |
void FUN_8f6043cc(int param_1,int param_2,undefined4 param_3,uint param_4,byte param_5,int param_6) | |
{ | |
uint *puVar1; | |
int iVar2; | |
iVar2 = DAT_8f69d118; | |
puVar1 = (uint *)((param_1 + 0x1000) * 0x1000); | |
*puVar1 = param_4 | (uint)param_5 << 6 | param_6 << 9 | param_2 << 2; | |
if (iVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(puVar1,iVar2,&DAT_8f69d118); | |
} | |
void FUN_8f604420(int param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
piVar1 = DAT_8f69d118; | |
*(undefined4 *)(param_1 * 0x1000 + 0x1000004) = param_2; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1 * 0x1000 + 0x1000000,param_2,piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6044a0) | |
void FUN_8f604460(int param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6044f0) | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f6044a4(void) | |
{ | |
_DAT_01005000 = 0x2c8; | |
_DAT_01004000 = 0x2c8; | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f60459c) | |
void FUN_8f604528(byte param_1) | |
{ | |
int iVar1; | |
uint uVar2; | |
undefined4 uVar3; | |
uint extraout_r1; | |
undefined4 local_14; | |
int *piVar4; | |
piVar4 = DAT_8f69d118; | |
iVar1 = DAT_8f67ddc0; | |
uVar2 = (uint)param_1; | |
DAT_8f67ddc0 = DAT_8f67ddc0 + 1; | |
DAT_8f67ddbc = DAT_8f67ddbc + 1; | |
if (DAT_8f67ddb8 <= DAT_8f67ddc0) { | |
DAT_8f67ddc0 = 0; | |
} | |
(&DAT_8f67ddc4)[iVar1] = param_1; | |
local_14 = (uint)piVar4 & 0xffffff | (uint)param_1 << 0x18; | |
piVar4 = DAT_8f69d118; | |
if (DAT_8f68826c == 0) { | |
uVar3 = 0xffffffff; | |
} | |
else { | |
FUN_8f611378(DAT_8f688274,(byte *)((int)&local_14 + 3),1); | |
uVar3 = 0; | |
uVar2 = extraout_r1; | |
} | |
if (piVar4 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar3,uVar2,piVar4); | |
} | |
void FUN_8f6045dc(int param_1,uint param_2,uint param_3) | |
{ | |
int *piVar1; | |
uint uVar2; | |
int iVar3; | |
undefined4 *puVar4; | |
undefined4 *puVar5; | |
undefined8 uVar6; | |
piVar1 = DAT_8f69d118; | |
uVar6 = FUN_8f602fa4(); | |
DAT_8f6844f0 = (int)uVar6; | |
if (((((param_3 & 3) == 0) && (uVar2 = param_2 & 3, uVar2 == 0)) && | |
((param_1 - 7U & 0xffff) < 0x19c)) && | |
((iVar3 = DAT_8f6844f0 + (param_1 + 0xd) * 0x10, | |
*(int *)(DAT_8f6844f0 + (param_1 + 0xd) * 0x10) != 0 && | |
((param_3 + 7 & 0xfffffff8) <= *(uint *)(iVar3 + 8))))) { | |
puVar4 = (undefined4 *)(DAT_8f6844f0 + *(int *)(iVar3 + 4)); | |
if (0 < (int)param_3) { | |
iVar3 = param_2 - (int)puVar4; | |
puVar5 = (undefined4 *)((param_3 - 1 & 0xfffffffc) + 4 + (int)puVar4); | |
do { | |
*(undefined4 *)(iVar3 + (int)puVar4) = *puVar4; | |
puVar4 = puVar4 + 1; | |
} while (puVar4 != puVar5); | |
} | |
} | |
else { | |
uVar2 = 1; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,(int)((ulonglong)uVar6 >> 0x20),piVar1); | |
} | |
return; | |
} | |
void FUN_8f6046bc(int param_1,undefined4 *param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
int iVar3; | |
int iVar4; | |
int iVar5; | |
undefined8 uVar6; | |
piVar1 = DAT_8f69d118; | |
uVar6 = FUN_8f602fa4(); | |
iVar2 = (int)uVar6; | |
if ((param_1 - 7U & 0xffff) < 0x19c) { | |
iVar3 = *(int *)(iVar2 + (param_1 + 0xd) * 0x10); | |
iVar5 = iVar2 + (param_1 + 0xd) * 0x10; | |
if (iVar3 != 0) { | |
DAT_8f6844f0 = iVar2; | |
*param_2 = *(undefined4 *)(iVar5 + 8); | |
iVar4 = *(int *)(iVar5 + 0xc); | |
uVar6 = CONCAT44(iVar4,DAT_8f6844f0); | |
if (iVar4 == 0) { | |
iVar3 = iVar2 + *(int *)(iVar5 + 4); | |
} | |
else { | |
iVar3 = *(int *)(iVar5 + 4) + iVar4; | |
uVar6 = CONCAT44(iVar4,DAT_8f6844f0); | |
} | |
} | |
} | |
else { | |
iVar3 = 0; | |
} | |
DAT_8f6844f0 = (int)uVar6; | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar3,(int)((ulonglong)uVar6 >> 0x20),piVar1); | |
} | |
return; | |
} | |
void FUN_8f604754(int param_1,uint param_2,uint param_3,int param_4) | |
{ | |
int *piVar1; | |
uint uVar2; | |
undefined4 *puVar3; | |
int iVar4; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
uVar5 = FUN_8f602fa4(); | |
DAT_8f6844f0 = (int)uVar5; | |
if (((((param_3 & 3) == 0) && (uVar2 = param_2 & 3, uVar2 == 0)) && | |
((param_1 - 7U & 0xffff) < 0x19c)) && (*(int *)(DAT_8f6844f0 + (param_1 + 0xd) * 0x10) != 0)) | |
{ | |
puVar3 = (undefined4 *) | |
(param_4 + *(int *)(DAT_8f6844f0 + (param_1 + 0xd) * 0x10 + 4) + DAT_8f6844f0); | |
if (param_3 != 0) { | |
iVar4 = param_2 - (int)puVar3; | |
do { | |
param_3 = param_3 - 4; | |
*(undefined4 *)(iVar4 + (int)puVar3) = *puVar3; | |
puVar3 = puVar3 + 1; | |
} while (param_3 != 0); | |
} | |
} | |
else { | |
uVar2 = 1; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,(int)((ulonglong)uVar5 >> 0x20),piVar1); | |
} | |
return; | |
} | |
void FUN_8f604814(byte *param_1,int *param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
int iVar2; | |
int *extraout_r1; | |
int *piVar3; | |
int *piVar4; | |
int *piVar5; | |
undefined8 uVar6; | |
piVar1 = DAT_8f69d118; | |
if (param_1 == (byte *)0x0) { | |
dprintf((byte *)s_ERROR__buf_is_NULL_8f65ae84,param_2,param_3,DAT_8f69d118); | |
piVar3 = extraout_r1; | |
} | |
else { | |
iVar2 = FUN_8f611838(); | |
piVar5 = (int *)(&PTR_s_Unknown_8f67edc4)[iVar2]; | |
uVar6 = FUN_8f636de0((byte *)piVar5); | |
piVar3 = (int *)((ulonglong)uVar6 >> 0x20); | |
iVar2 = (int)uVar6; | |
if ((int *)(iVar2 + 1) <= param_2) { | |
piVar3 = piVar1; | |
piVar4 = DAT_8f69d118; | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f636618(param_1,(int)(int *)(iVar2 + 1),(byte *)(s_SERIAL_NUMBER____s_8f65e864 + 0x10), | |
piVar5); | |
return; | |
} | |
goto LAB_8f6048b8; | |
} | |
} | |
iVar2 = 1; | |
piVar4 = piVar1; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
LAB_8f6048b8: | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar2,piVar3,piVar4); | |
} | |
void FUN_8f6048bc(undefined4 *param_1) | |
{ | |
int *piVar1; | |
int *piVar2; | |
int iVar3; | |
int iVar4; | |
int *piVar5; | |
undefined4 *puVar6; | |
int iVar7; | |
int *piVar8; | |
undefined4 uVar9; | |
int *in_lr; | |
undefined8 uVar10; | |
piVar1 = DAT_8f69d118; | |
piVar2 = (int *)param_1[2]; | |
DAT_8f6844f4 = *param_1; | |
puVar6 = &DAT_8f6844f4; | |
DAT_8f6844f8 = param_1[1]; | |
DAT_8f684500 = param_1[3]; | |
DAT_8f684504 = param_1[4]; | |
uVar10 = CONCAT44(piVar2,DAT_8f684504); | |
DAT_8f6844fc = piVar2; | |
if (piVar2 == (int *)0x2) { | |
FUN_8f63685c(&DAT_8f6844f4,param_1,0x918); | |
return; | |
} | |
if (piVar2 == (int *)0x1) { | |
iVar7 = param_1[4]; | |
if (iVar7 != 0) { | |
iVar3 = 0; | |
do { | |
iVar4 = iVar3 + 1; | |
uVar9 = param_1[iVar3 * 0x10 + 0xb]; | |
(&DAT_8f68451c)[iVar3 * 0x12] = param_1[iVar3 * 0x10 + 10]; | |
(&DAT_8f684520)[iVar3 * 0x12] = uVar9; | |
uVar9 = param_1[iVar3 * 0x10 + 0xd]; | |
(&DAT_8f684524)[iVar3 * 0x12] = param_1[iVar3 * 0x10 + 0xc]; | |
(&DAT_8f684528)[iVar3 * 0x12] = uVar9; | |
puVar6[0xe] = param_1[iVar3 * 0x10 + 0xe]; | |
puVar6[0xf] = param_1[iVar3 * 0x10 + 0xf]; | |
puVar6[0x10] = param_1[iVar3 * 0x10 + 0x10]; | |
uVar9 = param_1[iVar3 * 0x10 + 0x11]; | |
puVar6[0x11] = uVar9; | |
puVar6 = puVar6 + 0x12; | |
uVar10 = CONCAT44(puVar6,uVar9); | |
*puVar6 = param_1[iVar3 * 0x10 + 0x12]; | |
iVar3 = iVar4; | |
} while (iVar4 != iVar7); | |
} | |
} | |
else if (piVar2 == (int *)0x0) { | |
piVar8 = (int *)param_1[4]; | |
uVar10 = CONCAT44(piVar2,DAT_8f684504); | |
if (piVar8 != (int *)0x0) { | |
do { | |
piVar5 = (int *)((int)piVar2 + 1); | |
uVar9 = param_1[(int)piVar2 * 0xe + 9]; | |
(&DAT_8f684520)[(int)piVar2 * 0x12] = 0; | |
(&DAT_8f68451c)[(int)piVar2 * 0x12] = uVar9; | |
uVar9 = param_1[(int)piVar2 * 0xe + 10]; | |
(&DAT_8f684528)[(int)piVar2 * 0x12] = 0; | |
(&DAT_8f684524)[(int)piVar2 * 0x12] = uVar9; | |
uVar9 = param_1[(int)piVar2 * 0xe + 0xb]; | |
puVar6[0xe] = uVar9; | |
puVar6[0xf] = param_1[(int)piVar2 * 0xe + 0xc]; | |
puVar6[0x10] = param_1[(int)piVar2 * 0xe + 0xd]; | |
puVar6[0x11] = param_1[(int)piVar2 * 0xe + 0xe]; | |
uVar10 = CONCAT44(param_1[(int)piVar5 * 0xe + 1],uVar9); | |
puVar6 = puVar6 + 0x12; | |
*puVar6 = param_1[(int)piVar5 * 0xe + 1]; | |
piVar2 = piVar5; | |
} while (piVar5 != piVar8); | |
} | |
} | |
else { | |
dprintf((byte *)s_ERROR__Unknown_smem_ram_ptable_v_8f65aefc,piVar2,piVar2,DAT_8f684500); | |
uVar10 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_smem_ptable__8f65af28,0xcf); | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar10,(int)((ulonglong)uVar10 >> 0x20),piVar1); | |
} | |
void FUN_8f604aa4(void) | |
{ | |
uint uVar1; | |
undefined4 extraout_r1; | |
undefined4 uVar2; | |
uint uVar3; | |
undefined4 uVar4; | |
int *in_lr; | |
undefined8 uVar5; | |
longlong lVar6; | |
int *local_18; | |
int *local_14; | |
uVar2 = 4; | |
uVar4 = 8; | |
local_14 = DAT_8f69d118; | |
uVar5 = FUN_8f604754(0x192,(uint)&local_18,4,8); | |
uVar1 = (uint)((ulonglong)uVar5 >> 0x20); | |
uVar3 = (uint)uVar5; | |
if (uVar3 == 0) { | |
if (local_18 == (int *)0x2) { | |
uVar3 = 0x918; | |
} | |
else if (local_18 == (int *)0x1) { | |
uVar3 = 0x818; | |
} | |
else if (local_18 == (int *)0x0) { | |
uVar3 = 0x718; | |
} | |
else { | |
dprintf((byte *)s_ERROR__Wrong_smem_ram_ptable_ver_8f65afd8,local_18,uVar2,uVar4); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_smem_ptable__8f65af28,0x106); | |
} | |
lVar6 = FUN_8f6045dc(0x192,(uint)&DAT_8f684e0c,uVar3); | |
uVar1 = (uint)((ulonglong)lVar6 >> 0x20); | |
if (((int)lVar6 == 0) && (DAT_8f684e0c == -0x625a1f58)) { | |
if (DAT_8f684e10 == -0x50613b1e) { | |
FUN_8f6048bc(&DAT_8f684e0c); | |
lVar6 = CONCAT44(extraout_r1,1); | |
} | |
goto LAB_8f604b38; | |
} | |
} | |
lVar6 = (ulonglong)uVar1 << 0x20; | |
LAB_8f604b38: | |
if (local_14 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)lVar6,(int)((ulonglong)lVar6 >> 0x20),local_14); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f604c00) | |
void FUN_8f604bb4(undefined4 *param_1,int param_2) | |
{ | |
FUN_8f63685c(param_1,(undefined4 *)(&DAT_8f68450c + param_2 * 0x48),0x48); | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f604c40) | |
void FUN_8f604c04(void) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f604c80) | |
void FUN_8f604c44(void) | |
{ | |
return; | |
} | |
void FUN_8f604c84(undefined4 param_1,undefined4 param_2,char *param_3) | |
{ | |
int iVar1; | |
undefined4 *puVar2; | |
int iVar3; | |
int *in_lr; | |
undefined4 auStack_64 [4]; | |
int *local_54; | |
int local_40; | |
int local_38; | |
int local_1c; | |
local_1c = DAT_8f69d118; | |
iVar1 = FUN_8f604aa4(); | |
if (iVar1 == 0) { | |
param_3 = s_platform_msm_shared_smem_ptable__8f65af28; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_smem_ptable__8f65af28,0x132); | |
} | |
iVar1 = DAT_8f684504; | |
if (DAT_8f684504 != 0) { | |
puVar2 = (undefined4 *)&DAT_8f68450c; | |
iVar3 = 0; | |
do { | |
param_3 = (char *)0x48; | |
FUN_8f63685c(auStack_64,puVar2,0x48); | |
if ((local_38 == 1) && (local_40 == 0xe || local_40 == 5)) { | |
param_3 = (char *)local_54; | |
if (((uint)local_54 & 0xfffff) != 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_smem_ptable__8f65af28,0x140); | |
param_3 = (char *)local_54; | |
} | |
goto LAB_8f604d38; | |
} | |
iVar3 = iVar3 + 1; | |
puVar2 = puVar2 + 0x12; | |
} while (iVar3 != iVar1); | |
} | |
local_54 = (int *)0x0; | |
LAB_8f604d38: | |
if (local_1c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(local_54,local_1c,(int *)param_3); | |
} | |
return; | |
} | |
void FUN_8f604db0(void) | |
{ | |
int iVar1; | |
uint uVar2; | |
int iVar3; | |
int iVar4; | |
undefined4 *puVar5; | |
int *in_lr; | |
bool bVar6; | |
undefined4 auStack_6c [6]; | |
uint local_54; | |
int local_50; | |
int local_48; | |
int local_40; | |
int *local_24; | |
local_24 = DAT_8f69d118; | |
iVar1 = FUN_8f604aa4(); | |
if (iVar1 == 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_smem_ptable__8f65af28,0x150); | |
} | |
iVar1 = DAT_8f684504; | |
if (DAT_8f684504 == 0) { | |
uVar2 = 0; | |
iVar3 = 0; | |
} | |
else { | |
puVar5 = (undefined4 *)&DAT_8f68450c; | |
uVar2 = 0; | |
iVar3 = 0; | |
iVar4 = 0; | |
do { | |
while ((FUN_8f63685c(auStack_6c,puVar5,0x48), local_40 == 1 && (local_48 == 0xe))) { | |
iVar4 = iVar4 + 1; | |
puVar5 = puVar5 + 0x12; | |
bVar6 = CARRY4(uVar2,local_54); | |
uVar2 = uVar2 + local_54; | |
iVar3 = iVar3 + local_50 + (uint)bVar6; | |
if (iVar4 == iVar1) goto LAB_8f604e58; | |
} | |
iVar4 = iVar4 + 1; | |
puVar5 = puVar5 + 0x12; | |
} while (iVar4 != iVar1); | |
} | |
LAB_8f604e58: | |
if (local_24 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,iVar3,local_24); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f60520c) | |
// WARNING: Removing unreachable block (ram,0x8f605254) | |
// WARNING: Removing unreachable block (ram,0x8f60529c) | |
// WARNING: Removing unreachable block (ram,0x8f6052e4) | |
// WARNING: Removing unreachable block (ram,0x8f60532c) | |
// WARNING: Removing unreachable block (ram,0x8f605308) | |
// WARNING: Removing unreachable block (ram,0x8f6052c0) | |
// WARNING: Removing unreachable block (ram,0x8f605278) | |
// WARNING: Removing unreachable block (ram,0x8f605230) | |
// WARNING: Removing unreachable block (ram,0x8f6051e8) | |
// WARNING: Removing unreachable block (ram,0x8f605350) | |
void FUN_8f604eb4(int param_1,int param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
char *pcVar3; | |
int iVar4; | |
byte *pbVar5; | |
undefined8 uVar6; | |
piVar1 = DAT_8f69d118; | |
iVar2 = param_2 + -6; | |
iVar4 = param_1; | |
switch(iVar2) { | |
case 0: | |
case 6: | |
pbVar5 = (&PTR_s_modem_8f67ee28)[DAT_8f687280]; | |
uVar6 = FUN_8f636bdc((int)pbVar5,&DAT_8f65b024); | |
iVar2 = (int)((ulonglong)uVar6 >> 0x20); | |
iVar4 = (int)uVar6; | |
if (iVar4 != 0) { | |
uVar6 = FUN_8f636d18(param_1 + 0x48,pbVar5,0x48); | |
iVar2 = (int)((ulonglong)uVar6 >> 0x20); | |
iVar4 = (int)uVar6; | |
DAT_8f687280 = DAT_8f687280 + 1; | |
} | |
default: | |
switchD_8f604ed8_caseD_7: | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar4,iVar2,piVar1); | |
} | |
return; | |
case 0x3f: | |
iVar4 = 4; | |
pcVar3 = &DAT_8f65b03c; | |
break; | |
case 0x40: | |
iVar4 = 2; | |
pcVar3 = &DAT_8f65b048; | |
break; | |
case 0x41: | |
iVar4 = 3; | |
pcVar3 = &DAT_8f65b044; | |
break; | |
case 0x42: | |
iVar4 = 4; | |
pcVar3 = s_fastboot_8f66403c + 4; | |
break; | |
case 0x44: | |
iVar4 = 9; | |
pcVar3 = s_modem_st1_8f65b054; | |
break; | |
case 0x45: | |
iVar4 = 9; | |
pcVar3 = s_modem_st2_8f65b060; | |
break; | |
case 0x46: | |
iVar4 = 5; | |
pcVar3 = s_aboot_8f65b04c; | |
break; | |
case 0x47: | |
iVar4 = 4; | |
pcVar3 = &DAT_8f65b02c; | |
break; | |
case 0x48: | |
iVar4 = 4; | |
pcVar3 = &DAT_8f65b06c; | |
break; | |
case 0x4b: | |
iVar4 = 4; | |
pcVar3 = &DAT_8f65b034; | |
break; | |
case 0x57: | |
iVar4 = 3; | |
pcVar3 = &DAT_8f6598c4; | |
break; | |
case 0x5a: | |
iVar4 = 8; | |
pcVar3 = s_recovery_8f65b074; | |
break; | |
case 0x5d: | |
iVar4 = 4; | |
pcVar3 = &DAT_8f65b080; | |
break; | |
case 0x7d: | |
if (DAT_8f687274 != 5) { | |
uVar6 = FUN_8f636d18(param_1 + 0x48,(&PTR_s_system_8f67ee34)[DAT_8f687274],0x48); | |
iVar2 = (int)((ulonglong)uVar6 >> 0x20); | |
iVar4 = (int)uVar6; | |
DAT_8f687274 = DAT_8f687274 + 1; | |
} | |
goto switchD_8f604ed8_caseD_7; | |
} | |
FUN_8f63685c((undefined4 *)(param_1 + 0x48),(undefined4 *)pcVar3,iVar4); | |
return; | |
} | |
void FUN_8f605354(int *param_1,uint *param_2,uint *param_3,uint *param_4,uint *param_5) | |
{ | |
byte bVar1; | |
byte bVar2; | |
byte bVar3; | |
undefined uVar4; | |
undefined uVar5; | |
undefined uVar6; | |
byte bVar7; | |
byte bVar8; | |
byte bVar9; | |
byte bVar10; | |
byte bVar11; | |
byte bVar12; | |
int iVar13; | |
int *piVar14; | |
int iVar15; | |
byte *pbVar16; | |
int *piVar17; | |
int *piVar18; | |
uint extraout_r1; | |
uint extraout_r1_00; | |
uint extraout_r1_01; | |
uint extraout_r1_02; | |
uint extraout_r1_03; | |
uint extraout_r1_04; | |
uint extraout_r1_05; | |
uint extraout_r1_06; | |
uint extraout_r1_07; | |
uint extraout_r1_08; | |
uint uVar19; | |
uint uVar20; | |
byte *pbVar21; | |
uint uVar22; | |
undefined4 uVar23; | |
uint uVar24; | |
uint uVar25; | |
int *piVar26; | |
bool bVar27; | |
undefined8 uVar28; | |
ulonglong uVar29; | |
piVar14 = DAT_8f69d118; | |
uVar28 = FUN_8f60d5cc(param_1,DAT_8f69d118); | |
uVar24 = (uint)uVar28; | |
uVar28 = FUN_8f60d578(uVar24,(int)((ulonglong)uVar28 >> 0x20)); | |
uVar25 = (uint)((ulonglong)uVar28 >> 0x20); | |
if ((*param_1 != 0x20494645) || (param_1[1] != 0x54524150)) { | |
iVar15 = 1; | |
goto LAB_8f6053a8; | |
} | |
piVar17 = (int *)(uint)*(byte *)(param_1 + 3); | |
uVar19 = (uint)*(byte *)((int)param_1 + 0xf); | |
uVar22 = (uint)*(byte *)((int)param_1 + 0xe) << 0x10 | (uint)*(byte *)((int)param_1 + 0xd) << 8 | | |
(uint)piVar17 | uVar19 << 0x18; | |
*param_4 = uVar22; | |
if (uVar22 < 0x5c) { | |
dprintf((byte *)s_GPT_Header_size_is_too_small_8f65b088,piVar17,uVar19,uVar22); | |
iVar15 = 1; | |
uVar25 = extraout_r1_02; | |
goto LAB_8f6053a8; | |
} | |
if (uVar24 < uVar22) { | |
dprintf((byte *)s_GPT_Header_size_is_too_large_8f65b0a8,piVar17,uVar19,uVar22); | |
iVar15 = 1; | |
uVar25 = extraout_r1_01; | |
goto LAB_8f6053a8; | |
} | |
bVar1 = *(byte *)((int)param_1 + 0x12); | |
bVar2 = *(byte *)((int)param_1 + 0x11); | |
bVar3 = *(byte *)(param_1 + 4); | |
*(undefined *)(param_1 + 4) = 0; | |
uVar22 = (uint)*(byte *)((int)param_1 + 0x13); | |
*(undefined *)((int)param_1 + 0x11) = 0; | |
*(undefined *)((int)param_1 + 0x12) = 0; | |
*(undefined *)((int)param_1 + 0x13) = 0; | |
piVar26 = (int *)((uint)bVar1 << 0x10 | (uint)bVar2 << 8 | (uint)bVar3 | uVar22 << 0x18); | |
uVar19 = FUN_8f608394(0xffffffff,(byte *)param_1,*param_4); | |
piVar17 = (int *)~uVar19; | |
if (piVar17 != piVar26) { | |
dprintf((byte *)s_Header_crc_mismatch_crc_val____u_8f65b0c8,piVar17,piVar26,uVar22); | |
iVar15 = 1; | |
uVar25 = extraout_r1_00; | |
goto LAB_8f6053a8; | |
} | |
uVar19 = (uint)*(byte *)(param_1 + 10) | | |
(uint)*(byte *)((int)param_1 + 0x29) << 8 | (uint)*(byte *)((int)param_1 + 0x2a) << 0x10 | |
| (uint)*(byte *)((int)param_1 + 0x2b) << 0x18; | |
piVar26 = (int *)param_1[0xb]; | |
bVar1 = *(byte *)((int)param_1 + 0x1b); | |
uVar4 = *(undefined *)(param_1 + 7); | |
bVar2 = *(byte *)(param_1 + 6); | |
*(char *)(param_1 + 4) = (char)piVar17; | |
uVar5 = *(undefined *)((int)param_1 + 0x1e); | |
*(char *)((int)param_1 + 0x13) = (char)((uint)piVar17 >> 0x18); | |
bVar3 = *(byte *)((int)param_1 + 0x1f); | |
uVar6 = *(undefined *)((int)param_1 + 0x1d); | |
*(char *)((int)param_1 + 0x11) = (char)((uint)piVar17 >> 8); | |
*(char *)((int)param_1 + 0x12) = (char)((uint)piVar17 >> 0x10); | |
bVar7 = *(byte *)((int)param_1 + 0x19); | |
bVar8 = *(byte *)((int)param_1 + 0x1a); | |
*param_2 = uVar19; | |
param_2[1] = (uint)piVar26; | |
iVar15 = DAT_8f68727c; | |
*param_5 = (uint)*(byte *)((int)param_1 + 0x52) << 0x10 | | |
(uint)*(byte *)((int)param_1 + 0x51) << 8 | (uint)*(byte *)(param_1 + 0x14) | | |
(uint)*(byte *)((int)param_1 + 0x53) << 0x18; | |
uVar22 = (uint)*(byte *)((int)param_1 + 0x56) << 0x10 | (uint)*(byte *)((int)param_1 + 0x55) << 8 | |
| (uint)*(byte *)(param_1 + 0x15) | (uint)*(byte *)((int)param_1 + 0x57) << 0x18; | |
*param_3 = uVar22; | |
bVar9 = *(byte *)(param_1 + 0xc); | |
bVar10 = *(byte *)((int)param_1 + 0x31); | |
bVar11 = *(byte *)((int)param_1 + 0x32); | |
bVar12 = *(byte *)((int)param_1 + 0x33); | |
piVar17 = (int *)param_1[0xd]; | |
if (iVar15 == 0) { | |
uVar20 = (uint)bVar2 | (uint)bVar8 << 0x10 | (uint)bVar7 << 8 | (uint)bVar1 << 0x18; | |
iVar15 = CONCAT13(bVar3,CONCAT12(uVar5,CONCAT11(uVar6,uVar4))); | |
if (iVar15 != 0 || uVar20 != 1) { | |
dprintf((byte *)s_GPT_first_usable_LBA_mismatch_8f65b100,(int *)((uint)bVar3 << 0x18),uVar20, | |
iVar15); | |
iVar15 = 1; | |
uVar25 = extraout_r1_04; | |
goto LAB_8f6053a8; | |
} | |
} | |
uVar23 = 0; | |
uVar20 = uVar24; | |
uVar28 = FUN_8f658e24((uint)uVar28,uVar25,uVar24,0); | |
piVar18 = (int *)((ulonglong)uVar28 >> 0x20); | |
uVar25 = (uint)uVar28; | |
bVar27 = piVar18 <= piVar26; | |
if (piVar26 == piVar18) { | |
bVar27 = uVar25 <= uVar19; | |
} | |
if (bVar27 && (piVar26 != piVar18 || uVar19 != uVar25)) { | |
dprintf((byte *)s_Invalid_first_usable_lba_8f65b120,piVar18,uVar20,uVar23); | |
iVar15 = 1; | |
uVar25 = extraout_r1_05; | |
goto LAB_8f6053a8; | |
} | |
uVar19 = (uint)bVar9 | (uint)bVar11 << 0x10 | (uint)bVar10 << 8 | (uint)bVar12 << 0x18; | |
bVar27 = piVar18 <= piVar17; | |
if (piVar17 == piVar18) { | |
bVar27 = uVar25 <= uVar19; | |
} | |
if (bVar27 && (piVar17 != piVar18 || uVar19 != uVar25)) { | |
dprintf((byte *)s_Invalid_last_usable_lba_8f65b13c,piVar18,uVar19,piVar17); | |
iVar15 = 1; | |
uVar25 = extraout_r1_06; | |
goto LAB_8f6053a8; | |
} | |
if (uVar22 != 0x80) { | |
dprintf((byte *)s_Invalid_parition_entry_size_8f65b158,piVar18,uVar19,piVar17); | |
iVar15 = 1; | |
uVar25 = extraout_r1_03; | |
goto LAB_8f6053a8; | |
} | |
uVar25 = *param_5; | |
if (0x80 < uVar25) { | |
dprintf((byte *)s_Invalid_maximum_partition_count_8f65b178,piVar18,uVar19,piVar17); | |
iVar15 = 1; | |
uVar25 = extraout_r1_07; | |
goto LAB_8f6053a8; | |
} | |
uVar22 = FUN_8f6582ac(uVar25,uVar24 >> 7); | |
uVar29 = FUN_8f658354(uVar25,uVar24 >> 7); | |
if ((int)(uVar29 >> 0x20) != 0) { | |
uVar22 = uVar22 + 1; | |
} | |
uVar22 = uVar24 * uVar22; | |
uVar28 = FUN_8f6366a8((int *)0x40,uVar22 + 0x3f & 0xffffffc0); | |
iVar15 = DAT_8f687278; | |
pbVar16 = (byte *)uVar28; | |
if (pbVar16 == (byte *)0x0) { | |
dprintf((byte *)s_Failed_to_Allocate_memory_to_rea_8f65b19c,(int *)((ulonglong)uVar28 >> 0x20), | |
uVar19,piVar17); | |
iVar15 = 1; | |
uVar25 = extraout_r1_08; | |
goto LAB_8f6053a8; | |
} | |
if (DAT_8f687278 == 0) { | |
uVar25 = (uint)*(byte *)(param_1 + 0x12) | | |
(uint)*(byte *)((int)param_1 + 0x4a) << 0x10 | | |
(uint)*(byte *)((int)param_1 + 0x49) << 8 | | |
(uint)*(byte *)((int)param_1 + 0x4b) << 0x18; | |
iVar13 = param_1[0x13]; | |
if (iVar13 == 0 && uVar25 == 2) { | |
pbVar21 = pbVar16; | |
uVar28 = FUN_8f60d85c(uVar24 * 2,(uint)CARRY4(uVar24,uVar24),(uint)pbVar16,uVar22); | |
iVar15 = (int)uVar28; | |
if (iVar15 == 0) { | |
uVar24 = (uint)*(byte *)((int)param_1 + 0x5a) << 0x10 | | |
(uint)*(byte *)((int)param_1 + 0x59) << 8 | (uint)*(byte *)(param_1 + 0x16); | |
piVar17 = (int *)(uVar24 | (uint)*(byte *)((int)param_1 + 0x5b) << 0x18); | |
uVar25 = FUN_8f608394(0xffffffff,pbVar16,*param_3 * *param_5); | |
if ((int *)~uVar25 == piVar17) goto LAB_8f6058e4; | |
iVar15 = 1; | |
dprintf((byte *)s_Partition_entires_crc_mismatch_c_8f65b214,(int *)~uVar25,piVar17,uVar24); | |
} | |
else { | |
dprintf((byte *)s_GPT__Could_not_read_primary_gpt_f_8f65b1e8, | |
(int *)((ulonglong)uVar28 >> 0x20),pbVar21,uVar22); | |
} | |
} | |
else { | |
dprintf((byte *)s_Starting_LBA_mismatch_8f65b1d0,(int *)(uint)*(uint3 *)(param_1 + 0x13), | |
uVar25,iVar13); | |
} | |
} | |
else { | |
LAB_8f6058e4: | |
iVar15 = 0; | |
} | |
FUN_8f636758((int)pbVar16); | |
uVar25 = extraout_r1; | |
LAB_8f6053a8: | |
if (piVar14 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar15,uVar25,piVar14); | |
} | |
void FUN_8f605b1c(int param_1,int *param_2) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
int *extraout_r1; | |
int *piVar3; | |
piVar1 = DAT_8f69d118; | |
piVar3 = DAT_8f69d118; | |
if ((*(byte *)(param_1 + 0x1fe) == 0x55) && | |
(piVar3 = (int *)(uint)*(byte *)(param_1 + 0x1ff), piVar3 == (int *)0xaa)) { | |
uVar2 = 0; | |
} | |
else { | |
dprintf((byte *)s_MBR_signature_does_not_match__8f65b288,param_2, | |
(uint)*(byte *)(param_1 + 0x1fe),piVar3); | |
uVar2 = 1; | |
param_2 = extraout_r1; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,param_2,piVar1); | |
} | |
return; | |
} | |
// WARNING: Restarted to delay deadcode elimination for space: ram | |
void FUN_8f605b80(uint param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
byte bVar1; | |
byte bVar2; | |
byte bVar3; | |
byte bVar4; | |
byte bVar5; | |
int *piVar6; | |
uint uVar7; | |
int iVar8; | |
undefined4 extraout_r1; | |
undefined4 uVar9; | |
undefined4 extraout_r1_00; | |
int *piVar10; | |
uint uVar11; | |
int iVar12; | |
uint uVar13; | |
uint uVar14; | |
undefined8 uVar15; | |
piVar6 = DAT_8f69d118; | |
piVar10 = DAT_8f69d118; | |
uVar15 = FUN_8f6366a8((int *)0x40,param_1 + 0x3f & 0xffffffc0); | |
uVar7 = (uint)uVar15; | |
if (uVar7 == 0) { | |
dprintf((byte *)s_Error_allocating_memory_while_re_8f65b2a8,(int *)((ulonglong)uVar15 >> 0x20), | |
param_3,piVar10); | |
iVar12 = -1; | |
uVar9 = extraout_r1_00; | |
} | |
else { | |
uVar14 = uVar7; | |
uVar13 = param_1; | |
uVar15 = FUN_8f60d85c(0,0,uVar7,param_1); | |
piVar10 = (int *)((ulonglong)uVar15 >> 0x20); | |
iVar12 = (int)uVar15; | |
if (iVar12 == 0) { | |
if (param_1 < 0x1ff) { | |
iVar12 = 1; | |
} | |
else { | |
iVar12 = FUN_8f605b1c(uVar7,piVar10); | |
uVar14 = uVar7; | |
if (iVar12 == 0) { | |
do { | |
uVar13 = (uint)*(byte *)(uVar14 + 0x1c2); | |
if (uVar13 == 0xee) { | |
iVar12 = 0; | |
DAT_8f687270 = 1; | |
goto LAB_8f605be0; | |
} | |
iVar8 = DAT_8f68726c * 0x98 + DAT_8f69d120; | |
*(uint *)(iVar8 + 0x10) = uVar13; | |
*(uint *)(iVar8 + 0x40) = (uint)*(byte *)(uVar14 + 0x1be); | |
*(undefined4 *)(iVar8 + 0x44) = 0; | |
bVar1 = *(byte *)(uVar14 + 0x1c8); | |
bVar2 = *(byte *)(uVar14 + 0x1c7); | |
bVar3 = *(byte *)(uVar14 + 0x1c6); | |
bVar4 = *(byte *)(uVar14 + 0x1c9); | |
*(undefined4 *)(iVar8 + 0x2c) = 0; | |
uVar11 = (uint)bVar1 << 0x10 | (uint)bVar2 << 8 | (uint)bVar3 | (uint)bVar4 << 0x18; | |
*(uint *)(iVar8 + 0x28) = uVar11; | |
bVar1 = *(byte *)(uVar14 + 0x1cc); | |
bVar2 = *(byte *)(uVar14 + 0x1cb); | |
bVar3 = *(byte *)(uVar14 + 0x1ca); | |
bVar4 = *(byte *)(uVar14 + 0x1cd); | |
*(undefined4 *)(iVar8 + 0x3c) = 0; | |
*(uint *)(iVar8 + 0x38) = | |
(uint)bVar1 << 0x10 | (uint)bVar2 << 8 | (uint)bVar3 | (uint)bVar4 << 0x18; | |
FUN_8f604eb4(iVar8,uVar13); | |
DAT_8f68726c = DAT_8f68726c + 1; | |
if (DAT_8f68726c == 0x80) goto LAB_8f605d2c; | |
iVar12 = iVar12 + 1; | |
uVar14 = uVar14 + 0x10; | |
} while (iVar12 != 4); | |
if (uVar13 == 5) { | |
uVar15 = FUN_8f60d85c(param_1 * uVar11,0,uVar7,param_1); | |
iVar8 = (int)uVar15; | |
uVar14 = uVar11; | |
while( true ) { | |
iVar12 = (int)uVar15; | |
if (iVar8 != 0) break; | |
iVar12 = FUN_8f605b1c(uVar7,(int *)((ulonglong)uVar15 >> 0x20)); | |
if (iVar12 != 0) goto LAB_8f605d2c; | |
iVar12 = DAT_8f68726c * 0x98 + DAT_8f69d120; | |
*(uint *)(iVar12 + 0x40) = (uint)*(byte *)(uVar7 + 0x1be); | |
*(undefined4 *)(iVar12 + 0x44) = 0; | |
bVar1 = *(byte *)(uVar7 + 0x1c2); | |
*(uint *)(iVar12 + 0x10) = (uint)bVar1; | |
bVar2 = *(byte *)(uVar7 + 0x1c8); | |
bVar3 = *(byte *)(uVar7 + 0x1c7); | |
bVar4 = *(byte *)(uVar7 + 0x1c6); | |
bVar5 = *(byte *)(uVar7 + 0x1c9); | |
*(undefined4 *)(iVar12 + 0x2c) = 0; | |
*(uint *)(iVar12 + 0x28) = | |
uVar14 + ((uint)bVar2 << 0x10 | (uint)bVar3 << 8 | (uint)bVar4 | | |
(uint)bVar5 << 0x18); | |
bVar2 = *(byte *)(uVar7 + 0x1cc); | |
bVar3 = *(byte *)(uVar7 + 0x1cb); | |
bVar4 = *(byte *)(uVar7 + 0x1ca); | |
bVar5 = *(byte *)(uVar7 + 0x1cd); | |
*(undefined4 *)(iVar12 + 0x3c) = 0; | |
*(uint *)(iVar12 + 0x38) = | |
(uint)bVar2 << 0x10 | (uint)bVar3 << 8 | (uint)bVar4 | (uint)bVar5 << 0x18; | |
FUN_8f604eb4(iVar12,(uint)bVar1); | |
DAT_8f68726c = DAT_8f68726c + 1; | |
if ((DAT_8f68726c == 0x80) || | |
(uVar14 = (uint)*(byte *)(uVar7 + 0x1d8) << 0x10 | | |
(uint)*(byte *)(uVar7 + 0x1d7) << 8 | (uint)*(byte *)(uVar7 + 0x1d6) | | |
(uint)*(byte *)(uVar7 + 0x1d9) << 0x18, uVar14 == 0)) goto LAB_8f605d2c; | |
uVar14 = uVar11 + uVar14; | |
uVar15 = FUN_8f60d85c(param_1 * uVar14,0,uVar7,param_1); | |
iVar8 = (int)uVar15; | |
} | |
} | |
else { | |
LAB_8f605d2c: | |
iVar12 = 0; | |
} | |
} | |
} | |
} | |
else { | |
dprintf((byte *)s_Could_not_read_partition_from_mm_8f65b2e0,piVar10,uVar14,uVar13); | |
} | |
LAB_8f605be0: | |
FUN_8f636758(uVar7); | |
uVar9 = extraout_r1; | |
} | |
if (piVar6 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar12,uVar9,piVar6); | |
} | |
return; | |
} | |
// WARNING: Restarted to delay deadcode elimination for space: ram | |
void FUN_8f605ea8(undefined4 param_1,undefined4 param_2,char *param_3) | |
{ | |
undefined *puVar1; | |
byte bVar2; | |
byte bVar3; | |
byte bVar4; | |
byte bVar5; | |
longlong lVar6; | |
uint uVar7; | |
uint uVar8; | |
int iVar9; | |
undefined uVar10; | |
uint *puVar11; | |
undefined4 uVar12; | |
uint *puVar13; | |
int iVar14; | |
uint uVar15; | |
int *piVar16; | |
int *extraout_r1; | |
int *extraout_r1_00; | |
int *extraout_r1_01; | |
int *extraout_r1_02; | |
undefined4 extraout_r1_03; | |
int *extraout_r1_04; | |
undefined *puVar17; | |
uint *puVar18; | |
int iVar19; | |
uint uVar20; | |
uint uVar21; | |
uint uVar22; | |
uint uVar23; | |
int *in_lr; | |
int iVar24; | |
ulonglong uVar25; | |
undefined8 uVar26; | |
undefined8 uVar27; | |
longlong lVar28; | |
ulonglong uVar29; | |
uint local_ac; | |
uint uStack_8c; | |
uint local_88; | |
uint local_84; | |
uint auStack_80 [3]; | |
uint local_74 [18]; | |
int *local_2c; | |
local_2c = DAT_8f69d118; | |
uVar25 = FUN_8f60d5cc(param_1,param_2); | |
uVar29 = uVar25 & 0xffffffff00000000 | (ulonglong)DAT_8f69d120; | |
puVar11 = (uint *)uVar25; | |
uVar20 = DAT_8f69d120; | |
if (DAT_8f69d120 == 0) { | |
uVar29 = FUN_8f6366fc(0x80,0x98); | |
uVar20 = DAT_8f69d120; | |
if ((uint)uVar29 == 0) { | |
param_3 = s_platform_msm_shared_partition_pa_8f65b304; | |
uVar20 = 99; | |
DAT_8f69d120 = (uint)uVar29; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_partition_pa_8f65b304,99); | |
uVar29 = CONCAT44(extraout_r1_03,DAT_8f69d120); | |
} | |
} | |
DAT_8f69d120 = (uint)uVar29; | |
uVar26 = FUN_8f605b80((uint)puVar11,(int)(uVar29 >> 0x20),param_3); | |
piVar16 = (int *)((ulonglong)uVar26 >> 0x20); | |
if ((uint)uVar26 != 0) { | |
dprintf((byte *)s_MMC_Boot__MBR_read_failed__8f65b340,piVar16,param_3,uVar20); | |
uVar12 = 1; | |
piVar16 = extraout_r1_01; | |
goto LAB_8f605f10; | |
} | |
if (DAT_8f687270 == (uint *)0x0) { | |
LAB_8f605f0c: | |
uVar12 = 0; | |
} | |
else { | |
puVar18 = DAT_8f687270; | |
local_88 = (uint)uVar26; | |
uVar26 = FUN_8f60d578(0,piVar16); | |
uVar27 = FUN_8f6366a8((int *)0x40,(int)puVar11 + 0x3fU & 0xffffffc0); | |
puVar13 = (uint *)uVar27; | |
if (puVar13 == (uint *)0x0) { | |
dprintf((byte *)s_Failed_to_Allocate_memory_to_rea_8f65b19c,(int *)((ulonglong)uVar27 >> 0x20) | |
,param_3,puVar18); | |
piVar16 = extraout_r1_04; | |
} | |
else { | |
param_3 = (char *)puVar13; | |
puVar18 = puVar11; | |
uVar27 = FUN_8f60d85c((uint)puVar11,0,(uint)puVar13,(uint)puVar11); | |
if ((int)uVar27 == 0) { | |
iVar14 = FUN_8f605354((int *)puVar13,auStack_80,&local_84,&uStack_8c,&local_88); | |
iVar19 = DAT_8f68727c; | |
if (iVar14 == 0) { | |
LAB_8f606068: | |
DAT_8f68727c = iVar19; | |
bVar2 = *(byte *)((int)puVar13 + 0x49); | |
bVar3 = *(byte *)((int)puVar13 + 0x4a); | |
bVar4 = *(byte *)((int)puVar13 + 0x4b); | |
bVar5 = *(byte *)(puVar13 + 0x12); | |
uVar8 = puVar13[0x13]; | |
uVar20 = (uint)puVar11 >> 7; | |
uVar7 = -uVar20; | |
uVar15 = FUN_8f6582ac(uVar7 & (local_88 - 1) + uVar20,uVar20); | |
if (uVar15 != 0) { | |
lVar28 = (uVar25 & 0xffffffff) * | |
(ulonglong) | |
((uint)bVar5 | (uint)bVar2 << 8 | (uint)bVar3 << 0x10 | (uint)bVar4 << 0x18); | |
local_ac = 0; | |
uVar15 = (uint)lVar28; | |
do { | |
if (0x7f < DAT_8f68726c) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_partition_pa_8f65b304,0x142); | |
} | |
param_3 = (char *)puVar13; | |
puVar18 = puVar11; | |
uVar26 = FUN_8f60d85c(uVar15 + (int)puVar11 * local_ac, | |
(int)puVar11 * uVar8 + (int)((ulonglong)lVar28 >> 0x20) + | |
(uint)CARRY4(uVar15,(int)puVar11 * local_ac),(uint)puVar13, | |
(uint)puVar11); | |
uVar23 = (uint)uVar26; | |
if (uVar23 != 0) { | |
dprintf((byte *)s_GPT__mmc_read_card_failed_readin_8f65b3ec, | |
(int *)((ulonglong)uVar26 >> 0x20),param_3,puVar18); | |
goto LAB_8f605ff4; | |
} | |
if (uVar20 == 0) { | |
uVar23 = uVar7 & local_88 - 1; | |
} | |
else { | |
uVar21 = DAT_8f69d120; | |
do { | |
FUN_8f63685c((undefined4 *)(DAT_8f68726c * 0x98 + uVar21), | |
(uint *)(local_84 * uVar23 + (int)puVar13),0x10); | |
if (*(short *)(DAT_8f69d120 + DAT_8f68726c * 0x98) == 0) { | |
uVar23 = uVar7 & (local_88 - 1) + uVar20; | |
local_ac = uVar23; | |
goto LAB_8f606634; | |
} | |
FUN_8f63685c((undefined4 *)(DAT_8f69d120 + DAT_8f68726c * 0x98 + 0x14), | |
(undefined4 *)((int)puVar13 + local_84 * uVar23 + 0x10),0x10); | |
iVar19 = local_84 * uVar23; | |
iVar24 = DAT_8f68726c * 0x98 + DAT_8f69d120; | |
uVar22 = (uint)*(byte *)((int)puVar13 + iVar19 + 0x21) << 8 | | |
(uint)*(byte *)((int)puVar13 + iVar19 + 0x22) << 0x10 | | |
(uint)*(byte *)((int)puVar13 + iVar19 + 0x20) | | |
(uint)*(byte *)((int)puVar13 + iVar19 + 0x23) << 0x18; | |
iVar14 = *(int *)((int)puVar13 + iVar19 + 0x24); | |
*(uint *)(iVar24 + 0x28) = uVar22; | |
*(int *)(iVar24 + 0x2c) = iVar14; | |
uVar21 = (uint)*(byte *)((int)puVar13 + iVar19 + 0x29) << 8 | | |
(uint)*(byte *)((int)puVar13 + iVar19 + 0x2a) << 0x10 | | |
(uint)*(byte *)((int)puVar13 + iVar19 + 0x28) | | |
(uint)*(byte *)((int)puVar13 + iVar19 + 0x2b) << 0x18; | |
iVar9 = *(int *)((int)puVar13 + iVar19 + 0x2c); | |
*(uint *)(iVar24 + 0x30) = uVar21; | |
*(int *)(iVar24 + 0x34) = iVar9; | |
*(uint *)(iVar24 + 0x38) = (uVar21 + 1) - uVar22; | |
*(uint *)(iVar24 + 0x3c) = | |
(iVar9 + (uint)(0xfffffffe < uVar21)) - | |
(iVar14 + (uint)(uVar21 + 1 < uVar22)); | |
uVar12 = *(undefined4 *)((int)puVar13 + iVar19 + 0x34); | |
*(uint *)(iVar24 + 0x40) = | |
(uint)*(byte *)((int)puVar13 + iVar19 + 0x33) << 0x18 | | |
(uint)*(byte *)((int)puVar13 + iVar19 + 0x31) << 8 | | |
(uint)*(byte *)((int)puVar13 + iVar19 + 0x32) << 0x10 | | |
(uint)*(byte *)((int)puVar13 + iVar19 + 0x30); | |
*(undefined4 *)(iVar24 + 0x44) = uVar12; | |
FUN_8f636968(local_74,0,0x48); | |
FUN_8f63685c(local_74,(undefined4 *)((int)puVar13 + local_84 * uVar23 + 0x38),0x48 | |
); | |
iVar14 = DAT_8f68726c * 0x98 + DAT_8f69d120; | |
uVar10 = FUN_8f60db64(); | |
uVar21 = DAT_8f69d120; | |
iVar19 = 0; | |
puVar17 = (undefined *)(DAT_8f68726c * 0x98 + DAT_8f69d120 + 0x47); | |
*(undefined *)(iVar14 + 0x90) = uVar10; | |
do { | |
puVar1 = (undefined *)((int)local_74 + iVar19); | |
iVar19 = iVar19 + 2; | |
puVar17 = puVar17 + 1; | |
*puVar17 = *puVar1; | |
} while (iVar19 != 0x48); | |
uVar23 = uVar23 + 1; | |
DAT_8f68726c = DAT_8f68726c + 1; | |
} while (uVar23 != uVar20); | |
uVar23 = (local_88 - 1) + uVar20 & uVar7; | |
} | |
LAB_8f606634: | |
uVar23 = FUN_8f6582ac(uVar23,uVar20); | |
local_ac = local_ac + 1; | |
} while (local_ac < uVar23); | |
} | |
FUN_8f636758((int)puVar13); | |
piVar16 = extraout_r1_02; | |
goto LAB_8f605f0c; | |
} | |
lVar28 = FUN_8f658e24((uint)uVar26,(uint)((ulonglong)uVar26 >> 0x20),(uint)puVar11,0); | |
if (lVar28 == 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_partition_pa_8f65b304,0x128); | |
} | |
lVar6 = (uVar25 & 0xffffffff) * (ulonglong)((int)lVar28 - 1); | |
param_3 = (char *)puVar13; | |
puVar18 = puVar11; | |
uVar26 = FUN_8f60d85c((uint)lVar6, | |
(int)puVar11 * | |
((int)((ulonglong)lVar28 >> 0x20) - (uint)((int)lVar28 == 0)) + | |
(int)((ulonglong)lVar6 >> 0x20),(uint)puVar13,(uint)puVar11); | |
if ((int)uVar26 == 0) { | |
param_3 = (char *)&local_84; | |
puVar18 = &uStack_8c; | |
DAT_8f68727c = 1; | |
uVar26 = FUN_8f605354((int *)puVar13,auStack_80,(uint *)param_3,puVar18,&local_88); | |
iVar19 = (int)uVar26; | |
if ((int)uVar26 == 0) goto LAB_8f606068; | |
dprintf((byte *)s_GPT__Primary_and_backup_signatur_8f65b39c, | |
(int *)((ulonglong)uVar26 >> 0x20),param_3,puVar18); | |
} | |
else { | |
dprintf((byte *)s_GPT__Could_not_read_backup_gpt_f_8f65b370, | |
(int *)((ulonglong)uVar26 >> 0x20),param_3,puVar18); | |
} | |
} | |
else { | |
dprintf((byte *)s_GPT__Could_not_read_primary_gpt_f_8f65b1e8, | |
(int *)((ulonglong)uVar27 >> 0x20),param_3,puVar18); | |
} | |
LAB_8f605ff4: | |
FUN_8f636758((int)puVar13); | |
piVar16 = extraout_r1; | |
} | |
dprintf((byte *)s_MMC_Boot__GPT_read_failed__8f65b424,piVar16,param_3,puVar18); | |
uVar12 = 1; | |
piVar16 = extraout_r1_00; | |
} | |
LAB_8f605f10: | |
if (local_2c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar12,piVar16,local_2c); | |
} | |
void FUN_8f606760(byte *param_1) | |
{ | |
int iVar1; | |
int *piVar2; | |
undefined4 uVar3; | |
byte *pbVar4; | |
int iVar5; | |
undefined8 uVar6; | |
undefined8 uVar7; | |
piVar2 = DAT_8f69d118; | |
uVar6 = FUN_8f636de0(param_1); | |
iVar1 = DAT_8f68726c; | |
uVar3 = (undefined4)((ulonglong)uVar6 >> 0x20); | |
if (DAT_8f68726c - 1U < 0x7f) { | |
iVar5 = 0; | |
pbVar4 = (byte *)(DAT_8f69d120 + 0x48); | |
do { | |
uVar7 = FUN_8f636de0(pbVar4); | |
uVar3 = (undefined4)((ulonglong)uVar7 >> 0x20); | |
if ((int)uVar7 == (int)uVar6) { | |
uVar7 = FUN_8f636a7c((char *)param_1,(char *)pbVar4,(int)uVar6); | |
uVar3 = (undefined4)((ulonglong)uVar7 >> 0x20); | |
if ((int)uVar7 == 0) goto LAB_8f6067f8; | |
} | |
iVar5 = iVar5 + 1; | |
pbVar4 = pbVar4 + 0x98; | |
} while (iVar5 != iVar1); | |
} | |
iVar5 = -1; | |
LAB_8f6067f8: | |
if (piVar2 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar5,uVar3,piVar2); | |
} | |
return; | |
} | |
void FUN_8f606814(int param_1,undefined4 param_2) | |
{ | |
longlong lVar1; | |
int *piVar2; | |
uint uVar3; | |
undefined4 uVar4; | |
int iVar5; | |
piVar2 = DAT_8f69d118; | |
uVar3 = FUN_8f60d5cc(param_1,param_2); | |
if (param_1 == -1) { | |
uVar4 = 0; | |
iVar5 = 0; | |
} | |
else { | |
iVar5 = param_1 * 0x98 + DAT_8f69d120; | |
lVar1 = (ulonglong)uVar3 * (ulonglong)*(uint *)(iVar5 + 0x38); | |
uVar4 = (undefined4)lVar1; | |
iVar5 = uVar3 * *(int *)(iVar5 + 0x3c) + (int)((ulonglong)lVar1 >> 0x20); | |
} | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar4,iVar5,piVar2); | |
} | |
void FUN_8f60688c(int param_1,undefined4 param_2) | |
{ | |
longlong lVar1; | |
int *piVar2; | |
uint uVar3; | |
undefined4 uVar4; | |
int iVar5; | |
piVar2 = DAT_8f69d118; | |
uVar3 = FUN_8f60d5cc(param_1,param_2); | |
if (param_1 == -1) { | |
uVar4 = 0; | |
iVar5 = 0; | |
} | |
else { | |
iVar5 = param_1 * 0x98 + DAT_8f69d120; | |
lVar1 = (ulonglong)uVar3 * (ulonglong)*(uint *)(iVar5 + 0x28); | |
uVar4 = (undefined4)lVar1; | |
iVar5 = uVar3 * *(int *)(iVar5 + 0x2c) + (int)((ulonglong)lVar1 >> 0x20); | |
} | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar4,iVar5,piVar2); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f60694c) | |
void FUN_8f606904(int param_1) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f606980) | |
void FUN_8f606950(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6069c8) | |
void FUN_8f606984(void) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f606a18) | |
void FUN_8f6069cc(int param_1) | |
{ | |
return; | |
} | |
void FUN_8f606a1c(uint param_1,int param_2) | |
{ | |
int *piVar1; | |
uint uVar2; | |
uint *puVar3; | |
undefined4 uVar4; | |
piVar1 = DAT_8f69d118; | |
puVar3 = (uint *)((*(byte *)(param_1 + 0x10) + 0x1e36c70) * 4); | |
uVar2 = *puVar3; | |
if (param_2 != 0) { | |
if (*(char *)(param_1 + 0x11) == '\0') { | |
uVar2 = uVar2 | 200; | |
} | |
else { | |
uVar2 = uVar2 | 0xc80000; | |
} | |
if (*(byte *)(param_1 + 0x10) != 0) { | |
if (DAT_8f687320 == 0) { | |
uVar4 = 0x20400000; | |
} | |
else { | |
uVar4 = 0x22000000; | |
} | |
**(undefined4 **)(param_1 + 8) = uVar4; | |
param_1 = (uint)*(byte *)(param_1 + 0x10); | |
puVar3 = (uint *)((param_1 + 0x1e36c70) * 4); | |
} | |
} | |
*puVar3 = uVar2; | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,uVar2,piVar1); | |
} | |
return; | |
} | |
void FUN_8f606ac0(uint param_1) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined4 uVar3; | |
int *piVar4; | |
int iVar5; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
uint uVar6; | |
uint uVar7; | |
int iVar8; | |
int iVar9; | |
undefined8 uVar10; | |
piVar1 = DAT_8f69d118; | |
FUN_8f625b4c(param_1,0x14); | |
iVar2 = *(int *)(param_1 + 0xc); | |
uVar10 = CONCAT44(extraout_r1,iVar2); | |
if (iVar2 != 0) { | |
iVar2 = FUN_8f602f38(iVar2,extraout_r1); | |
uVar3 = FUN_8f625b4c(*(uint *)(param_1 + 0xc),0x14); | |
uVar10 = CONCAT44(extraout_r1_00,uVar3); | |
if (iVar2 != 0) { | |
piVar4 = (int *)FUN_8f602f38(*(undefined4 *)(iVar2 + 0x10),extraout_r1_00); | |
iVar8 = 0; | |
iVar9 = *(int *)(iVar2 + 4); | |
*(undefined4 *)(param_1 + 0xc) = 0; | |
while( true ) { | |
do { | |
iVar5 = FUN_8f625b4c((uint)piVar4,0x20); | |
} while ((piVar4[1] & 0x80U) != 0); | |
uVar7 = piVar4[1]; | |
uVar6 = uVar7 & 0xff; | |
if (uVar6 != 0) { | |
uVar6 = 0xffffffff; | |
goto LAB_8f606b7c; | |
} | |
iVar5 = *piVar4; | |
if (iVar5 == 1) break; | |
uVar6 = 0x4000 - (uVar7 >> 0x10) & 0x7fff; | |
iVar8 = iVar8 + uVar6; | |
iVar9 = iVar9 - uVar6; | |
piVar4 = (int *)FUN_8f602f38(iVar5,extraout_r1_01); | |
} | |
iVar8 = iVar8 + (iVar9 - (uVar7 >> 0x10) & 0x7fff); | |
LAB_8f606b7c: | |
uVar10 = CONCAT44(extraout_r1_01,iVar5); | |
if (*(code **)(iVar2 + 8) != (code *)0x0) { | |
uVar10 = (**(code **)(iVar2 + 8))(iVar2,iVar8,uVar6); | |
} | |
} | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar10,(int)((ulonglong)uVar10 >> 0x20),piVar1); | |
} | |
void FUN_8f606c4c(uint param_1,int *param_2,int param_3) | |
{ | |
int *piVar1; | |
undefined4 *puVar2; | |
int *piVar3; | |
int *extraout_r1; | |
int *in_lr; | |
bool bVar4; | |
bool bVar5; | |
piVar1 = DAT_8f69d118; | |
if (param_3 - 2U < 0xfe) { | |
bVar5 = 0xfe < param_1; | |
bVar4 = param_1 == 0xff; | |
if (param_1 < 0x100) { | |
bVar5 = (int *)0xfe < param_2; | |
bVar4 = param_2 == (int *)0xff; | |
} | |
piVar3 = param_2; | |
if (!bVar5 || bVar4) goto LAB_8f606c8c; | |
} | |
dprintf((byte *)s_Invalid_parameters_for_descripto_8f65b6c0,param_2,param_3 - 2U,DAT_8f69d118); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_hsusb_c_8f65b6f0,0x43); | |
piVar3 = extraout_r1; | |
LAB_8f606c8c: | |
puVar2 = (undefined4 *)FUN_8f63666c(param_3 + 8,piVar3); | |
if (puVar2 == (undefined4 *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_hsusb_c_8f65b6f0,0x47); | |
} | |
piVar3 = DAT_8f69d118; | |
*(ushort *)(puVar2 + 1) = (ushort)param_2 | (ushort)(param_1 << 8); | |
*(short *)((int)puVar2 + 6) = (short)param_3; | |
*(char *)(puVar2 + 2) = (char)param_3; | |
*(char *)((int)puVar2 + 9) = (char)param_1; | |
*puVar2 = 0; | |
if (piVar1 == piVar3) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(puVar2,piVar1,piVar3); | |
} | |
void FUN_8f606d3c(byte *param_1,undefined4 param_2) | |
{ | |
byte bVar1; | |
int *piVar2; | |
int *piVar3; | |
int iVar4; | |
undefined4 *puVar5; | |
uint uVar6; | |
byte *pbVar7; | |
byte *pbVar8; | |
byte *in_r12; | |
undefined8 uVar9; | |
piVar3 = DAT_8f69d118; | |
piVar2 = DAT_8f67ee48; | |
if ((DAT_8f67ee48 < (int *)0x100) && (param_1 != (byte *)0x0)) { | |
iVar4 = FUN_8f636de0(param_1); | |
uVar9 = FUN_8f606c4c(3,piVar2,(iVar4 + 1) * 2); | |
param_2 = (undefined4)((ulonglong)uVar9 >> 0x20); | |
puVar5 = (undefined4 *)uVar9; | |
if (puVar5 != (undefined4 *)0x0) { | |
if (iVar4 != 0) { | |
in_r12 = param_1 + iVar4; | |
} | |
DAT_8f67ee48 = (int *)((int)DAT_8f67ee48 + 1); | |
if (iVar4 != 0) { | |
param_2 = 0; | |
pbVar7 = (byte *)((int)puVar5 + 10); | |
do { | |
pbVar8 = param_1 + 1; | |
bVar1 = *param_1; | |
pbVar7[1] = 0; | |
*pbVar7 = bVar1; | |
pbVar7 = pbVar7 + 2; | |
param_1 = pbVar8; | |
} while (pbVar8 != in_r12); | |
} | |
uVar6 = (uint)*(byte *)(puVar5 + 1); | |
*puVar5 = DAT_8f687324; | |
DAT_8f687324 = puVar5; | |
goto LAB_8f606df0; | |
} | |
} | |
uVar6 = 0; | |
LAB_8f606df0: | |
if (piVar3 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar6,param_2,piVar3); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f606e3c) | |
void FUN_8f606e0c(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
void FUN_8f606e40(uint param_1,int param_2,ushort param_3) | |
{ | |
int iVar1; | |
int *piVar2; | |
undefined4 *puVar3; | |
undefined4 extraout_r1; | |
int iVar4; | |
uint uVar5; | |
int *in_lr; | |
piVar2 = DAT_8f69d118; | |
puVar3 = (undefined4 *)FUN_8f6366a8((int *)0x40,0x40); | |
if (puVar3 == (undefined4 *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_hsusb_c_8f65b6f0,0xa7); | |
} | |
*(ushort *)((int)puVar3 + 0x12) = param_3; | |
if (param_2 != 0) { | |
param_2 = 1; | |
} | |
*(char *)((int)puVar3 + 0x11) = (char)param_2; | |
uVar5 = (uint)param_3 << 0x10 | 0x20000000; | |
*(char *)(puVar3 + 4) = (char)param_1; | |
puVar3[3] = 0; | |
if (param_2 == 0) { | |
if (param_1 == 0) { | |
uVar5 = (uint)param_3 << 0x10 | 0x20008000; | |
} | |
puVar3[1] = 1 << (param_1 & 0xff); | |
} | |
else { | |
puVar3[1] = 1 << ((param_1 & 0xff) + 0x10 & 0xff); | |
} | |
iVar1 = DAT_8f68730c; | |
iVar4 = param_2 + param_1 * 2; | |
puVar3[2] = DAT_8f68730c + iVar4 * 0x40; | |
*(uint *)(iVar1 + iVar4 * 0x40) = uVar5; | |
*puVar3 = DAT_8f687310; | |
DAT_8f687310 = puVar3; | |
FUN_8f625b24((uint)puVar3,0x14); | |
FUN_8f625b24(puVar3[2],0x40); | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(puVar3,extraout_r1,piVar2); | |
} | |
void FUN_8f606f6c(uint param_1,uint param_2) | |
{ | |
int *piVar1; | |
uint uVar2; | |
uint uVar3; | |
longlong lVar4; | |
piVar1 = DAT_8f69d118; | |
if (param_1 != 1) { | |
uVar3 = param_2; | |
if (param_1 != 2) goto LAB_8f606fd4; | |
param_1 = 0; | |
} | |
uVar2 = 1; | |
do { | |
uVar3 = uVar2; | |
if (param_1 != 0) { | |
uVar3 = uVar2 + 0x10; | |
} | |
uVar3 = 1 << (uVar3 & 0xff); | |
if ((uVar3 & DAT_8f67ee4c) == 0) { | |
lVar4 = FUN_8f606e40(uVar2,param_1,(ushort)param_2); | |
if ((int)lVar4 != 0) { | |
DAT_8f67ee4c = uVar3 | DAT_8f67ee4c; | |
} | |
goto LAB_8f606ff0; | |
} | |
uVar2 = uVar2 + 1; | |
uVar3 = param_1; | |
} while (uVar2 != 0x10); | |
LAB_8f606fd4: | |
lVar4 = (ulonglong)uVar3 << 0x20; | |
LAB_8f606ff0: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)lVar4,(int)((ulonglong)lVar4 >> 0x20),piVar1); | |
} | |
void FUN_8f607014(void) | |
{ | |
int *piVar1; | |
undefined4 *puVar2; | |
int *in_lr; | |
bool bVar3; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
puVar2 = (undefined4 *)FUN_8f6366a8((int *)0x40,0x40); | |
if (puVar2 == (undefined4 *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_hsusb_c_8f65b6f0,0x107); | |
} | |
*puVar2 = 0; | |
puVar2[1] = 0; | |
uVar4 = FUN_8f6366a8((int *)0x40,0x40); | |
bVar3 = piVar1 == DAT_8f69d118; | |
puVar2[4] = (int)uVar4; | |
if (bVar3) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(puVar2,(int)((ulonglong)uVar4 >> 0x20),piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6070e0) | |
void FUN_8f6070ac(int param_1,undefined4 param_2) | |
{ | |
FUN_8f636758(param_1); | |
return; | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
// WARNING: Restarted to delay deadcode elimination for space: ram | |
void FUN_8f6070e4(uint param_1,uint *param_2) | |
{ | |
uint **ppuVar1; | |
int *piVar2; | |
uint **ppuVar3; | |
uint uVar4; | |
int iVar5; | |
undefined4 uVar6; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
uint uVar7; | |
uint uVar8; | |
int *piVar9; | |
uint uVar10; | |
uint uVar11; | |
int iVar12; | |
uint uVar13; | |
piVar2 = DAT_8f69d118; | |
uVar11 = param_2[1]; | |
uVar4 = *param_2; | |
uVar10 = uVar11; | |
if (0x3fff < uVar11) { | |
uVar10 = 0x4000; | |
} | |
piVar9 = (int *)param_2[4]; | |
uVar8 = uVar4 & 0xfffff000; | |
uVar7 = uVar10 << 0x10 | 0x80; | |
uVar13 = uVar10 + uVar4; | |
piVar9[2] = uVar4; | |
piVar9[1] = uVar7; | |
piVar9[3] = uVar8 + 0x1000; | |
piVar9[4] = uVar8 + 0x2000; | |
iVar5 = uVar8 + 0x3000; | |
piVar9[5] = iVar5; | |
piVar9[6] = uVar8 + 0x4000; | |
for (uVar11 = uVar11 - uVar10; uVar11 != 0; uVar11 = uVar11 - uVar10) { | |
iVar12 = *piVar9; | |
uVar10 = uVar11; | |
if (0x3fff < uVar11) { | |
uVar10 = 0x4000; | |
} | |
if (iVar12 == 1) { | |
iVar5 = FUN_8f602f04(&DAT_8f6872c0,iVar5); | |
*piVar9 = iVar5; | |
piVar9 = &DAT_8f6872c0; | |
DAT_8f6872c0 = iVar12; | |
} | |
else { | |
piVar9 = (int *)FUN_8f602f38(iVar12,iVar5); | |
} | |
uVar4 = uVar13 & 0xfffff000; | |
piVar9[2] = uVar13; | |
uVar7 = uVar10 << 0x10 | 0x80; | |
piVar9[3] = uVar4 + 0x1000; | |
uVar13 = uVar13 + uVar10; | |
iVar5 = uVar4 + 0x3000; | |
piVar9[1] = uVar7; | |
piVar9[4] = uVar4 + 0x2000; | |
piVar9[5] = iVar5; | |
piVar9[6] = uVar4 + 0x4000; | |
} | |
uVar6 = 1; | |
piVar9[1] = uVar7 | 0x8000; | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
*piVar9 = 1; | |
if (DAT_8f67f324 == 1) { | |
FUN_8f625b9c(); | |
uVar6 = extraout_r1_00; | |
} | |
iVar12 = *(int *)(param_1 + 8); | |
uVar6 = FUN_8f602f04(param_2[4],uVar6); | |
iVar5 = *(int *)(param_1 + 8); | |
*(undefined4 *)(iVar12 + 8) = uVar6; | |
*(undefined4 *)(iVar5 + 0xc) = 0; | |
*(uint **)(param_1 + 0xc) = param_2; | |
FUN_8f625b24(param_1,0x14); | |
FUN_8f625b24(*(uint *)(param_1 + 8),0x40); | |
FUN_8f625b24(*(uint *)(param_1 + 0xc),0x14); | |
uVar11 = FUN_8f602f38(*param_2,extraout_r1); | |
FUN_8f625b24(uVar11,param_2[1]); | |
ppuVar3 = (uint **)param_2[4]; | |
if (ppuVar3 != (uint **)0x0) { | |
for (ppuVar1 = (uint **)*ppuVar3; ppuVar1 != (uint **)0x1; ppuVar1 = (uint **)*ppuVar1) { | |
FUN_8f625b24((uint)ppuVar3,0x20); | |
if (ppuVar1 == (uint **)0x0) goto LAB_8f6072b8; | |
ppuVar3 = ppuVar1; | |
} | |
FUN_8f625b24((uint)ppuVar3,0x20); | |
} | |
LAB_8f6072b8: | |
_DAT_078db1b0 = *(undefined4 *)(param_1 + 4); | |
DAT_8f67f324 = DAT_8f67f324 + -1; | |
if (DAT_8f67f324 == 0) { | |
FUN_8f625b8c(); | |
} | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,&DAT_8f69d118,piVar2); | |
} | |
void FUN_8f60730c(undefined4 *param_1,uint param_2) | |
{ | |
uint *puVar1; | |
uint *puVar2; | |
int *piVar3; | |
int *piVar4; | |
uint uVar5; | |
undefined4 extraout_r1; | |
bool bVar6; | |
piVar3 = DAT_8f69d118; | |
FUN_8f63685c((undefined4 *)*DAT_8f68731c,param_1,param_2); | |
puVar1 = DAT_8f68731c; | |
uVar5 = FUN_8f602f04(*DAT_8f68731c,extraout_r1); | |
puVar2 = DAT_8f68731c; | |
*puVar1 = uVar5; | |
FUN_8f625b24(*puVar2,param_2); | |
piVar4 = DAT_8f69d118; | |
puVar1 = DAT_8f68731c; | |
bVar6 = piVar3 == DAT_8f69d118; | |
DAT_8f68731c[1] = param_2; | |
puVar1[2] = (uint)&LAB_8f6073a4; | |
if (bVar6) { | |
FUN_8f6070e4(DAT_8f687314,puVar1); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(piVar3,puVar1,piVar4); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f607474) | |
void FUN_8f607414(void) | |
{ | |
uint *puVar1; | |
puVar1 = DAT_8f68731c; | |
DAT_8f68731c[2] = (uint)&LAB_8f606bc0; | |
puVar1[1] = 0; | |
FUN_8f6070e4(DAT_8f687314,puVar1); | |
return; | |
} | |
/* | |
Unable to decompile 'FUN_8f607478' | |
Cause: | |
Low-level Error: Forced merge caused intersection | |
*/ | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f607978(undefined4 param_1,undefined4 param_2) | |
{ | |
int iVar1; | |
int *piVar2; | |
undefined4 *puVar3; | |
undefined4 uVar4; | |
undefined4 extraout_r1; | |
uint uVar5; | |
int *in_lr; | |
bool bVar6; | |
undefined8 uVar7; | |
iVar1 = DAT_8f69d118; | |
FUN_8f606e0c(param_1,param_2); | |
_DAT_078db140 = 0x80002; | |
uVar7 = FUN_8f627cfc(0x14); | |
do { | |
uVar5 = _DAT_078db140 & 2; | |
} while (uVar5 != 0); | |
_DAT_078db184 = 0x80000000; | |
FUN_8f626508((int)uVar7,(int)((ulonglong)uVar7 >> 0x20)); | |
_DAT_078db098 = 8; | |
_DAT_078db090 = uVar5; | |
piVar2 = (int *)FUN_8f635d28(0x1000,0x40); | |
DAT_8f68730c = (uint *)FUN_8f6366a8(piVar2,0x1000); | |
if (DAT_8f68730c == (uint *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_hsusb_c_8f65b6f0,0x2c0); | |
} | |
FUN_8f636968(DAT_8f68730c,0,0x800); | |
FUN_8f625b24((uint)DAT_8f68730c,0x800); | |
_DAT_078db158 = FUN_8f602f04(DAT_8f68730c,extraout_r1); | |
_DAT_078db1a8 = 2; | |
_DAT_078db1b4 = 0xffffffff; | |
FUN_8f627cfc(0x14); | |
DAT_8f687284 = FUN_8f606e40(0,0,0x40); | |
DAT_8f687314 = FUN_8f606e40(0,1,0x40); | |
puVar3 = (undefined4 *)FUN_8f607014(); | |
DAT_8f68731c = puVar3; | |
uVar4 = FUN_8f6366a8((int *)0x40,0x1000); | |
*puVar3 = uVar4; | |
puVar3 = (undefined4 *)FUN_8f606c4c(3,(int *)0x0,4); | |
uVar4 = DAT_8f687324; | |
bVar6 = iVar1 == DAT_8f69d118; | |
DAT_8f687324 = puVar3; | |
DAT_8f687328 = param_1; | |
*(undefined *)((int)puVar3 + 10) = 9; | |
*puVar3 = uVar4; | |
*(undefined *)((int)puVar3 + 0xb) = 4; | |
if (bVar6) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,&DAT_8f687328,(int *)&DAT_8f687324); | |
} | |
void FUN_8f607b44(int param_1) | |
{ | |
int *piVar1; | |
int iVar2; | |
int iVar3; | |
piVar1 = DAT_8f69d118; | |
iVar3 = DAT_8f687308; | |
iVar2 = param_1; | |
if (DAT_8f687308 != 0) { | |
dprintf((byte *)s_only_one_gadget_supported_8f65b724,DAT_8f69d118,DAT_8f687308,&DAT_8f687308); | |
iVar3 = -1; | |
iVar2 = DAT_8f687308; | |
} | |
DAT_8f687308 = iVar2; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar3,piVar1,(int *)iVar3); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f607ba8(undefined4 param_1,int *param_2,undefined4 param_3) | |
{ | |
byte bVar1; | |
undefined4 *puVar2; | |
int *piVar3; | |
undefined uVar4; | |
byte bVar5; | |
undefined4 *puVar6; | |
undefined4 uVar7; | |
int *extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
uint uVar8; | |
undefined4 extraout_r1_03; | |
undefined4 extraout_r1_04; | |
undefined4 extraout_r1_05; | |
undefined4 extraout_r1_06; | |
char cVar9; | |
undefined4 uVar10; | |
int iVar11; | |
undefined *puVar12; | |
int iVar13; | |
int *in_lr; | |
undefined8 uVar14; | |
piVar3 = DAT_8f69d118; | |
dprintf((byte *)s_udc_start___8f65b740,param_2,param_3,DAT_8f69d118); | |
if (DAT_8f687328 == (undefined4 *)0x0) { | |
dprintf((byte *)s_udc_cannot_start_before_init_8f65b750,extraout_r1,param_3,0); | |
uVar7 = 0xffffffff; | |
uVar10 = extraout_r1_06; | |
} | |
else if (DAT_8f687308 == 0) { | |
dprintf((byte *)s_udc_has_no_gadget_registered_8f65b770,extraout_r1,param_3,0); | |
uVar7 = 0xffffffff; | |
uVar10 = extraout_r1_05; | |
} | |
else { | |
uVar10 = 0x12; | |
iVar11 = DAT_8f687308; | |
uVar14 = FUN_8f606c4c(1,(int *)0x0,0x12); | |
puVar6 = (undefined4 *)uVar14; | |
if (puVar6 == (undefined4 *)0x0) { | |
dprintf((byte *)s_Failed_to_allocate_device_descri_8f65b790,(int *)((ulonglong)uVar14 >> 0x20) | |
,uVar10,iVar11); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_hsusb_c_8f65b6f0,0x37b); | |
} | |
*(undefined *)((int)puVar6 + 0xf) = 0x40; | |
puVar2 = DAT_8f687328; | |
*(undefined *)((int)puVar6 + 0xb) = 2; | |
*(undefined *)((int)puVar6 + 10) = 0; | |
*(undefined *)(puVar6 + 3) = 0; | |
*(undefined *)((int)puVar6 + 0xd) = 0; | |
*(undefined *)((int)puVar6 + 0xe) = 0; | |
FUN_8f63685c(puVar6 + 4,puVar2,2); | |
FUN_8f63685c((undefined4 *)((int)puVar6 + 0x12),(undefined4 *)((int)DAT_8f687328 + 2),2); | |
FUN_8f63685c(puVar6 + 5,DAT_8f687328 + 1,2); | |
uVar4 = FUN_8f606d3c((byte *)DAT_8f687328[2],extraout_r1_00); | |
puVar2 = DAT_8f687328; | |
*(undefined *)((int)puVar6 + 0x16) = uVar4; | |
uVar4 = FUN_8f606d3c((byte *)puVar2[3],extraout_r1_01); | |
puVar2 = DAT_8f687328; | |
*(undefined *)((int)puVar6 + 0x17) = uVar4; | |
uVar4 = FUN_8f606d3c((byte *)puVar2[4],extraout_r1_02); | |
iVar11 = DAT_8f687308; | |
*(undefined *)((int)puVar6 + 0x19) = 1; | |
*puVar6 = DAT_8f687324; | |
uVar10 = 9; | |
DAT_8f687324 = puVar6; | |
*(undefined *)(puVar6 + 6) = uVar4; | |
iVar13 = (short)(ushort)*(byte *)(iVar11 + 0xb) * 7 + 0x12; | |
iVar11 = iVar13; | |
uVar14 = FUN_8f606c4c(2,(int *)0x0,iVar13); | |
puVar6 = (undefined4 *)uVar14; | |
if (puVar6 == (undefined4 *)0x0) { | |
dprintf((byte *)s_Failed_to_allocate_device_descri_8f65b790,(int *)((ulonglong)uVar14 >> 0x20) | |
,iVar11,uVar10); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_hsusb_c_8f65b6f0,0x393); | |
} | |
iVar11 = DAT_8f687308; | |
*(char *)((int)puVar6 + 10) = (char)iVar13; | |
*(undefined *)(puVar6 + 2) = 9; | |
*(undefined *)((int)puVar6 + 0x11) = 9; | |
*(undefined *)((int)puVar6 + 0xe) = 0; | |
*(char *)((int)puVar6 + 0xb) = (char)((uint)iVar13 >> 8); | |
*(undefined *)((int)puVar6 + 0x13) = 0; | |
*(undefined *)(puVar6 + 3) = 1; | |
*(undefined *)((int)puVar6 + 0xd) = 1; | |
*(undefined *)(puVar6 + 5) = 0; | |
*(undefined *)((int)puVar6 + 0x12) = 4; | |
*(undefined *)((int)puVar6 + 0xf) = 0x80; | |
*(undefined *)(puVar6 + 4) = 0x80; | |
*(undefined *)((int)puVar6 + 0x15) = *(undefined *)(iVar11 + 0xb); | |
*(undefined *)((int)puVar6 + 0x16) = *(undefined *)(iVar11 + 8); | |
*(undefined *)((int)puVar6 + 0x17) = *(undefined *)(iVar11 + 9); | |
*(undefined *)(puVar6 + 6) = *(undefined *)(iVar11 + 10); | |
uVar4 = FUN_8f606d3c(*(byte **)(iVar11 + 0xc),4); | |
*(undefined *)((int)puVar6 + 0x19) = uVar4; | |
if (*(char *)(iVar11 + 0xb) != '\0') { | |
uVar8 = 0; | |
puVar12 = (undefined *)((int)puVar6 + 0x1a); | |
do { | |
iVar13 = *(int *)(*(int *)(iVar11 + 0x14) + uVar8 * 4); | |
uVar8 = uVar8 + 1; | |
*puVar12 = 7; | |
puVar12[1] = 5; | |
cVar9 = *(char *)(iVar13 + 0x11); | |
bVar1 = *(byte *)(iVar13 + 0x10); | |
puVar12[3] = 2; | |
if (cVar9 == '\0') { | |
bVar5 = 0; | |
} | |
else { | |
bVar5 = 0x80; | |
} | |
puVar12[2] = bVar5 | bVar1; | |
puVar12[4] = (char)*(undefined2 *)(iVar13 + 0x12); | |
puVar12[5] = (char)((ushort)*(undefined2 *)(iVar13 + 0x12) >> 8); | |
cVar9 = '\x01' - *(byte *)(iVar13 + 0x11); | |
if (1 < *(byte *)(iVar13 + 0x11)) { | |
cVar9 = '\0'; | |
} | |
puVar12[6] = cVar9; | |
puVar12 = puVar12 + 7; | |
} while (uVar8 < *(byte *)(iVar11 + 0xb)); | |
} | |
*puVar6 = DAT_8f687324; | |
DAT_8f687324 = puVar6; | |
FUN_8f61097c(0xac,FUN_8f607478,(int *)0x0); | |
_DAT_078db148 = 0x145; | |
FUN_8f610944(0xac,extraout_r1_03); | |
uVar7 = 0; | |
_DAT_078db140 = _DAT_078db140 | 0x80001; | |
uVar10 = extraout_r1_04; | |
} | |
if (piVar3 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar7,uVar10,piVar3); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f607f48) | |
// WARNING: Removing unreachable block (ram,0x8f607f58) | |
// WARNING: Removing unreachable block (ram,0x8f607f60) | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f607ee8(void) | |
{ | |
undefined8 uVar1; | |
_DAT_078db1b4 = 0xffffffff; | |
_DAT_078db140 = _DAT_078db140 & 0xfffffffe; | |
_DAT_078db148 = 0; | |
uVar1 = FUN_8f61090c(0xac,DAT_8f69d118); | |
FUN_8f62653c((int)uVar1,(int)((ulonglong)uVar1 >> 0x20)); | |
do { | |
} while( true ); | |
} | |
void FUN_8f607f64(int *param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
uint uVar3; | |
int *piVar4; | |
int *in_lr; | |
ulonglong uVar5; | |
piVar1 = DAT_8f69d118; | |
piVar4 = DAT_8f69d118; | |
uVar5 = FUN_8f602d8c(param_1,param_2); | |
iVar2 = (int)uVar5; | |
if (iVar2 == 0) goto LAB_8f607fb4; | |
if (&DAT_00000005 < param_1) { | |
dprintf((byte *)s_bad_bs_id___u__max___u_8f65b7b8,param_1,6,piVar4); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_boot_stats_c_8f65b7d0,0x2c); | |
} | |
else { | |
if (param_1 == (int *)&DAT_00000004) { | |
uVar5 = FUN_8f602d4c(); | |
DAT_8f68732c = (int)uVar5; | |
goto LAB_8f607fb4; | |
} | |
if (param_1 == (int *)&DAT_00000005) { | |
uVar5 = FUN_8f602d4c(); | |
if ((int)uVar5 != 0) { | |
uVar3 = (int)uVar5 - DAT_8f68732c; | |
uVar5 = uVar5 & 0xffffffff00000000 | (ulonglong)uVar3; | |
*(uint *)(iVar2 + 0xc) = uVar3; | |
} | |
goto LAB_8f607fb4; | |
} | |
} | |
uVar5 = FUN_8f602d4c(); | |
if ((int)uVar5 != 0) { | |
*(int *)(iVar2 + (int)param_1 * 4) = (int)uVar5; | |
} | |
LAB_8f607fb4: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,(int)(uVar5 >> 0x20),piVar1); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f608048(uint param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
uint uVar2; | |
uint uVar3; | |
piVar1 = DAT_8f69d118; | |
if (param_1 < 0x21) { | |
_DAT_0b000c04 = 0xffffffff; | |
if (param_1 == 0) goto LAB_8f6080d8; | |
} | |
else { | |
uVar3 = 0x20; | |
do { | |
uVar2 = uVar3 << 2; | |
uVar3 = uVar3 + 0x10; | |
*(undefined4 *)((uVar2 >> 4) + 0xb000c00) = 0xffffffff; | |
} while (uVar3 < param_1); | |
} | |
_DAT_0b000c04 = 0xffffffff; | |
uVar3 = 0; | |
do { | |
uVar2 = uVar3 & 0x3fffffff; | |
uVar3 = uVar3 + 4; | |
*(undefined4 *)(&DAT_0b000400 + uVar2) = 0xa0a0a0a0; | |
} while (uVar3 < param_1); | |
uVar3 = 0; | |
param_2 = 0xffffffff; | |
do { | |
uVar2 = uVar3 << 2; | |
uVar3 = uVar3 + 0x20; | |
*(undefined4 *)(&DAT_0b000180 + (uVar2 >> 5)) = 0xffffffff; | |
} while (uVar3 < param_1); | |
LAB_8f6080d8: | |
_DAT_0b000100 = 0xffff; | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,param_2,piVar1); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f610264) | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f608118(void) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f610158(); | |
if (piVar1 == DAT_8f69d118) { | |
_DAT_0b002004 = 0xf0; | |
_DAT_0b002000 = 1; | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
void FUN_8f608154(void) | |
{ | |
int *piVar1; | |
uint uVar2; | |
undefined4 uVar3; | |
undefined4 extraout_r1; | |
undefined4 uVar4; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
uVar5 = FUN_8f610268(); | |
uVar4 = (undefined4)((ulonglong)uVar5 >> 0x20); | |
uVar2 = (uint)uVar5; | |
if (uVar2 < 0x1ad) { | |
uVar3 = (**(code **)(&DAT_8f687330 + uVar2 * 8))(*(undefined4 *)(&DAT_8f687334 + uVar2 * 8)); | |
FUN_8f6102a8(uVar2); | |
uVar4 = extraout_r1; | |
} | |
else { | |
uVar3 = 0; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar3,uVar4,piVar1); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6083f4) | |
void FUN_8f608394(uint param_1,byte *param_2,int param_3) | |
{ | |
byte *pbVar1; | |
if (param_3 != 0) { | |
pbVar1 = param_2 + param_3; | |
do { | |
param_2 = param_2 + 1; | |
} while (param_2 != pbVar1); | |
} | |
return; | |
} | |
void FUN_8f6083f8(undefined4 param_1,undefined4 param_2,int **param_3) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
undefined4 extraout_r1; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
uVar3 = FUN_8f616b54((int *)(s__keymaster_8f65bc7f + 1),param_2,param_3); | |
DAT_8f688098 = (int *)uVar3; | |
if ((int)DAT_8f688098 < 1) { | |
dprintf((byte *)s_Failure_to_load_TZ_app__lksecapp_8f65bc8c,DAT_8f688098,param_3,&DAT_8f688098); | |
uVar3 = CONCAT44(extraout_r1,DAT_8f688098); | |
uVar2 = 0xffffffff; | |
} | |
else { | |
uVar2 = 0; | |
DAT_8f68809c = 1; | |
} | |
DAT_8f688098 = (int *)uVar3; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,(int)((ulonglong)uVar3 >> 0x20),piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6084b4) | |
void FUN_8f608478(void) | |
{ | |
return; | |
} | |
void FUN_8f6084b8(void) | |
{ | |
int iVar1; | |
int *piVar2; | |
int *extraout_r1; | |
undefined4 uVar3; | |
int **ppiVar4; | |
undefined4 local_1c; | |
int *local_18; | |
int *local_14; | |
uVar3 = 4; | |
local_1c = 0x10e; | |
ppiVar4 = &local_18; | |
local_14 = DAT_8f69d118; | |
local_18 = (int *)0x0; | |
iVar1 = FUN_8f617098(DAT_8f688098,&local_1c,(int *)&DAT_00000004,ppiVar4,(int *)&DAT_00000004); | |
if ((iVar1 < 0) || ((int)local_18 < 0)) { | |
dprintf((byte *)s_Failed_to_send_delete_keys_comma_8f65bcbc,local_18,uVar3,ppiVar4); | |
uVar3 = 0xffffffff; | |
piVar2 = extraout_r1; | |
} | |
else { | |
uVar3 = 0; | |
piVar2 = local_18; | |
} | |
if (local_14 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar3,piVar2,local_14); | |
} | |
return; | |
} | |
void FUN_8f608548(void) | |
{ | |
int iVar1; | |
uint uVar2; | |
int iVar3; | |
int *piVar4; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
int *extraout_r1_01; | |
undefined4 extraout_r1_02; | |
undefined4 uVar5; | |
int **ppiVar6; | |
undefined8 uVar7; | |
undefined4 local_1c; | |
int *local_18; | |
int *local_14; | |
uVar5 = 4; | |
local_1c = 0x204; | |
ppiVar6 = &local_18; | |
local_14 = DAT_8f69d118; | |
local_18 = (int *)0x0; | |
iVar1 = FUN_8f617098(DAT_8f688098,&local_1c,(int *)&DAT_00000004,ppiVar6,(int *)&DAT_00000004); | |
if ((iVar1 < 0) || ((int)local_18 < 0)) { | |
dprintf((byte *)s_Failed_to_send_milestone_end_com_8f65bcec,local_18,uVar5,ppiVar6); | |
iVar1 = -1; | |
uVar5 = extraout_r1_02; | |
} | |
else { | |
uVar7 = FUN_8f6178c4(); | |
uVar2 = (uint)uVar7; | |
iVar3 = FUN_8f6161c8(uVar2,(int)((ulonglong)uVar7 >> 0x20)); | |
if (iVar3 == 0) { | |
dprintf((byte *)s_send_milestone_call_to_tz__TZ_di_8f65bd70,(int *)(uVar2 >> 0x16), | |
(uVar2 << 10) >> 0x16,uVar2 & 0x3ff); | |
uVar5 = extraout_r1_00; | |
} | |
else { | |
uVar7 = FUN_8f615698(0xb); | |
piVar4 = (int *)((ulonglong)uVar7 >> 0x20); | |
if ((int)uVar7 != 0) { | |
dprintf((byte *)s_send_milestone_call_to_tz__set_t_8f65bd20,piVar4,uVar5,ppiVar6); | |
piVar4 = extraout_r1_01; | |
} | |
dprintf((byte *)s_Success_8f65bdd8,piVar4,uVar5,ppiVar6); | |
iVar1 = 0; | |
uVar5 = extraout_r1; | |
} | |
} | |
if (local_14 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar1,uVar5,local_14); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f608674) | |
void FUN_8f608638(void) | |
{ | |
return; | |
} | |
void FUN_8f608678(int *param_1,int param_2,int param_3) | |
{ | |
int *piVar1; | |
undefined4 extraout_r1; | |
int *in_lr; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f6366a8((int *)0x40,param_3 + 0x3fU & 0xffffffc0); | |
*param_1 = (int)uVar2; | |
if ((int)uVar2 == 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_rpm_ipc_c_8f65bde4,0x29); | |
uVar2 = CONCAT44(extraout_r1,*param_1); | |
} | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f63685c((undefined4 *)uVar2,(undefined4 *)(param_2 + 8),param_3); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((undefined4 *)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f608764) | |
void FUN_8f608714(int *param_1,undefined4 param_2) | |
{ | |
if (*param_1 != 0) { | |
FUN_8f636758(*param_1); | |
return; | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f60879c) | |
void FUN_8f608768(undefined4 *param_1,int param_2,int *param_3) | |
{ | |
uint *puVar1; | |
int extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
int extraout_r1_02; | |
undefined4 uVar2; | |
uint uVar3; | |
int *in_lr; | |
undefined8 uVar4; | |
uint local_48; | |
uint local_44; | |
int local_40; | |
int local_3c; | |
int *local_38; | |
undefined4 local_34; | |
undefined4 local_30; | |
int local_2c; | |
undefined4 *local_28; | |
int *local_24; | |
local_48 = 0; | |
local_24 = DAT_8f69d118; | |
if (param_3 == (int *)0x0) { | |
local_30 = param_1[1]; | |
local_34 = *param_1; | |
DAT_8f6880a0 = DAT_8f6880a0 + 1; | |
local_40 = param_2 + 0x14; | |
local_44 = 0x716572; | |
local_3c = DAT_8f6880a0; | |
local_38 = param_3; | |
local_2c = param_2; | |
FUN_8f608678((int *)&local_28,(int)param_1,param_2); | |
uVar3 = local_2c + 0x28; | |
puVar1 = (uint *)FUN_8f63666c(uVar3,extraout_r1_00); | |
if (puVar1 == (uint *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_rpm_smd_c_8f65be3c,0x4d); | |
} | |
FUN_8f63685c(puVar1,&local_44,8); | |
FUN_8f63685c(puVar1 + 2,&local_3c,0x14); | |
FUN_8f63685c(puVar1 + 7,local_28,param_2); | |
uVar2 = FUN_8f608df4((int)&DAT_8f69d124,puVar1,uVar3); | |
FUN_8f608824(&local_48); | |
FUN_8f608d8c((int)&DAT_8f69d124); | |
FUN_8f636758((int)puVar1); | |
FUN_8f608714((int *)&local_28,extraout_r1_01); | |
param_2 = extraout_r1_02; | |
} | |
else if (param_3 == (int *)0x1) { | |
local_40 = 8; | |
local_44 = 0x646d63; | |
FUN_8f608678(&local_3c,(int)param_1,param_2); | |
uVar4 = FUN_8f608df4((int)&DAT_8f69d124,&local_44,0xc); | |
uVar2 = (undefined4)uVar4; | |
FUN_8f608714(&local_3c,(int)((ulonglong)uVar4 >> 0x20)); | |
param_2 = extraout_r1; | |
} | |
else { | |
uVar2 = 0; | |
} | |
if (local_24 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,param_2,local_24); | |
} | |
return; | |
} | |
void FUN_8f608824(uint *param_1) | |
{ | |
undefined4 uVar1; | |
int *extraout_r1; | |
int *extraout_r1_00; | |
int *piVar2; | |
int iVar3; | |
int local_20; | |
int local_1c; | |
int *local_c; | |
local_c = DAT_8f69d118; | |
FUN_8f608b90((int)&DAT_8f69d124,param_1,0xf,&local_20); | |
FUN_8f625b4c((uint)&local_20,8); | |
if (((local_20 == 0x646d63) || (iVar3 = 0x716572, local_20 == 0x716572)) && | |
(iVar3 = local_1c, local_1c == 0xc)) { | |
uVar1 = 0x14; | |
piVar2 = extraout_r1; | |
} | |
else { | |
dprintf((byte *)s_Received_ERROR_ACK_8f65be24,extraout_r1,local_20,iVar3); | |
uVar1 = 1; | |
piVar2 = extraout_r1_00; | |
} | |
if (local_c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar1,piVar2,local_c); | |
} | |
void FUN_8f608a7c(undefined4 *param_1,uint param_2) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
uint extraout_r1; | |
int iVar3; | |
undefined4 *puVar4; | |
piVar1 = DAT_8f69d118; | |
iVar3 = 0x40; | |
puVar4 = DAT_8f69d190; | |
do { | |
if (*(byte *)(puVar4 + 6) == param_2) { | |
FUN_8f63685c(param_1,puVar4,0x20); | |
uVar2 = 0; | |
param_2 = extraout_r1; | |
goto LAB_8f608ad0; | |
} | |
iVar3 = iVar3 + -1; | |
puVar4 = puVar4 + 8; | |
} while (iVar3 != 0); | |
uVar2 = 0xffffffff; | |
LAB_8f608ad0: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,param_2,piVar1); | |
} | |
void FUN_8f608af4(undefined4 *param_1,uint param_2) | |
{ | |
undefined4 uVar1; | |
undefined8 uVar2; | |
undefined8 uVar3; | |
uint local_1c; | |
undefined4 local_18; | |
int *local_14; | |
local_1c = 0; | |
local_18 = 0; | |
local_14 = DAT_8f69d118; | |
uVar2 = FUN_8f608a7c(param_1,param_2); | |
uVar1 = (undefined4)((ulonglong)uVar2 >> 0x20); | |
if ((int)uVar2 == 0) { | |
uVar1 = FUN_8f6046bc(param_1[5] + 0xe & 0xffff,&local_18); | |
param_1[0xb] = uVar1; | |
uVar3 = FUN_8f6046bc(param_1[5] + 0x152 & 0xffff,&local_1c); | |
uVar1 = (undefined4)((ulonglong)uVar3 >> 0x20); | |
param_1[10] = local_1c >> 1; | |
param_1[8] = (int)uVar3; | |
param_1[9] = (int)uVar3 + (local_1c >> 1); | |
} | |
if (local_14 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,uVar1,local_14); | |
} | |
void FUN_8f608b90(int param_1,uint *param_2,undefined4 param_3,undefined4 *param_4) | |
{ | |
undefined4 *puVar1; | |
uint uVar2; | |
undefined4 uVar3; | |
uint uVar4; | |
undefined4 extraout_r1; | |
uint uVar5; | |
char *pcVar6; | |
undefined4 *puVar7; | |
uint *puVar8; | |
uint *puVar9; | |
undefined4 *puVar10; | |
uint *puVar11; | |
int *in_lr; | |
uint uVar12; | |
uint local_3c; | |
uint local_38 [5]; | |
int *local_24; | |
puVar9 = &local_3c; | |
local_3c = 0; | |
local_24 = DAT_8f69d118; | |
pcVar6 = (char *)DAT_8f69d118; | |
puVar7 = param_4; | |
uVar2 = FUN_8f6046bc(*(int *)(param_1 + 0x14) + 0xeU & 0xffff,puVar9); | |
*(uint *)(param_1 + 0x2c) = uVar2; | |
if (uVar2 == 0) { | |
dprintf((byte *)s__s__unable_to_find_index_in_smem_8f65be74,(int *)s_smd_read_8f65be68,pcVar6, | |
puVar7); | |
pcVar6 = s_platform_msm_shared_smd_c_8f65be98; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_smd_c_8f65be98,0xf5); | |
uVar2 = *(uint *)(param_1 + 0x2c); | |
} | |
if (*(int *)(uVar2 + 0x30) != 0) goto LAB_8f608c00; | |
dprintf((byte *)s__s__DTR_is_off_8f65beb4,(int *)s_smd_read_8f65be68,pcVar6,0); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_smd_c_8f65be98,0xfb); | |
while( true ) { | |
uVar2 = *(uint *)(param_1 + 0x2c); | |
LAB_8f608c00: | |
uVar5 = *(uint *)(uVar2 + 0x50); | |
if (0x13 < *(int *)(uVar2 + 0x54) - uVar5) break; | |
FUN_8f625b4c(uVar2,local_3c); | |
} | |
puVar11 = *(uint **)(param_1 + 0x24); | |
uVar12 = *(uint *)(param_1 + 0x28); | |
puVar8 = (uint *)((int)puVar11 + uVar5); | |
do { | |
uVar4 = *puVar8; | |
uVar5 = uVar5 + 4; | |
if (uVar5 < uVar12) { | |
puVar8 = puVar8 + 1; | |
} | |
puVar9 = puVar9 + 1; | |
*puVar9 = uVar4; | |
if (uVar12 <= uVar5) { | |
uVar5 = 0; | |
puVar8 = puVar11; | |
} | |
} while (puVar9 != local_38 + 4); | |
*(uint *)(uVar2 + 0x50) = uVar5; | |
FUN_8f625b4c((uint)local_38,0x14); | |
uVar5 = *(uint *)(param_1 + 0x2c); | |
*param_2 = local_38[0]; | |
uVar2 = *(uint *)(uVar5 + 0x50); | |
if (*(int *)(uVar5 + 0x54) - uVar2 < local_38[0]) { | |
do { | |
FUN_8f625b4c(uVar5,local_3c); | |
uVar5 = *(uint *)(param_1 + 0x2c); | |
uVar2 = *(uint *)(uVar5 + 0x50); | |
} while (*(int *)(uVar5 + 0x54) - uVar2 < local_38[0]); | |
} | |
puVar10 = *(undefined4 **)(param_1 + 0x24); | |
puVar7 = (undefined4 *)((int)puVar10 + uVar2); | |
puVar1 = param_4; | |
uVar12 = local_38[0]; | |
while (uVar12 != 0) { | |
uVar2 = uVar2 + 4; | |
uVar12 = uVar12 - 4; | |
*puVar1 = *puVar7; | |
if (uVar2 < *(uint *)(param_1 + 0x28)) { | |
puVar7 = puVar7 + 1; | |
puVar1 = puVar1 + 1; | |
} | |
else { | |
uVar2 = 0; | |
puVar7 = puVar10; | |
puVar1 = puVar1 + 1; | |
} | |
} | |
*(uint *)(uVar5 + 0x50) = uVar2; | |
uVar3 = FUN_8f625b4c((uint)param_4,local_38[0]); | |
if (local_24 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar3,extraout_r1,local_24); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f608d8c(int param_1) | |
{ | |
int *piVar1; | |
int iVar2; | |
piVar1 = DAT_8f69d118; | |
iVar2 = *(int *)(param_1 + 0x2c); | |
*(undefined4 *)(iVar2 + 0x40) = 0; | |
*(undefined4 *)(iVar2 + 0x18) = 1; | |
*(undefined4 *)(iVar2 + 0x20) = 1; | |
DataSynchronizationBarrier(0xf); | |
_DAT_0b111008 = 1; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,1,piVar1); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f608df4(int param_1,uint *param_2,uint param_3) | |
{ | |
uint *puVar1; | |
undefined4 uVar2; | |
undefined4 extraout_r1; | |
uint *puVar3; | |
undefined4 uVar4; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
char *pcVar5; | |
uint *puVar6; | |
char *pcVar7; | |
uint uVar8; | |
uint uVar9; | |
int iVar10; | |
uint *puVar11; | |
int *in_lr; | |
undefined4 local_3c; | |
uint local_38; | |
uint local_34 [4]; | |
int *local_24; | |
local_3c = 0; | |
local_24 = DAT_8f69d118; | |
FUN_8f636968(&local_38,0,0x14); | |
pcVar7 = *(char **)(param_1 + 0x28); | |
pcVar5 = (char *)(param_3 + 0x14); | |
if (pcVar7 < pcVar5) { | |
dprintf((byte *)s__s__len_is_greater_than_fifo_sz_8f65bec4,(int *)s_smd_write_8f65bfac,pcVar5, | |
pcVar7); | |
uVar2 = 0xffffffff; | |
uVar4 = extraout_r1_00; | |
} | |
else { | |
puVar1 = (uint *)FUN_8f6046bc(*(int *)(param_1 + 0x14) + 0xeU & 0xffff,&local_3c); | |
*(uint **)(param_1 + 0x2c) = puVar1; | |
if (puVar1 == (uint *)0x0) { | |
dprintf((byte *)s__s__unable_to_find_index_in_smem_8f65be74,(int *)s_smd_write_8f65bfac,pcVar5 | |
,pcVar7); | |
pcVar5 = s_platform_msm_shared_smd_c_8f65be98; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_smd_c_8f65be98,0x13b); | |
puVar1 = *(uint **)(param_1 + 0x2c); | |
} | |
uVar8 = *puVar1; | |
if ((uVar8 == 2) && (uVar8 = puVar1[0xb] - 2, uVar8 < 2)) { | |
if (puVar1[1] == 0) { | |
dprintf((byte *)s__s__DTR_is_off_8f65beb4,(int *)s_smd_write_8f65bfac,pcVar5,0); | |
uVar2 = 0xffffffff; | |
uVar4 = extraout_r1_01; | |
} | |
else { | |
puVar11 = *(uint **)(param_1 + 0x20); | |
uVar9 = puVar1[10]; | |
puVar6 = &local_38; | |
puVar3 = (uint *)((int)puVar11 + uVar9); | |
puVar1[0x11] = 0; | |
uVar8 = param_3; | |
while( true ) { | |
*puVar3 = uVar8; | |
uVar9 = uVar9 + 4; | |
if (uVar9 < *(uint *)(param_1 + 0x28)) { | |
puVar3 = puVar3 + 1; | |
} | |
else { | |
uVar9 = 0; | |
puVar3 = puVar11; | |
} | |
if (puVar6 == local_34 + 3) break; | |
puVar6 = puVar6 + 1; | |
uVar8 = *puVar6; | |
} | |
puVar1[10] = uVar9; | |
puVar3 = (uint *)((int)puVar11 + uVar9); | |
uVar8 = param_3; | |
if (param_3 != 0) { | |
do { | |
uVar9 = uVar9 + 4; | |
uVar8 = uVar8 - 4; | |
*puVar3 = *param_2; | |
if (uVar9 < *(uint *)(param_1 + 0x28)) { | |
puVar3 = puVar3 + 1; | |
} | |
else { | |
uVar9 = 0; | |
puVar3 = puVar11; | |
} | |
param_2 = param_2 + 1; | |
} while (uVar8 != 0); | |
} | |
puVar1[10] = uVar9; | |
DataSynchronizationBarrier(0xf); | |
iVar10 = *(int *)(param_1 + 0x2c); | |
uVar4 = 1; | |
*(undefined4 *)(iVar10 + 0x14) = 1; | |
*(undefined4 *)(iVar10 + 0x20) = 0; | |
DataSynchronizationBarrier(0xf); | |
uVar2 = 0; | |
_DAT_0b111008 = 1; | |
local_38 = param_3; | |
} | |
} | |
else { | |
dprintf((byte *)s__s__channel_is_not_in_OPEN_state_8f65bee8,(int *)s_smd_write_8f65bfac,pcVar5 | |
,uVar8); | |
uVar2 = 0xffffffff; | |
uVar4 = extraout_r1; | |
} | |
} | |
if (local_24 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,uVar4,local_24); | |
} | |
return; | |
} | |
void FUN_8f608ffc(uint *param_1,uint param_2,uint param_3) | |
{ | |
int *piVar1; | |
uint *puVar2; | |
uint uVar3; | |
uint *puVar4; | |
int *in_lr; | |
undefined4 local_20; | |
int *local_1c; | |
local_20 = 0; | |
local_1c = DAT_8f69d118; | |
puVar2 = param_1; | |
puVar4 = (uint *)param_1[0xb]; | |
if ((uint *)param_1[0xb] == (uint *)0x0) { | |
puVar2 = (uint *)FUN_8f6046bc(param_1[5] + 0xe & 0xffff,&local_20); | |
param_1[0xb] = (uint)puVar2; | |
puVar4 = puVar2; | |
if (puVar2 == (uint *)0x0) { | |
puVar2 = (uint *)FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_smd_c_8f65be98,0x171); | |
puVar4 = (uint *)param_1[0xb]; | |
} | |
} | |
uVar3 = *puVar4; | |
switch(param_2) { | |
case 0: | |
if (uVar3 != 2) { | |
puVar4[1] = 0; | |
puVar4[2] = 0; | |
puVar4[3] = 0; | |
*puVar4 = 0; | |
puVar4 = (uint *)param_1[0xb]; | |
break; | |
} | |
goto LAB_8f609068; | |
case 1: | |
if ((uVar3 & 0xfffffffb) == 0) { | |
puVar4[1] = 0; | |
puVar4[2] = 0; | |
puVar4[3] = 0; | |
puVar4[0x14] = 0; | |
puVar4[10] = 0; | |
puVar4[8] = 0; | |
*puVar4 = 1; | |
puVar4 = (uint *)param_1[0xb]; | |
} | |
break; | |
case 2: | |
if (uVar3 == 1) { | |
puVar4[1] = 1; | |
puVar4[2] = 1; | |
puVar4[3] = 1; | |
*puVar4 = 2; | |
puVar4 = (uint *)param_1[0xb]; | |
} | |
break; | |
case 4: | |
if (uVar3 != 2) break; | |
LAB_8f609068: | |
puVar4[1] = 0; | |
puVar4[2] = 0; | |
puVar4[3] = 0; | |
*puVar4 = 4; | |
puVar4 = (uint *)param_1[0xb]; | |
} | |
piVar1 = DAT_8f69d118; | |
param_1[0xc] = param_2; | |
puVar4[7] = param_3; | |
if (local_1c != piVar1) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(puVar2,local_1c,piVar1); | |
} | |
return; | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f609378(uint *param_1) | |
{ | |
int *piVar1; | |
uint uVar2; | |
uint extraout_r1; | |
uint extraout_r1_00; | |
int *extraout_r1_01; | |
uint extraout_r1_02; | |
uint uVar3; | |
uint uVar4; | |
piVar1 = DAT_8f69d118; | |
uVar4 = param_1[0xc]; | |
if (uVar4 == 0) { | |
do { | |
uVar2 = DAT_8f69d190 + uVar4; | |
uVar4 = uVar4 + 0x20; | |
FUN_8f625b4c(uVar2,0x20); | |
} while (uVar4 != 0x800); | |
if (DAT_8f69d190 != 0) { | |
FUN_8f636758(DAT_8f69d190); | |
DAT_8f69d190 = 0; | |
} | |
FUN_8f627070((int)&DAT_8f6880a4,(int *)0x0); | |
uVar2 = extraout_r1_00; | |
} | |
else { | |
uVar3 = param_1[0xb]; | |
uVar2 = *(uint *)(uVar3 + 0x2c); | |
if (*(int *)(uVar3 + 0x48) != 0) { | |
*(undefined4 *)(uVar3 + 0x48) = 0; | |
} | |
if (uVar4 != uVar2) { | |
FUN_8f608ffc(param_1,uVar2,0); | |
uVar4 = param_1[0xc]; | |
uVar2 = extraout_r1; | |
} | |
if (uVar4 == 4) { | |
FUN_8f608ffc(param_1,0,1); | |
_DAT_0b111008 = 1; | |
dprintf((byte *)s_Channel_alloc_freed_8f65bf94,extraout_r1_01,1,0xb111000); | |
uVar2 = extraout_r1_02; | |
} | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,uVar2,piVar1); | |
} | |
void FUN_8f60947c(int *param_1,int *param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
uVar3 = CONCAT44(param_2,param_1); | |
*(char *)(*param_1 + 0x2f) = (char)param_2; | |
if (((uint)*(byte *)(*param_1 + 0x2f) & (uint)param_2) == 0) { | |
LAB_8f6094dc: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
} | |
else { | |
iVar2 = 100; | |
do { | |
uVar3 = FUN_8f6104a8(1); | |
if (((uint)*(byte *)(*param_1 + 0x2f) & (uint)param_2) == 0) goto LAB_8f6094dc; | |
iVar2 = iVar2 + -1; | |
} while (iVar2 != 0); | |
if (piVar1 == DAT_8f69d118) { | |
dprintf((byte *)s_Error__sdhci_reset_failed_for____8f65bfb8,param_2,piVar1,DAT_8f69d118); | |
return; | |
} | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,(int)((ulonglong)uVar3 >> 0x20),piVar1); | |
} | |
void FUN_8f609520(int *param_1,uint param_2) | |
{ | |
int *piVar1; | |
uint uVar2; | |
int iVar3; | |
ushort uVar4; | |
int *piVar5; | |
uint uVar6; | |
uint uVar7; | |
piVar1 = DAT_8f69d118; | |
uVar7 = param_1[7]; | |
piVar5 = DAT_8f69d118; | |
if (uVar7 <= param_2) { | |
piVar5 = (int *)0x1; | |
} | |
uVar4 = (ushort)piVar5; | |
if (param_2 < uVar7) { | |
uVar6 = 2; | |
do { | |
uVar2 = FUN_8f6582ac(uVar7,uVar6); | |
if (uVar2 <= param_2) { | |
uVar4 = (ushort)((uVar6 >> 1) << 8) | 1 | (ushort)((((uVar6 >> 1) << 0x16) >> 0x1e) << 6); | |
goto LAB_8f609594; | |
} | |
uVar6 = uVar6 + 2; | |
} while (uVar6 != 0x7fe); | |
uVar4 = 0xffc1; | |
} | |
LAB_8f609594: | |
iVar3 = *param_1; | |
*(ushort *)(iVar3 + 0x2c) = uVar4; | |
do { | |
} while ((*(ushort *)(iVar3 + 0x2c) & 2) == 0); | |
*(ushort *)(iVar3 + 0x2c) = *(ushort *)(iVar3 + 0x2c) | 4; | |
piVar5 = DAT_8f69d118; | |
param_1[1] = param_2; | |
if (piVar1 == piVar5) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,iVar3,piVar1); | |
} | |
void FUN_8f6095e4(int *param_1,int *param_2) | |
{ | |
int *piVar1; | |
int *piVar2; | |
uint uVar3; | |
int iVar4; | |
ushort uVar5; | |
ushort *puVar6; | |
int *in_lr; | |
piVar1 = DAT_8f69d118; | |
iVar4 = *param_1; | |
puVar6 = (ushort *)(iVar4 + 0x3e); | |
uVar3 = *(ushort *)(iVar4 + 0x2c) & 0xfffb; | |
*(short *)(iVar4 + 0x2c) = (short)uVar3; | |
uVar5 = *(ushort *)(iVar4 + 0x3e) & 0xfff8; | |
piVar2 = param_1; | |
switch(param_2) { | |
case (int *)0x0: | |
uVar3 = 25000000; | |
break; | |
case (int *)0x1: | |
uVar5 = uVar5 | 1; | |
uVar3 = 50000000; | |
break; | |
case (int *)0x2: | |
uVar5 = uVar5 | 2; | |
uVar3 = 100000000; | |
break; | |
case (int *)0x3: | |
uVar5 = uVar5 | 3; | |
uVar3 = 200000000; | |
break; | |
case (int *)0x4: | |
uVar5 = uVar5 | 4; | |
uVar3 = 50000000; | |
break; | |
default: | |
dprintf((byte *)s_Error__Invalid_UHS_mode___x_8f65bfdc,param_2,uVar3, | |
(uint)*(ushort *)(iVar4 + 0x3e)); | |
piVar2 = (int *)FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_sdhci_c_8f65bffc,0x13d); | |
uVar3 = 0; | |
puVar6 = (ushort *)(*param_1 + 0x3e); | |
} | |
*puVar6 = uVar5; | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(piVar2,uVar3,piVar1); | |
} | |
FUN_8f609520(param_1,uVar3); | |
return; | |
} | |
void FUN_8f6096fc(int *param_1,int *param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
int *extraout_r1; | |
byte bVar3; | |
int iVar4; | |
piVar1 = DAT_8f69d118; | |
iVar4 = *param_1; | |
if (param_2 == (int *)0x1) { | |
bVar3 = 2; | |
} | |
else if (param_2 == (int *)0x0) { | |
bVar3 = 0; | |
} | |
else { | |
if (param_2 != (int *)0x2) { | |
dprintf((byte *)s_Bus_width_is_invalid___u_8f65c018,param_2,param_3,iVar4); | |
uVar2 = 1; | |
param_2 = extraout_r1; | |
goto LAB_8f609744; | |
} | |
bVar3 = 0x20; | |
} | |
uVar2 = 0; | |
*(byte *)(iVar4 + 0x28) = bVar3 | *(byte *)(iVar4 + 0x28); | |
LAB_8f609744: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,param_2,piVar1); | |
} | |
void FUN_8f609784(uint **param_1,int *param_2) | |
{ | |
ushort *puVar1; | |
int *piVar2; | |
uint uVar3; | |
char *pcVar4; | |
int *extraout_r1; | |
int *extraout_r1_00; | |
int iVar5; | |
int *extraout_r1_01; | |
int *extraout_r1_02; | |
int *extraout_r1_03; | |
int *extraout_r1_04; | |
int *extraout_r1_05; | |
int *piVar6; | |
int *extraout_r1_06; | |
int *extraout_r1_07; | |
int *extraout_r1_08; | |
int *extraout_r1_09; | |
ushort uVar8; | |
uint uVar9; | |
uint *puVar10; | |
uint uVar11; | |
uint *puVar12; | |
uint *puVar13; | |
uint *puVar14; | |
int iVar15; | |
uint uVar16; | |
char cVar17; | |
ushort uVar18; | |
uint *puVar19; | |
undefined2 uVar20; | |
uint uVar21; | |
int *in_lr; | |
bool bVar22; | |
undefined8 uVar23; | |
uint *puVar7; | |
piVar2 = DAT_8f69d118; | |
piVar6 = param_2; | |
if ((*(char *)(param_2 + 2) != '\0') && (param_2[0xd] == 0)) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_sdhci_c_8f65bffc,0x2f8); | |
piVar6 = extraout_r1_09; | |
} | |
if ((param_2[7] == 0x10) && ((param_2[0xd] & 0x3fU) != 0)) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_sdhci_c_8f65bffc,0x304); | |
piVar6 = extraout_r1_04; | |
} | |
cVar17 = '\n'; | |
while( true ) { | |
puVar13 = *param_1; | |
uVar9 = puVar13[9]; | |
if ((uVar9 & 3) == 0) break; | |
cVar17 = cVar17 + -1; | |
FUN_8f6104fc(1000); | |
piVar6 = extraout_r1; | |
if (cVar17 == '\0') { | |
dprintf((byte *)s_Error__CMD_or_DAT_lines_were_nev_8f65c074,extraout_r1,uVar9,puVar13); | |
puVar13 = (uint *)0x1; | |
piVar6 = extraout_r1_00; | |
LAB_8f609804: | |
if (piVar2 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(puVar13,piVar6,piVar2); | |
} | |
return; | |
} | |
} | |
uVar9 = (uint)*(ushort *)((int)param_2 + 10); | |
if (uVar9 == 4) { | |
uVar18 = 1; | |
LAB_8f609a14: | |
uVar18 = (ushort)*(byte *)(param_2 + 2) << 5 | (ushort)*(byte *)((int)param_2 + 9) << 6 | uVar18 | |
; | |
if (uVar9 == 4) { | |
uVar18 = uVar18 | 8; | |
} | |
else if (uVar9 < 5) { | |
if (uVar9 - 1 < 2) goto LAB_8f609854; | |
} | |
else if ((uVar9 == 0x40) || (uVar9 == 0x80)) { | |
LAB_8f609854: | |
uVar18 = uVar18 | 0x18; | |
} | |
} | |
else { | |
if (4 < uVar9) { | |
if (((uVar9 == 0x40) || (uVar9 == 0x80)) || (uVar9 == 8)) { | |
LAB_8f609a10: | |
uVar18 = 2; | |
goto LAB_8f609a14; | |
} | |
LAB_8f6099fc: | |
dprintf((byte *)s_Invalid_response_type_for_the_co_8f65c0a0,piVar6,uVar9,puVar13); | |
puVar13 = (uint *)0x1; | |
piVar6 = extraout_r1_05; | |
goto LAB_8f609804; | |
} | |
if (uVar9 == 1) goto LAB_8f609a10; | |
if (uVar9 != 0) { | |
if (uVar9 != 2) goto LAB_8f6099fc; | |
uVar18 = (ushort)*(byte *)(param_2 + 2) << 5 | (ushort)*(byte *)((int)param_2 + 9) << 6 | 3; | |
goto LAB_8f609854; | |
} | |
uVar18 = (ushort)*(byte *)(param_2 + 2) << 5 | (ushort)*(byte *)((int)param_2 + 9) << 6; | |
} | |
*(undefined *)((int)puVar13 + 0x2e) = 0xf; | |
puVar19 = (uint *)(uint)*(byte *)(param_2 + 2); | |
if (puVar19 == (uint *)0x0) { | |
puVar13 = *param_1; | |
} | |
else { | |
puVar14 = (uint *)param_2[0xf]; | |
uVar9 = param_2[0xd]; | |
if (param_2[0xe] == 0) { | |
uVar16 = (int)puVar14 << 9; | |
puVar13 = puVar14; | |
} | |
else { | |
uVar16 = (int)puVar14 * param_2[0xe]; | |
} | |
if (uVar16 < 0x10001) { | |
uVar3 = uVar9; | |
piVar6 = (int *)FUN_8f635d28(4,0x40); | |
uVar23 = FUN_8f6366a8(piVar6,0x40); | |
puVar19 = (uint *)uVar23; | |
if (puVar19 == (uint *)0x0) { | |
dprintf((byte *)s_Error_allocating_memory_8f65c0c8,(int *)((ulonglong)uVar23 >> 0x20),uVar3, | |
puVar13); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_sdhci_c_8f65bffc,0x265); | |
} | |
bVar22 = uVar16 != 0x10000; | |
if (bVar22) { | |
uVar16 = uVar16 & 0xffff; | |
} | |
uVar20 = (undefined2)uVar16; | |
if (!bVar22) { | |
uVar20 = 0; | |
} | |
iVar5 = 8; | |
puVar19[1] = uVar9; | |
*(undefined2 *)((int)puVar19 + 2) = uVar20; | |
*(undefined2 *)puVar19 = 0x23; | |
} | |
else { | |
uVar3 = uVar16 >> 0x10; | |
if (uVar16 != (uVar16 & 0xffff0000)) { | |
uVar3 = uVar3 + 1; | |
} | |
uVar21 = uVar9; | |
piVar6 = (int *)FUN_8f635d28(4,0x40); | |
iVar5 = uVar3 * 8; | |
uVar23 = FUN_8f6366a8(piVar6,iVar5 + 0x3fU & 0xffffffc0); | |
puVar19 = (uint *)uVar23; | |
if (puVar19 == (uint *)0x0) { | |
dprintf((byte *)s_Error_allocating_memory_8f65c0c8,(int *)((ulonglong)uVar23 >> 0x20),uVar21 | |
,puVar13); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_sdhci_c_8f65bffc,0x27e); | |
} | |
FUN_8f636968(puVar19,0,iVar5); | |
if (uVar3 == 1) { | |
uVar20 = 0; | |
puVar19[1] = uVar9; | |
puVar13 = puVar19; | |
} | |
else { | |
iVar15 = 0; | |
uVar21 = uVar9; | |
do { | |
*(uint *)((int)puVar19 + iVar15 + 4) = uVar21; | |
uVar21 = uVar21 + 0x10000; | |
*(undefined2 *)((int)puVar19 + iVar15 + 2) = 0; | |
*(undefined2 *)((int)puVar19 + iVar15) = 0x21; | |
iVar15 = iVar15 + 8; | |
} while (iVar15 != iVar5 + -8); | |
uVar16 = uVar16 + 0x10000 + uVar3 * -0x10000; | |
bVar22 = uVar16 < 0x10000; | |
if (bVar22) { | |
uVar16 = uVar16 & 0xffff; | |
} | |
uVar20 = (undefined2)uVar16; | |
if (!bVar22) { | |
uVar20 = 0; | |
} | |
((uint *)((int)puVar19 + iVar15))[1] = uVar9 + (uVar3 + 0xffff) * 0x10000; | |
puVar13 = (uint *)((int)puVar19 + iVar15); | |
} | |
*(undefined2 *)((int)puVar13 + 2) = uVar20; | |
*(undefined2 *)puVar13 = 0x23; | |
} | |
FUN_8f625b24((uint)puVar19,iVar5); | |
(*param_1)[0x16] = (uint)puVar19; | |
puVar13 = *param_1; | |
if (param_2[0xe] == 0) { | |
uVar20 = 0x200; | |
} | |
else { | |
uVar20 = (undefined2)param_2[0xe]; | |
} | |
*(undefined2 *)(puVar13 + 1) = uVar20; | |
*(short *)((int)puVar13 + 6) = (short)puVar14; | |
} | |
puVar13[2] = param_2[1]; | |
uVar8 = (ushort)*(byte *)(param_2 + 2); | |
if (uVar8 != 0) { | |
iVar5 = param_2[7]; | |
if (iVar5 == 1) { | |
if (*(short *)param_2 == 0x15) { | |
iVar5 = 0; | |
} | |
FUN_8f60a75c((int *)param_1,iVar5); | |
uVar8 = 0x11; | |
} | |
else { | |
FUN_8f60a75c((int *)param_1,0); | |
uVar8 = 1; | |
} | |
if (1 < (uint)param_2[0xf]) { | |
if (*(char *)(param_2 + 0x10) == '\0') { | |
if (param_2[9] == 0) { | |
uVar8 = uVar8 | 0x26; | |
} | |
else { | |
uVar8 = uVar8 | 0x2a; | |
**param_1 = param_2[0xf]; | |
} | |
} | |
else { | |
uVar8 = uVar8 | 0x22; | |
} | |
} | |
} | |
puVar14 = *param_1; | |
uVar16 = param_2[10]; | |
uVar9 = param_2[0xb]; | |
iVar5 = 0; | |
*(ushort *)(puVar14 + 3) = uVar8; | |
if ((uVar16 | uVar9) == 0) { | |
uVar9 = 0; | |
uVar16 = 10000000; | |
} | |
*(ushort *)((int)puVar14 + 0xe) = uVar18 & 0xff | *(short *)param_2 << 8; | |
while( true ) { | |
puVar7 = puVar14 + 0xc; | |
if (((*(ushort *)(puVar14 + 0xc) & 1) != 0) && | |
(uVar3 = *(ushort *)((int)puVar14 + 0x32) & 1, (*(ushort *)((int)puVar14 + 0x32) & 1) == 0)) | |
break; | |
puVar10 = param_1[3]; | |
if ((*(ushort *)(puVar14 + 0xc) & 0x8000) != 0) { | |
if (puVar10 == (uint *)0x0) { | |
puVar12 = (uint *)(*(ushort *)((int)puVar14 + 0x32) & 0x10); | |
puVar13 = puVar12; | |
if ((*(ushort *)((int)puVar14 + 0x32) & 0x10) == 0) goto LAB_8f609c58; | |
goto LAB_8f609924; | |
} | |
LAB_8f609974: | |
puVar12 = (uint *)(uint)*(ushort *)((int)puVar14 + 0x32); | |
if ((*(ushort *)((int)puVar14 + 0x32) & 0xf) == 0) goto LAB_8f609924; | |
LAB_8f609980: | |
FUN_8f60947c((int *)param_1,(int *)&DAT_00000006); | |
puVar13 = (uint *)0x1; | |
piVar6 = extraout_r1_02; | |
goto LAB_8f609990; | |
} | |
puVar12 = puVar14; | |
if (puVar10 != (uint *)0x0) goto LAB_8f609974; | |
LAB_8f609924: | |
puVar14 = puVar12; | |
iVar5 = iVar5 + 1; | |
FUN_8f6104fc(1); | |
if (iVar5 == 9000000) { | |
pcVar4 = s_Error__Command_never_completed_8f65c0e4; | |
piVar6 = extraout_r1_01; | |
puVar12 = puVar10; | |
LAB_8f609c44: | |
dprintf((byte *)pcVar4,piVar6,puVar12,puVar14); | |
puVar14 = *param_1; | |
puVar12 = (uint *)0x0; | |
puVar7 = puVar14 + 0xc; | |
puVar13 = (uint *)0x1; | |
goto LAB_8f609c58; | |
} | |
puVar14 = *param_1; | |
} | |
cVar17 = '\x01'; | |
*(ushort *)puVar7 = 1; | |
if (*(short *)((int)param_2 + 10) == 4) { | |
while( true ) { | |
uVar11 = uVar3 & 0xff; | |
uVar21 = puVar14[uVar11 + 4]; | |
param_2[uVar11 + 3] = uVar21 << 8; | |
if ((uVar11 != 0) && | |
(param_2[uVar11 + 3] = uVar21 << 8 | puVar14[uVar11 + 3] >> 0x18, cVar17 == '\x04')) break; | |
cVar17 = cVar17 + '\x01'; | |
uVar3 = uVar3 + 1; | |
} | |
puVar14 = *param_1; | |
} | |
else { | |
param_2[3] = puVar14[4]; | |
} | |
puVar12 = (uint *)(uint)*(byte *)(param_2 + 2); | |
if ((puVar12 == (uint *)0x0) && (*(short *)((int)param_2 + 10) != 2)) { | |
puVar7 = puVar14 + 0xc; | |
puVar13 = puVar12; | |
} | |
else { | |
uVar3 = 0; | |
uVar21 = 0; | |
while( true ) { | |
puVar7 = puVar14 + 0xc; | |
if ((*(ushort *)(puVar14 + 0xc) & 2) != 0) break; | |
puVar12 = param_1[3]; | |
if ((*(ushort *)(puVar14 + 0xc) & 0x8000) != 0) { | |
if (puVar12 != (uint *)0x0) goto LAB_8f609e10; | |
puVar12 = (uint *)(*(ushort *)((int)puVar14 + 0x32) & 0x10); | |
puVar13 = puVar12; | |
if ((*(ushort *)((int)puVar14 + 0x32) & 0x10) != 0) goto LAB_8f609dc8; | |
goto LAB_8f609c58; | |
} | |
if (puVar12 != (uint *)0x0) { | |
LAB_8f609e10: | |
puVar1 = (ushort *)((int)puVar14 + 0x32); | |
puVar14 = (uint *)(uint)*puVar1; | |
if ((*puVar1 & 0x30) != 0) goto LAB_8f609980; | |
} | |
LAB_8f609dc8: | |
bVar22 = 0xfffffffe < uVar3; | |
uVar3 = uVar3 + 1; | |
uVar21 = uVar21 + bVar22; | |
FUN_8f6104fc(1); | |
if (uVar21 == uVar9 && uVar3 == uVar16) { | |
pcVar4 = s_Error__Transfer_never_completed_8f65c104; | |
piVar6 = extraout_r1_08; | |
goto LAB_8f609c44; | |
} | |
puVar14 = *param_1; | |
} | |
puVar12 = (uint *)0x1; | |
*(ushort *)puVar7 = 2; | |
puVar13 = (uint *)0x0; | |
} | |
LAB_8f609c58: | |
piVar6 = (int *)(uint)*(ushort *)puVar7; | |
if ((*(ushort *)puVar7 & 0x8000) != 0) { | |
if (((*(ushort *)((int)puVar14 + 0x32) & 0x10) == 0) || (puVar12 == (uint *)0x0)) { | |
uVar18 = *(ushort *)((int)puVar14 + 0x32); | |
uVar9 = (uint)uVar18; | |
if ((uVar18 & 1) == 0) { | |
if ((uVar18 & 2) == 0) { | |
if ((uVar18 & 4) == 0) { | |
if ((uVar18 & 8) == 0) { | |
if ((uVar18 & 0x10) == 0) { | |
if ((uVar18 & 0x20) == 0) { | |
if ((uVar18 & 0x40) == 0) { | |
if ((uVar18 & 0x80) == 0) { | |
if ((uVar18 & 0x100) == 0) { | |
if ((uVar18 & 0x200) == 0) goto LAB_8f609ce8; | |
dprintf((byte *)s_Error__ADMA_error_8f65c224,piVar6,puVar12,uVar9); | |
} | |
else { | |
dprintf((byte *)s_Error__Auto_CMD12_error_8f65c208,piVar6,puVar12,uVar9); | |
} | |
} | |
else { | |
dprintf((byte *)s_Error__Current_limit_error_8f65c1ec,piVar6,puVar12,uVar9); | |
} | |
} | |
else { | |
dprintf((byte *)s_Error__DATA_end_bit_error_8f65c1d0,piVar6,puVar12,uVar9); | |
} | |
} | |
else { | |
dprintf((byte *)s_Error__DATA_CRC_error_8f65c1b8,piVar6,puVar12,uVar9); | |
} | |
} | |
else { | |
dprintf((byte *)s_Error__DATA_time_out_error_8f65c19c,piVar6,puVar12,uVar9); | |
} | |
} | |
else { | |
dprintf((byte *)s_Error__Command_Index_error_8f65c180,piVar6,puVar12,uVar9); | |
} | |
} | |
else { | |
dprintf((byte *)s_Error__CMD_end_bit_error_8f65c164,piVar6,puVar12,uVar9); | |
} | |
} | |
else { | |
dprintf((byte *)s_Error__Command_CRC_error_8f65c148,piVar6,puVar12,uVar9); | |
} | |
} | |
else { | |
dprintf((byte *)s_Error__Command_timeout_error_8f65c128,piVar6,puVar12,uVar9); | |
} | |
puVar13 = (uint *)0x1; | |
} | |
else { | |
puVar13 = (uint *)0x0; | |
} | |
LAB_8f609ce8: | |
FUN_8f60947c((int *)param_1,(int *)&DAT_00000006); | |
piVar6 = extraout_r1_06; | |
} | |
if (puVar13 == (uint *)0x0) { | |
if (param_2[7] == 1) { | |
puVar13 = (uint *)0x0; | |
if (param_2[0xe] == 0) { | |
iVar5 = param_2[0xf] << 9; | |
} | |
else { | |
iVar5 = param_2[0xf] * param_2[0xe]; | |
} | |
FUN_8f625b4c(param_2[0xd],iVar5); | |
piVar6 = extraout_r1_07; | |
} | |
} | |
else { | |
puVar13 = (uint *)0x1; | |
} | |
LAB_8f609990: | |
if (puVar19 != (uint *)0x0) { | |
FUN_8f636758((int)puVar19); | |
piVar6 = extraout_r1_03; | |
} | |
goto LAB_8f609804; | |
} | |
void FUN_8f609fbc(int *param_1) | |
{ | |
int *piVar1; | |
byte bVar2; | |
uint uVar3; | |
int iVar4; | |
int iVar5; | |
uint uVar6; | |
byte bVar7; | |
uint uVar8; | |
bool bVar9; | |
piVar1 = DAT_8f69d118; | |
iVar5 = *param_1; | |
uVar6 = *(uint *)(iVar5 + 0x40); | |
iVar4 = *(int *)(iVar5 + 0x44); | |
uVar8 = (uVar6 << 0x10) >> 0x18; | |
param_1[8] = (uVar6 << 0xe) >> 0x1e; | |
uVar3 = uVar8 * 1000000; | |
param_1[7] = uVar3; | |
if ((uVar6 & 0x40000) != 0) { | |
uVar3 = 1; | |
*(undefined *)(param_1 + 9) = 1; | |
} | |
if ((uVar6 & 0x80000) != 0) { | |
uVar3 = 1; | |
*(undefined *)((int)param_1 + 0x25) = 1; | |
} | |
if ((uVar6 & 0x1000000) == 0) { | |
if ((uVar6 & 0x2000000) == 0) { | |
bVar9 = (uVar6 & 0x4000000) == 0; | |
if (bVar9) { | |
uVar3 = (uint)*(byte *)((int)param_1 + 0x26); | |
} | |
else { | |
uVar6 = 5; | |
uVar8 = 0xb; | |
} | |
bVar7 = (byte)uVar8; | |
if (!bVar9) { | |
uVar3 = 10; | |
} | |
bVar2 = (byte)uVar3; | |
if (bVar9) { | |
bVar2 = (byte)(uVar3 << 1); | |
bVar7 = bVar2 | 1; | |
} | |
else { | |
*(char *)((int)param_1 + 0x26) = (char)uVar6; | |
} | |
} | |
else { | |
bVar7 = 0xd; | |
*(undefined *)((int)param_1 + 0x26) = 6; | |
bVar2 = 0xc; | |
} | |
} | |
else { | |
bVar7 = 0xf; | |
bVar2 = 0xe; | |
*(undefined *)((int)param_1 + 0x26) = 7; | |
} | |
*(byte *)(param_1 + 10) = (byte)((uint)(iVar4 << 0x1d) >> 0x1f); | |
*(byte *)((int)param_1 + 0x29) = (byte)iVar4 & 1; | |
*(byte *)((int)param_1 + 0x2a) = (byte)((uint)(iVar4 << 0x1e) >> 0x1f); | |
uVar6 = *(uint *)(*(int *)param_1[0xc] + 0x50); | |
uVar3 = uVar6 >> 0x1c; | |
uVar8 = uVar6 & 0xff; | |
*(byte *)(param_1 + 4) = (byte)(uVar6 >> 0x1c); | |
*(short *)((int)param_1 + 0x12) = (short)uVar8; | |
if ((uVar3 != 1) || (0x33 < uVar8)) { | |
uVar3 = 0; | |
} | |
param_1[5] = uVar3; | |
*(byte *)(iVar5 + 0x29) = bVar2; | |
*(byte *)(*param_1 + 0x29) = bVar7; | |
FUN_8f627034(param_1[6],uVar8); | |
FUN_8f6096fc(param_1,(int *)0x0,iVar5); | |
*(undefined *)(*param_1 + 0x28) = 0x10; | |
iVar4 = *param_1; | |
*(undefined2 *)(iVar4 + 0x34) = 0xb; | |
*(undefined2 *)(iVar4 + 0x36) = 0xffff; | |
*(undefined2 *)(iVar4 + 0x38) = 0xb; | |
*(undefined2 *)(iVar4 + 0x3a) = 0xffff; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0x10,0xb,piVar1); | |
} | |
void FUN_8f60a128(int *param_1) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined4 extraout_r1; | |
undefined4 uVar3; | |
piVar1 = DAT_8f69d118; | |
iVar2 = param_1[4]; | |
if ((*(uint *)(*param_1 + 0xe0) & 0xc) == 0) { | |
uVar3 = 1; | |
} | |
else { | |
uVar3 = 5; | |
} | |
*(undefined4 *)(*param_1 + 0xe8) = uVar3; | |
FUN_8f627070(iVar2,(int *)0x0); | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,extraout_r1,piVar1); | |
} | |
return; | |
} | |
void FUN_8f60a184(int param_1,uint param_2) | |
{ | |
int *piVar1; | |
uint uVar2; | |
piVar1 = DAT_8f69d118; | |
if (112000000 < param_2) { | |
if (param_2 < 0x7735941) { | |
uVar2 = 0x1000000; | |
goto LAB_8f60a238; | |
} | |
if (param_2 < 0x82a7441) { | |
uVar2 = 0x2000000; | |
goto LAB_8f60a238; | |
} | |
if (param_2 < 0x8f0d181) { | |
uVar2 = 0x3000000; | |
goto LAB_8f60a238; | |
} | |
if (param_2 < 0x9a7ec81) { | |
uVar2 = 0x4000000; | |
goto LAB_8f60a238; | |
} | |
if (param_2 < 0xa6e49c1) { | |
uVar2 = 0x5000000; | |
goto LAB_8f60a238; | |
} | |
if (param_2 < 0xb2564c1) { | |
uVar2 = 0x6000000; | |
goto LAB_8f60a238; | |
} | |
if (param_2 < 0xbebc201) { | |
uVar2 = 0x7000000; | |
goto LAB_8f60a238; | |
} | |
} | |
uVar2 = 0; | |
LAB_8f60a238: | |
*(uint *)(param_1 + 0x100) = uVar2 | *(uint *)(param_1 + 0x100) & 0xf8ffffff; | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,uVar2,piVar1); | |
} | |
return; | |
} | |
void FUN_8f60a26c(int *param_1,int param_2) | |
{ | |
int iVar1; | |
undefined4 uVar2; | |
undefined4 extraout_r1; | |
undefined4 uVar3; | |
undefined4 extraout_r1_00; | |
uint *puVar4; | |
int iVar5; | |
int local_5c [4]; | |
undefined4 local_4c; | |
undefined4 uStack_48; | |
undefined4 uStack_44; | |
undefined4 uStack_40; | |
undefined4 local_3c; | |
undefined4 uStack_38; | |
undefined4 uStack_34; | |
undefined4 uStack_30; | |
undefined4 local_2c; | |
undefined4 uStack_28; | |
undefined4 uStack_24; | |
undefined4 uStack_20; | |
int *local_1c; | |
uVar3 = DAT_8f65c26c; | |
local_5c[0] = DAT_8f65c238; | |
local_5c[1] = DAT_8f65c23c; | |
local_5c[2] = DAT_8f65c240; | |
local_5c[3] = DAT_8f65c244; | |
local_1c = DAT_8f69d118; | |
local_4c = DAT_8f65c248; | |
uStack_48 = DAT_8f65c24c; | |
uStack_44 = DAT_8f65c250; | |
uStack_40 = DAT_8f65c254; | |
local_3c = DAT_8f65c258; | |
uStack_38 = DAT_8f65c25c; | |
uStack_34 = DAT_8f65c260; | |
uStack_30 = DAT_8f65c264; | |
local_2c = DAT_8f65c268; | |
uStack_28 = DAT_8f65c26c; | |
uStack_24 = DAT_8f65c270; | |
uStack_20 = DAT_8f65c274; | |
*(uint *)(*param_1 + 0x100) = *(uint *)(*param_1 + 0x100) & 0xfff9ffff | 0x90000; | |
iVar1 = *param_1; | |
do { | |
} while ((*(uint *)(iVar1 + 0x100) & 0x40000) != 0); | |
iVar5 = 0x32; | |
*(uint *)(iVar1 + 0x100) = *(uint *)(iVar1 + 0x100) & 0xff0fffff | local_5c[param_2] << 0x14; | |
*(uint *)(*param_1 + 0x100) = *(uint *)(*param_1 + 0x100) | 0x40000; | |
do { | |
puVar4 = (uint *)(*param_1 + 0x100); | |
if ((*(uint *)(*param_1 + 0x100) & 0x40000) != 0) { | |
uVar2 = 0; | |
*puVar4 = *puVar4 & 0xfff7ffff | 0x20000; | |
goto LAB_8f60a34c; | |
} | |
FUN_8f6104fc(1); | |
iVar5 = iVar5 + -1; | |
uVar3 = extraout_r1; | |
} while (iVar5 != 0); | |
dprintf((byte *)s__s__clk_out_en_timed_out___08x_8f65c30c,(int *)s_sdhci_msm_config_dll_8f65c48c, | |
*(undefined4 *)(*param_1 + 0x100),*param_1); | |
uVar2 = 1; | |
uVar3 = extraout_r1_00; | |
LAB_8f60a34c: | |
if (local_1c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,uVar3,local_1c); | |
} | |
void FUN_8f60a38c(int *param_1) | |
{ | |
int *piVar1; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 uVar2; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
undefined4 extraout_r1_03; | |
int iVar3; | |
int iVar4; | |
uint uVar5; | |
piVar1 = DAT_8f69d118; | |
iVar3 = *param_1; | |
uVar5 = *(uint *)(iVar3 + 0x10c) & 2; | |
if ((*(char *)(param_1 + 4) == '\x01') && (0x41 < *(ushort *)((int)param_1 + 0x12))) { | |
*(uint *)(iVar3 + 0x100) = *(uint *)(iVar3 + 0x100) & 0xfffbffff; | |
*(uint *)(*param_1 + 0x1b4) = *(uint *)(*param_1 + 0x1b4) | 0x200000; | |
iVar3 = *param_1; | |
} | |
if (uVar5 != 0) { | |
*(uint *)(iVar3 + 0x10c) = *(uint *)(iVar3 + 0x10c) & 0xfffffffd; | |
iVar3 = *param_1; | |
} | |
*(uint *)(iVar3 + 0x100) = *(uint *)(iVar3 + 0x100) | 0x40000000; | |
*(uint *)(*param_1 + 0x100) = *(uint *)(*param_1 + 0x100) | 0x20000000; | |
FUN_8f60a184(*param_1,param_1[1]); | |
uVar2 = extraout_r1; | |
if ((*(char *)(param_1 + 4) == '\x01') && (0x41 < *(ushort *)((int)param_1 + 0x12))) { | |
iVar3 = *param_1; | |
if ((*(uint *)(iVar3 + 0x1b4) & 0x40000) == 0) { | |
iVar4 = (uint)param_1[1] / 19200000 << 2; | |
} | |
else { | |
iVar4 = (uint)param_1[1] / 19200000 << 3; | |
} | |
*(uint *)(iVar3 + 0x1b4) = *(uint *)(iVar3 + 0x1b4) & 0xfffc03ff | iVar4 << 10; | |
FUN_8f6104fc(5); | |
uVar2 = extraout_r1_03; | |
} | |
*(uint *)(*param_1 + 0x100) = *(uint *)(*param_1 + 0x100) & 0xbfffffff; | |
*(uint *)(*param_1 + 0x100) = *(uint *)(*param_1 + 0x100) & 0xdfffffff; | |
if ((*(char *)(param_1 + 4) == '\x01') && (0x41 < *(ushort *)((int)param_1 + 0x12))) { | |
FUN_8f60a184(*param_1,param_1[1]); | |
*(uint *)(*param_1 + 0x1b4) = *(uint *)(*param_1 + 0x1b4) & 0xffdfffff; | |
uVar2 = extraout_r1_02; | |
} | |
iVar3 = 0x32; | |
*(uint *)(*param_1 + 0x100) = *(uint *)(*param_1 + 0x100) | 0x10000; | |
*(uint *)(*param_1 + 0x100) = *(uint *)(*param_1 + 0x100) | 0x40000; | |
do { | |
iVar4 = *param_1; | |
if ((*(uint *)(iVar4 + 0x108) & 0x80) != 0) { | |
if (uVar5 != 0) { | |
uVar5 = 0; | |
*(uint *)(iVar4 + 0x10c) = *(uint *)(iVar4 + 0x10c) | 2; | |
} | |
goto LAB_8f60a490; | |
} | |
FUN_8f6104fc(1); | |
iVar3 = iVar3 + -1; | |
uVar2 = extraout_r1_00; | |
} while (iVar3 != 0); | |
dprintf((byte *)s__s__Failed_to_get_DLL_lock__0x_0_8f65c32c,(int *)s_sdhci_msm_init_dll_8f65c2f8, | |
*(undefined4 *)(*param_1 + 0x108),*param_1); | |
uVar5 = 1; | |
uVar2 = extraout_r1_01; | |
LAB_8f60a490: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar5,uVar2,piVar1); | |
} | |
void FUN_8f60a578(int *param_1,int *param_2) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
undefined4 extraout_r1; | |
uint uVar3; | |
uint uVar4; | |
int *piVar5; | |
piVar1 = DAT_8f69d118; | |
*(undefined4 *)(*param_1 + 0x10c) = 0xa1c; | |
*(uint *)(*param_2 + 0x78) = *(uint *)(*param_2 + 0x78) | 1; | |
*(uint *)(*param_2 + 0x78) = *(uint *)(*param_2 + 0x78) | 0x2000; | |
FUN_8f60947c(param_1,(int *)0x1); | |
if (*(char *)(param_2 + 3) != '\0') { | |
*(uint *)(*param_1 + 0x10c) = *(uint *)(*param_1 + 0x10c) | 0x18000; | |
} | |
uVar3 = *(uint *)(*param_2 + 0xdc); | |
*(uint *)(*param_2 + 0xe4) = uVar3; | |
uVar4 = *(uint *)(*param_2 + 0xe8); | |
if ((uVar3 & 3) != 0) { | |
uVar4 = uVar4 | 1; | |
} | |
if ((uVar3 & 0xc) != 0) { | |
uVar4 = uVar4 | 4; | |
} | |
*(uint *)(*param_2 + 0xe8) = uVar4; | |
FUN_8f61097c(param_2[1],FUN_8f60a128,param_2); | |
uVar2 = FUN_8f610944(param_2[1],extraout_r1); | |
piVar5 = (int *)param_1[0xc]; | |
*(undefined4 *)(*param_2 + 0xe0) = 0xf; | |
uVar3 = *(uint *)(*piVar5 + 0x50); | |
*(byte *)(param_1 + 4) = (byte)(uVar3 >> 0x1c); | |
*(short *)((int)param_1 + 0x12) = (short)(uVar3 & 0xff); | |
if ((uVar3 >> 0x1c != 0) && (1 < ((uVar3 & 0xff) - 0x11 & 0xffff))) { | |
uVar3 = *(uint *)(*param_1 + 0x40); | |
if (*(char *)((int)param_2 + 0xb) == '\x01') { | |
uVar3 = uVar3 | 0x4000000; | |
} | |
else { | |
uVar3 = uVar3 | 0x2000000; | |
} | |
*(uint *)(*param_1 + 0x11c) = uVar3; | |
} | |
piVar5 = DAT_8f69d118; | |
*(undefined *)(param_2 + 2) = 0; | |
*(undefined *)((int)param_2 + 9) = 0; | |
param_1[3] = 0; | |
if (piVar1 != piVar5) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,piVar1,piVar5); | |
} | |
return; | |
} | |
void FUN_8f60a6b0(int *param_1) | |
{ | |
int *piVar1; | |
uint uVar2; | |
int iVar3; | |
int iVar4; | |
piVar1 = DAT_8f69d118; | |
iVar4 = param_1[0xc]; | |
iVar3 = *param_1; | |
if (param_1[2] == 3) { | |
uVar2 = *(uint *)(iVar3 + 0x10c) | 0x300; | |
*(uint *)(iVar3 + 0x10c) = uVar2; | |
if ((*(char *)(iVar4 + 8) != '\0') && (*(char *)(iVar4 + 9) == '\0')) { | |
*(uint *)(*param_1 + 0x10c) = *(uint *)(*param_1 + 0x10c) & 0xffc7ffff | 0x300000; | |
uVar2 = *(uint *)(*param_1 + 0x10c) | 0x40000; | |
*(uint *)(*param_1 + 0x10c) = uVar2; | |
} | |
} | |
else { | |
*(uint *)(iVar3 + 0x10c) = *(uint *)(iVar3 + 0x10c) & 0xffc7ffff; | |
uVar2 = *(uint *)(*param_1 + 0x10c) & 0xfffbffff; | |
*(uint *)(*param_1 + 0x10c) = uVar2; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,uVar2,piVar1); | |
} | |
void FUN_8f60a75c(int *param_1,int param_2) | |
{ | |
int *piVar1; | |
uint uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = *(uint *)(*param_1 + 0x100); | |
if (param_2 == 0) { | |
uVar2 = uVar2 & 0xfffdffff | 0x80000; | |
} | |
else { | |
uVar2 = uVar2 & 0xfff7ffff | 0x20000; | |
} | |
*(uint *)(*param_1 + 0x100) = uVar2; | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,uVar2,piVar1); | |
} | |
return; | |
} | |
void FUN_8f60a7b0(uint **param_1,uint *param_2,int param_3) | |
{ | |
bool bVar1; | |
undefined8 uVar2; | |
char *pcVar3; | |
uint uVar4; | |
int iVar5; | |
int *piVar6; | |
undefined4 uVar7; | |
undefined4 extraout_r1; | |
int *extraout_r1_00; | |
int *extraout_r1_01; | |
int *extraout_r1_02; | |
uint uVar8; | |
uint uVar9; | |
uint uVar10; | |
char *pcVar11; | |
uint *puVar12; | |
uint *puVar13; | |
uint uVar14; | |
int iVar15; | |
uint uVar16; | |
int *in_lr; | |
undefined8 uVar17; | |
uint local_568; | |
uint local_54c; | |
uint local_544 [17]; | |
uint local_500 [16]; | |
undefined2 uStack_4c0; | |
int local_4bc; | |
undefined local_4b8; | |
undefined local_4b7; | |
undefined2 uStack_4b6; | |
undefined4 local_4a4; | |
char *local_48c; | |
uint local_488; | |
undefined4 local_484; | |
undefined2 uStack_478; | |
int local_474; | |
undefined local_46f; | |
undefined2 uStack_46e; | |
int local_46c; | |
uint local_42c [256]; | |
int local_2c; | |
undefined auStack_28 [4]; | |
local_2c = DAT_8f69d118; | |
FUN_8f636968(local_544 + 1,0,0x40); | |
if (param_3 != 2) { | |
uVar16 = 0x40; | |
} | |
else { | |
uVar16 = 0x80; | |
} | |
param_1[3] = (uint *)0x1; | |
pcVar11 = (char *)0x8f65c278; | |
if (param_3 != 2) { | |
pcVar11 = &DAT_8f65c4a4; | |
} | |
puVar13 = param_1[0xc]; | |
pcVar3 = (char *)FUN_8f6366a8((int *)0x40,uVar16); | |
if (pcVar3 == (char *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_sdhci_msm_c_8f65c350,0x2dd); | |
} | |
if (((*(char *)(puVar13 + 2) == '\0') || (*(char *)((int)puVar13 + 9) != '\0')) || | |
(param_1[2] != (uint *)0x3)) { | |
uVar4 = FUN_8f60a38c((int *)param_1); | |
local_54c = uVar4; | |
if (uVar4 == 0) { | |
do { | |
local_568 = 0; | |
FUN_8f636968((uint *)&uStack_4c0,0,0x48); | |
FUN_8f636968((uint *)&uStack_478,0,0x48); | |
uVar14 = 0; | |
local_544[0] = uVar4; | |
do { | |
while( true ) { | |
iVar5 = FUN_8f60a26c((int *)param_1,uVar14); | |
if (iVar5 != 0) goto LAB_8f60ac30; | |
local_4b7 = 0; | |
local_4a4 = 1; | |
local_4b8 = 1; | |
local_484 = 1; | |
local_4bc = iVar5; | |
local_48c = pcVar3; | |
local_488 = uVar16; | |
iVar5 = FUN_8f609784(param_1,(int *)&uStack_4c0); | |
if (iVar5 == 0) break; | |
local_46f = 0; | |
uVar8 = *param_2; | |
iVar5 = 0x32; | |
uStack_46e = 1; | |
local_474 = uVar8 << 0x10; | |
uStack_478 = 0xd; | |
do { | |
uVar17 = FUN_8f609784(param_1,(int *)&uStack_478); | |
uVar7 = (undefined4)((ulonglong)uVar17 >> 0x20); | |
if (((int)uVar17 == 0) && ((uint)(local_46c << 0x13) >> 0x1c == 4)) break; | |
FUN_8f6104fc(10); | |
iVar5 = iVar5 + -1; | |
uVar7 = extraout_r1; | |
} while (iVar5 != 0); | |
LAB_8f60a9a0: | |
uVar14 = uVar14 + 1; | |
if (uVar14 == 0x10) goto LAB_8f60a9ac; | |
} | |
uVar8 = uVar16; | |
uVar17 = FUN_8f636a7c(pcVar3,pcVar11,uVar16); | |
uVar7 = (undefined4)((ulonglong)uVar17 >> 0x20); | |
if ((int)uVar17 != 0) goto LAB_8f60a9a0; | |
uVar4 = local_568 + 1; | |
local_544[local_568 + 1] = uVar14; | |
uVar14 = uVar14 + 1; | |
local_568 = uVar4; | |
} while (uVar14 != 0x10); | |
LAB_8f60a9ac: | |
uVar17 = CONCAT44(uVar7,local_54c); | |
uVar14 = local_568; | |
uVar4 = local_544[0]; | |
uVar2 = CONCAT44(uVar7,local_54c); | |
if (local_568 != 0x10) goto LAB_8f60a9f4; | |
do { | |
uVar4 = uVar4 + 1 & 0xff; | |
uVar2 = uVar17; | |
if (3 < uVar4) goto LAB_8f60a9f4; | |
uVar8 = uVar4; | |
uVar17 = FUN_8f60b81c(param_1,(int *)param_2,uVar4); | |
local_54c = (uint)uVar17; | |
} while (local_54c == 0); | |
} while( true ); | |
} | |
} | |
else { | |
iVar5 = FUN_8f60a38c((int *)param_1); | |
if ((iVar5 == 0) && | |
(iVar5 = FUN_8f60a26c((int *)param_1,(uint)*(byte *)((int)param_1[0xc] + 10)), iVar5 == 0)) { | |
(*param_1)[0x40] = (*param_1)[0x40] | 1; | |
if (param_1[5] == (uint *)0x0) { | |
puVar12 = *param_1; | |
uVar17 = FUN_8f62668c(); | |
uVar7 = FUN_8f626650((int)uVar17,(int)((ulonglong)uVar17 >> 0x20)); | |
*(undefined4 *)((int)uVar17 + (int)puVar12) = uVar7; | |
iVar5 = 0x32; | |
(*param_1)[0x6d] = (*param_1)[0x6d] | 1; | |
do { | |
puVar12 = *param_1; | |
uVar4 = puVar12[0x42]; | |
if ((uVar4 & 0x800) != 0) { | |
piVar6 = (int *)0x0; | |
puVar12[0x6c] = puVar12[0x6c] | 8; | |
LAB_8f60add4: | |
*(undefined *)((int)puVar13 + 9) = 1; | |
goto LAB_8f60ac3c; | |
} | |
FUN_8f6104a8(1); | |
iVar5 = iVar5 + -1; | |
} while (iVar5 != 0); | |
dprintf((byte *)s_Error__DLL_lock_for_hs400_operat_8f65c3d4,extraout_r1_01,uVar4,puVar12); | |
} | |
else { | |
(*param_1)[0x61] = (*param_1)[0x61] & 0xfffffffe; | |
(*param_1)[0x61] = (*param_1)[0x61] & 0xffffffbf; | |
(*param_1)[0x5e] = (*param_1)[0x5e] & 0xfffffffe; | |
(*param_1)[0x5e] = (*param_1)[0x5e] | 2; | |
(*param_1)[0x61] = (*param_1)[0x61] & 0xffffffbf; | |
iVar5 = 0x32; | |
(*param_1)[0x4c] = 0x11800ec; | |
(*param_1)[0x4d] = 0x3011111; | |
(*param_1)[0x4e] = 0x1201000; | |
(*param_1)[0x4f] = 4; | |
(*param_1)[0x50] = 0xcb732020; | |
(*param_1)[0x51] = 0xb19; | |
(*param_1)[0x54] = 0x4e2; | |
(*param_1)[0x53] = 0; | |
(*param_1)[0x58] = 0x16334; | |
(*param_1)[0x4c] = (*param_1)[0x4c] | 0x10000; | |
(*param_1)[0x4c] = (*param_1)[0x4c] & 0xfffeffff; | |
(*param_1)[0x4c] = (*param_1)[0x4c] | 0x20000; | |
(*param_1)[0x4e] = (*param_1)[0x4e] | 0x10000; | |
do { | |
puVar12 = *param_1; | |
uVar4 = puVar12[0x59]; | |
if ((uVar4 & 1) != 0) { | |
piVar6 = (int *)(puVar12[0x59] & 0x7000000); | |
if (piVar6 == (int *)0x0) { | |
puVar12[0x61] = puVar12[0x61] | 0x40; | |
goto LAB_8f60add4; | |
} | |
dprintf((byte *)s_CDC_error_set_during_calibration_8f65c3ac,piVar6,uVar4,puVar12); | |
goto LAB_8f60ac30; | |
} | |
FUN_8f6104a8(1); | |
iVar5 = iVar5 + -1; | |
} while (iVar5 != 0); | |
dprintf((byte *)s_Error__Calibration_done_in_CDC_s_8f65c37c,extraout_r1_02,uVar4,puVar12); | |
} | |
} | |
} | |
LAB_8f60ac30: | |
piVar6 = (int *)0x1; | |
LAB_8f60ac3c: | |
if (DAT_8f6880c0 != 0) { | |
uStack_4b6 = 1; | |
uStack_4c0 = 0x15; | |
local_4a4 = 1; | |
local_4b8 = 1; | |
local_484 = 1; | |
local_4bc = 0; | |
local_4b7 = 0; | |
local_48c = pcVar3; | |
local_488 = uVar16; | |
FUN_8f609784(param_1,(int *)&uStack_4c0); | |
} | |
FUN_8f636758((int)pcVar3); | |
iVar5 = DAT_8f69d118; | |
param_1[3] = (uint *)0x0; | |
*(undefined *)(param_1[0xc] + 2) = 1; | |
if (local_2c == iVar5) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(piVar6,iVar5,(int *)0x1); | |
LAB_8f60a9f4: | |
piVar6 = (int *)((ulonglong)uVar2 >> 0x20); | |
local_54c = (uint)uVar2; | |
if (local_54c != 0) { | |
uVar8 = 0; | |
FUN_8f60b81c(param_1,(int *)param_2,0); | |
piVar6 = extraout_r1_00; | |
} | |
if (local_568 == 0x10) { | |
DAT_8f6880c0 = 1; | |
dprintf((byte *)s_WARNING__All_phase_passed_The_se_8f65c404,piVar6,uVar8,1); | |
} | |
else if (local_568 == 0) { | |
dprintf((byte *)s_Failed_to_get_tuned_phase_8f65c470,piVar6,uVar8,uVar14); | |
goto LAB_8f60ac30; | |
} | |
FUN_8f636968(local_42c,0,0x400); | |
FUN_8f636968(local_500,0,0x40); | |
if (local_544[1] == 0) { | |
uVar4 = local_568; | |
if (local_568 < 0x10) { | |
uVar4 = local_544[local_568]; | |
} | |
if (uVar4 == 0xf) { | |
bVar1 = true; | |
} | |
else { | |
bVar1 = false; | |
} | |
} | |
else { | |
bVar1 = false; | |
} | |
uVar4 = local_568; | |
uVar14 = local_568; | |
if (local_568 != 0) { | |
uVar8 = 1; | |
local_42c[0] = local_544[1]; | |
local_500[0] = 1; | |
if (local_568 == 1) { | |
uVar4 = 0; | |
} | |
else { | |
puVar13 = local_544 + 1; | |
iVar5 = 1; | |
uVar4 = 0; | |
do { | |
uVar14 = local_544[1] + 1; | |
puVar13 = puVar13 + 1; | |
local_544[1] = *puVar13; | |
if (uVar14 != local_544[1]) { | |
uVar4 = uVar4 + 1; | |
iVar5 = 0; | |
} | |
uVar14 = local_500[0]; | |
if (uVar8 == local_568) break; | |
iVar15 = iVar5 + uVar4 * 0x10; | |
uVar8 = uVar8 + 1; | |
iVar5 = iVar5 + 1; | |
uVar14 = local_500[uVar4]; | |
local_42c[iVar15] = local_544[1]; | |
local_500[uVar4] = uVar14 + 1; | |
uVar14 = local_500[0]; | |
} while (local_568 != uVar8); | |
} | |
} | |
if (bVar1) { | |
uVar8 = local_500[uVar4]; | |
if ((uVar8 < 0x10) && (local_42c[uVar8 + uVar4 * 0x10] = local_42c[0], 1 < uVar14)) { | |
puVar13 = local_42c; | |
uVar9 = 1; | |
do { | |
if (uVar9 == 0x10 - uVar8) break; | |
puVar13 = puVar13 + 1; | |
uVar9 = uVar9 + 1; | |
puVar13[uVar4 * 0x10 + uVar8] = *puVar13; | |
} while (uVar9 != uVar14); | |
} | |
uVar8 = uVar8 + uVar14; | |
uVar14 = 0; | |
local_500[uVar4] = uVar8; | |
local_500[0] = 0; | |
} | |
uVar9 = 0; | |
puVar13 = local_500; | |
uVar8 = 0; | |
uVar10 = 0; | |
while( true ) { | |
if (uVar8 < uVar14) { | |
uVar9 = uVar10; | |
} | |
uVar10 = uVar10 + 1; | |
if (uVar8 < uVar14) { | |
uVar8 = uVar14; | |
} | |
if (uVar4 < uVar10) break; | |
puVar13 = puVar13 + 1; | |
uVar14 = *puVar13; | |
} | |
uVar4 = uVar8 * 3 >> 2; | |
if (uVar4 != 0) { | |
uVar4 = uVar4 - 1; | |
} | |
iVar5 = uVar4 + uVar9 * 0x10; | |
uVar4 = local_42c[iVar5]; | |
if ((int)uVar4 < 0) { | |
dprintf((byte *)s_Failed_in_selecting_the_tuning_p_8f65c448,(int *)puVar13,uVar10, | |
auStack_28 + iVar5 * 4); | |
piVar6 = (int *)0x1; | |
} | |
else { | |
piVar6 = (int *)FUN_8f60a26c((int *)param_1,uVar4); | |
if (piVar6 == (int *)0x0) { | |
*(char *)((int)param_1[0xc] + 10) = (char)uVar4; | |
} | |
else { | |
piVar6 = (int *)0x0; | |
} | |
} | |
goto LAB_8f60ac3c; | |
} | |
void FUN_8f60aff0(int param_1) | |
{ | |
int *piVar1; | |
uint uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = *(uint *)(**(int **)(param_1 + 0x30) + 0x78) & 0xfffffffe; | |
*(uint *)(**(int **)(param_1 + 0x30) + 0x78) = uVar2; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,uVar2,piVar1); | |
} | |
void FUN_8f60b038(uint **param_1,int *param_2,int *param_3) | |
{ | |
int iVar1; | |
undefined8 uVar2; | |
undefined2 local_68; | |
int local_64; | |
undefined local_5f; | |
undefined2 local_5e; | |
int local_5c; | |
int *local_1c; | |
local_1c = DAT_8f69d118; | |
FUN_8f636968((uint *)&local_68,0,0x48); | |
local_68 = 0xd; | |
local_64 = *param_2 << 0x10; | |
local_5f = 0; | |
local_5e = 1; | |
uVar2 = FUN_8f609784(param_1,(int *)&local_68); | |
iVar1 = (int)uVar2; | |
if (iVar1 == 0) { | |
if (local_5c < 0) { | |
iVar1 = 1; | |
} | |
else { | |
*param_3 = local_5c; | |
} | |
} | |
if (local_1c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar1,(int)((ulonglong)uVar2 >> 0x20),local_1c); | |
} | |
return; | |
} | |
void FUN_8f60b0d0(uint **param_1,int *param_2,int param_3,int param_4,int param_5) | |
{ | |
int *extraout_r1; | |
int *extraout_r1_00; | |
int *extraout_r1_01; | |
int **ppiVar1; | |
undefined4 uVar2; | |
uint uVar3; | |
int iVar4; | |
undefined8 uVar5; | |
int *local_74; | |
undefined2 local_70; | |
uint local_6c; | |
undefined local_67; | |
undefined2 local_66; | |
int *local_24; | |
local_24 = DAT_8f69d118; | |
FUN_8f636968((uint *)&local_70,0,0x48); | |
local_70 = 6; | |
local_67 = 0; | |
uVar2 = 2; | |
local_66 = 2; | |
uVar3 = local_6c; | |
local_6c = local_6c | param_5 << 8 | param_4 << 0x10 | param_3 << 0x18; | |
uVar5 = FUN_8f609784(param_1,(int *)&local_70); | |
iVar4 = (int)uVar5; | |
if (iVar4 == 0) { | |
ppiVar1 = &local_74; | |
uVar5 = FUN_8f60b038(param_1,param_2,(int *)ppiVar1); | |
iVar4 = (int)uVar5; | |
if (iVar4 == 0) { | |
uVar3 = (uint)((int)local_74 << 0x13) >> 0x1c; | |
if (uVar3 != 4) { | |
dprintf((byte *)s_Switch_cmd_failed__Card_not_in_t_8f65c5e4,local_74,ppiVar1,uVar3); | |
iVar4 = 1; | |
} | |
if (((uint)local_74 & 0x80) != 0) { | |
dprintf((byte *)s_Switch_cmd_failed__Switch_Error__8f65c614,local_74,ppiVar1,uVar3); | |
iVar4 = 1; | |
local_74 = extraout_r1_01; | |
} | |
} | |
else { | |
dprintf((byte *)s_Get_card_status_failed_8f65c5cc,(int *)((ulonglong)uVar5 >> 0x20),ppiVar1, | |
uVar2); | |
local_74 = extraout_r1_00; | |
} | |
} | |
else { | |
dprintf((byte *)s_CMD6_send_failed_8f65c5b8,(int *)((ulonglong)uVar5 >> 0x20),uVar3,uVar2); | |
local_74 = extraout_r1; | |
} | |
if (local_24 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar4,local_74,local_24); | |
} | |
return; | |
} | |
void FUN_8f60b1e8(uint **param_1,int *param_2,int param_3) | |
{ | |
int *piVar1; | |
int *extraout_r1; | |
int *piVar2; | |
undefined4 uVar3; | |
undefined4 uVar4; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
uVar4 = 0xb7; | |
uVar3 = 3; | |
uVar5 = FUN_8f60b0d0(param_1,param_2,3,0xb7,param_3); | |
piVar2 = (int *)((ulonglong)uVar5 >> 0x20); | |
if ((int)uVar5 != 0) { | |
dprintf((byte *)s_Switch_cmd_failed_8f65c638,piVar2,uVar3,uVar4); | |
piVar2 = extraout_r1; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,piVar2,piVar1); | |
} | |
void FUN_8f60b244(uint **param_1,int *param_2) | |
{ | |
int *piVar1; | |
undefined4 extraout_r1; | |
undefined4 uVar2; | |
undefined4 uVar3; | |
uint uVar4; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
uVar2 = 3; | |
uVar3 = 0xb3; | |
uVar4 = *(byte *)((int)param_1[0x16] + 0xb3) & 0xfffffff8 | (uint)param_2; | |
uVar5 = FUN_8f60b0d0(param_1,(int *)(param_1 + 0xe),3,0xb3,uVar4); | |
if ((int)uVar5 == 0) { | |
*(char *)((int)param_1[0x16] + 0xb3) = (char)uVar4; | |
} | |
else { | |
dprintf((byte *)s_Failed_to_switch_partition_to_ty_8f65c64c,param_2,uVar2,uVar3); | |
uVar5 = CONCAT44(extraout_r1,1); | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),piVar1); | |
} | |
void FUN_8f60b2cc(uint **param_1,int param_2) | |
{ | |
undefined4 extraout_r1; | |
undefined4 uVar1; | |
undefined4 uVar2; | |
undefined8 uVar3; | |
undefined2 local_68; | |
int local_64; | |
undefined2 local_5e; | |
int *local_1c; | |
uVar1 = 0x48; | |
local_64 = param_2 << 0x10; | |
local_1c = DAT_8f69d118; | |
FUN_8f636968((uint *)&local_68,0,0x48); | |
uVar2 = 0x37; | |
local_68 = 0x37; | |
local_5e = 1; | |
uVar3 = FUN_8f609784(param_1,(int *)&local_68); | |
if ((int)uVar3 != 0) { | |
dprintf((byte *)s_Failed_Sending_CMD55_8f65c674,(int *)((ulonglong)uVar3 >> 0x20),uVar1,uVar2); | |
uVar3 = CONCAT44(extraout_r1,1); | |
} | |
if (local_1c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,(int)((ulonglong)uVar3 >> 0x20),local_1c); | |
} | |
void FUN_8f60b354(uint param_1,int *param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
int *extraout_r1; | |
int *extraout_r1_00; | |
int *extraout_r1_01; | |
int *extraout_r1_02; | |
int *extraout_r1_03; | |
int *extraout_r1_04; | |
int *extraout_r1_05; | |
uint uVar2; | |
uint uVar3; | |
piVar1 = DAT_8f69d118; | |
if ((int)param_1 < 0) { | |
dprintf((byte *)s_Attempting_to_read_or_write_beyo_8f65c68c,param_2,param_3,DAT_8f69d118); | |
uVar2 = 1; | |
param_2 = extraout_r1_04; | |
} | |
else if ((param_1 & 0x40000000) == 0) { | |
if ((param_1 & 0x20000000) == 0) { | |
if ((param_1 & 0x4000000) == 0) { | |
if ((param_1 & 0x100000) == 0) { | |
uVar2 = param_1 & 0x80000; | |
if (uVar2 == 0) { | |
uVar3 = (param_1 << 0x13) >> 0x1c; | |
if (uVar3 != 4) { | |
dprintf((byte *)s_MMC_card_is_not_in_TRAN_state_8f65c7c0,param_2,0,uVar3); | |
uVar2 = 1; | |
param_2 = extraout_r1; | |
} | |
} | |
else { | |
dprintf((byte *)s_A_generic_Device_error_8f65c7a8,param_2,uVar2,DAT_8f69d118); | |
uVar2 = 1; | |
param_2 = extraout_r1_05; | |
} | |
} | |
else { | |
dprintf((byte *)s_Device_error_occurred__which_is_n_8f65c764,param_2,param_3,DAT_8f69d118) | |
; | |
uVar2 = 1; | |
param_2 = extraout_r1_03; | |
} | |
} | |
else { | |
dprintf((byte *)s_Attempt_to_program_a_write_prote_8f65c738,param_2,param_3,DAT_8f69d118); | |
uVar2 = 1; | |
param_2 = extraout_r1_00; | |
} | |
} | |
else { | |
dprintf((byte *)s_The_transferred_bytes_does_not_m_8f65c700,param_2,param_3,DAT_8f69d118); | |
uVar2 = 1; | |
param_2 = extraout_r1_02; | |
} | |
} | |
else { | |
dprintf((byte *)s_The_misaligned_address_did_not_m_8f65c6c4,param_2,param_3,DAT_8f69d118); | |
uVar2 = 1; | |
param_2 = extraout_r1_01; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,param_2,piVar1); | |
} | |
void FUN_8f60b450(uint **param_1) | |
{ | |
int *piVar1; | |
uint extraout_r1; | |
undefined4 uVar2; | |
undefined4 uVar3; | |
ulonglong uVar4; | |
undefined2 local_60; | |
int local_5c; | |
undefined local_57; | |
undefined2 local_56; | |
uint local_54; | |
int *local_14; | |
local_14 = DAT_8f69d118; | |
FUN_8f636968((uint *)&local_60,0,0x48); | |
uVar2 = 0; | |
local_60 = 0xc; | |
local_5c = (int)param_1[0xe] << 0x10; | |
local_57 = 0; | |
uVar3 = 1; | |
local_56 = 1; | |
uVar4 = FUN_8f609784(param_1,(int *)&local_60); | |
piVar1 = (int *)(uVar4 >> 0x20); | |
if ((int)uVar4 == 0) { | |
uVar4 = FUN_8f60b354(local_54,piVar1,uVar2); | |
} | |
else { | |
dprintf((byte *)s_Failed_to_send_stop_command_8f65c7e0,piVar1,uVar2,uVar3); | |
uVar4 = uVar4 & 0xffffffff | (ulonglong)extraout_r1 << 0x20; | |
} | |
if (local_14 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)(uVar4 >> 0x20),local_14); | |
} | |
void FUN_8f60b4ec(uint **param_1,int *param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 uVar3; | |
undefined4 uVar4; | |
piVar1 = DAT_8f69d118; | |
uVar3 = 3; | |
uVar4 = 0xb9; | |
iVar2 = FUN_8f60b0d0(param_1,param_2,3,0xb9,1); | |
if (iVar2 == 0) { | |
param_1[2] = (uint *)0x1; | |
FUN_8f6095e4((int *)param_1,(int *)0x1); | |
uVar3 = extraout_r1; | |
} | |
else { | |
dprintf((byte *)s_Switch_cmd_returned_failure__d_8f65c800,(int *)0x3d5,uVar3,uVar4); | |
uVar3 = extraout_r1_00; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar2,uVar3,piVar1); | |
} | |
void FUN_8f60b568(uint **param_1,int **param_2) | |
{ | |
int *piVar1; | |
uint uVar2; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 uVar3; | |
int *piVar4; | |
piVar1 = DAT_8f69d118; | |
uVar3 = 6; | |
piVar4 = DAT_8f69d118; | |
uVar2 = FUN_8f60b1e8(param_1,(int *)param_2,6); | |
if ((uVar2 & 0xff) == 0) { | |
param_1[2] = (uint *)&DAT_00000004; | |
FUN_8f6095e4((int *)param_1,(int *)&DAT_00000004); | |
uVar3 = extraout_r1; | |
} | |
else { | |
dprintf((byte *)s_Failure_to_set_DDR_mode_for_Card_8f65c820,*param_2,uVar3,piVar4); | |
uVar3 = extraout_r1_00; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2 & 0xff,uVar3,piVar1); | |
} | |
void FUN_8f60b5e0(uint **param_1,uint **param_2) | |
{ | |
uint *puVar1; | |
int *in_lr; | |
undefined8 uVar2; | |
undefined2 local_68; | |
undefined local_60; | |
undefined local_5f; | |
undefined2 local_5e; | |
undefined4 local_4c; | |
uint *local_34; | |
undefined4 local_2c; | |
int *local_1c; | |
local_1c = DAT_8f69d118; | |
puVar1 = (uint *)FUN_8f6366a8((int *)0x40,0x200); | |
*param_2 = puVar1; | |
if (puVar1 == (uint *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_mmc_sdhci_c_8f65c84c,0x2ad); | |
puVar1 = *param_2; | |
} | |
FUN_8f636968(puVar1,0,4); | |
FUN_8f636968((uint *)&local_68,0,0x48); | |
local_34 = *param_2; | |
local_5f = 0; | |
local_5e = 1; | |
local_2c = 1; | |
local_60 = 1; | |
local_4c = 1; | |
local_68 = 8; | |
uVar2 = FUN_8f609784(param_1,(int *)&local_68); | |
if (local_1c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),local_1c); | |
} | |
void FUN_8f60b6bc(uint **param_1,int **param_2,int param_3) | |
{ | |
int *piVar1; | |
int iVar2; | |
int *extraout_r1; | |
int *piVar3; | |
int *extraout_r1_00; | |
int *extraout_r1_01; | |
int *extraout_r1_02; | |
int iVar4; | |
undefined4 uVar5; | |
undefined4 uVar6; | |
uint *puVar7; | |
undefined8 uVar8; | |
piVar1 = DAT_8f69d118; | |
iVar4 = param_3; | |
piVar3 = DAT_8f69d118; | |
iVar2 = FUN_8f60b1e8(param_1,(int *)param_2,param_3); | |
if (iVar2 == 0) { | |
uVar5 = 3; | |
uVar6 = 0xb9; | |
iVar2 = FUN_8f60b0d0(param_1,(int *)param_2,3,0xb9,2); | |
if (iVar2 == 0) { | |
FUN_8f6095e4((int *)param_1,(int *)0x3); | |
puVar7 = (uint *)(uint)*(byte *)(param_1 + 0xb); | |
if (((puVar7 != (uint *)0x0) && | |
(puVar7 = (uint *)((int)param_2[6] + -3), puVar7 < (uint *)0x2)) && | |
(puVar7 = (uint *)(uint)*(byte *)(param_2[8] + 0x31), | |
(*(byte *)(param_2[8] + 0x31) & 0xc0) != 0)) { | |
param_1[2] = (uint *)0x3; | |
FUN_8f60a6b0((int *)param_1); | |
puVar7 = param_1[0xc]; | |
FUN_8f60354c((int *)(uint)*(byte *)((int)puVar7 + 0xb),(int *)0x17d78400); | |
} | |
uVar8 = FUN_8f60a7b0(param_1,(uint *)param_2,param_3); | |
piVar3 = (int *)((ulonglong)uVar8 >> 0x20); | |
iVar2 = (int)uVar8; | |
if (iVar2 != 0) { | |
dprintf((byte *)s_Tuning_for_hs200_failed_8f65c8a8,piVar3,param_3,puVar7); | |
piVar3 = extraout_r1_01; | |
} | |
if (param_1[2] == (uint *)0x3) { | |
param_1[2] = (uint *)0x2; | |
FUN_8f60a6b0((int *)param_1); | |
FUN_8f60354c((int *)(uint)*(byte *)((int)param_1[0xc] + 0xb),(int *)0xb71b000); | |
piVar3 = extraout_r1_02; | |
} | |
else { | |
param_1[2] = (uint *)0x2; | |
} | |
} | |
else { | |
dprintf((byte *)s_Switch_cmd_returned_failure__d_8f65c800,(int *)0x375,uVar5,uVar6); | |
piVar3 = extraout_r1; | |
} | |
} | |
else { | |
dprintf((byte *)s_Failure_to_set_wide_bus_for_Card_8f65c87c,*param_2,iVar4,piVar3); | |
piVar3 = extraout_r1_00; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar2,piVar3,piVar1); | |
} | |
void FUN_8f60b81c(uint **param_1,int *param_2,uint param_3) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
if (param_2[6] - 3U < 2) { | |
if (((int)(uint)*(byte *)(param_2[8] + 0xc5) >> (param_3 & 0xff) & 1U) != 0) { | |
uVar3 = FUN_8f60b0d0(param_1,param_2,3,0xb9,param_3 << 4 | 2); | |
param_2 = (int *)((ulonglong)uVar3 >> 0x20); | |
if ((int)uVar3 != 0) goto LAB_8f60b844; | |
} | |
uVar2 = 1; | |
} | |
else { | |
LAB_8f60b844: | |
uVar2 = 0; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,param_2,piVar1); | |
} | |
return; | |
} | |
void FUN_8f60b8a4(uint **param_1,int **param_2,int *param_3) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined4 extraout_r1; | |
uint extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
undefined4 extraout_r1_03; | |
undefined4 extraout_r1_04; | |
int *piVar3; | |
undefined4 uVar4; | |
uint *puVar5; | |
ulonglong uVar6; | |
piVar1 = DAT_8f69d118; | |
if (param_3 == (int *)0x2) { | |
piVar3 = DAT_8f69d118; | |
iVar2 = FUN_8f60b6bc(param_1,param_2,2); | |
if (iVar2 == 0) { | |
param_1[2] = (uint *)0x0; | |
FUN_8f6095e4((int *)param_1,(int *)0x0); | |
iVar2 = FUN_8f60b4ec(param_1,(int *)param_2); | |
if (iVar2 == 0) { | |
iVar2 = FUN_8f60b568(param_1,param_2); | |
if (iVar2 == 0) { | |
uVar4 = 0xb9; | |
iVar2 = FUN_8f60b0d0(param_1,(int *)param_2,3,0xb9,3); | |
if (iVar2 == 0) { | |
param_1[2] = (uint *)0x3; | |
FUN_8f6095e4((int *)param_1,(int *)0x3); | |
FUN_8f60a6b0((int *)param_1); | |
puVar5 = param_1[0xc]; | |
FUN_8f60354c((int *)(uint)*(byte *)((int)puVar5 + 0xb),(int *)0x17d78400); | |
uVar6 = FUN_8f60a7b0(param_1,(uint *)param_2,2); | |
if ((int)uVar6 != 0) { | |
dprintf((byte *)s_Tuning_for_hs400_failed_8f65c988,(int *)(uVar6 >> 0x20),param_3, | |
puVar5); | |
uVar6 = uVar6 & 0xffffffff | (ulonglong)extraout_r1_00 << 0x20; | |
} | |
} | |
else { | |
dprintf((byte *)s_Switch_cmd_returned_failure__s___8f65c964, | |
(int *)s_mmc_set_hs400_mode_8f65c524,0x425,uVar4); | |
uVar6 = CONCAT44(extraout_r1_04,iVar2); | |
} | |
} | |
else { | |
dprintf((byte *)s_Failure_setting_DDR_mode__s__d_8f65c944, | |
(int *)s_mmc_set_hs400_mode_8f65c524,0x41c,piVar3); | |
uVar6 = CONCAT44(extraout_r1_03,iVar2); | |
} | |
} | |
else { | |
dprintf((byte *)s_Error_adjusting_interface_speed__8f65c91c, | |
(int *)s_mmc_set_hs400_mode_8f65c524,0x414,piVar3); | |
uVar6 = CONCAT44(extraout_r1_01,iVar2); | |
} | |
} | |
else { | |
dprintf((byte *)s_Failure_Setting_HS200_mode__s__d_8f65c8f8, | |
(int *)s_mmc_set_hs400_mode_8f65c524,0x405,piVar3); | |
uVar6 = CONCAT44(extraout_r1_02,iVar2); | |
} | |
} | |
else { | |
dprintf((byte *)s_Bus_width_is_not_8_bit__cannot_s_8f65c8c4,param_3,param_3,DAT_8f69d118); | |
uVar6 = CONCAT44(extraout_r1,1); | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar6,(int)(uVar6 >> 0x20),piVar1); | |
} | |
void FUN_8f60ba44(uint **param_1,int *param_2) | |
{ | |
int *extraout_r1; | |
int *extraout_r1_00; | |
int *extraout_r1_01; | |
int *piVar1; | |
int *extraout_r1_02; | |
int *extraout_r1_03; | |
int *extraout_r1_04; | |
int *extraout_r1_05; | |
undefined4 uVar2; | |
uint uVar3; | |
int iVar4; | |
char cVar5; | |
undefined8 uVar6; | |
undefined2 local_78; | |
undefined4 local_74; | |
undefined local_6f; | |
undefined2 local_6e; | |
uint local_6c; | |
int *local_2c; | |
uVar2 = 0x48; | |
cVar5 = '\x03'; | |
local_2c = DAT_8f69d118; | |
FUN_8f636968((uint *)&local_78,0,0x48); | |
uVar3 = 0; | |
*param_2 = 0; | |
do { | |
local_78 = 8; | |
local_74 = 0x1aa; | |
local_6f = 0; | |
local_6e = 0x80; | |
uVar6 = FUN_8f609784(param_1,(int *)&local_78); | |
if ((int)uVar6 != 0) { | |
dprintf((byte *)s_The_response_for_CMD8_does_not_m_8f65c9a4,(int *)((ulonglong)uVar6 >> 0x20), | |
uVar2,uVar3); | |
uVar2 = 1; | |
piVar1 = extraout_r1_05; | |
goto LAB_8f60bb6c; | |
} | |
if (local_6c == 0x1aa) goto LAB_8f60bae4; | |
cVar5 = cVar5 + -1; | |
uVar3 = local_6c; | |
FUN_8f6104a8(1); | |
} while (cVar5 != '\0'); | |
uVar2 = 0x1aa; | |
if (local_6c == 0x1aa) { | |
LAB_8f60bae4: | |
cVar5 = '\x14'; | |
do { | |
uVar6 = FUN_8f60b2cc(param_1,*param_2); | |
iVar4 = (int)uVar6; | |
if (iVar4 != 0) { | |
dprintf((byte *)s_Failed_sending_App_command_8f65ca00,(int *)((ulonglong)uVar6 >> 0x20), | |
uVar2,iVar4); | |
uVar2 = 1; | |
piVar1 = extraout_r1_02; | |
goto LAB_8f60bb6c; | |
} | |
local_78 = 0x29; | |
local_74 = 0x40ff8000; | |
local_6f = 0; | |
local_6e = 8; | |
uVar6 = FUN_8f609784(param_1,(int *)&local_78); | |
piVar1 = (int *)((ulonglong)uVar6 >> 0x20); | |
if ((int)uVar6 != 0) { | |
dprintf((byte *)s_Failure_sending_ACMD41_8f65ca1c,piVar1,uVar2,iVar4); | |
uVar2 = 1; | |
piVar1 = extraout_r1_03; | |
goto LAB_8f60bb6c; | |
} | |
if ((int)local_6c < 0) { | |
local_6c = local_6c & 0x40000000; | |
if (local_6c != 0) { | |
local_6c = 1; | |
} | |
param_2[6] = local_6c; | |
goto LAB_8f60bb90; | |
} | |
FUN_8f6104a8(0x32); | |
cVar5 = cVar5 + -1; | |
} while (cVar5 != '\0'); | |
piVar1 = extraout_r1_00; | |
if ((int)local_6c < 0) { | |
LAB_8f60bb90: | |
uVar2 = 0; | |
} | |
else { | |
dprintf((byte *)s_Error__ACMD41_response_timed_out_8f65ca34,extraout_r1_00,uVar2,local_6c); | |
uVar2 = 1; | |
piVar1 = extraout_r1_01; | |
} | |
} | |
else { | |
dprintf((byte *)s_Error__CMD8_response_timed_out_8f65c9e0,extraout_r1,0x1aa,local_6c); | |
uVar2 = 1; | |
piVar1 = extraout_r1_04; | |
} | |
LAB_8f60bb6c: | |
if (local_2c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,piVar1,local_2c); | |
} | |
void FUN_8f60bbec(uint **param_1,int *param_2,int param_3) | |
{ | |
undefined4 extraout_r1; | |
undefined4 uVar1; | |
undefined8 uVar2; | |
undefined2 local_68; | |
undefined4 local_64; | |
undefined local_5f; | |
undefined2 local_5e; | |
int *local_1c; | |
uVar1 = 0x48; | |
local_1c = DAT_8f69d118; | |
FUN_8f636968((uint *)&local_68,0,0x48); | |
uVar2 = FUN_8f60b2cc(param_1,*param_2); | |
if ((int)uVar2 == 0) { | |
local_5f = 0; | |
if (param_3 == 1) { | |
local_64 = 2; | |
} | |
else { | |
local_64 = 0; | |
} | |
local_68 = 6; | |
local_5e = 1; | |
uVar2 = FUN_8f609784(param_1,(int *)&local_68); | |
if ((int)uVar2 != 0) { | |
uVar2 = CONCAT44((int)((ulonglong)uVar2 >> 0x20),1); | |
} | |
} | |
else { | |
dprintf((byte *)s_Failed_sending_App_command_8f65ca00,(int *)((ulonglong)uVar2 >> 0x20),uVar1, | |
(int)uVar2); | |
uVar2 = CONCAT44(extraout_r1,1); | |
} | |
if (local_1c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),local_1c); | |
} | |
return; | |
} | |
void FUN_8f60bc9c(uint **param_1) | |
{ | |
int iVar1; | |
undefined4 extraout_r1; | |
undefined4 uVar2; | |
undefined8 uVar3; | |
undefined2 local_68; | |
undefined4 local_64; | |
undefined local_60; | |
undefined2 local_5e; | |
undefined4 local_4c; | |
undefined *local_34; | |
undefined4 local_30; | |
undefined4 local_2c; | |
int *local_1c; | |
local_1c = DAT_8f69d118; | |
FUN_8f636968((uint *)&local_68,0,0x48); | |
local_64 = 0x80fffff1; | |
local_34 = &DAT_8f688100; | |
local_68 = 6; | |
local_5e = 1; | |
local_4c = 1; | |
local_60 = 1; | |
local_2c = 1; | |
local_30 = 0x40; | |
uVar3 = FUN_8f609784(param_1,(int *)&local_68); | |
uVar2 = (undefined4)((ulonglong)uVar3 >> 0x20); | |
iVar1 = (int)uVar3; | |
if (iVar1 == 0) { | |
FUN_8f6095e4((int *)param_1,(int *)0x1); | |
uVar2 = extraout_r1; | |
} | |
else { | |
iVar1 = 1; | |
} | |
if (local_1c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar1,uVar2,local_1c); | |
} | |
return; | |
} | |
void FUN_8f60bd48(undefined4 *param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
undefined *puVar1; | |
byte bVar2; | |
longlong lVar3; | |
uint **ppuVar4; | |
uint uVar5; | |
undefined *puVar6; | |
uint **ppuVar7; | |
uint *puVar8; | |
undefined4 extraout_r1; | |
int *extraout_r1_00; | |
int *extraout_r1_01; | |
int *extraout_r1_02; | |
int *extraout_r1_03; | |
int *extraout_r1_04; | |
int *extraout_r1_05; | |
int *extraout_r1_06; | |
int *extraout_r1_07; | |
int *extraout_r1_08; | |
int *extraout_r1_09; | |
uint uVar9; | |
int *extraout_r1_10; | |
int *extraout_r1_11; | |
int *extraout_r1_12; | |
int *extraout_r1_13; | |
int *extraout_r1_14; | |
int *extraout_r1_15; | |
int *extraout_r1_16; | |
int *extraout_r1_17; | |
int *extraout_r1_18; | |
int *extraout_r1_19; | |
int *extraout_r1_20; | |
int *extraout_r1_21; | |
int *extraout_r1_22; | |
int *extraout_r1_23; | |
int *extraout_r1_24; | |
byte bVar10; | |
uint uVar11; | |
uint *puVar12; | |
uint *puVar13; | |
int *piVar14; | |
uint *puVar15; | |
uint **ppuVar16; | |
int iVar17; | |
int iVar18; | |
byte *pbVar19; | |
int *in_lr; | |
uint uVar20; | |
bool bVar21; | |
undefined8 uVar22; | |
ulonglong uVar23; | |
uint local_108; | |
int local_104; | |
uint local_f8; | |
uint local_f4; | |
uint local_f0; | |
int local_ec; | |
uint local_e8; | |
uint local_e4; | |
int local_e0; | |
uint local_dc; | |
uint local_d8; | |
int local_d4; | |
uint local_d0; | |
uint local_cc; | |
uint local_c8; | |
uint local_c4; | |
uint local_c0; | |
byte local_bc; | |
uint local_b8; | |
uint local_b4; | |
byte bStack_b1; | |
byte local_b0 [5]; | |
undefined local_ab; | |
undefined local_aa; | |
uint local_a8; | |
uint local_a4; | |
uint local_a0; | |
int local_9c; | |
byte local_85; | |
uint local_84; | |
uint local_7c; | |
undefined2 local_78; | |
uint *local_74; | |
undefined local_70; | |
undefined local_6f; | |
undefined2 local_6e; | |
undefined4 local_6c; | |
uint local_68; | |
uint local_60; | |
undefined4 local_5c; | |
undefined *local_44; | |
undefined4 local_40; | |
undefined4 local_3c; | |
int *local_2c; | |
undefined auStack_28 [4]; | |
local_2c = DAT_8f69d118; | |
piVar14 = DAT_8f69d118; | |
uVar22 = FUN_8f63666c(0x118,param_2); | |
ppuVar7 = (uint **)uVar22; | |
if (ppuVar7 == (uint **)0x0) { | |
dprintf((byte *)s_Error_allocating_mmc_device_8f65ca58,(int *)((ulonglong)uVar22 >> 0x20), | |
param_3,piVar14); | |
piVar14 = extraout_r1_21; | |
goto LAB_8f60bf90; | |
} | |
if (param_1 == (undefined4 *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_mmc_sdhci_c_8f65c84c,0x6d6); | |
} | |
ppuVar16 = ppuVar7 + 0xe; | |
FUN_8f63685c(ppuVar7 + 0x3e,param_1,0x1c); | |
FUN_8f636968((uint *)ppuVar16,0,0xc0); | |
FUN_8f626f38(&local_f8,0,1); | |
ppuVar7[6] = &local_f8; | |
*ppuVar7 = ppuVar7[0x40]; | |
*(undefined *)((int)ppuVar7 + 0x2b) = *(undefined *)(ppuVar7 + 0x44); | |
*(undefined *)(ppuVar7 + 0xb) = *(undefined *)((int)ppuVar7 + 0x111); | |
ppuVar4 = (uint **)FUN_8f63666c(0x14,ppuVar7[0x40]); | |
if (ppuVar4 == (uint **)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_mmc_sdhci_c_8f65c84c,0x459); | |
} | |
bVar10 = *(byte *)(ppuVar7 + 0x3e); | |
piVar14 = (int *)(uint)bVar10; | |
puVar8 = ppuVar7[0x3f]; | |
bVar2 = *(byte *)((int)ppuVar7 + 0x112); | |
uVar11 = (uint)bVar2; | |
*ppuVar4 = ppuVar7[0x41]; | |
ppuVar4[1] = puVar8; | |
*(byte *)((int)ppuVar4 + 0xb) = bVar10; | |
*(byte *)(ppuVar4 + 3) = bVar2; | |
ppuVar4[4] = &local_f8; | |
ppuVar7[0xc] = (uint *)ppuVar4; | |
FUN_8f6034b0(piVar14); | |
FUN_8f60354c((int *)(uint)*(byte *)(ppuVar7 + 0x3e),(int *)ppuVar7[0x43]); | |
if (*(char *)(ppuVar7 + 0x3e) == '\x01') { | |
FUN_8f62634c(1,extraout_r1); | |
} | |
FUN_8f60a578((int *)ppuVar7,(int *)ppuVar4); | |
FUN_8f609fbc((int *)ppuVar7); | |
uVar5 = FUN_8f609520((int *)ppuVar7,400000); | |
puVar8 = (uint *)(uVar5 & 0xff); | |
if (puVar8 != (uint *)0x0) { | |
dprintf((byte *)s_Error_Initializing_MMC_host____u_8f65ca78,(int *)puVar8,uVar11,piVar14); | |
ppuVar7 = (uint **)0x0; | |
piVar14 = extraout_r1_09; | |
goto LAB_8f60bf90; | |
} | |
ppuVar7[0x15] = (uint *)0x0; | |
puVar12 = (uint *)0x48; | |
puVar15 = (uint *)0x40ff8000; | |
ppuVar7[0xf] = (uint *)0x40ff8000; | |
FUN_8f636968((uint *)&local_78,0,0x48); | |
local_78 = 0; | |
local_6f = 0; | |
local_6e = 0; | |
local_74 = puVar8; | |
uVar23 = FUN_8f609784(ppuVar7,(int *)&local_78); | |
if ((uVar23 & 0xff) == 0) { | |
iVar17 = 1000; | |
FUN_8f636968((uint *)&local_78,0,0x48); | |
puVar12 = ppuVar7[0xf]; | |
puVar15 = (uint *)0x8; | |
local_6f = 0; | |
local_78 = 1; | |
local_6e = 8; | |
local_74 = puVar12; | |
do { | |
uVar22 = FUN_8f609784(ppuVar7,(int *)&local_78); | |
piVar14 = (int *)((ulonglong)uVar22 >> 0x20); | |
if ((int)uVar22 != 0) goto LAB_8f60bf10; | |
if ((int)local_6c < 0) { | |
ppuVar7[0xf] = local_6c; | |
if (((uint)local_6c & 0x40000000) == 0) { | |
ppuVar7[0x14] = (uint *)&DAT_00000004; | |
} | |
else { | |
ppuVar7[0x14] = (uint *)0x3; | |
} | |
goto LAB_8f60bf34; | |
} | |
puVar15 = local_6c; | |
FUN_8f6104a8(1); | |
iVar17 = iVar17 + -1; | |
} while (iVar17 != 0); | |
dprintf((byte *)s_Card_has_busy_status_set__Init_d_8f65cdb4,extraout_r1_00,puVar12,puVar15); | |
piVar14 = extraout_r1_01; | |
LAB_8f60bf10: | |
dprintf((byte *)s_Failure_getting_OCR_response_fro_8f65cc70,piVar14,puVar12,puVar15); | |
piVar14 = extraout_r1_02; | |
} | |
else { | |
dprintf((byte *)s_Failure_resetting_MMC_cards__8f65ca9c,(int *)(uVar23 >> 0x20),puVar12,puVar15) | |
; | |
piVar14 = extraout_r1_05; | |
} | |
dprintf((byte *)s_MMC_card_failed_to_respond__try_f_8f65cc9c,piVar14,puVar12,puVar15); | |
uVar22 = FUN_8f60ba44(ppuVar7,(int *)ppuVar16); | |
puVar8 = (uint *)uVar22; | |
if (puVar8 == (uint *)0x0) { | |
LAB_8f60bf34: | |
FUN_8f636968((uint *)&local_78,0,0x48); | |
local_74 = (uint *)0x0; | |
local_78 = 2; | |
puVar12 = (uint *)&DAT_00000004; | |
local_6f = 0; | |
local_6e = 4; | |
uVar22 = FUN_8f609784(ppuVar7,(int *)&local_78); | |
puVar8 = (uint *)uVar22; | |
if (puVar8 != (uint *)0x0) { | |
puVar15 = puVar8; | |
dprintf((byte *)s_Failure_getting_card_s_CID_numbe_8f65cccc,(int *)((ulonglong)uVar22 >> 0x20) | |
,puVar12,puVar8); | |
piVar14 = extraout_r1_03; | |
goto LAB_8f60bf84; | |
} | |
if (ppuVar7[0x14] < (uint *)0x2) { | |
pbVar19 = &bStack_b1; | |
uVar11 = 0x60; | |
local_b4 = (local_60 << 8) >> 0x10; | |
local_b8 = local_60 >> 0x18; | |
do { | |
uVar5 = uVar11 >> 5; | |
uVar20 = uVar11 + 7; | |
uVar9 = uVar11 & 0x1f; | |
uVar11 = uVar11 - 8; | |
bVar10 = (byte)((uint)(&local_6c)[uVar5] >> uVar9); | |
if (uVar5 < uVar20 >> 5) { | |
bVar10 = bVar10 | (byte)(local_60 << (0x20 - uVar9 & 0xff)); | |
} | |
pbVar19 = pbVar19 + 1; | |
*pbVar19 = bVar10; | |
} while (uVar11 != 0x38); | |
local_ab = 0; | |
local_a4 = local_68 << 8 | (uint)local_6c >> 0x18; | |
local_9c = ((uint)((int)local_6c << 0xc) >> 0x18) + 2000; | |
} | |
else { | |
pbVar19 = &bStack_b1; | |
uVar11 = 0x60; | |
local_b4 = (local_60 << 8) >> 0x10; | |
local_b8 = local_60 >> 0x18; | |
do { | |
puVar1 = (undefined *)(uVar11 >> 5); | |
uVar5 = uVar11 & 0x1f; | |
puVar6 = (undefined *)(uVar11 + 7 >> 5); | |
bVar21 = puVar1 < puVar6; | |
uVar11 = uVar11 - 8; | |
if (bVar21) { | |
puVar6 = auStack_28 + (int)puVar6 * 4; | |
} | |
if (bVar21) { | |
puVar6 = *(undefined **)(puVar6 + -0x44); | |
} | |
bVar10 = (byte)((uint)(&local_6c)[(int)puVar1] >> uVar5); | |
if (bVar21) { | |
bVar10 = bVar10 | (byte)((int)puVar6 << (0x20 - uVar5 & 0xff)); | |
} | |
pbVar19 = pbVar19 + 1; | |
*pbVar19 = bVar10; | |
} while (uVar11 != 0x30); | |
local_9c = ((uint)((int)local_6c << 0x10) >> 0x1c) + 0x7cd; | |
local_a4 = local_68 << 0x10 | (uint)local_6c >> 0x10; | |
local_68 = local_68 << 8; | |
} | |
local_a0 = (uint)((int)local_6c << 0x14) >> 0x1c; | |
local_a8 = local_68 >> 0x18; | |
local_aa = 0; | |
FUN_8f63685c(ppuVar7 + 0x1f,&local_b8,0x20); | |
FUN_8f636968((uint *)&local_78,0,0x48); | |
if (ppuVar7[0x14] < (uint *)0x2) { | |
puVar15 = (uint *)0x0; | |
local_74 = (uint *)0x0; | |
local_78 = 3; | |
puVar12 = (uint *)0x40; | |
local_6f = 0; | |
local_6e = 0x40; | |
uVar22 = FUN_8f609784(ppuVar7,(int *)&local_78); | |
if ((int)uVar22 != 0) goto LAB_8f60c0b8; | |
ppuVar7[0xe] = (uint *)(uint)local_6c._2_2_; | |
} | |
else { | |
ppuVar7[0xe] = (uint *)0x2; | |
local_78 = 3; | |
puVar12 = (uint *)0x0; | |
local_74 = (uint *)0x20000; | |
puVar15 = (uint *)0x40; | |
local_6f = 0; | |
local_6e = 0x40; | |
uVar22 = FUN_8f609784(ppuVar7,(int *)&local_78); | |
if ((int)uVar22 != 0) { | |
LAB_8f60c0b8: | |
puVar8 = (uint *)uVar22; | |
dprintf((byte *)s_Failure_getting_card_s_RCA__8f65ccf0,(int *)((ulonglong)uVar22 >> 0x20), | |
puVar12,puVar15); | |
piVar14 = extraout_r1_04; | |
goto LAB_8f60bf84; | |
} | |
} | |
FUN_8f636968((uint *)&local_78,0,0x48); | |
puVar12 = (uint *)0x0; | |
local_74 = (uint *)((int)ppuVar7[0xe] << 0x10); | |
local_78 = 9; | |
puVar15 = (uint *)&DAT_00000004; | |
local_6f = 0; | |
local_6e = 4; | |
uVar22 = FUN_8f609784(ppuVar7,(int *)&local_78); | |
puVar8 = (uint *)uVar22; | |
if (puVar8 != (uint *)0x0) { | |
dprintf((byte *)s_Failure_getting_card_s_CSD_infor_8f65cd10,(int *)((ulonglong)uVar22 >> 0x20) | |
,puVar12,puVar15); | |
piVar14 = extraout_r1_07; | |
goto LAB_8f60bf84; | |
} | |
FUN_8f63685c(ppuVar7 + 0x17,&local_6c,0x10); | |
FUN_8f636968((uint *)&local_78,0,0x48); | |
puVar8 = ppuVar7[0xe]; | |
local_6f = 0; | |
local_78 = 7; | |
if (puVar8 == (uint *)0x0) { | |
local_6e = 0; | |
} | |
puVar12 = (uint *)((int)puVar8 << 0x10); | |
if (puVar8 != (uint *)0x0) { | |
puVar15 = ppuVar7[0x14]; | |
puVar8 = puVar15; | |
if (puVar15 < (uint *)0x2) { | |
puVar8 = (uint *)0x2; | |
} | |
local_6e = SUB42(puVar8,0); | |
if ((uint *)0x1 < puVar15) { | |
local_6e = 1; | |
} | |
} | |
local_74 = puVar12; | |
puVar8 = (uint *)FUN_8f609784(ppuVar7,(int *)&local_78); | |
if (puVar8 != (uint *)0x0) { | |
puVar15 = puVar8; | |
dprintf((byte *)s_Failure_selecting_the_Card_with_R_8f65cd3c,(int *)ppuVar7[0xe],puVar12, | |
puVar8); | |
piVar14 = extraout_r1_08; | |
goto LAB_8f60bf84; | |
} | |
puVar12 = (uint *)0x1; | |
ppuVar7[0x15] = (uint *)0x1; | |
if (ppuVar7[0x14] < (uint *)0x2) { | |
uVar22 = FUN_8f60bc9c(ppuVar7); | |
puVar8 = (uint *)uVar22; | |
if (puVar8 == (uint *)0x0) goto LAB_8f60c30c; | |
puVar15 = puVar8; | |
dprintf((byte *)s_Failed_to_set_HS_for_SD_card_8f65cadc,(int *)((ulonglong)uVar22 >> 0x20), | |
puVar12,puVar8); | |
piVar14 = extraout_r1_11; | |
goto LAB_8f60bf84; | |
} | |
uVar22 = FUN_8f60b4ec(ppuVar7,(int *)ppuVar16); | |
puVar8 = (uint *)uVar22; | |
if (puVar8 != (uint *)0x0) { | |
puVar15 = puVar8; | |
dprintf((byte *)s_Error_adjusting_interface_speed__8f65cafc,(int *)((ulonglong)uVar22 >> 0x20) | |
,puVar12,puVar8); | |
piVar14 = extraout_r1_14; | |
goto LAB_8f60bf84; | |
} | |
LAB_8f60c30c: | |
if ((int)ppuVar7[0x14] - 3U < 2) { | |
uVar22 = FUN_8f60b5e0(ppuVar7,ppuVar7 + 0x16); | |
puVar8 = (uint *)uVar22; | |
if (puVar8 == (uint *)0x0) { | |
LAB_8f60c3fc: | |
puVar8 = ppuVar7[0x1a]; | |
local_f8 = (uint)puVar8 >> 0x1e; | |
if (ppuVar7[0x14] < (uint *)0x2) { | |
if (local_f8 == 1) { | |
local_d4 = ((uint)((int)puVar8 << 0x10) >> 0x18) * 100; | |
local_d8 = (uint)*(ushort *)((int)ppuVar7 + 0x62) | ((uint)ppuVar7[0x19] & 0x3f) << 0x10 | |
; | |
local_f0 = (uint)ppuVar7[0x19] >> 0x14; | |
local_bc = (byte)(((uint)((int)ppuVar7[0x17] << 0x12) >> 0x1f) << 1) | 8 | | |
(byte)(((uint)((int)ppuVar7[0x17] << 0x13) >> 0x1f) << 2); | |
local_d0 = (uint)(*(int *)(&DAT_8f65c4e4 + ((uint)((int)puVar8 << 9) >> 0x1c) * 4) * | |
*(int *)(&DAT_8f65c538 + ((uint)((int)puVar8 << 0xd) >> 0x1d) * 4)) / | |
10; | |
local_cc = (uint)(*(int *)(&DAT_8f65c558 + ((uint)puVar8 & 7) * 4) * | |
*(int *)(&DAT_8f65c578 + ((uint)((int)puVar8 << 0x19) >> 0x1c) * 4)) / | |
10; | |
ppuVar7[0x12] = (uint *)((local_d8 + 1) * 0x80000); | |
ppuVar7[0x13] = (uint *)(local_d8 + 1 >> 0xd); | |
local_ec = 0x200; | |
local_e8 = 0x200; | |
local_e4 = 2; | |
local_dc = 0; | |
local_c0 = 0; | |
} | |
else { | |
puVar12 = ppuVar7[0x17]; | |
puVar15 = ppuVar7[0x19]; | |
uVar11 = (uint)((int)puVar12 << 6) >> 0x1c; | |
local_f0 = (uint)puVar15 >> 0x14; | |
if (uVar11 - 9 < 3) { | |
local_ec = 1 << uVar11; | |
} | |
else { | |
local_ec = 0x200; | |
} | |
local_108 = (uint)((int)puVar15 << 0xc) >> 0x1c; | |
if (local_108 - 9 < 3) { | |
local_108 = 1 << local_108; | |
local_104 = (int)local_108 >> 0x1f; | |
} | |
else { | |
local_108 = 0x200; | |
local_104 = 0; | |
} | |
puVar13 = ppuVar7[0x18]; | |
local_d8 = ((uint)puVar15 & 0x3ff) << 2 | (uint)puVar13 >> 0x1e; | |
iVar17 = *(int *)(&DAT_8f65c578 + ((uint)((int)puVar8 << 0x19) >> 0x1c) * 4); | |
local_dc = (uint)((int)puVar13 << 0xe) >> 0x1d; | |
iVar18 = *(int *)(&DAT_8f65c558 + ((uint)puVar8 & 7) * 4); | |
uVar11 = local_d8 + 1 << local_dc + 2; | |
lVar3 = (ulonglong)uVar11 * (ulonglong)local_108; | |
local_d4 = ((uint)((int)puVar8 << 0x10) >> 0x18) * 100; | |
local_e0 = ((uint)((int)puVar13 << 0x12) >> 0x19) + 1; | |
local_c0 = (uint)puVar13 & 0x7f; | |
local_bc = (byte)(((uint)((int)puVar13 << 0x11) >> 0x1f) << 3) | | |
(byte)(((uint)((int)puVar15 << 0x12) >> 0x1f) << 4) | | |
(byte)(((uint)((int)puVar15 << 0x11) >> 0x1f) << 5) | | |
(byte)(((uint)((int)puVar15 << 0x10) >> 0x1f) << 6) | | |
(byte)(((uint)((int)puVar12 << 10) >> 0x1f) << 7) | | |
(byte)((uint)puVar12 >> 0x1f) | | |
(byte)(((uint)((int)puVar12 << 0x12) >> 0x1f) << 1) | | |
(byte)(((uint)((int)puVar12 << 0x13) >> 0x1f) << 2); | |
local_e4 = (uint)((int)puVar12 << 3) >> 0x1d; | |
local_d0 = (uint)(*(int *)(&DAT_8f65c4e4 + ((uint)((int)puVar8 << 9) >> 0x1c) * 4) * | |
*(int *)(&DAT_8f65c538 + ((uint)((int)puVar8 << 0xd) >> 0x1d) * 4)) / | |
10; | |
ppuVar7[0x12] = (uint *)lVar3; | |
ppuVar7[0x13] = (uint *)(uVar11 * local_104 + (int)((ulonglong)lVar3 >> 0x20)); | |
local_cc = (uint)(iVar18 * iVar17) / 10; | |
local_e8 = local_108; | |
} | |
} | |
else { | |
puVar13 = ppuVar7[0x19]; | |
local_f4 = (uint)((int)puVar8 << 2) >> 0x1c; | |
puVar15 = ppuVar7[0x17]; | |
puVar12 = ppuVar7[0x18]; | |
local_d4 = ((uint)((int)puVar8 << 0x10) >> 0x18) * 100; | |
local_d8 = ((uint)puVar13 & 0x3ff) << 2 | (uint)puVar12 >> 0x1e; | |
local_bc = local_bc & 8 | (byte)(((uint)((int)puVar13 << 0x12) >> 0x1f) << 4) | | |
(byte)(((uint)((int)puVar13 << 0x11) >> 0x1f) << 5) | | |
(byte)(((uint)((int)puVar13 << 0x10) >> 0x1f) << 6) | | |
(byte)(((uint)((int)puVar15 << 10) >> 0x1f) << 7) | | |
(byte)((uint)puVar15 >> 0x1f) | | |
(byte)(((uint)((int)puVar15 << 0x12) >> 0x1f) << 1) | | |
(byte)(((uint)((int)puVar15 << 0x13) >> 0x1f) << 2); | |
local_ec = 1 << ((uint)((int)puVar15 << 6) >> 0x1c); | |
local_e4 = (uint)((int)puVar15 << 3) >> 0x1d; | |
local_f0 = (uint)puVar13 >> 0x14; | |
local_d0 = (uint)(*(int *)(&DAT_8f65c4e4 + ((uint)((int)puVar8 << 9) >> 0x1c) * 4) * | |
*(int *)(&DAT_8f65c538 + ((uint)((int)puVar8 << 0xd) >> 0x1d) * 4)) / 10; | |
local_e8 = 1 << ((uint)((int)puVar13 << 0xc) >> 0x1c); | |
local_c4 = (uint)((int)puVar12 << 0x16) >> 0x1b; | |
local_dc = (uint)((int)puVar12 << 0xe) >> 0x1d; | |
local_c8 = (uint)((int)puVar12 << 0x11) >> 0x1b; | |
local_c0 = (uint)puVar12 & 0x1f; | |
local_cc = 0; | |
if (local_d8 == 0xfff) { | |
puVar8 = ppuVar7[0x16]; | |
uVar5 = (uint)*(byte *)((int)puVar8 + 0xd6) << 0x10 | | |
(uint)*(byte *)((int)puVar8 + 0xd7) << 0x18; | |
uVar11 = uVar5 | *(byte *)(puVar8 + 0x35) | (uint)*(byte *)((int)puVar8 + 0xd5) << 8; | |
ppuVar7[0x12] = (uint *)(uVar11 << 9); | |
ppuVar7[0x13] = (uint *)(((int)uVar11 >> 0x1f) << 9 | uVar5 >> 0x17); | |
} | |
else { | |
uVar11 = local_d8 + 1 << local_dc + 2; | |
lVar3 = (ulonglong)local_e8 * (ulonglong)uVar11; | |
ppuVar7[0x12] = (uint *)lVar3; | |
ppuVar7[0x13] = | |
(uint *)(uVar11 * ((int)local_e8 >> 0x1f) + (int)((ulonglong)lVar3 >> 0x20)); | |
} | |
} | |
FUN_8f63685c(ppuVar7 + 0x27,&local_f8,0x40); | |
if ((int)ppuVar7[0x14] - 3U < 2) { | |
puVar8 = ppuVar7[0x16]; | |
if (*(char *)((int)puVar8 + 0xaf) == '\0') { | |
iVar17 = (int)ppuVar7[0x33] * ((int)ppuVar7[0x35] + 1) + (int)ppuVar7[0x35] + 1; | |
puVar15 = (uint *)((int)ppuVar7[0x34] * iVar17 + iVar17); | |
} | |
else { | |
puVar15 = (uint *)((uint)*(byte *)(puVar8 + 0x38) << 10); | |
} | |
puVar12 = (uint *)(uint)*(ushort *)(ppuVar7 + 0x42); | |
ppuVar7[0x11] = puVar15; | |
puVar13 = (uint *)((uint)*(byte *)(puVar8 + 0x2a) * 0x3ef00); | |
ppuVar7[0x1d] = puVar13; | |
puVar15 = (uint *)(uint)*(byte *)((int)puVar8 + 0xde); | |
ppuVar7[0x1e] = puVar15; | |
if (puVar12 == (uint *)0x2) { | |
puVar15 = (uint *)(uint)*(byte *)(ppuVar7 + 9); | |
if (puVar15 == (uint *)0x0) goto LAB_8f60c750; | |
} | |
else if (puVar12 != (uint *)0x1) { | |
LAB_8f60c750: | |
puVar12 = (uint *)0x0; | |
} | |
uVar22 = FUN_8f6096fc((int *)ppuVar7,(int *)puVar12,puVar13); | |
if ((int)uVar22 != 0) { | |
dprintf((byte *)s_Failed_to_set_bus_width_for_host_8f65cb4c, | |
(int *)((ulonglong)uVar22 >> 0x20),puVar13,puVar15); | |
goto LAB_8f60c398; | |
} | |
if (((*(char *)(ppuVar7 + 0xb) == '\0') || (1 < (int)ppuVar7[0x14] - 3U)) || | |
(puVar15 = (uint *)(uint)*(byte *)(ppuVar7[0x16] + 0x31), | |
(*(byte *)(ppuVar7[0x16] + 0x31) & 0xc0) == 0)) { | |
if (((*(char *)((int)ppuVar7 + 0x2a) == '\0') || (1 < (int)ppuVar7[0x14] - 3U)) || | |
(puVar15 = (uint *)(uint)*(byte *)(ppuVar7[0x16] + 0x31), | |
(*(byte *)(ppuVar7[0x16] + 0x31) & 0x30) == 0)) { | |
puVar15 = (uint *)(uint)*(byte *)(ppuVar7 + 10); | |
if (((puVar15 == (uint *)0x0) || | |
(puVar15 = (uint *)((int)ppuVar7[0x14] + -3), (uint *)0x1 < puVar15)) || | |
(puVar15 = (uint *)(uint)*(byte *)(ppuVar7[0x16] + 0x31), | |
(*(byte *)(ppuVar7[0x16] + 0x31) & 0xc) == 0)) { | |
puVar8 = (uint *)FUN_8f60b4ec(ppuVar7,(int *)ppuVar16); | |
if (puVar8 == (uint *)0x0) { | |
uVar22 = FUN_8f60b1e8(ppuVar7,(int *)ppuVar16,(int)puVar12); | |
piVar14 = (int *)((ulonglong)uVar22 >> 0x20); | |
puVar8 = (uint *)uVar22; | |
if (puVar8 == (uint *)0x0) goto LAB_8f60c5ac; | |
dprintf((byte *)s_Failure_to_set_wide_bus_for_Card_8f65c87c,(int *)ppuVar7[0xe], | |
puVar12,puVar15); | |
piVar14 = extraout_r1_16; | |
} | |
else { | |
dprintf((byte *)s_Failure_to_enalbe_HS_mode_for_Ca_8f65cbd4,(int *)ppuVar7[0xe], | |
puVar13,puVar15); | |
piVar14 = extraout_r1_20; | |
puVar12 = puVar13; | |
} | |
} | |
else { | |
uVar22 = FUN_8f60b568(ppuVar7,(int **)ppuVar16); | |
piVar14 = (int *)((ulonglong)uVar22 >> 0x20); | |
puVar8 = (uint *)uVar22; | |
if (puVar8 == (uint *)0x0) goto LAB_8f60c5ac; | |
dprintf((byte *)s_Failure_to_set_DDR_mode_for_Card_8f65c820,(int *)ppuVar7[0xe], | |
puVar13,puVar15); | |
piVar14 = extraout_r1_22; | |
puVar12 = puVar13; | |
} | |
} | |
else { | |
uVar22 = FUN_8f60b6bc(ppuVar7,(int **)ppuVar16,(int)puVar12); | |
piVar14 = (int *)((ulonglong)uVar22 >> 0x20); | |
puVar8 = (uint *)uVar22; | |
if (puVar8 == (uint *)0x0) goto LAB_8f60c5ac; | |
dprintf((byte *)s_Failure_to_set_HS200_mode_for_Ca_8f65cba8,(int *)ppuVar7[0xe], | |
puVar12,puVar15); | |
piVar14 = extraout_r1_24; | |
} | |
} | |
else { | |
uVar22 = FUN_8f60b8a4(ppuVar7,(int **)ppuVar16,(int *)puVar12); | |
piVar14 = (int *)((ulonglong)uVar22 >> 0x20); | |
puVar8 = (uint *)uVar22; | |
if (puVar8 == (uint *)0x0) { | |
LAB_8f60c5ac: | |
ppuVar7[0x10] = (uint *)0x200; | |
if ((1 < (int)ppuVar7[0x14] - 3U) || (*(char *)((int)ppuVar7[0x16] + 0xa2) != '\0')) | |
goto LAB_8f60bf90; | |
puVar12 = (uint *)0x1; | |
puVar15 = (uint *)0xa2; | |
uVar22 = FUN_8f60b0d0(ppuVar7,(int *)ppuVar16,1,0xa2,1); | |
piVar14 = (int *)((ulonglong)uVar22 >> 0x20); | |
puVar8 = (uint *)uVar22; | |
if (puVar8 == (uint *)0x0) goto LAB_8f60bf90; | |
dprintf((byte *)s_Failed_to_enable_RST_n_FUNCTION_8f65cc28,piVar14,puVar12,puVar15); | |
piVar14 = extraout_r1_13; | |
} | |
else { | |
dprintf((byte *)s_Failure_to_set_HS400_mode_for_Ca_8f65cb7c,(int *)ppuVar7[0xe], | |
puVar12,puVar15); | |
piVar14 = extraout_r1_23; | |
} | |
} | |
} | |
else { | |
iVar17 = (int)ppuVar7[0x33] * ((int)ppuVar7[0x35] + 1) + (int)ppuVar7[0x35] + 1; | |
puVar13 = (uint *)((uint)((int)ppuVar7[0x37] << 0x1d) >> 0x1f); | |
puVar15 = (uint *)((int)ppuVar7[0x34] * iVar17 + iVar17); | |
ppuVar7[0x11] = puVar15; | |
puVar12 = puVar13; | |
uVar22 = FUN_8f60bbec(ppuVar7,(int *)ppuVar16,(int)puVar13); | |
puVar8 = (uint *)uVar22; | |
if (puVar8 == (uint *)0x0) { | |
uVar22 = FUN_8f6096fc((int *)ppuVar7,(int *)puVar13,puVar12); | |
piVar14 = (int *)((ulonglong)uVar22 >> 0x20); | |
puVar8 = (uint *)uVar22; | |
if (puVar8 == (uint *)0x0) goto LAB_8f60c5ac; | |
dprintf((byte *)s_Failed_to_set_bus_width_for_host_8f65cb4c,piVar14,puVar12,puVar15); | |
piVar14 = extraout_r1_19; | |
} | |
else { | |
dprintf((byte *)s_Failed_to_set_bus_width_for_the_c_8f65cc00, | |
(int *)((ulonglong)uVar22 >> 0x20),puVar12,puVar15); | |
piVar14 = extraout_r1_17; | |
} | |
} | |
} | |
else { | |
puVar15 = puVar8; | |
dprintf((byte *)s_Failure_getting_card_s_ExtCSD_in_8f65cb20, | |
(int *)((ulonglong)uVar22 >> 0x20),puVar12,puVar8); | |
piVar14 = extraout_r1_18; | |
} | |
goto LAB_8f60bf84; | |
} | |
puVar13 = (uint *)0x48; | |
FUN_8f636968((uint *)&local_78,0,0x48); | |
uVar22 = FUN_8f60b2cc(ppuVar7,(int)ppuVar7[0xe]); | |
puVar15 = (uint *)uVar22; | |
if (puVar15 == (uint *)0x0) { | |
local_6f = 0; | |
puVar8 = (uint *)0x33; | |
local_78 = 0x33; | |
local_44 = &DAT_8f688180; | |
local_6e = 1; | |
local_5c = 1; | |
local_70 = 1; | |
local_3c = 1; | |
local_40 = 8; | |
local_74 = puVar15; | |
uVar22 = FUN_8f609784(ppuVar7,(int *)&local_78); | |
piVar14 = (int *)((ulonglong)uVar22 >> 0x20); | |
puVar15 = puVar8; | |
if ((int)uVar22 != 0) goto LAB_8f60c38c; | |
FUN_8f63685c(&local_b8,(undefined4 *)&DAT_8f688180,8); | |
puVar8 = (uint *)(local_b8 << 0x18 | (local_b8 >> 8 & 0xff) << 0x10 | | |
(local_b8 >> 0x10 & 0xff) << 8 | local_b8 >> 0x18); | |
ppuVar7[0x1b] = puVar8; | |
ppuVar7[0x37] = (uint *)((uint)((int)puVar8 << 0xc) >> 0x1c); | |
ppuVar7[0x3a] = (uint *)(local_b8 >> 0x18 & 2); | |
ppuVar7[0x38] = (uint *)((uint)((int)puVar8 << 4) >> 0x1c); | |
ppuVar7[0x39] = (uint *)((uint)((int)puVar8 << 0x10) >> 0x1f); | |
puVar13 = (uint *)0x48; | |
ppuVar7[0x1c] = | |
(uint *)(local_b4 << 0x18 | (local_b4 >> 8 & 0xff) << 0x10 | | |
(local_b4 >> 0x10 & 0xff) << 8 | local_b4 >> 0x18); | |
FUN_8f636968((uint *)&local_78,0,0x48); | |
uVar22 = FUN_8f60b2cc(ppuVar7,(int)ppuVar7[0xe]); | |
puVar15 = (uint *)uVar22; | |
if (puVar15 == (uint *)0x0) { | |
local_6f = 0; | |
puVar8 = (uint *)0xd; | |
local_6e = 1; | |
local_5c = 1; | |
local_70 = 1; | |
local_3c = 1; | |
local_44 = &DAT_8f688140; | |
local_78 = 0xd; | |
local_40 = 0x40; | |
local_74 = puVar15; | |
uVar22 = FUN_8f609784(ppuVar7,(int *)&local_78); | |
piVar14 = (int *)((ulonglong)uVar22 >> 0x20); | |
puVar15 = puVar8; | |
if ((int)uVar22 == 0) { | |
FUN_8f63685c(&local_b8,(undefined4 *)&DAT_8f688140,0x40); | |
puVar12 = (uint *)&local_bc; | |
puVar8 = (uint *)&local_78; | |
do { | |
puVar12 = puVar12 + 1; | |
uVar11 = *puVar12; | |
puVar8 = puVar8 + -1; | |
*puVar8 = uVar11 << 0x18 | (uVar11 >> 8 & 0xff) << 0x10 | (uVar11 >> 0x10 & 0xff) << 8 | | |
uVar11 >> 0x18; | |
} while (puVar12 != &local_7c); | |
ppuVar7[0x3b] = (uint *)(1 << ((local_84 << 0x10) >> 0x1c) + 4); | |
puVar8 = (uint *)((uint)local_85 | (local_84 & 0xff) << 8); | |
if (puVar8 == (uint *)0x0) { | |
puVar8 = (uint *)0x10; | |
} | |
ppuVar7[0x3c] = puVar8; | |
goto LAB_8f60c3fc; | |
} | |
} | |
else { | |
dprintf((byte *)s_Failed_sending_App_command_8f65ca00,(int *)((ulonglong)uVar22 >> 0x20), | |
puVar13,puVar15); | |
piVar14 = extraout_r1_15; | |
} | |
dprintf((byte *)s_Failed_to_get_SSR_from_the_card_8f65cd90,piVar14,puVar13,puVar15); | |
} | |
else { | |
dprintf((byte *)s_Failed_sending_App_command_8f65ca00,(int *)((ulonglong)uVar22 >> 0x20), | |
puVar13,puVar15); | |
piVar14 = extraout_r1_12; | |
LAB_8f60c38c: | |
dprintf((byte *)s_Failure_getting_card_s_SCR_regis_8f65cd68,piVar14,puVar13,puVar15); | |
} | |
} | |
else { | |
puVar15 = puVar8; | |
dprintf((byte *)s_Failed_to_initialize_SD_card_8f65cabc,(int *)((ulonglong)uVar22 >> 0x20), | |
puVar12,puVar8); | |
piVar14 = extraout_r1_06; | |
LAB_8f60bf84: | |
puVar13 = puVar12; | |
if (((uint)puVar8 & 0xff) == 0) goto LAB_8f60bf90; | |
} | |
LAB_8f60c398: | |
dprintf((byte *)s_Failed_detecting_MMC_SDC___slot__8f65cc4c,(int *)(uint)*(byte *)(ppuVar7 + 0x3e) | |
,puVar13,puVar15); | |
ppuVar7 = (uint **)0x0; | |
piVar14 = extraout_r1_10; | |
LAB_8f60bf90: | |
if (local_2c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(ppuVar7,piVar14,local_2c); | |
} | |
void FUN_8f60ccc0(uint **param_1,undefined4 param_2,int param_3,undefined4 param_4,int param_5) | |
{ | |
uint *puVar1; | |
bool bVar2; | |
undefined8 uVar3; | |
undefined2 local_68; | |
int local_64; | |
undefined local_60; | |
undefined local_5f; | |
undefined2 local_5e; | |
uint local_5c; | |
undefined4 local_4c; | |
uint *local_44; | |
undefined4 local_34; | |
int local_2c; | |
int *local_1c; | |
local_1c = DAT_8f69d118; | |
FUN_8f636968((uint *)&local_68,0,0x48); | |
if (param_5 == 1) { | |
local_68 = 0x11; | |
} | |
else { | |
local_68 = 0x12; | |
} | |
if (param_1[0x14] == (uint *)&DAT_00000004) { | |
puVar1 = param_1[0x10]; | |
local_64 = param_3 * (int)puVar1; | |
} | |
else { | |
puVar1 = (uint *)0x0; | |
local_64 = param_3; | |
if (param_1[0x14] < (uint *)0x2) { | |
local_44 = param_1[0x3a]; | |
goto LAB_8f60cd40; | |
} | |
} | |
local_44 = (uint *)0x1; | |
LAB_8f60cd40: | |
local_4c = 1; | |
local_5e = 1; | |
local_5f = 0; | |
local_60 = 1; | |
local_2c = param_5; | |
local_34 = param_2; | |
uVar3 = FUN_8f609784(param_1,(int *)&local_68); | |
bVar2 = (int)uVar3 == 0; | |
if ((bVar2 || param_5 != 0) && (!bVar2 && param_5 != 1)) { | |
uVar3 = FUN_8f60b450(param_1); | |
} | |
else { | |
uVar3 = FUN_8f60b354(local_5c,(int *)((ulonglong)uVar3 >> 0x20),puVar1); | |
} | |
if (local_1c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,(int)((ulonglong)uVar3 >> 0x20),local_1c); | |
} | |
return; | |
} | |
void FUN_8f60cdc4(uint **param_1,undefined4 param_2,int param_3,undefined4 param_4,int param_5) | |
{ | |
undefined4 uVar1; | |
bool bVar2; | |
undefined8 uVar3; | |
undefined2 local_68; | |
int local_64; | |
undefined local_60; | |
undefined local_5f; | |
undefined2 local_5e; | |
uint local_5c; | |
undefined4 local_4c; | |
uint *local_44; | |
undefined4 local_34; | |
int local_2c; | |
int *local_1c; | |
local_1c = DAT_8f69d118; | |
FUN_8f636968((uint *)&local_68,0,0x48); | |
if (param_5 == 1) { | |
local_68 = 0x18; | |
} | |
else { | |
local_68 = 0x19; | |
} | |
if (param_1[0x14] == (uint *)&DAT_00000004) { | |
local_64 = param_3 * (int)param_1[0x10]; | |
} | |
else { | |
local_64 = param_3; | |
if (param_1[0x14] < (uint *)0x2) { | |
local_44 = param_1[0x3a]; | |
goto LAB_8f60ce40; | |
} | |
} | |
local_44 = (uint *)0x1; | |
LAB_8f60ce40: | |
local_4c = 0; | |
local_5e = 1; | |
local_5f = 0; | |
uVar1 = 1; | |
local_2c = param_5; | |
local_60 = 1; | |
local_34 = param_2; | |
uVar3 = FUN_8f609784(param_1,(int *)&local_68); | |
bVar2 = (int)uVar3 == 0; | |
if ((bVar2 || param_5 != 0) && (!bVar2 && param_5 != 1)) { | |
uVar3 = FUN_8f60b450(param_1); | |
} | |
else { | |
uVar3 = FUN_8f60b354(local_5c,(int *)((ulonglong)uVar3 >> 0x20),uVar1); | |
} | |
if (local_1c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,(int)((ulonglong)uVar3 >> 0x20),local_1c); | |
} | |
return; | |
} | |
void FUN_8f60cec8(uint **param_1,int param_2,uint param_3,uint param_4,char param_5) | |
{ | |
uint uVar1; | |
int *extraout_r1; | |
int *extraout_r1_00; | |
int *piVar2; | |
int *extraout_r1_01; | |
int *extraout_r1_02; | |
int *extraout_r1_03; | |
int *extraout_r1_04; | |
int *extraout_r1_05; | |
int *extraout_r1_06; | |
int *extraout_r1_07; | |
undefined4 uVar3; | |
uint *puVar4; | |
undefined4 uVar5; | |
uint uVar6; | |
uint **ppuVar7; | |
uint *puVar8; | |
int iVar9; | |
uint *puVar10; | |
uint uVar11; | |
undefined8 uVar12; | |
longlong lVar13; | |
uint local_7c; | |
undefined2 local_78; | |
int iStack_74; | |
undefined local_6f; | |
undefined2 local_6e; | |
uint local_6c; | |
int *local_2c; | |
ppuVar7 = param_1 + 0xe; | |
local_2c = DAT_8f69d118; | |
FUN_8f636968((uint *)&local_78,0,0x48); | |
uVar3 = 1; | |
uVar5 = 0xab; | |
puVar8 = param_1[0x11]; | |
uVar12 = FUN_8f60b0d0(param_1,(int *)ppuVar7,1,0xab,0x10); | |
iVar9 = (int)uVar12; | |
if (iVar9 == 0) { | |
uVar12 = FUN_8f60b5e0(param_1,param_1 + 0x16); | |
piVar2 = (int *)((ulonglong)uVar12 >> 0x20); | |
iVar9 = (int)uVar12; | |
if (iVar9 == 0) { | |
if ((*(byte *)((int)param_1[0x16] + 0xab) & 0xc) == 0) { | |
puVar10 = (uint *)(param_3 >> 9 | param_4 << 0x17); | |
if (param_4 >> 9 == 0 && puVar10 < puVar8) { | |
dprintf((byte *)s_Length_is_less_than_min_WP_size__8f65d060,piVar2,puVar8,0); | |
iVar9 = 1; | |
piVar2 = extraout_r1_02; | |
} | |
else { | |
uVar3 = 1; | |
uVar5 = 0xab; | |
uVar12 = FUN_8f60b0d0(param_1,(int *)ppuVar7,1,0xab,1); | |
iVar9 = (int)uVar12; | |
if (iVar9 == 0) { | |
uVar11 = 0; | |
puVar4 = puVar8; | |
lVar13 = FUN_8f658e24((int)puVar10 + (int)puVar8 + -1 & -(int)puVar8,0,(uint)puVar8,0); | |
uVar1 = (uint)lVar13; | |
local_6f = 0; | |
if (param_5 == '\0') { | |
local_78 = 0x1d; | |
} | |
else { | |
local_78 = 0x1c; | |
} | |
local_6e = 2; | |
if (uVar1 != 0) { | |
iVar9 = 0; | |
do { | |
iStack_74 = param_2; | |
if (param_1[0x14] == (uint *)&DAT_00000004) { | |
iStack_74 = param_2 * (int)param_1[0x10]; | |
} | |
uVar12 = FUN_8f609784(param_1,(int *)&local_78); | |
piVar2 = (int *)((ulonglong)uVar12 >> 0x20); | |
if ((int)uVar12 != 0) { | |
iVar9 = 1; | |
goto LAB_8f60d0ac; | |
} | |
uVar6 = local_6c; | |
if ((int)local_6c < 0) { | |
dprintf((byte *)s_Address_for_CMD28_29_is_out_of_r_8f65d0b8,piVar2,puVar4,local_6c | |
); | |
iVar9 = 1; | |
piVar2 = extraout_r1_07; | |
goto LAB_8f60d0ac; | |
} | |
do { | |
puVar4 = &local_7c; | |
uVar12 = FUN_8f60b038(param_1,(int *)ppuVar7,(int *)puVar4); | |
if ((int)uVar12 != 0) { | |
dprintf((byte *)s_Failed_to_get_card_status_aftera_8f65d0e0, | |
(int *)((ulonglong)uVar12 >> 0x20),puVar4,uVar6); | |
iVar9 = 1; | |
piVar2 = extraout_r1_04; | |
goto LAB_8f60d0ac; | |
} | |
iVar9 = iVar9 + 1; | |
FUN_8f6104fc(1000); | |
lVar13 = ZEXT48(extraout_r1) << 0x20; | |
if (iVar9 == 10000) { | |
dprintf((byte *)s_Card_status_timed_out_after_send_8f65d118,extraout_r1,puVar4, | |
uVar6); | |
iVar9 = 1; | |
piVar2 = extraout_r1_05; | |
goto LAB_8f60d0ac; | |
} | |
uVar6 = local_7c; | |
} while (((local_7c & 0x100) == 0) || | |
(uVar6 = (local_7c << 0x13) >> 0x1c, uVar6 == 7)); | |
uVar11 = uVar11 + 1; | |
param_2 = param_2 + (int)puVar8; | |
} while (uVar11 < uVar1); | |
} | |
piVar2 = (int *)((ulonglong)lVar13 >> 0x20); | |
iVar9 = 0; | |
} | |
else { | |
dprintf((byte *)s_Failed_to_set_power_on_WP_for_us_8f65d094, | |
(int *)((ulonglong)uVar12 >> 0x20),uVar3,uVar5); | |
piVar2 = extraout_r1_06; | |
} | |
} | |
} | |
else { | |
dprintf((byte *)s_Power_on_protection_is_disabled__8f65d030,piVar2,uVar3, | |
(uint)*(byte *)((int)param_1[0x16] + 0xab)); | |
iVar9 = 1; | |
piVar2 = extraout_r1_03; | |
} | |
} | |
else { | |
dprintf((byte *)s_Failed_to_read_ext_csd_for_the_c_8f65d008,piVar2,uVar3,uVar5); | |
piVar2 = extraout_r1_01; | |
} | |
} | |
else { | |
dprintf((byte *)s_Failed_to_Disable_PERM_WP_8f65cfec,(int *)((ulonglong)uVar12 >> 0x20),uVar3, | |
uVar5); | |
piVar2 = extraout_r1_00; | |
} | |
LAB_8f60d0ac: | |
if (local_2c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar9,piVar2,local_2c); | |
} | |
return; | |
} | |
void FUN_8f60d15c(uint **param_1) | |
{ | |
undefined4 uVar1; | |
uint uVar2; | |
undefined8 uVar3; | |
undefined2 local_60; | |
uint local_5c; | |
undefined local_57; | |
undefined2 local_56; | |
int *local_14; | |
local_14 = DAT_8f69d118; | |
FUN_8f636968((uint *)&local_60,0,0x48); | |
uVar1 = 7; | |
local_60 = 7; | |
uVar3 = FUN_8f609784(param_1,(int *)&local_60); | |
if ((int)uVar3 == 0) { | |
if ((int)param_1[0x14] - 3U < 2) { | |
local_57 = 0; | |
uVar1 = 2; | |
local_60 = 5; | |
uVar2 = (int)param_1[0xe] << 0x10 | 0x8000; | |
local_56 = 2; | |
local_5c = uVar2; | |
uVar3 = FUN_8f609784(param_1,(int *)&local_60); | |
if ((int)uVar3 != 0) { | |
uVar3 = dprintf((byte *)s_card_sleep_error___s_8f65d170, | |
(int *)s_mmc_put_card_to_sleep_8f65d210,uVar1,uVar2); | |
} | |
} | |
} | |
else { | |
uVar3 = dprintf((byte *)s_card_deselect_error___s_8f65d154, | |
(int *)s_mmc_put_card_to_sleep_8f65d210,(int)uVar3,uVar1); | |
} | |
if (local_14 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,(int)((ulonglong)uVar3 >> 0x20),local_14); | |
} | |
void FUN_8f60d238(uint **param_1,int *param_2) | |
{ | |
undefined4 uVar1; | |
int iVar2; | |
int *extraout_r1; | |
undefined4 uVar3; | |
uint *puVar4; | |
int iVar5; | |
uint uVar6; | |
uint uVar7; | |
int *in_lr; | |
undefined8 uVar8; | |
int local_84; | |
uint local_7c; | |
undefined2 local_78; | |
uint local_74; | |
undefined2 local_6e; | |
int *local_2c; | |
local_2c = DAT_8f69d118; | |
if (param_2 == (int *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_mmc_sdhci_c_8f65c84c,0x995); | |
} | |
uVar8 = FUN_8f60b244(param_1,(int *)0x3); | |
uVar3 = (undefined4)((ulonglong)uVar8 >> 0x20); | |
if ((int)uVar8 == 0) { | |
iVar5 = 5; | |
local_84 = 3; | |
do { | |
if (*(short *)param_2 == 0) break; | |
uVar7 = param_2[0xf]; | |
uVar3 = 0x48; | |
if (param_2[0xc] == 1) { | |
uVar6 = 0x80000000; | |
} | |
else { | |
uVar6 = 0; | |
} | |
FUN_8f636968((uint *)&local_78,0,0x48); | |
local_78 = 0x17; | |
local_6e = 1; | |
uVar6 = uVar6 | uVar7 & 0xffff; | |
local_74 = uVar6; | |
iVar2 = FUN_8f609784(param_1,(int *)&local_78); | |
if (iVar2 != 0) { | |
dprintf((byte *)s_Set_block_count_failed___s_8f65d18c, | |
(int *)s_mmc_sdhci_set_blk_cnt_8f65d228,uVar3,uVar6); | |
uVar1 = 1; | |
goto LAB_8f60d378; | |
} | |
iVar2 = FUN_8f609784(param_1,param_2); | |
if (iVar2 != 0) { | |
uVar1 = 1; | |
goto LAB_8f60d378; | |
} | |
do { | |
puVar4 = &local_7c; | |
uVar8 = FUN_8f60b038(param_1,(int *)(param_1 + 0xe),(int *)puVar4); | |
if ((int)uVar8 != 0) { | |
dprintf((byte *)s_Failed_to_get_card_status_after_r_8f65d1a8, | |
(int *)((ulonglong)uVar8 >> 0x20),puVar4,uVar6); | |
uVar1 = 1; | |
goto LAB_8f60d378; | |
} | |
iVar5 = iVar5 + -1; | |
FUN_8f6104fc(500); | |
if (iVar5 == 0) { | |
dprintf((byte *)s_Card_status_check_timed_out_afte_8f65d1dc,extraout_r1,puVar4,uVar6); | |
uVar1 = 1; | |
goto LAB_8f60d378; | |
} | |
uVar6 = local_7c; | |
} while (((local_7c & 0x100) == 0) || (uVar6 = (local_7c << 0x13) >> 0x1c, uVar6 == 7)); | |
param_2 = param_2 + 0x12; | |
local_84 = local_84 + -1; | |
} while (local_84 != 0); | |
uVar1 = 0; | |
LAB_8f60d378: | |
uVar8 = FUN_8f60b244(param_1,(int *)0x0); | |
uVar3 = (undefined4)((ulonglong)uVar8 >> 0x20); | |
if ((int)uVar8 != 0) { | |
uVar1 = 1; | |
} | |
} | |
else { | |
uVar1 = 1; | |
} | |
if (local_2c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar1,uVar3,local_2c); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f60d43c) | |
void FUN_8f60d408(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f60d474) | |
void FUN_8f60d440(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f60d4ac) | |
void FUN_8f60d478(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f60d4e4) | |
void FUN_8f60d4b0(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f60d520) | |
void FUN_8f60d4e8(void) | |
{ | |
return; | |
} | |
void FUN_8f60d524(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined8 uVar3; | |
ulonglong uVar4; | |
piVar1 = DAT_8f69d118; | |
iVar2 = FUN_8f6263b8(param_1,param_2); | |
if (iVar2 == 0) { | |
uVar3 = FUN_8f600364(); | |
uVar4 = FUN_8f60d4b0((int)uVar3,(int)((ulonglong)uVar3 >> 0x20)); | |
} | |
else { | |
uVar4 = FUN_8f600364(); | |
uVar4 = uVar4 & 0xffffffff00000000 | (ulonglong)*(uint *)((int)uVar4 + 0x90); | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)(uVar4 >> 0x20),piVar1); | |
} | |
void FUN_8f60d578(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
iVar2 = FUN_8f6263b8(param_1,param_2); | |
if (iVar2 == 0) { | |
FUN_8f600364(); | |
uVar3 = FUN_8f60d4e8(); | |
} | |
else { | |
iVar2 = FUN_8f600364(); | |
uVar3 = *(undefined8 *)(iVar2 + 0x48); | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,(int)((ulonglong)uVar3 >> 0x20),piVar1); | |
} | |
void FUN_8f60d5cc(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined8 uVar3; | |
ulonglong uVar4; | |
piVar1 = DAT_8f69d118; | |
iVar2 = FUN_8f6263b8(param_1,param_2); | |
if (iVar2 == 0) { | |
uVar3 = FUN_8f600364(); | |
uVar4 = FUN_8f60d478((int)uVar3,(int)((ulonglong)uVar3 >> 0x20)); | |
} | |
else { | |
uVar4 = FUN_8f600364(); | |
uVar4 = uVar4 & 0xffffffff00000000 | (ulonglong)*(uint *)((int)uVar4 + 0x40); | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)(uVar4 >> 0x20),piVar1); | |
} | |
void FUN_8f60d620(uint param_1,uint param_2,uint param_3,uint param_4) | |
{ | |
int *piVar1; | |
uint **ppuVar2; | |
uint uVar3; | |
undefined4 uVar4; | |
uint uVar5; | |
int *piVar6; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
int *piVar7; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
uint uVar8; | |
int iVar9; | |
int *in_lr; | |
bool bVar10; | |
undefined8 uVar11; | |
ulonglong uVar12; | |
undefined8 uVar13; | |
longlong lVar14; | |
piVar1 = DAT_8f69d118; | |
uVar11 = FUN_8f600364(); | |
ppuVar2 = (uint **)uVar11; | |
uVar3 = FUN_8f60d5cc(ppuVar2,(int)((ulonglong)uVar11 >> 0x20)); | |
uVar8 = 0; | |
uVar5 = uVar3; | |
FUN_8f658e24(param_1,param_2,uVar3,0); | |
if ((uVar5 | uVar8) != 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_mmc_wrapper__8f65d240,0x7a); | |
} | |
uVar12 = FUN_8f658354(param_3,uVar3); | |
if ((int)(uVar12 >> 0x20) != 0) { | |
param_3 = -uVar3 & (param_3 - 1) + uVar3; | |
} | |
uVar4 = FUN_8f625b24(param_4,param_3); | |
uVar11 = FUN_8f6263b8(uVar4,extraout_r1); | |
piVar7 = (int *)((ulonglong)uVar11 >> 0x20); | |
if ((int)uVar11 == 0) { | |
FUN_8f6582ac(param_3,uVar3); | |
uVar11 = FUN_8f60d408(ppuVar2,extraout_r1_01); | |
piVar7 = (int *)((ulonglong)uVar11 >> 0x20); | |
if ((int)uVar11 != 0) { | |
dprintf((byte *)s_Error__UFS_write_failed_writing_t_8f65d29c,piVar7,param_1,param_2); | |
lVar14 = CONCAT44(extraout_r1_02,1); | |
goto LAB_8f60d760; | |
} | |
} | |
else { | |
if (0x1fffe00 < param_3) { | |
uVar5 = FUN_8f6582ac(0x1fffe00,uVar3); | |
do { | |
uVar11 = FUN_8f658e24(param_1,param_2,uVar3,0); | |
piVar6 = (int *)uVar11; | |
uVar13 = FUN_8f60cdc4(ppuVar2,param_4,(int)piVar6,(int)((ulonglong)uVar11 >> 0x20),uVar5); | |
piVar7 = (int *)((ulonglong)uVar13 >> 0x20); | |
iVar9 = (int)uVar13; | |
if (iVar9 != 0) goto LAB_8f60d748; | |
bVar10 = 0xfe0001ff < param_1; | |
param_1 = param_1 + 0x1fffe00; | |
param_3 = param_3 + 0xfe000200; | |
param_2 = param_2 + bVar10; | |
param_4 = param_4 + 0x1fffe00; | |
} while (0x1fffe00 < param_3); | |
} | |
if (param_3 != 0) { | |
uVar11 = FUN_8f658e24(param_1,param_2,uVar3,0); | |
piVar6 = (int *)uVar11; | |
uVar5 = FUN_8f6582ac(param_3,uVar3); | |
lVar14 = FUN_8f60cdc4(ppuVar2,param_4,(int)piVar6,(int)((ulonglong)uVar11 >> 0x20),uVar5); | |
iVar9 = (int)lVar14; | |
if (iVar9 != 0) { | |
LAB_8f60d748: | |
dprintf((byte *)s_Failed_Writing_block____x_8f65d280,piVar6,(int)uVar11, | |
(int)((ulonglong)uVar11 >> 0x20)); | |
lVar14 = CONCAT44(extraout_r1_00,iVar9); | |
} | |
goto LAB_8f60d760; | |
} | |
} | |
lVar14 = ZEXT48(piVar7) << 0x20; | |
LAB_8f60d760: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)lVar14,(int)((ulonglong)lVar14 >> 0x20),piVar1); | |
} | |
void FUN_8f60d85c(uint param_1,uint param_2,uint param_3,uint param_4) | |
{ | |
int *piVar1; | |
uint **ppuVar2; | |
uint uVar3; | |
undefined4 uVar4; | |
uint uVar5; | |
int *piVar6; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
uint extraout_r1_02; | |
uint uVar7; | |
int iVar8; | |
int *in_lr; | |
bool bVar9; | |
undefined8 uVar10; | |
ulonglong uVar11; | |
undefined8 uVar12; | |
piVar1 = DAT_8f69d118; | |
uVar10 = FUN_8f600364(); | |
ppuVar2 = (uint **)uVar10; | |
uVar3 = FUN_8f60d5cc(ppuVar2,(int)((ulonglong)uVar10 >> 0x20)); | |
uVar7 = 0; | |
uVar5 = uVar3; | |
FUN_8f658e24(param_1,param_2,uVar3,0); | |
if ((uVar5 | uVar7) != 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_mmc_wrapper__8f65d240,0xbd); | |
} | |
uVar11 = FUN_8f658354(param_4,uVar3); | |
if ((int)(uVar11 >> 0x20) != 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_mmc_wrapper__8f65d240,0xbe); | |
} | |
uVar4 = FUN_8f625b24(param_3,param_4); | |
uVar10 = FUN_8f6263b8(uVar4,extraout_r1); | |
uVar4 = (undefined4)((ulonglong)uVar10 >> 0x20); | |
if ((int)uVar10 == 0) { | |
FUN_8f6582ac(param_4,uVar3); | |
uVar11 = FUN_8f60d440(ppuVar2,extraout_r1_01); | |
if ((int)uVar11 != 0) { | |
dprintf((byte *)s_Error__UFS_read_failed_writing_t_8f65d304,(int *)(uVar11 >> 0x20),param_1, | |
param_2); | |
} | |
FUN_8f625b4c(param_3,param_4); | |
uVar11 = uVar11 & 0xffffffff | (ulonglong)extraout_r1_02 << 0x20; | |
} | |
else { | |
if (0x1fffe00 < param_4) { | |
uVar5 = FUN_8f6582ac(0x1fffe00,uVar3); | |
do { | |
uVar10 = FUN_8f658e24(param_1,param_2,uVar3,0); | |
piVar6 = (int *)uVar10; | |
uVar12 = FUN_8f60ccc0(ppuVar2,param_3,(int)piVar6,(int)((ulonglong)uVar10 >> 0x20),uVar5); | |
uVar4 = (undefined4)((ulonglong)uVar12 >> 0x20); | |
iVar8 = (int)uVar12; | |
if (iVar8 != 0) goto LAB_8f60d978; | |
bVar9 = 0xfe0001ff < param_1; | |
param_1 = param_1 + 0x1fffe00; | |
param_4 = param_4 + 0xfe000200; | |
param_2 = param_2 + bVar9; | |
param_3 = param_3 + 0x1fffe00; | |
} while (0x1fffe00 < param_4); | |
} | |
uVar11 = CONCAT44(uVar4,param_4); | |
if (param_4 != 0) { | |
uVar10 = FUN_8f658e24(param_1,param_2,uVar3,0); | |
piVar6 = (int *)uVar10; | |
uVar5 = FUN_8f6582ac(param_4,uVar3); | |
uVar11 = FUN_8f60ccc0(ppuVar2,param_3,(int)piVar6,(int)((ulonglong)uVar10 >> 0x20),uVar5); | |
iVar8 = (int)uVar11; | |
if (iVar8 != 0) { | |
LAB_8f60d978: | |
dprintf((byte *)s_Failed_Reading_block____x_8f65d2e8,piVar6,(int)uVar10, | |
(int)((ulonglong)uVar10 >> 0x20)); | |
uVar11 = CONCAT44(extraout_r1_00,iVar8); | |
} | |
} | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar11,(int)(uVar11 >> 0x20),piVar1); | |
} | |
void FUN_8f60dac8(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f6263b8(param_1,param_2); | |
if ((int)uVar2 == 0) { | |
uVar2 = FUN_8f600364(); | |
uVar2 = FUN_8f60d478((int)uVar2,(int)((ulonglong)uVar2 >> 0x20)); | |
} | |
else { | |
uVar2 = CONCAT44((int)((ulonglong)uVar2 >> 0x20),0x800); | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
return; | |
} | |
void FUN_8f60db18(undefined param_1) | |
{ | |
int *piVar1; | |
int *piVar2; | |
undefined8 uVar3; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
uVar3 = FUN_8f600364(); | |
uVar4 = FUN_8f6263b8((int)uVar3,(int)((ulonglong)uVar3 >> 0x20)); | |
piVar2 = DAT_8f69d118; | |
if ((int)uVar4 == 0) { | |
*(undefined *)((int)uVar3 + 9) = param_1; | |
} | |
if (piVar1 == piVar2) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),piVar1); | |
} | |
void FUN_8f60db64(void) | |
{ | |
int *piVar1; | |
uint uVar2; | |
undefined8 uVar3; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
uVar3 = FUN_8f600364(); | |
uVar4 = FUN_8f6263b8((int)uVar3,(int)((ulonglong)uVar3 >> 0x20)); | |
if ((int)uVar4 == 0) { | |
uVar2 = (uint)*(byte *)((int)uVar3 + 9); | |
} | |
else { | |
uVar2 = 0; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,(int)((ulonglong)uVar4 >> 0x20),piVar1); | |
} | |
return; | |
} | |
void FUN_8f60dbb0(byte *param_1,char param_2) | |
{ | |
longlong lVar1; | |
int *piVar2; | |
uint **ppuVar3; | |
uint uVar4; | |
int iVar5; | |
uint uVar6; | |
int iVar7; | |
uint uVar8; | |
uint uVar9; | |
undefined8 uVar10; | |
ulonglong uVar11; | |
longlong lVar12; | |
ulonglong uVar13; | |
piVar2 = DAT_8f69d118; | |
uVar10 = FUN_8f600364(); | |
ppuVar3 = (uint **)uVar10; | |
uVar11 = FUN_8f60d5cc(ppuVar3,(int)((ulonglong)uVar10 >> 0x20)); | |
uVar4 = (uint)uVar11; | |
uVar10 = FUN_8f6263b8(uVar4,(int)(uVar11 >> 0x20)); | |
if ((int)uVar10 != 0) { | |
uVar10 = FUN_8f606760(param_1); | |
iVar5 = (int)uVar10; | |
lVar12 = FUN_8f60688c(iVar5,(int)((ulonglong)uVar10 >> 0x20)); | |
uVar6 = (uint)((ulonglong)lVar12 >> 0x20); | |
if (lVar12 == 0) { | |
uVar10 = CONCAT44(uVar6,1); | |
} | |
else { | |
uVar10 = FUN_8f606814(iVar5,uVar6); | |
uVar13 = FUN_8f658e24((uint)uVar10,(uint)((ulonglong)uVar10 >> 0x20),uVar4,0); | |
iVar7 = (int)(uVar13 >> 0x20); | |
iVar5 = FUN_8f6069cc(iVar5); | |
if ((iVar5 == 0) || (iVar7 != 0 || ppuVar3[0x11] <= (uint *)uVar13)) { | |
lVar1 = (uVar11 & 0xffffffff) * (uVar13 & 0xffffffff); | |
uVar8 = (uint)lVar1; | |
uVar9 = uVar4 * iVar7 + (int)((ulonglong)lVar1 >> 0x20); | |
} | |
else { | |
uVar8 = (int)ppuVar3[0x11] * uVar4; | |
uVar9 = 0; | |
} | |
uVar10 = FUN_8f658e24((uint)lVar12,uVar6,uVar4,0); | |
uVar10 = FUN_8f60cec8(ppuVar3,(int)uVar10,uVar8,uVar9,param_2); | |
} | |
} | |
if (piVar2 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar10,(int)((ulonglong)uVar10 >> 0x20),piVar2); | |
} | |
return; | |
} | |
void FUN_8f60dcc4(undefined4 param_1,undefined4 param_2) | |
{ | |
int iVar1; | |
undefined8 uVar2; | |
uint *local_18; | |
int *local_14; | |
uVar2 = CONCAT44(param_2,DAT_8f6881c4); | |
local_18 = (uint *)&DAT_8f65d588; | |
local_14 = DAT_8f69d118; | |
if (DAT_8f6881c4 == 0) { | |
uVar2 = FUN_8f641304((uint **)0x0,&local_18,(char *)0x653,(uint *)&DAT_8f65e2ec); | |
iVar1 = (int)uVar2; | |
if (iVar1 != 0) { | |
DAT_8f6881c4 = iVar1; | |
DAT_8f6881c8 = iVar1; | |
} | |
} | |
if (local_14 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),local_14); | |
} | |
void FUN_8f60dd44(int param_1,int *param_2) | |
{ | |
uint uVar1; | |
byte *pbVar2; | |
byte bVar3; | |
int *piVar4; | |
int iVar5; | |
int *piVar6; | |
int *extraout_r1; | |
int *extraout_r1_00; | |
int *extraout_r1_01; | |
uint uVar7; | |
uint uVar8; | |
int *piVar9; | |
int *piVar10; | |
undefined8 uVar11; | |
piVar4 = DAT_8f69d118; | |
uVar11 = CONCAT44(param_2,param_1); | |
bVar3 = *(byte *)(param_1 + 1); | |
if ((bVar3 & 0x80) == 0) { | |
uVar8 = 1; | |
piVar9 = (int *)0x1; | |
} | |
else { | |
uVar8 = bVar3 & 0x7f; | |
piVar9 = (int *)0x2; | |
if ((bVar3 & 0x7f) == 0) { | |
LAB_8f60ddf4: | |
iVar5 = (int)piVar9 + uVar8; | |
goto LAB_8f60ddd0; | |
} | |
} | |
uVar7 = uVar8 - 1; | |
uVar8 = 0; | |
piVar10 = (int *)((int)piVar9 + (uVar7 & 0xff) + 1); | |
do { | |
uVar1 = uVar8 << 8; | |
uVar11 = FUN_8f60dac8((int)uVar11,(int)((ulonglong)uVar11 >> 0x20)); | |
piVar6 = (int *)((ulonglong)uVar11 >> 0x20); | |
if (((int *)uVar11 <= piVar9) || (param_2 <= piVar9)) { | |
dprintf((byte *)s_Error__Pos_index_exceeding_the_i_8f65dc48,piVar6,uVar7,uVar8); | |
iVar5 = 0; | |
param_2 = extraout_r1; | |
goto LAB_8f60ddd0; | |
} | |
pbVar2 = (byte *)(param_1 + (int)piVar9); | |
piVar9 = (int *)((int)piVar9 + 1); | |
uVar8 = *pbVar2 | uVar1; | |
if (piVar9 == piVar10) { | |
param_2 = piVar6; | |
if (uVar8 < ~(uint)piVar9) goto LAB_8f60ddf4; | |
dprintf((byte *)s_Error__Len_overflows_UINT_MAX_va_8f65dc7c,piVar6,~(uint)piVar9,uVar8); | |
iVar5 = 0; | |
param_2 = extraout_r1_01; | |
goto LAB_8f60ddd0; | |
} | |
} while (uVar8 < 0x1000000); | |
dprintf((byte *)s_Error__Length_exceeding_max_size_8f65dc18,piVar6,uVar7,uVar8); | |
iVar5 = 0; | |
param_2 = extraout_r1_00; | |
LAB_8f60ddd0: | |
if (piVar4 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar5,param_2,piVar4); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f60de7c) | |
void FUN_8f60de34(void) | |
{ | |
if ((DAT_8f67ee50 & 0xfffffffd) == 0) { | |
DAT_8f67ee50 = 3; | |
} | |
return; | |
} | |
void FUN_8f60de80(int *param_1,uint param_2,undefined4 param_3,int param_4) | |
{ | |
int *piVar1; | |
uint uVar2; | |
undefined4 extraout_r1; | |
undefined4 uVar3; | |
undefined4 uVar4; | |
undefined4 *puVar5; | |
int *piVar6; | |
int *piVar7; | |
undefined8 uVar8; | |
char local_60; | |
undefined local_5f; | |
undefined local_5e; | |
undefined local_5d; | |
undefined local_5c; | |
undefined local_5b; | |
undefined local_5a; | |
undefined local_59; | |
undefined local_58; | |
undefined local_57; | |
undefined local_56; | |
undefined local_55; | |
undefined local_54; | |
undefined local_53; | |
undefined local_52; | |
undefined local_51; | |
undefined local_50 [4]; | |
undefined4 local_4c; | |
undefined4 local_48; | |
undefined4 local_44; | |
undefined4 local_40; | |
undefined4 local_3c; | |
undefined4 local_38; | |
undefined4 local_34; | |
undefined2 local_30; | |
undefined local_2e; | |
int *local_2c; | |
piVar6 = (int *)0x0; | |
local_57 = 1; | |
local_2c = DAT_8f69d118; | |
local_52 = 1; | |
local_60 = '0'; | |
local_5e = 0x30; | |
local_5f = 0x31; | |
local_5d = 0xd; | |
local_5c = 6; | |
local_5b = 9; | |
uVar3 = 3; | |
local_5a = 0x60; | |
local_59 = 0x86; | |
local_56 = 0x65; | |
local_54 = 4; | |
uVar4 = 2; | |
local_4c = 0; | |
local_48 = 0; | |
local_44 = 0; | |
local_40 = 0; | |
local_3c = 0; | |
local_38 = 0; | |
local_34 = 0; | |
local_30 = 0; | |
local_2e = 0; | |
local_58 = 0x48; | |
local_55 = 3; | |
local_53 = 2; | |
local_51 = 5; | |
local_50 = (undefined [4])0x200400; | |
uVar8 = FUN_8f6366fc(1,0x100); | |
piVar7 = (int *)uVar8; | |
if (piVar7 == (int *)0x0) { | |
uVar8 = dprintf((byte *)s_boot_verifier__Calloc_failed_dur_8f65dca4, | |
(int *)((ulonglong)uVar8 >> 0x20),uVar3,uVar4); | |
} | |
else { | |
puVar5 = (undefined4 *)(local_50 + 3); | |
FUN_8f619974(param_1,param_2,(int *)0x2,puVar5); | |
piVar1 = (int *)FUN_8f61990c(param_3,piVar7,param_4); | |
if (piVar1 == (int *)0x33) { | |
uVar2 = FUN_8f636a7c((char *)piVar7,&local_60,0x33); | |
piVar6 = (int *)(1 - uVar2); | |
if (1 < uVar2) { | |
piVar6 = (int *)0x0; | |
} | |
} | |
else { | |
dprintf((byte *)s_boot_verifier__Signature_decrypt_8f65dcd8,piVar1,param_4,puVar5); | |
} | |
uVar8 = FUN_8f636758((int)piVar7); | |
piVar7 = piVar6; | |
} | |
FUN_8f64dc70((int)uVar8,(int)((ulonglong)uVar8 >> 0x20)); | |
FUN_8f63bf3c(); | |
FUN_8f64d3c8((undefined4 *)0x0); | |
if (local_2c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(piVar7,extraout_r1,local_2c); | |
} | |
return; | |
} | |
void FUN_8f60e010(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
piVar1 = DAT_8f69d118; | |
FUN_8f60dcc4(param_1,param_2); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(DAT_8f67ee50,piVar1,DAT_8f69d118); | |
} | |
void FUN_8f60e054(int param_1) | |
{ | |
undefined4 *puVar1; | |
int iVar2; | |
int iVar3; | |
undefined4 *puVar4; | |
uint uVar5; | |
undefined4 extraout_r1; | |
int *piVar6; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
int *extraout_r1_02; | |
int *extraout_r1_03; | |
int *extraout_r1_04; | |
int *extraout_r1_05; | |
int *extraout_r1_06; | |
int *extraout_r1_07; | |
char *pcVar7; | |
char *pcVar8; | |
undefined4 uVar9; | |
int **ppiVar10; | |
char *pcVar11; | |
char *pcVar12; | |
int *piVar13; | |
int *in_lr; | |
undefined8 uVar14; | |
undefined8 uVar15; | |
int *local_90; | |
undefined4 local_8c; | |
int *local_88; | |
int *local_84; | |
int **local_80; | |
undefined4 local_70; | |
undefined4 local_6c; | |
undefined4 local_68; | |
undefined4 local_64; | |
undefined4 local_60; | |
undefined4 local_5c; | |
undefined4 local_58; | |
undefined4 local_54; | |
int local_50; | |
undefined4 local_4c; | |
undefined4 local_48; | |
undefined4 local_44; | |
undefined4 local_40; | |
undefined4 local_3c; | |
undefined4 local_38; | |
undefined4 local_34; | |
int local_30; | |
int *local_2c; | |
ppiVar10 = DAT_8f67ee50; | |
local_50 = 0; | |
local_2c = DAT_8f69d118; | |
local_4c = 0; | |
local_48 = 0; | |
local_44 = 0; | |
local_40 = 0; | |
local_3c = 0; | |
local_38 = 0; | |
local_34 = 0; | |
local_30 = 0; | |
local_70 = 0; | |
local_6c = 0; | |
local_68 = 0; | |
local_64 = 0; | |
local_60 = 0; | |
local_5c = 0; | |
local_58 = 0; | |
local_54 = 0; | |
pcVar7 = (char *)DAT_8f69d118; | |
uVar14 = FUN_8f608478(); | |
piVar13 = (int *)((ulonglong)uVar14 >> 0x20); | |
switch(ppiVar10) { | |
case (int **)0x0: | |
iVar2 = FUN_8f648b98(*(int **)(*(int *)(**(int **)(DAT_8f6881c4 + 4) + 4) + 0x10),piVar13); | |
iVar3 = iVar2 + 7; | |
if (iVar3 < 0) { | |
iVar3 = iVar2 + 0xe; | |
} | |
pcVar7 = (char *)(iVar3 >> 3); | |
iVar2 = *(int *)(**(int **)(DAT_8f6881c4 + 4) + 4); | |
uVar15 = FUN_8f648b98(*(int **)(iVar2 + 0x14),DAT_8f6881c4); | |
piVar13 = (int *)((ulonglong)uVar15 >> 0x20); | |
iVar3 = (int)uVar15 + 7; | |
if (iVar3 < 0) { | |
iVar3 = (int)uVar15 + 0xe; | |
} | |
pcVar8 = pcVar7; | |
if ((char *)0x400 < pcVar7) { | |
dprintf((byte *)s_Invalid_n_value_from_key_materia_8f65dd1c,piVar13,pcVar7,iVar2); | |
pcVar8 = s_platform_msm_shared_boot_verifie_8f65dd40; | |
iVar2 = 0x1df; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_boot_verifie_8f65dd40,0x1df); | |
piVar13 = extraout_r1_04; | |
} | |
if (0x10 < (uint)(iVar3 >> 3)) { | |
dprintf((byte *)s_Invalid_e_value_from_key_materia_8f65dd64,piVar13,pcVar8,iVar2); | |
pcVar8 = s_platform_msm_shared_boot_verifie_8f65dd40; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_boot_verifie_8f65dd40,0x1e5); | |
piVar13 = extraout_r1_03; | |
} | |
pcVar12 = pcVar7 + (iVar3 >> 3); | |
pcVar11 = pcVar7; | |
uVar15 = FUN_8f63666c((uint)pcVar12,piVar13); | |
piVar13 = (int *)uVar15; | |
if (piVar13 == (int *)0x0) { | |
dprintf((byte *)s_Failed_to_allocate_memory_for_RO_8f65dd88,(int *)((ulonglong)uVar15 >> 0x20) | |
,pcVar8,pcVar11); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_boot_verifie_8f65dd40,0x1eb); | |
} | |
FUN_8f649214(*(int **)(*(int *)(**(int **)(DAT_8f6881c4 + 4) + 4) + 0x10),(undefined *)piVar13); | |
FUN_8f649214(*(int **)(*(int *)(**(int **)(DAT_8f6881c4 + 4) + 4) + 0x14), | |
(char *)((int)piVar13 + (int)pcVar7)); | |
goto LAB_8f60e490; | |
case (int **)0x1: | |
piVar13 = (int *)0x0; | |
local_50 = param_1; | |
break; | |
case (int **)0x2: | |
case (int **)0x3: | |
if (DAT_8f6881c0 == 0) { | |
dprintf((byte *)s_RSA_is_null_from_the_embedded_ce_8f65ddb8,piVar13,pcVar7,0); | |
pcVar7 = s_platform_msm_shared_boot_verifie_8f65dd40; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_boot_verifie_8f65dd40,0x1f8); | |
piVar13 = extraout_r1_07; | |
} | |
uVar15 = FUN_8f648b98(*(int **)(DAT_8f6881c0 + 0x10),piVar13); | |
iVar2 = (int)uVar15 + 7; | |
if (iVar2 < 0) { | |
iVar2 = (int)uVar15 + 0xe; | |
} | |
iVar3 = DAT_8f6881c0; | |
uVar15 = FUN_8f648b98(*(int **)(DAT_8f6881c0 + 0x14),(int)((ulonglong)uVar15 >> 0x20)); | |
piVar13 = (int *)((ulonglong)uVar15 >> 0x20); | |
uVar5 = iVar2 >> 3; | |
iVar2 = (int)uVar15 + 7; | |
if (iVar2 < 0) { | |
iVar2 = (int)uVar15 + 0xe; | |
} | |
if (0x400 < uVar5) { | |
dprintf((byte *)s_Invalid_n_value_from_rsa_from_ce_8f65dde4,piVar13,pcVar7,iVar3); | |
pcVar7 = s_platform_msm_shared_boot_verifie_8f65dd40; | |
iVar3 = 0x201; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_boot_verifie_8f65dd40,0x201); | |
piVar13 = extraout_r1_05; | |
} | |
if (0x10 < (uint)(iVar2 >> 3)) { | |
dprintf((byte *)s_Invalid_e_value_from_rsa_from_ce_8f65de08,piVar13,pcVar7,iVar3); | |
pcVar7 = s_platform_msm_shared_boot_verifie_8f65dd40; | |
iVar3 = 0x207; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_boot_verifie_8f65dd40,0x207); | |
piVar13 = extraout_r1_02; | |
} | |
pcVar12 = (char *)(uVar5 + (iVar2 >> 3)); | |
uVar15 = FUN_8f63666c((uint)pcVar12,piVar13); | |
piVar13 = (int *)uVar15; | |
if (piVar13 == (int *)0x0) { | |
dprintf((byte *)s_Failed_to_allocate_memory_for_RO_8f65dd88,(int *)((ulonglong)uVar15 >> 0x20) | |
,pcVar7,iVar3); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_boot_verifie_8f65dd40,0x20d); | |
} | |
FUN_8f649214(*(int **)(DAT_8f6881c0 + 0x10),(undefined *)piVar13); | |
FUN_8f649214(*(int **)(DAT_8f6881c0 + 0x14),(undefined *)((int)piVar13 + uVar5)); | |
LAB_8f60e490: | |
FUN_8f619cfc(piVar13,(uint)pcVar12,&local_50,(int *)0x2); | |
local_30 = param_1; | |
break; | |
default: | |
piVar13 = (int *)0x0; | |
} | |
uVar9 = 2; | |
puVar4 = &local_70; | |
FUN_8f619cfc(&local_50,0x24,puVar4,(int *)0x2); | |
uVar15 = FUN_8f63666c(0x2c,extraout_r1); | |
puVar1 = (undefined4 *)uVar15; | |
if (puVar1 == (undefined4 *)0x0) { | |
dprintf((byte *)s_Failed_to_allocate_memory_for_RO_8f65dd88,(int *)((ulonglong)uVar15 >> 0x20), | |
puVar4,uVar9); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_boot_verifie_8f65dd40,0x224); | |
} | |
*(undefined *)(puVar1 + 2) = 0x20; | |
*(undefined *)((int)puVar1 + 2) = 0; | |
*(undefined *)((int)puVar1 + 3) = 0; | |
*(undefined *)((int)puVar1 + 5) = 0; | |
*(undefined *)((int)puVar1 + 6) = 0; | |
*(undefined *)((int)puVar1 + 7) = 0; | |
*(undefined *)((int)puVar1 + 9) = 0; | |
*(undefined *)((int)puVar1 + 10) = 0; | |
*(undefined *)((int)puVar1 + 0xb) = 0; | |
*(undefined *)puVar1 = 1; | |
*(undefined *)((int)puVar1 + 1) = 2; | |
*(undefined *)(puVar1 + 1) = 0xc; | |
FUN_8f63685c(puVar1 + 3,&local_70,0x20); | |
uVar9 = 0x2c; | |
ppiVar10 = &local_90; | |
iVar2 = FUN_8f617098((int)uVar14,puVar1,(int *)0x2c,ppiVar10,(int *)&DAT_00000004); | |
if ((iVar2 < 0) || ((int)local_90 < 0)) { | |
dprintf((byte *)s_QSEEcom_command_for_Sending_Root_8f65de2c,local_90,uVar9,ppiVar10); | |
if (piVar13 != (int *)0x0) { | |
FUN_8f636758((int)piVar13); | |
} | |
FUN_8f636758((int)puVar1); | |
FUN_8f636758(0); | |
iVar2 = 0; | |
uVar9 = extraout_r1_01; | |
goto LAB_8f60e3b0; | |
} | |
DAT_8f69d1bc = DAT_8f67ee50; | |
DAT_8f69d198 = param_1; | |
FUN_8f636b10((undefined4 *)&DAT_8f69d19c,0x20,&local_50,0x20); | |
iVar2 = FUN_8f608478(); | |
local_8c = 0x200; | |
pcVar7 = (char *)0x4; | |
ppiVar10 = &local_84; | |
iVar3 = FUN_8f617098(iVar2,&local_8c,(int *)&DAT_00000004,ppiVar10,(int *)0x14); | |
if ((iVar3 < 0) || ((int)local_84 < 0)) { | |
dprintf((byte *)s_QSEEcom_command_for_getting_keym_8f65de6c,local_84,pcVar7,ppiVar10); | |
pcVar7 = s_platform_msm_shared_boot_verifie_8f65dd40; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_boot_verifie_8f65dd40,0x1a5); | |
local_84 = extraout_r1_06; | |
} | |
if ((int **)0x1 < local_80) { | |
puVar4 = (undefined4 *)FUN_8f63666c(0x40,local_84); | |
if (puVar4 == (undefined4 *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_boot_verifie_8f65dd40,0x1ab); | |
} | |
FUN_8f636b10(puVar4 + 4,0x30,&DAT_8f69d198,0x30); | |
*(undefined *)((int)puVar4 + 2) = 0; | |
*(undefined *)((int)puVar4 + 3) = 0; | |
*(undefined *)(puVar4 + 1) = 0; | |
*(undefined *)((int)puVar4 + 5) = 0; | |
*(undefined *)((int)puVar4 + 6) = 0; | |
*(undefined *)((int)puVar4 + 7) = 0; | |
*(undefined *)((int)puVar4 + 9) = 0; | |
*(undefined *)((int)puVar4 + 10) = 0; | |
*(undefined *)((int)puVar4 + 0xb) = 0; | |
*(undefined *)((int)puVar4 + 0xd) = 0; | |
*(undefined *)((int)puVar4 + 0xe) = 0; | |
*(undefined *)((int)puVar4 + 0xf) = 0; | |
pcVar7 = (char *)0x40; | |
*(undefined *)puVar4 = 8; | |
local_80 = &local_88; | |
*(undefined *)((int)puVar4 + 1) = 2; | |
*(undefined *)(puVar4 + 2) = 0x10; | |
*(undefined *)(puVar4 + 3) = 0x30; | |
iVar2 = FUN_8f617098(iVar2,puVar4,(int *)0x40,local_80,(int *)&DAT_00000004); | |
if ((iVar2 < 0) || ((int)local_88 < 0)) { | |
dprintf((byte *)s_QSEEcom_command_for_Sending_boot_8f65deb8,local_88,pcVar7,local_80); | |
FUN_8f636758((int)puVar4); | |
local_80 = (int **)0x1bb; | |
pcVar7 = s_platform_msm_shared_boot_verifie_8f65dd40; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_boot_verifie_8f65dd40,0x1bb); | |
} | |
FUN_8f636758((int)puVar4); | |
} | |
uVar14 = FUN_8f615da0(); | |
piVar6 = (int *)((ulonglong)uVar14 >> 0x20); | |
if (((int)uVar14 == 0) || (local_80 = DAT_8f67ee50, DAT_8f67ee50 == (int **)0x0)) { | |
LAB_8f60e37c: | |
dprintf((byte *)s_Sending_Root_of_Trust_to_trustzo_8f65dfa0,piVar6,pcVar7,local_80); | |
iVar2 = 1; | |
} | |
else { | |
uVar14 = FUN_8f6178c4(); | |
uVar5 = (uint)uVar14; | |
iVar2 = FUN_8f6161c8(uVar5,(int)((ulonglong)uVar14 >> 0x20)); | |
if (iVar2 == 0) { | |
dprintf((byte *)s_send_rot_command__TZ_didn_t_supp_8f65df40,(int *)(uVar5 >> 0x16), | |
(uVar5 << 10) >> 0x16,uVar5 & 0x3ff); | |
} | |
else { | |
iVar2 = FUN_8f615698(0); | |
if (iVar2 == 0) { | |
uVar14 = FUN_8f615698(0xc); | |
piVar6 = (int *)((ulonglong)uVar14 >> 0x20); | |
if ((int)uVar14 == 0) goto LAB_8f60e37c; | |
dprintf((byte *)s_send_rot_command__set_tamper_fus_8f65def4,piVar6,pcVar7,local_80); | |
} | |
else { | |
iVar2 = 0; | |
} | |
} | |
} | |
if (piVar13 != (int *)0x0) { | |
FUN_8f636758((int)piVar13); | |
} | |
FUN_8f636758((int)puVar1); | |
FUN_8f636758(0); | |
uVar9 = extraout_r1_00; | |
LAB_8f60e3b0: | |
if (local_2c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar2,uVar9,local_2c); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f60e800) | |
void FUN_8f60e7b8(undefined4 *param_1) | |
{ | |
*param_1 = DAT_8f69d194; | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f60e8d4) | |
void FUN_8f60e804(undefined4 param_1,uint param_2) | |
{ | |
switch(param_1) { | |
case 0: | |
case 3: | |
DAT_8f67ee50 = 0; | |
break; | |
case 1: | |
DAT_8f67ee50 = 1; | |
break; | |
case 2: | |
if (DAT_8f67ee50 == 0) { | |
DAT_8f67ee50 = 2; | |
} | |
break; | |
case 4: | |
FUN_8f60de34(); | |
return; | |
case 5: | |
if (DAT_8f67ee50 - 1U < 2) { | |
DAT_8f67ee50 = 3; | |
} | |
} | |
return; | |
} | |
void FUN_8f60e8d8(int *param_1,int *param_2,byte *param_3) | |
{ | |
int iVar1; | |
undefined4 *puVar2; | |
undefined4 *puVar3; | |
int *piVar4; | |
undefined4 extraout_r1; | |
int *extraout_r1_00; | |
int *piVar5; | |
int *piVar6; | |
int **ppiVar7; | |
int **ppiVar8; | |
uint uVar9; | |
undefined *puVar10; | |
int **ppiVar11; | |
int iVar12; | |
uint *puVar13; | |
int iVar14; | |
char *pcVar15; | |
uint *puVar16; | |
int **ppiVar17; | |
int *in_lr; | |
undefined8 uVar18; | |
uint *local_34; | |
uint *local_30; | |
int *local_2c; | |
puVar13 = (uint *)((int)param_1 + (int)param_2); | |
local_2c = DAT_8f69d118; | |
local_34 = puVar13; | |
if (DAT_8f67ee50 == 1) { | |
iVar1 = 0; | |
goto LAB_8f60ea98; | |
} | |
uVar9 = DAT_8f67ee50; | |
uVar18 = FUN_8f60dac8(DAT_8f69d118,param_2); | |
uVar18 = FUN_8f63666c((uint)uVar18,(int)((ulonglong)uVar18 >> 0x20)); | |
puVar2 = (undefined4 *)uVar18; | |
if (puVar2 == (undefined4 *)0x0) { | |
uVar9 = 0x27d; | |
uVar18 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_boot_verifie_8f65dd40,0x27d); | |
} | |
puVar16 = local_34; | |
iVar1 = FUN_8f60dac8((int)uVar18,(int)((ulonglong)uVar18 >> 0x20)); | |
puVar3 = FUN_8f63685c(puVar2,puVar16,iVar1); | |
uVar18 = FUN_8f60dac8(puVar3,extraout_r1); | |
piVar5 = (int *)((ulonglong)uVar18 >> 0x20); | |
if (((int *)uVar18 < (int *)0x3) || (uVar9 = (uint)*(byte *)puVar2, uVar9 != 0x30)) { | |
LAB_8f60e960: | |
dprintf((byte *)s_boot_verifier__Error_while_readi_8f65dfd8,piVar5,iVar1,uVar9); | |
uVar18 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_boot_verifie_8f65dd40,0x286); | |
pcVar15 = (char *)0x0; | |
uVar18 = FUN_8f60dac8((int)uVar18,(int)((ulonglong)uVar18 >> 0x20)); | |
FUN_8f60dac8((int)uVar18,(int)((ulonglong)uVar18 >> 0x20)); | |
LAB_8f60e9a0: | |
puVar10 = &DAT_8f65d544; | |
uVar18 = FUN_8f641304((uint **)0x0,&local_34,pcVar15,(uint *)&DAT_8f65d544); | |
piVar5 = (int *)uVar18; | |
if (piVar5 == (int *)0x0) { | |
dprintf((byte *)s_boot_verifier__verification_fail_8f65e050,(int *)((ulonglong)uVar18 >> 0x20) | |
,pcVar15,puVar10); | |
uVar18 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_boot_verifie_8f65dd40,0x299); | |
} | |
puVar16 = (uint *)piVar5[1]; | |
iVar1 = FUN_8f64dbf8((int)uVar18,(int)((ulonglong)uVar18 >> 0x20)); | |
FUN_8f653e18(puVar16,iVar1,&DAT_8f69d1c8,&DAT_8f69d194); | |
iVar14 = DAT_8f6881c8; | |
piVar4 = (int *)FUN_8f636bdc((int)param_3,(byte *)s_keystore_8f65e094); | |
ppiVar17 = (int **)piVar5[3]; | |
ppiVar11 = (int **)*ppiVar17; | |
ppiVar7 = (int **)*ppiVar11; | |
ppiVar8 = ppiVar7; | |
uVar18 = FUN_8f636e98((byte *)ppiVar11[2],param_3,(int *)ppiVar7); | |
piVar6 = (int *)((ulonglong)uVar18 >> 0x20); | |
if ((int)uVar18 == 0) { | |
uVar18 = FUN_8f636de0(param_3); | |
piVar6 = (int *)((ulonglong)uVar18 >> 0x20); | |
ppiVar11 = ppiVar7; | |
if (ppiVar7 != (int **)(int *)uVar18) goto LAB_8f60ea4c; | |
iVar1 = 4 - *ppiVar17[1]; | |
uVar9 = *(uint *)ppiVar17[1][2]; | |
if (0 < iVar1) { | |
uVar9 = uVar9 << (iVar1 * 8 & 0xffU); | |
} | |
piVar6 = (int *)(uVar9 << 0x18 | (uVar9 >> 8 & 0xff) << 0x10 | (uVar9 >> 0x10 & 0xff) << 8 | | |
uVar9 >> 0x18); | |
if (param_2 != piVar6) { | |
dprintf((byte *)s_boot_verifier__image_length_is_d_8f65e0a0,piVar6,param_2,uVar9); | |
goto LAB_8f60ea58; | |
} | |
if (piVar4 != (int *)0x0) { | |
puVar10 = &DAT_8f65d50c; | |
local_30 = puVar13; | |
uVar18 = FUN_8f63f6c4((uint *)ppiVar17,(byte **)&local_30,(int *)&DAT_8f65d50c); | |
piVar4 = (int *)~(uint)uVar18; | |
if (piVar4 < param_2) { | |
dprintf((byte *)s_Interger_overflow_detected_8f65e0d8,(int *)((ulonglong)uVar18 >> 0x20), | |
puVar10,piVar4); | |
piVar4 = (int *)0x11c; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_boot_verifie_8f65dd40,0x11c); | |
} | |
else { | |
param_2 = (int *)((int)param_2 + (uint)uVar18); | |
} | |
} | |
if (iVar14 == 0) { | |
dprintf((byte *)s__s__d__Keystore_is_null_8f65e0f4,(int *)s_verify_image_with_sig_8f65d438, | |
0x129,piVar4); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_boot_verifie_8f65dd40,0x12a); | |
} | |
else { | |
iVar14 = *(int *)(**(int **)(iVar14 + 4) + 4); | |
} | |
iVar12 = iVar14; | |
uVar18 = FUN_8f60de80(param_1,(uint)param_2,*(undefined4 *)(piVar5[4] + 8),iVar14); | |
iVar1 = (int)uVar18; | |
if (iVar1 == 0) { | |
piVar4 = piVar5; | |
uVar18 = FUN_8f6539ac((int **)piVar5[1],(int *)((ulonglong)uVar18 >> 0x20)); | |
if ((int *)uVar18 == (int *)0x0) { | |
dprintf((byte *)s_Unable_to_extract_public_key_fro_8f65e110, | |
(int *)((ulonglong)uVar18 >> 0x20),piVar4,iVar12); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_boot_verifie_8f65dd40,0x144); | |
} | |
else { | |
iVar14 = FUN_8f64df3c((int *)uVar18); | |
DAT_8f6881c0 = iVar14; | |
} | |
uVar18 = FUN_8f60de80(param_1,(uint)param_2,*(undefined4 *)(piVar5[4] + 8),iVar14); | |
iVar1 = (int)uVar18; | |
if (iVar1 == 0) { | |
FUN_8f60de34(); | |
} | |
else { | |
FUN_8f60e804(2,(uint)((ulonglong)uVar18 >> 0x20)); | |
} | |
} | |
else { | |
DAT_8f67ee50 = 0; | |
} | |
} | |
else { | |
LAB_8f60ea4c: | |
dprintf((byte *)s_boot_verifier__verification_fail_8f65e050,piVar6,ppiVar8,ppiVar11); | |
LAB_8f60ea58: | |
FUN_8f60de34(); | |
iVar1 = 0; | |
} | |
DAT_8f69d1c0 = (uint)(param_1[0xb] << 8) >> 0x13; | |
DAT_8f69d1c4 = param_1[0xb] & 0x7ff; | |
FUN_8f641cec(piVar5,(uint *)&DAT_8f65d544); | |
} | |
else { | |
uVar18 = FUN_8f60dd44((int)puVar2,(int *)uVar18); | |
piVar5 = (int *)((ulonglong)uVar18 >> 0x20); | |
pcVar15 = (char *)uVar18; | |
if (pcVar15 == (char *)0x0) goto LAB_8f60e960; | |
uVar18 = FUN_8f60dac8(pcVar15,piVar5); | |
piVar5 = (int *)((ulonglong)uVar18 >> 0x20); | |
if (pcVar15 <= (char *)uVar18) { | |
uVar18 = FUN_8f60dac8((char *)uVar18,piVar5); | |
piVar5 = (int *)((ulonglong)uVar18 >> 0x20); | |
if ((char *)uVar18 < pcVar15) goto LAB_8f60eb08; | |
goto LAB_8f60e9a0; | |
} | |
LAB_8f60eb08: | |
dprintf((byte *)s_boot_verifier__Signature_length_e_8f65e010,piVar5,iVar1,uVar9); | |
iVar1 = 0; | |
} | |
FUN_8f636758((int)puVar2); | |
param_2 = extraout_r1_00; | |
LAB_8f60ea98: | |
if (local_2c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar1,param_2,local_2c); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f60ed68) | |
void FUN_8f60ed2c(void) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f60edcc) | |
// WARNING: Removing unreachable block (ram,0x8f604524) | |
void FUN_8f60ed6c(undefined4 param_1) | |
{ | |
if (DAT_8f67ee50 != 3) { | |
return; | |
} | |
return; | |
} | |
void FUN_8f60f298(int param_1) | |
{ | |
int *piVar1; | |
undefined4 extraout_r1; | |
undefined4 uVar2; | |
int iVar3; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
uVar4 = (*(code *)(&PTR_FUN_8f67ee58)[param_1 * 2])(); | |
if ((int)uVar4 != 0) { | |
iVar3 = 10; | |
do { | |
uVar4 = (*(code *)(&PTR_FUN_8f67ee58)[param_1 * 2])(); | |
uVar2 = (undefined4)((ulonglong)uVar4 >> 0x20); | |
if ((int)uVar4 == 0) break; | |
FUN_8f627cfc(100); | |
iVar3 = iVar3 + -1; | |
uVar2 = extraout_r1; | |
} while (iVar3 != 0); | |
uVar4 = CONCAT44(uVar2,1); | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),piVar1); | |
} | |
return; | |
} | |
void FUN_8f60f310(void) | |
{ | |
int *piVar1; | |
int iVar2; | |
piVar1 = DAT_8f69d118; | |
while (((iVar2 = (*(code *)PTR_FUN_8f67ee58)(), iVar2 != 0 || | |
(iVar2 = (*(code *)PTR_FUN_8f67ee60)(), iVar2 != 0)) || | |
(iVar2 = (*(code *)PTR_FUN_8f67ee68)(), iVar2 != 0))) { | |
FUN_8f627cfc(0x32); | |
} | |
DAT_8f6881cc = FUN_8f610438(); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(DAT_8f6881cc,piVar1,DAT_8f69d118); | |
} | |
void FUN_8f60f39c(int param_1) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined4 extraout_r1; | |
int iVar3; | |
piVar1 = DAT_8f69d118; | |
iVar3 = param_1 + 0x58; | |
FUN_8f60ffb8(param_1); | |
FUN_8f60f310(); | |
while( true ) { | |
iVar2 = FUN_8f60f298(0); | |
if (iVar2 == 0) { | |
iVar2 = FUN_8f60f298(1); | |
if (iVar2 == 0) { | |
iVar2 = FUN_8f60f298(2); | |
if (iVar2 != 0) { | |
FUN_8f627334(iVar3); | |
(*(code *)(&PTR_LAB_8f65e338)[*(int *)(param_1 + 0x44) * 3])(param_1); | |
FUN_8f627418(iVar3); | |
} | |
} | |
else { | |
FUN_8f627334(iVar3); | |
(*(code *)(&PTR_LAB_8f65e334)[*(int *)(param_1 + 0x44) * 3])(param_1); | |
FUN_8f627418(iVar3); | |
} | |
} | |
else { | |
FUN_8f627334(iVar3); | |
(*(code *)(&PTR_LAB_8f65e330)[*(int *)(param_1 + 0x44) * 3])(param_1); | |
FUN_8f627418(iVar3); | |
} | |
FUN_8f627334(iVar3); | |
if ((*(int *)(param_1 + 0x48) != 0) && | |
(iVar2 = FUN_8f610438(), *(uint *)(param_1 + 0x48) < (uint)(iVar2 - DAT_8f6881cc))) break; | |
if (*(int *)(param_1 + 0x4c) != 0) goto LAB_8f60f498; | |
FUN_8f627418(iVar3); | |
FUN_8f627cfc(0x32); | |
} | |
*(undefined4 *)(param_1 + 0x4c) = 1; | |
LAB_8f60f498: | |
*(undefined4 *)(param_1 + 0x50) = 1; | |
FUN_8f627418(iVar3); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,extraout_r1,piVar1); | |
} | |
void FUN_8f60f504(uint *param_1,uint param_2) | |
{ | |
int *piVar1; | |
byte *pbVar2; | |
uint *puVar3; | |
uint uVar4; | |
uint uVar5; | |
undefined4 uVar6; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
int iVar7; | |
int iVar8; | |
undefined8 uVar9; | |
piVar1 = DAT_8f69d118; | |
uVar9 = FUN_8f62f988(); | |
uVar6 = (undefined4)((ulonglong)uVar9 >> 0x20); | |
pbVar2 = (byte *)uVar9; | |
if (pbVar2 != (byte *)0x0) { | |
uVar9 = FUN_8f63666c((uint)pbVar2,uVar6); | |
uVar6 = (undefined4)((ulonglong)uVar9 >> 0x20); | |
puVar3 = (uint *)uVar9; | |
if (puVar3 != (uint *)0x0) { | |
FUN_8f636968(puVar3,0,(int)pbVar2); | |
uVar4 = FUN_8f6582ac((uint)pbVar2,param_2); | |
uVar5 = FUN_8f636de0((byte *)param_1); | |
if (uVar5 < uVar4) { | |
if (param_2 == 1) { | |
iVar8 = (uVar4 - 1) - uVar5; | |
} | |
else { | |
iVar8 = uVar4 - uVar5; | |
} | |
if (0 < iVar8) { | |
iVar7 = 0; | |
do { | |
iVar7 = iVar7 + 1; | |
FUN_8f636c40((byte *)puVar3,&DAT_8f661410,pbVar2); | |
} while (iVar7 != iVar8); | |
} | |
FUN_8f636c40((byte *)puVar3,(byte *)param_1,pbVar2); | |
param_1 = puVar3; | |
uVar6 = extraout_r1; | |
} | |
else { | |
FUN_8f636758((int)puVar3); | |
uVar6 = extraout_r1_00; | |
} | |
} | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,uVar6,piVar1); | |
} | |
void FUN_8f60f5e8(void) | |
{ | |
int iVar1; | |
iVar1 = DAT_8f69d118; | |
FUN_8f6272e4((undefined4 *)PTR_DAT_8f60f634); | |
DAT_8f6881d0 = 1; | |
if (iVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar1,DAT_8f69d118,(int *)0x1); | |
} | |
void FUN_8f60f6d4(void) | |
{ | |
int iVar1; | |
iVar1 = DAT_8f69d118; | |
FUN_8f627334((int)&DAT_8f688230); | |
while (DAT_8f688228 == 0) { | |
FUN_8f627418((int)PTR_DAT_8f60f760); | |
FUN_8f627cfc(10); | |
FUN_8f627334((int)PTR_DAT_8f60f760); | |
} | |
FUN_8f627418((int)PTR_DAT_8f60f760); | |
DAT_8f6881d4 = 0; | |
if (iVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar1,DAT_8f69d118,(int *)0x0); | |
} | |
return; | |
} | |
// WARNING: Type propagation algorithm not settling | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f60f764(uint *param_1,uint param_2) | |
{ | |
byte bVar1; | |
uint uVar2; | |
byte *pbVar3; | |
int *piVar4; | |
undefined4 extraout_r1; | |
undefined4 uVar5; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
byte *pbVar6; | |
char *pcVar7; | |
int *piVar8; | |
uint uVar9; | |
uint local_108; | |
byte abStack_104 [8]; | |
uint local_fc; | |
undefined4 uStack_f8; | |
uint local_f4; | |
undefined4 uStack_f0; | |
undefined4 uStack_ec; | |
undefined2 local_e8; | |
uint auStack_e4 [16]; | |
undefined4 local_a4; | |
int *local_24; | |
local_24 = DAT_8f69d118; | |
FUN_8f636968(auStack_e4,0,0x40); | |
FUN_8f636968(&local_a4,0,0x80); | |
local_108 = 0; | |
local_fc = s_Start___8f65e770._0_4_; | |
uStack_f8 = s_Start___8f65e770._4_4_; | |
local_f4 = s_Continue_boot_8f65e778._0_4_; | |
uStack_f0 = s_Continue_boot_8f65e778._4_4_; | |
uStack_ec = s_Continue_boot_8f65e778._8_4_; | |
local_e8 = (undefined2)ram0x8f65e784; | |
FUN_8f62f508(); | |
FUN_8f636968(param_1,0,0x54); | |
pbVar3 = (byte *)FUN_8f60f504(&local_fc,DAT_8f67ee6c); | |
uVar9 = DAT_8f67ee6c; | |
if (pbVar3 != (byte *)0x0) { | |
bVar1 = *pbVar3; | |
pbVar6 = pbVar3; | |
while ((int *)(uint)bVar1 != (int *)0x0) { | |
FUN_8f62f5e0((int *)(uint)bVar1,(int *)0x2,uVar9); | |
pbVar6 = pbVar6 + 1; | |
bVar1 = *pbVar6; | |
} | |
FUN_8f636758((int)pbVar3); | |
} | |
pbVar3 = (byte *)FUN_8f60f504(&local_f4,DAT_8f67ee70); | |
uVar9 = DAT_8f67ee70; | |
if (pbVar3 != (byte *)0x0) { | |
bVar1 = *pbVar3; | |
pbVar6 = pbVar3; | |
while ((int *)(uint)bVar1 != (int *)0x0) { | |
FUN_8f62f5e0((int *)(uint)bVar1,(int *)0x2,uVar9); | |
pbVar6 = pbVar6 + 1; | |
bVar1 = *pbVar6; | |
} | |
FUN_8f636758((int)pbVar3); | |
} | |
uVar9 = DAT_8f67ee70; | |
pcVar7 = s____More_options_8f65e730; | |
piVar4 = (int *)0xa; | |
do { | |
FUN_8f62f5e0(piVar4,(int *)0x0,uVar9); | |
uVar2 = DAT_8f67ee70; | |
pcVar7 = (char *)((byte *)pcVar7 + 1); | |
piVar4 = (int *)(uint)(byte)*pcVar7; | |
} while (piVar4 != (int *)0x0); | |
pcVar7 = s_press_VOLUME_keys_8f65e744; | |
piVar4 = (int *)0x70; | |
do { | |
FUN_8f62f5e0(piVar4,(int *)0x3,uVar2); | |
uVar9 = DAT_8f67ee70; | |
pcVar7 = (char *)((byte *)pcVar7 + 1); | |
piVar4 = (int *)(uint)(byte)*pcVar7; | |
} while (piVar4 != (int *)0x0); | |
pbVar3 = (&PTR_s_Your_device_has_loaded_a_differe_8f67ee78)[param_2 * 2]; | |
if (pbVar3 != (byte *)0x0) { | |
bVar1 = *pbVar3; | |
while ((int *)(uint)bVar1 != (int *)0x0) { | |
FUN_8f62f5e0((int *)(uint)bVar1,(int *)0x0,uVar9); | |
pbVar3 = pbVar3 + 1; | |
bVar1 = *pbVar3; | |
} | |
} | |
uVar9 = DAT_8f67ee70; | |
piVar8 = *(int **)(&DAT_8f67ee74 + param_2 * 8); | |
pcVar7 = s_g_co_placeholder_8f65e758; | |
piVar4 = (int *)0x67; | |
do { | |
FUN_8f62f5e0(piVar4,piVar8,uVar9); | |
pcVar7 = (char *)((byte *)pcVar7 + 1); | |
piVar4 = (int *)(uint)(byte)*pcVar7; | |
} while (piVar4 != (int *)0x0); | |
if (param_2 == 0) { | |
pbVar3 = (byte *)FUN_8f60e7b8(&local_108); | |
if ((pbVar3 != (byte *)0x0) && | |
(FUN_8f636d18((int)auStack_e4,pbVar3,local_108), uVar9 = param_2, local_108 != 0)) { | |
do { | |
if (local_108 - 1 == uVar9) { | |
FUN_8f636618(abStack_104,8,&DAT_8f65e720,(int *)(uint)*(byte *)((int)auStack_e4 + uVar9)); | |
} | |
else { | |
FUN_8f636618(abStack_104,8,(byte *)s__02x__8f65e728, | |
(int *)(uint)*(byte *)((int)auStack_e4 + uVar9)); | |
} | |
uVar9 = uVar9 + 1; | |
FUN_8f636c40((byte *)&local_a4,abStack_104,(byte *)0x80); | |
} while (uVar9 < local_108); | |
} | |
uVar9 = DAT_8f67ee70; | |
pbVar3 = (byte *)0x8f65e76c; | |
piVar4 = (int *)0x49; | |
do { | |
FUN_8f62f5e0(piVar4,(int *)0x0,uVar9); | |
uVar2 = DAT_8f67ee70; | |
pbVar3 = pbVar3 + 1; | |
piVar4 = (int *)(uint)*pbVar3; | |
} while (piVar4 != (int *)0x0); | |
piVar4 = (int *)(uint)(byte)local_a4; | |
uVar5 = extraout_r1_01; | |
if (piVar4 != (int *)0x0) { | |
pbVar3 = (byte *)&local_a4; | |
do { | |
FUN_8f62f5e0(piVar4,(int *)0x0,uVar2); | |
pbVar3 = pbVar3 + 1; | |
piVar4 = (int *)(uint)*pbVar3; | |
uVar5 = extraout_r1_02; | |
} while (piVar4 != (int *)0x0); | |
} | |
} | |
else { | |
uVar5 = extraout_r1; | |
if (param_2 == 8) { | |
uVar9 = 30000; | |
pcVar7 = s__If_power_key_is_not_pressed__Yo_8f65e6d4; | |
goto LAB_8f60f968; | |
} | |
} | |
pcVar7 = s__If_no_key_pressed__Your_device_w_8f65e698; | |
uVar9 = 5000; | |
LAB_8f60f968: | |
uVar2 = DAT_8f67ee70; | |
bVar1 = *pcVar7; | |
piVar4 = DAT_8f69d118; | |
while (DAT_8f69d118 = piVar4, (int *)(uint)bVar1 != (int *)0x0) { | |
FUN_8f62f5e0((int *)(uint)bVar1,(int *)0x0,uVar2); | |
pcVar7 = (char *)((byte *)pcVar7 + 1); | |
uVar5 = extraout_r1_00; | |
piVar4 = DAT_8f69d118; | |
bVar1 = *pcVar7; | |
} | |
param_1[0x11] = param_2; | |
param_1[0x12] = uVar9; | |
if (local_24 == piVar4) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,uVar5,local_24); | |
} | |
void FUN_8f60fab8(uint *param_1) | |
{ | |
byte bVar1; | |
uint uVar2; | |
int *piVar3; | |
int *piVar4; | |
undefined4 uVar5; | |
uint uVar6; | |
char *pcVar7; | |
uint *puVar8; | |
byte *pbVar9; | |
piVar3 = DAT_8f69d118; | |
pcVar7 = s_Options_menu__8f65e788; | |
FUN_8f62f508(); | |
FUN_8f636968(param_1,0,0x54); | |
uVar6 = DAT_8f67ee6c; | |
piVar4 = (int *)0x4f; | |
do { | |
FUN_8f62f5e0(piVar4,(int *)0x0,uVar6); | |
uVar2 = DAT_8f67ee70; | |
pcVar7 = (char *)((byte *)pcVar7 + 1); | |
piVar4 = (int *)(uint)(byte)*pcVar7; | |
} while (piVar4 != (int *)0x0); | |
pcVar7 = s_Press_volume_key_to_select__and_p_8f65e798; | |
piVar4 = (int *)0x50; | |
do { | |
FUN_8f62f5e0(piVar4,(int *)0x0,uVar2); | |
pcVar7 = (char *)((byte *)pcVar7 + 1); | |
piVar4 = (int *)(uint)(byte)*pcVar7; | |
puVar8 = param_1; | |
} while (piVar4 != (int *)0x0); | |
do { | |
FUN_8f62f3d8(0); | |
uVar5 = FUN_8f62f948(); | |
uVar6 = DAT_8f67ee70; | |
pbVar9 = (byte *)piVar4[-0x1c268709]; | |
*(undefined4 *)((int)param_1 + (int)piVar4) = uVar5; | |
bVar1 = *pbVar9; | |
while ((int *)(uint)bVar1 != (int *)0x0) { | |
FUN_8f62f5e0((int *)(uint)bVar1,(int *)0x0,uVar6); | |
pbVar9 = pbVar9 + 1; | |
bVar1 = *pbVar9; | |
} | |
uVar6 = FUN_8f62f9c8(); | |
piVar4 = piVar4 + 1; | |
puVar8[10] = uVar6; | |
uVar6 = FUN_8f62f948(); | |
puVar8[5] = uVar6; | |
puVar8 = puVar8 + 1; | |
} while (piVar4 != (int *)0x14); | |
FUN_8f62f3d8(0); | |
piVar4 = DAT_8f69d118; | |
param_1[0xf] = 5; | |
param_1[0x11] = 3; | |
param_1[0x10] = 5; | |
if (piVar3 == piVar4) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(3,piVar3,piVar4); | |
} | |
void FUN_8f60fbec(uint *param_1) | |
{ | |
byte bVar1; | |
uint uVar2; | |
uint uVar3; | |
int *piVar4; | |
int iVar5; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
undefined4 uVar6; | |
byte *pbVar7; | |
uint uVar8; | |
char *pcVar9; | |
int *piVar10; | |
undefined8 uVar11; | |
uint auStack_e4 [16]; | |
byte local_a4; | |
byte abStack_a3 [127]; | |
int *local_24; | |
uVar8 = param_1[0x10]; | |
local_24 = DAT_8f69d118; | |
FUN_8f62f508(); | |
FUN_8f636968(param_1,0,0x54); | |
if (uVar8 == 0) { | |
piVar10 = (int *)0x7; | |
} | |
else if (uVar8 < 3) { | |
piVar10 = (int *)&DAT_00000006; | |
} | |
else { | |
piVar10 = (int *)0x0; | |
} | |
FUN_8f62f3d8((int)piVar10); | |
uVar2 = DAT_8f67ee6c; | |
pbVar7 = (&PTR_s_START_8f65eba0)[uVar8]; | |
bVar1 = *pbVar7; | |
while ((int *)(uint)bVar1 != (int *)0x0) { | |
FUN_8f62f5e0((int *)(uint)bVar1,piVar10,uVar2); | |
pbVar7 = pbVar7 + 1; | |
bVar1 = *pbVar7; | |
} | |
FUN_8f62f3d8((int)piVar10); | |
uVar2 = DAT_8f67ee70; | |
pcVar9 = s__Press_volume_key_to_select__and_8f65e8a0; | |
piVar10 = (int *)0xa; | |
do { | |
FUN_8f62f5e0(piVar10,(int *)0x0,uVar2); | |
uVar3 = DAT_8f67ee70; | |
pcVar9 = (char *)((byte *)pcVar9 + 1); | |
piVar10 = (int *)(uint)(byte)*pcVar9; | |
} while (piVar10 != (int *)0x0); | |
pcVar9 = s_FASTBOOT_MODE_8f65e8e0; | |
piVar10 = (int *)0x46; | |
do { | |
FUN_8f62f5e0(piVar10,(int *)&DAT_00000006,uVar3); | |
pcVar9 = (char *)((byte *)pcVar9 + 1); | |
piVar10 = (int *)(uint)(byte)*pcVar9; | |
} while (piVar10 != (int *)0x0); | |
FUN_8f62c660((byte *)auStack_e4,extraout_r1); | |
FUN_8f636618(&local_a4,0x80,(byte *)s_PRODUCT_NAME____s_8f65e808,(int *)auStack_e4); | |
uVar2 = DAT_8f67ee70; | |
piVar10 = (int *)(uint)local_a4; | |
if (piVar10 != (int *)0x0) { | |
pbVar7 = &local_a4; | |
do { | |
FUN_8f62f5e0(piVar10,(int *)0x0,uVar2); | |
pbVar7 = pbVar7 + 1; | |
piVar10 = (int *)(uint)*pbVar7; | |
} while (piVar10 != (int *)0x0); | |
} | |
uVar6 = 0x40; | |
FUN_8f636968(auStack_e4,0,0x40); | |
uVar11 = FUN_8f604814((byte *)auStack_e4,(int *)0x40,uVar6); | |
FUN_8f626460((int)uVar11,(int)((ulonglong)uVar11 >> 0x20)); | |
FUN_8f636618(&local_a4,0x80,(byte *)s_VARIANT____s__s_8f65e81c,(int *)auStack_e4); | |
uVar2 = DAT_8f67ee70; | |
piVar10 = (int *)(uint)local_a4; | |
if (piVar10 != (int *)0x0) { | |
pbVar7 = &local_a4; | |
do { | |
FUN_8f62f5e0(piVar10,(int *)0x0,uVar2); | |
pbVar7 = pbVar7 + 1; | |
piVar10 = (int *)(uint)*pbVar7; | |
} while (piVar10 != (int *)0x0); | |
} | |
FUN_8f636968(auStack_e4,0,0x40); | |
FUN_8f62c6ac((byte *)auStack_e4,extraout_r1_00); | |
FUN_8f636618(&local_a4,0x80,(byte *)s_BOOTLOADER_VERSION____s_8f65e830,(int *)auStack_e4); | |
uVar2 = DAT_8f67ee70; | |
piVar10 = (int *)(uint)local_a4; | |
if (piVar10 != (int *)0x0) { | |
pbVar7 = &local_a4; | |
do { | |
FUN_8f62f5e0(piVar10,(int *)0x0,uVar2); | |
pbVar7 = pbVar7 + 1; | |
piVar10 = (int *)(uint)*pbVar7; | |
} while (piVar10 != (int *)0x0); | |
} | |
FUN_8f636968(auStack_e4,0,0x40); | |
FUN_8f62c6f8((byte *)auStack_e4,extraout_r1_01); | |
FUN_8f636618(&local_a4,0x80,(byte *)s_BASEBAND_VERSION____s_8f65e84c,(int *)auStack_e4); | |
uVar2 = DAT_8f67ee70; | |
piVar10 = (int *)(uint)local_a4; | |
if (piVar10 != (int *)0x0) { | |
pbVar7 = &local_a4; | |
do { | |
FUN_8f62f5e0(piVar10,(int *)0x0,uVar2); | |
pbVar7 = pbVar7 + 1; | |
piVar10 = (int *)(uint)*pbVar7; | |
} while (piVar10 != (int *)0x0); | |
} | |
FUN_8f636968(auStack_e4,0,0x40); | |
FUN_8f600550((byte *)auStack_e4,extraout_r1_02); | |
FUN_8f636618(&local_a4,0x80,(byte *)s_SERIAL_NUMBER____s_8f65e864,(int *)auStack_e4); | |
uVar2 = DAT_8f67ee70; | |
piVar10 = (int *)(uint)local_a4; | |
if (piVar10 != (int *)0x0) { | |
pbVar7 = &local_a4; | |
do { | |
FUN_8f62f5e0(piVar10,(int *)0x0,uVar2); | |
pbVar7 = pbVar7 + 1; | |
piVar10 = (int *)(uint)*pbVar7; | |
} while (piVar10 != (int *)0x0); | |
} | |
iVar5 = FUN_8f615da0(); | |
piVar10 = (int *)s_disabled_8f65e7e8; | |
if (iVar5 != 0) { | |
piVar10 = (int *)s_enabled_8f65e7e0; | |
} | |
FUN_8f636618(&local_a4,0x80,(byte *)s_SECURE_BOOT____s_8f65e878,piVar10); | |
uVar2 = DAT_8f67ee70; | |
piVar10 = (int *)(uint)local_a4; | |
if (piVar10 != (int *)0x0) { | |
pbVar7 = &local_a4; | |
do { | |
FUN_8f62f5e0(piVar10,(int *)0x0,uVar2); | |
pbVar7 = pbVar7 + 1; | |
piVar10 = (int *)(uint)*pbVar7; | |
} while (piVar10 != (int *)0x0); | |
} | |
iVar5 = FUN_8f62c744(); | |
piVar10 = (int *)s_unlocked_8f65e7fc; | |
if (iVar5 != 0) { | |
piVar10 = (int *)s_locked_8f65e7f4; | |
} | |
FUN_8f636618(&local_a4,0x80,(byte *)s_DEVICE_STATE____s_8f65e88c,piVar10); | |
uVar2 = DAT_8f67ee70; | |
piVar10 = (int *)(uint)local_a4; | |
if (piVar10 != (int *)0x0) { | |
pbVar7 = &local_a4; | |
do { | |
FUN_8f62f5e0(piVar10,(int *)&DAT_00000006,uVar2); | |
pbVar7 = pbVar7 + 1; | |
piVar10 = (int *)(uint)*pbVar7; | |
} while (piVar10 != (int *)0x0); | |
} | |
piVar4 = DAT_8f69d118; | |
param_1[0x10] = uVar8; | |
param_1[0x11] = 5; | |
param_1[0xf] = 5; | |
if (local_24 == piVar4) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(piVar10,local_24,piVar4); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f610010) | |
void FUN_8f60ffb8(undefined4 param_1) | |
{ | |
if (DAT_8f6881d0 != 0) { | |
return; | |
} | |
FUN_8f60f5e8(); | |
return; | |
} | |
void FUN_8f610014(undefined4 param_1) | |
{ | |
int *piVar1; | |
int *piVar2; | |
bool bVar3; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
if (DAT_8f6881d0 == 0) { | |
FUN_8f60f5e8(); | |
} | |
FUN_8f627334((int)&DAT_8f688230); | |
DAT_8f68822c = DAT_8f68821c; | |
FUN_8f636968((uint *)&DAT_8f6881d8,0,0x54); | |
DAT_8f688220 = 0; | |
DAT_8f68821c = param_1; | |
uVar4 = FUN_8f627418((int)&DAT_8f688230); | |
piVar2 = DAT_8f69d118; | |
if (DAT_8f6881d4 == 0) { | |
if (piVar1 == DAT_8f69d118) { | |
uVar4 = FUN_8f627744((byte *)s_selectkeydetect_8f65e3f0,(uint)FUN_8f60f39c,(uint)&DAT_8f6881d8 | |
,0x10,0x2000); | |
piVar1 = (int *)((ulonglong)uVar4 >> 0x20); | |
if ((int)uVar4 == 0) { | |
if (piVar2 == DAT_8f69d118) { | |
dprintf((byte *)s_ERROR__creat_device_status_detec_8f65e400,piVar1,piVar2,DAT_8f69d118); | |
return; | |
} | |
} | |
else { | |
FUN_8f6279f4((int)uVar4,piVar1); | |
uVar4 = CONCAT44(DAT_8f69d118,piVar2); | |
bVar3 = piVar2 == DAT_8f69d118; | |
DAT_8f6881d4 = 1; | |
piVar2 = (int *)0x1; | |
if (bVar3) { | |
return; | |
} | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),piVar2); | |
} | |
} | |
else if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),piVar1); | |
} | |
void FUN_8f6100cc(undefined4 param_1) | |
{ | |
int *piVar1; | |
uint *puVar2; | |
piVar1 = DAT_8f69d118; | |
if (DAT_8f6881d0 == 0) { | |
FUN_8f60f5e8(); | |
} | |
FUN_8f627334((int)&DAT_8f688230); | |
DAT_8f68822c = DAT_8f68821c; | |
puVar2 = FUN_8f636968((uint *)&DAT_8f6881d8,0,0x54); | |
DAT_8f688220 = 0; | |
DAT_8f68821c = param_1; | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f627418((int)&DAT_8f688230); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(puVar2,piVar1,DAT_8f69d118); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f610158(void) | |
{ | |
uint uVar1; | |
int *piVar2; | |
int iVar3; | |
uint *puVar4; | |
uint uVar5; | |
uint uVar6; | |
uint uVar7; | |
undefined8 uVar8; | |
piVar2 = DAT_8f69d118; | |
puVar4 = (uint *)&DAT_0b000800; | |
do { | |
uVar6 = *puVar4 | *puVar4 >> 0x10; | |
uVar6 = uVar6 | uVar6 >> 8; | |
if (uVar6 != 0) { | |
uVar6 = uVar6 & 0xff | (uVar6 & 0xff) << 8; | |
uVar6 = uVar6 | uVar6 << 0x10; | |
break; | |
} | |
puVar4 = puVar4 + 1; | |
} while (puVar4 != (uint *)0xb000820); | |
_DAT_0b000000 = 0; | |
iVar3 = (_DAT_0b000004 & 0x1f) + 1; | |
uVar1 = iVar3 * 0x20; | |
if (iVar3 != 1) { | |
uVar7 = 0x20; | |
do { | |
uVar5 = uVar7 & 0x3fffffff; | |
uVar7 = uVar7 + 4; | |
*(uint *)(&DAT_0b000800 + uVar5) = uVar6; | |
} while (uVar7 <= uVar1 && uVar1 - uVar7 != 0); | |
} | |
uVar8 = FUN_8f608048(uVar1,uVar6); | |
_DAT_0b000000 = 1; | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar8,(int)((ulonglong)uVar8 >> 0x20),piVar2); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6102a4) | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f610268(void) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6102e4) | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f6102a8(undefined4 param_1) | |
{ | |
_DAT_0b002010 = param_1; | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f610898) | |
// WARNING: Removing unreachable block (ram,0x8f61046c) | |
void FUN_8f610438(void) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6104f8) | |
void FUN_8f6104a8(uint param_1) | |
{ | |
ulonglong uVar1; | |
int *piVar2; | |
uint uVar3; | |
uint uVar4; | |
uint uVar5; | |
uint uVar6; | |
uint uVar7; | |
bool bVar8; | |
longlong lVar9; | |
longlong lVar10; | |
uint local_30; | |
uint uStack_2c; | |
lVar10 = FUN_8f658e24((uint)((ulonglong)DAT_8f68824c * (ulonglong)param_1), | |
(uint)((ulonglong)DAT_8f68824c * (ulonglong)param_1 >> 0x20),1000,0); | |
piVar2 = DAT_8f69d118; | |
lVar9 = FUN_8f610800(); | |
uVar4 = (uint)((ulonglong)lVar9 >> 0x20); | |
uVar3 = (uint)lVar9; | |
uVar1 = lVar10 + lVar9 & 0xffffffffffffff; | |
uVar6 = (uint)uVar1; | |
uVar7 = (uint)(uVar1 >> 0x20); | |
bVar8 = uVar4 <= uVar7; | |
if (uVar7 == uVar4) { | |
bVar8 = uVar3 <= uVar6; | |
} | |
while (!bVar8) { | |
uVar5 = (uint)((ulonglong)lVar9 >> 0x20); | |
bVar8 = uVar5 <= uVar4; | |
if (uVar4 == uVar5) { | |
bVar8 = (uint)lVar9 <= uVar3; | |
} | |
if (bVar8 && (uVar4 != uVar5 || uVar3 != (uint)lVar9)) break; | |
lVar9 = FUN_8f610800(); | |
uVar5 = (uint)((ulonglong)lVar9 >> 0x20); | |
bVar8 = uVar5 <= uVar7; | |
if (uVar7 == uVar5) { | |
bVar8 = (uint)lVar9 <= uVar6; | |
} | |
} | |
while( true ) { | |
uStack_2c = (uint)((ulonglong)lVar9 >> 0x20); | |
local_30 = (uint)lVar9; | |
bVar8 = uStack_2c <= uVar7; | |
if (uVar7 == uStack_2c) { | |
bVar8 = local_30 <= uVar6; | |
} | |
if (!bVar8 || uVar7 == uStack_2c && uVar6 == local_30) break; | |
lVar9 = FUN_8f610800(); | |
} | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(local_30,uStack_2c,piVar2); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f610550) | |
void FUN_8f6104fc(uint param_1) | |
{ | |
ulonglong uVar1; | |
int *piVar2; | |
uint uVar3; | |
uint uVar4; | |
uint uVar5; | |
uint uVar6; | |
uint uVar7; | |
bool bVar8; | |
longlong lVar9; | |
longlong lVar10; | |
uint uStack_30; | |
uint uStack_2c; | |
lVar10 = FUN_8f658e24((uint)((ulonglong)DAT_8f68824c * (ulonglong)param_1), | |
(uint)((ulonglong)DAT_8f68824c * (ulonglong)param_1 >> 0x20),1000000,0); | |
piVar2 = DAT_8f69d118; | |
lVar9 = FUN_8f610800(); | |
uVar4 = (uint)((ulonglong)lVar9 >> 0x20); | |
uVar3 = (uint)lVar9; | |
uVar1 = lVar10 + lVar9 & 0xffffffffffffff; | |
uVar6 = (uint)uVar1; | |
uVar7 = (uint)(uVar1 >> 0x20); | |
bVar8 = uVar4 <= uVar7; | |
if (uVar7 == uVar4) { | |
bVar8 = uVar3 <= uVar6; | |
} | |
while (!bVar8) { | |
uVar5 = (uint)((ulonglong)lVar9 >> 0x20); | |
bVar8 = uVar5 <= uVar4; | |
if (uVar4 == uVar5) { | |
bVar8 = (uint)lVar9 <= uVar3; | |
} | |
if (bVar8 && (uVar4 != uVar5 || uVar3 != (uint)lVar9)) break; | |
lVar9 = FUN_8f610800(); | |
uVar5 = (uint)((ulonglong)lVar9 >> 0x20); | |
bVar8 = uVar5 <= uVar7; | |
if (uVar7 == uVar5) { | |
bVar8 = (uint)lVar9 <= uVar6; | |
} | |
} | |
while( true ) { | |
uStack_2c = (uint)((ulonglong)lVar9 >> 0x20); | |
uStack_30 = (uint)lVar9; | |
bVar8 = uStack_2c <= uVar7; | |
if (uVar7 == uStack_2c) { | |
bVar8 = uStack_30 <= uVar6; | |
} | |
if (!bVar8 || uVar7 == uStack_2c && uVar6 == uStack_30) break; | |
lVar9 = FUN_8f610800(); | |
} | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uStack_30,uStack_2c,piVar2); | |
} | |
void FUN_8f610554(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
piVar1 = DAT_8f69d118; | |
DAT_8f68824c = FUN_8f61076c(param_1,param_2); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(DAT_8f68824c,piVar1,DAT_8f69d118); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6105d4) | |
void FUN_8f610598(void) | |
{ | |
return; | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f610678(int param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined4 extraout_r1; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
_DAT_0b02102c = _DAT_0b02102c & 0xfffffffe | 2; | |
DataSynchronizationBarrier(0xf); | |
iVar2 = FUN_8f610598(); | |
_DAT_0b021028 = (uint)(param_1 * iVar2) / 1000; | |
DataSynchronizationBarrier(0xf); | |
DAT_8f688254 = param_1; | |
DAT_8f688258 = param_3; | |
DAT_8f68825c = param_2; | |
DAT_8f688260 = _DAT_0b021028; | |
FUN_8f61097c(0x121,&LAB_8f6105d8,(int *)0x0); | |
uVar3 = FUN_8f610944(0x121,extraout_r1); | |
_DAT_0b02102c = _DAT_0b02102c & 0xfffffffd | 1; | |
DataSynchronizationBarrier(0xf); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,(int)((ulonglong)uVar3 >> 0x20),piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6107a4) | |
void FUN_8f61076c(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f610858) | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f610800(void) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6108d0) | |
void FUN_8f61089c(undefined4 param_1,undefined4 param_2) | |
{ | |
FUN_8f608154(); | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f610940) | |
void FUN_8f61090c(uint param_1,undefined4 param_2) | |
{ | |
int iVar1; | |
int *piVar2; | |
piVar2 = DAT_8f69d118; | |
iVar1 = 1 << (param_1 & 0x1f); | |
*(int *)(((param_1 >> 5) + 0x2c00060) * 4) = iVar1; | |
if (piVar2 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,iVar1,piVar2); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f610978) | |
void FUN_8f610944(uint param_1,undefined4 param_2) | |
{ | |
int iVar1; | |
int *piVar2; | |
piVar2 = DAT_8f69d118; | |
iVar1 = 1 << (param_1 & 0x1f); | |
*(int *)(((param_1 >> 5) + 0x2c00040) * 4) = iVar1; | |
if (piVar2 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,iVar1,piVar2); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6109b0) | |
void FUN_8f61097c(uint param_1,undefined4 param_2,int *param_3) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined4 uVar3; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
int *in_lr; | |
piVar1 = DAT_8f69d118; | |
uVar3 = param_2; | |
if (0x1ac < param_1) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_qgic_common__8f65b81c,0x80); | |
uVar3 = extraout_r1_00; | |
} | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
if (DAT_8f67f324 == 1) { | |
FUN_8f625b9c(); | |
uVar3 = extraout_r1; | |
} | |
iVar2 = DAT_8f67f324 + -1; | |
DAT_8f67f324 = iVar2; | |
*(undefined4 *)(&DAT_8f687330 + param_1 * 8) = param_2; | |
*(int **)(&DAT_8f687334 + param_1 * 8) = param_3; | |
if (iVar2 == 0) { | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f625b8c(); | |
return; | |
} | |
} | |
else if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar2,uVar3,piVar1); | |
} | |
void FUN_8f6109b4(undefined *param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
if ((param_1 != (undefined *)0x0) && | |
(param_1 = *(code **)(*(int *)(param_1 + 8) + 0xc), (code *)param_1 != (code *)0x0)) { | |
uVar2 = (*(code *)param_1)(); | |
param_2 = (undefined4)((ulonglong)uVar2 >> 0x20); | |
param_1 = (undefined *)uVar2; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,param_2,piVar1); | |
} | |
return; | |
} | |
void FUN_8f610a0c(int param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
undefined4 extraout_r1; | |
int iVar2; | |
code *pcVar3; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
uVar4 = CONCAT44(param_2,param_1); | |
if ((param_1 != 0) && (iVar2 = *(int *)(param_1 + 0x10), iVar2 != 0)) { | |
if (iVar2 == 1) { | |
iVar2 = *(int *)(param_1 + 8); | |
if (*(code **)(iVar2 + 4) != (code *)0x0) { | |
(**(code **)(iVar2 + 4))(); | |
iVar2 = *(int *)(param_1 + 8); | |
param_2 = extraout_r1; | |
} | |
pcVar3 = *(code **)(iVar2 + 0x34); | |
uVar4 = CONCAT44(param_2,pcVar3); | |
if (pcVar3 != (code *)0x0) { | |
uVar4 = (*pcVar3)(param_1); | |
} | |
uVar4 = FUN_8f610a0c((int)uVar4,(int)((ulonglong)uVar4 >> 0x20)); | |
iVar2 = *(int *)(param_1 + 0x10); | |
} | |
*(int *)(param_1 + 0x10) = iVar2 + -1; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),piVar1); | |
} | |
void FUN_8f610aa0(int param_1,uint param_2) | |
{ | |
int *piVar1; | |
uint extraout_r1; | |
int iVar2; | |
code *pcVar3; | |
undefined8 uVar4; | |
ulonglong uVar5; | |
piVar1 = DAT_8f69d118; | |
uVar5 = CONCAT44(param_2,param_1); | |
if (param_1 != 0) { | |
iVar2 = *(int *)(param_1 + 0x10); | |
if (iVar2 == 0) { | |
pcVar3 = *(code **)(*(int *)(param_1 + 8) + 0x34); | |
if (pcVar3 != (code *)0x0) { | |
uVar4 = (*pcVar3)(); | |
param_2 = (uint)((ulonglong)uVar4 >> 0x20); | |
pcVar3 = (code *)uVar4; | |
} | |
uVar5 = FUN_8f610aa0((int)pcVar3,param_2); | |
param_2 = (uint)(uVar5 >> 0x20); | |
if ((int)uVar5 != 0) goto LAB_8f610b28; | |
if (**(code ***)(param_1 + 8) != (code *)0x0) { | |
uVar5 = (***(code ***)(param_1 + 8))(param_1); | |
param_2 = (uint)(uVar5 >> 0x20); | |
if ((int)uVar5 != 0) { | |
FUN_8f610a0c((int)pcVar3,param_2); | |
uVar5 = uVar5 & 0xffffffff | (ulonglong)extraout_r1 << 0x20; | |
goto LAB_8f610b28; | |
} | |
} | |
iVar2 = *(int *)(param_1 + 0x10); | |
} | |
uVar5 = (ulonglong)param_2 << 0x20; | |
*(int *)(param_1 + 0x10) = iVar2 + 1; | |
} | |
LAB_8f610b28: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,(int)(uVar5 >> 0x20),piVar1); | |
} | |
void FUN_8f610bf4(int *param_1,int *param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined4 uVar3; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
int *piVar4; | |
int *piVar5; | |
int iVar6; | |
undefined8 uVar7; | |
piVar1 = DAT_8f69d118; | |
iVar2 = DAT_8f688268; | |
if (DAT_8f688264 == (int *)0x0 || DAT_8f688268 == 0) { | |
dprintf((byte *)s_Alert___clock_list_not_defined__8f65ebb4,param_2,param_3,DAT_8f69d118); | |
iVar2 = 0; | |
uVar3 = extraout_r1_00; | |
} | |
else { | |
iVar6 = 0; | |
piVar4 = DAT_8f69d118; | |
piVar5 = DAT_8f688264; | |
do { | |
uVar7 = FUN_8f636bdc(*piVar5,(byte *)param_1); | |
uVar3 = (undefined4)((ulonglong)uVar7 >> 0x20); | |
if ((int)uVar7 == 0) { | |
iVar2 = piVar5[1]; | |
goto LAB_8f610c60; | |
} | |
iVar6 = iVar6 + 1; | |
piVar5 = piVar5 + 2; | |
} while (iVar6 != iVar2); | |
dprintf((byte *)s_Alert___Requested_clock___s__is_n_8f65ebd8,param_1,param_3,piVar4); | |
iVar2 = 0; | |
uVar3 = extraout_r1; | |
} | |
LAB_8f610c60: | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar2,uVar3,piVar1); | |
} | |
return; | |
} | |
void FUN_8f610ca8(int *param_1,int *param_2,int param_3) | |
{ | |
int *piVar1; | |
int iVar2; | |
int *piVar3; | |
int *extraout_r1; | |
int *extraout_r1_00; | |
int *extraout_r1_01; | |
int iVar4; | |
int *piVar5; | |
undefined8 uVar6; | |
piVar1 = DAT_8f69d118; | |
iVar4 = param_3; | |
piVar5 = DAT_8f69d118; | |
uVar6 = FUN_8f610bf4(param_1,param_2,param_3); | |
piVar3 = (int *)((ulonglong)uVar6 >> 0x20); | |
iVar2 = (int)uVar6; | |
if (iVar2 == 0) { | |
param_3 = -7; | |
dprintf((byte *)s_Can_t_find_clock_with_id___s_8f65ec08,param_1,iVar4,piVar5); | |
piVar3 = extraout_r1_01; | |
goto LAB_8f610cec; | |
} | |
if (param_2 == (int *)0x0) { | |
joined_r0x8f610d2c: | |
if (param_3 != 0) { | |
uVar6 = FUN_8f610aa0(iVar2,(uint)piVar3); | |
piVar3 = (int *)((ulonglong)uVar6 >> 0x20); | |
param_3 = (int)uVar6; | |
if (param_3 != 0) { | |
dprintf((byte *)s_Clock_enable_failed__8f65ec40,piVar3,iVar4,piVar5); | |
piVar3 = extraout_r1; | |
} | |
} | |
} | |
else { | |
piVar5 = *(int **)(*(int *)(iVar2 + 8) + 0x10); | |
if (piVar5 == (int *)0x0) { | |
uVar6 = CONCAT44(piVar3,0xfffffff9); | |
} | |
else { | |
uVar6 = (*(code *)piVar5)(iVar2,param_2); | |
piVar3 = (int *)((ulonglong)uVar6 >> 0x20); | |
if ((int)uVar6 == 0) goto joined_r0x8f610d2c; | |
} | |
param_3 = (int)uVar6; | |
dprintf((byte *)s_Clock_set_rate_failed__8f65ec28,(int *)((ulonglong)uVar6 >> 0x20),iVar4,piVar5 | |
); | |
piVar3 = extraout_r1_00; | |
} | |
LAB_8f610cec: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_3,piVar3,piVar1); | |
} | |
void FUN_8f610ee8(int param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
undefined4 extraout_r1; | |
uint *puVar3; | |
int iVar4; | |
piVar1 = DAT_8f69d118; | |
puVar3 = *(uint **)(param_1 + -0xc); | |
*puVar3 = *puVar3 | 1; | |
if ((*(int *)(param_1 + 0x20) == 0) || (-1 < (int)*puVar3)) { | |
LAB_8f610f54: | |
uVar2 = 0; | |
} | |
else { | |
iVar4 = 100; | |
do { | |
FUN_8f6104a8(1); | |
param_2 = extraout_r1; | |
if (-1 < **(int **)(param_1 + -0xc)) goto LAB_8f610f54; | |
iVar4 = iVar4 + -1; | |
} while (iVar4 != 0); | |
uVar2 = 1; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,param_2,piVar1); | |
} | |
void FUN_8f611074(int param_1,uint param_2) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
uint extraout_r1; | |
uint uVar3; | |
code *pcVar4; | |
uint *puVar5; | |
int *in_lr; | |
piVar1 = DAT_8f69d118; | |
puVar5 = *(uint **)(param_1 + -8); | |
uVar3 = *puVar5; | |
do { | |
if (uVar3 == 0xfffffffe) { | |
uVar2 = 0xfffffff8; | |
LAB_8f6110f8: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,param_2,piVar1); | |
} | |
if (uVar3 == param_2) { | |
if (*(uint **)(param_1 + -4) == puVar5) { | |
uVar2 = 0; | |
} | |
else { | |
FUN_8f610aa0(puVar5[1],param_2); | |
pcVar4 = *(code **)(param_1 + -0xc); | |
if (pcVar4 == (code *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_clock_lib2_c_8f65ec58,0x9b); | |
pcVar4 = *(code **)(param_1 + -0xc); | |
} | |
(*pcVar4)(param_1 + -0x20,puVar5); | |
*(uint **)(param_1 + -4) = puVar5; | |
uVar2 = 0; | |
param_2 = extraout_r1; | |
} | |
goto LAB_8f6110f8; | |
} | |
puVar5 = puVar5 + 6; | |
uVar3 = *puVar5; | |
} while( true ); | |
} | |
// WARNING: Restarted to delay deadcode elimination for space: ram | |
void FUN_8f611378(int param_1,byte *param_2,int param_3) | |
{ | |
int *piVar1; | |
byte *pbVar2; | |
uint uVar3; | |
int *extraout_r1; | |
uint uVar4; | |
uint uVar5; | |
byte *pbVar6; | |
uint uVar7; | |
uint uVar8; | |
uint *puVar9; | |
int iVar10; | |
uint uVar11; | |
uint uVar12; | |
uint uVar13; | |
bool bVar14; | |
uint local_3c; | |
int *local_34; | |
piVar1 = DAT_8f69d118; | |
if (param_3 == 0 || param_2 == (byte *)0x0) { | |
iVar10 = 3; | |
} | |
else { | |
uVar11 = 0; | |
pbVar2 = param_2; | |
do { | |
pbVar6 = pbVar2 + 1; | |
uVar4 = (uint)*pbVar2; | |
uVar12 = uVar11; | |
if (uVar4 == 10) { | |
uVar12 = uVar11 + 1; | |
} | |
uVar11 = uVar12 + 1; | |
pbVar2 = pbVar6; | |
} while (pbVar6 != param_2 + param_3); | |
local_3c = uVar11 >> 2; | |
if ((*(uint *)(param_1 + 0xa4) & 8) == 0) { | |
uVar8 = *(uint *)(param_1 + 0xb4); | |
while ((uVar8 & 0x80) == 0) { | |
FUN_8f6104fc(1); | |
uVar8 = *(uint *)(param_1 + 0xb4); | |
} | |
} | |
local_34 = &DAT_8f67f324; | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
if (DAT_8f67f324 == 1) { | |
FUN_8f625b9c(); | |
} | |
bVar14 = (uVar11 & 3) != 0; | |
*(uint *)(param_1 + 0x40) = uVar11; | |
if (bVar14) { | |
uVar4 = local_3c; | |
} | |
*(undefined4 *)(param_1 + 0xa8) = 0x300; | |
if (bVar14) { | |
local_3c = uVar4 + 1; | |
} | |
if (0 < (int)local_3c) { | |
if (3 < uVar11) { | |
uVar11 = 4; | |
} | |
uVar4 = 0; | |
uVar12 = uVar12 - 3; | |
while( true ) { | |
uVar8 = uVar12; | |
pbVar2 = param_2; | |
uVar12 = uVar11; | |
if (uVar11 != 0) { | |
uVar7 = 0; | |
uVar12 = 0; | |
uVar3 = 0; | |
uVar13 = 0; | |
puVar9 = (uint *)(param_1 + 0xa4); | |
do { | |
uVar5 = (uint)*pbVar2; | |
if (uVar5 == 10) { | |
*pbVar2 = 0x80; | |
uVar5 = 0xd << (uVar7 & 0xff); | |
} | |
else { | |
bVar14 = uVar5 == 0x80; | |
if (bVar14) { | |
uVar5 = 10; | |
} | |
uVar13 = uVar13 + 1 & 0xff; | |
if (bVar14) { | |
puVar9 = (uint *)0xa; | |
} | |
uVar5 = uVar5 << (uVar7 & 0xff); | |
if (bVar14) { | |
*pbVar2 = (byte)puVar9; | |
} | |
pbVar2 = param_2 + uVar13; | |
} | |
uVar12 = uVar12 | uVar5; | |
uVar3 = uVar3 + 1; | |
uVar7 = uVar7 + 8; | |
} while (uVar3 != uVar11); | |
} | |
while ((*(uint *)(param_1 + 0xa4) & 4) == 0) { | |
FUN_8f6104fc(1); | |
} | |
uVar4 = uVar4 + 1; | |
*(uint *)(param_1 + 0x100) = uVar12; | |
if (uVar4 == local_3c) break; | |
uVar12 = uVar8 - 4; | |
param_2 = pbVar2; | |
uVar11 = uVar8; | |
if (3 < uVar8) { | |
uVar11 = 4; | |
} | |
} | |
} | |
iVar10 = DAT_8f67f324 + -1; | |
DAT_8f67f324 = iVar10; | |
if (iVar10 == 0) { | |
FUN_8f625b8c(); | |
param_2 = (byte *)extraout_r1; | |
} | |
else { | |
iVar10 = 0; | |
param_2 = (byte *)local_34; | |
} | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar10,param_2,piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6117b4) | |
void FUN_8f611778(void) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6117f4) | |
void FUN_8f6117b8(void) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f611874) | |
void FUN_8f611838(void) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6118b4) | |
void FUN_8f611878(void) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6118f4) | |
void FUN_8f6118b8(void) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f611934) | |
void FUN_8f6118f8(void) | |
{ | |
return; | |
} | |
void FUN_8f611938(uint param_1,uint param_2) | |
{ | |
int *piVar1; | |
uint uVar2; | |
piVar1 = DAT_8f69d118; | |
if ((DAT_8f688284 == 0) && (param_1 < 4)) { | |
if ((DAT_8f688286 < 0xb) && (param_1 != 3)) { | |
uVar2 = (&DAT_8f67eee4)[param_1 * 3]; | |
param_2 = param_2 | uVar2 & 0xffffff00; | |
(&DAT_8f67eee4)[param_1 * 3] = param_2; | |
param_1 = uVar2 & 0xffffff00; | |
} | |
else if (param_1 < DAT_8f67ef10) { | |
param_1 = DAT_8f67ef18 + param_1 * 0xc; | |
param_2 = param_2 | *(uint *)(param_1 + 8) & 0xffffff00; | |
*(uint *)(param_1 + 8) = param_2; | |
} | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,param_2,piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f611aa8) | |
void FUN_8f6119f8(uint param_1) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f611ae8) | |
void FUN_8f611aac(void) | |
{ | |
return; | |
} | |
void FUN_8f611aec(void) | |
{ | |
int iVar1; | |
undefined4 uVar2; | |
undefined4 extraout_r1; | |
undefined4 uVar3; | |
int iVar4; | |
int iVar5; | |
int *in_lr; | |
undefined8 uVar6; | |
undefined4 auStack_64 [6]; | |
int iStack_4c; | |
int local_40; | |
int local_38; | |
int *local_1c; | |
local_1c = DAT_8f69d118; | |
iVar1 = FUN_8f604aa4(); | |
if (iVar1 == 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_board_c_8f65ed28,0x1d0); | |
} | |
uVar6 = FUN_8f604c04(); | |
uVar3 = (undefined4)((ulonglong)uVar6 >> 0x20); | |
iVar1 = (int)uVar6; | |
if (iVar1 != 0) { | |
iVar5 = 0; | |
iVar4 = 0; | |
do { | |
while (FUN_8f604bb4(auStack_64,iVar4), local_40 != 0xe) { | |
iVar4 = iVar4 + 1; | |
if (iVar4 == iVar1) goto LAB_8f611b6c; | |
} | |
iVar4 = iVar4 + 1; | |
if (local_38 == 1) { | |
iVar5 = iVar5 + iStack_4c; | |
} | |
} while (iVar4 != iVar1); | |
LAB_8f611b6c: | |
uVar3 = extraout_r1; | |
if (iVar5 == 0x20000000) { | |
uVar2 = 1; | |
goto LAB_8f611b7c; | |
} | |
} | |
uVar2 = 0; | |
LAB_8f611b7c: | |
if (local_1c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,uVar3,local_1c); | |
} | |
return; | |
} | |
void FUN_8f611bc4(void) | |
{ | |
uint uVar1; | |
uint uVar2; | |
undefined *puVar3; | |
undefined *puVar4; | |
undefined4 *puVar5; | |
int *in_lr; | |
bool bVar6; | |
ulonglong uVar7; | |
undefined8 uVar8; | |
undefined8 uVar9; | |
uint local_24c; | |
undefined auStack_248 [4]; | |
undefined4 local_244; | |
undefined4 local_240; | |
uint local_214; | |
int local_208; | |
undefined auStack_200 [4]; | |
undefined4 local_1fc; | |
undefined4 local_1f8; | |
uint local_1cc; | |
int local_1c0; | |
undefined4 uStack_1bc; | |
undefined4 uStack_1b8; | |
undefined auStack_1b0 [4]; | |
undefined4 local_1ac; | |
undefined4 local_1a8; | |
undefined auStack_198 [28]; | |
uint local_17c; | |
uint local_178; | |
int local_170; | |
uint local_16c [6]; | |
undefined auStack_154 [4]; | |
undefined4 local_150; | |
undefined4 local_14c; | |
undefined auStack_13c [28]; | |
uint local_120; | |
uint local_11c; | |
int local_114; | |
uint local_110 [7]; | |
undefined auStack_f4 [4]; | |
undefined4 local_f0; | |
undefined4 local_ec; | |
undefined auStack_dc [28]; | |
uint local_c0; | |
uint local_bc; | |
int local_b4; | |
uint local_b0 [7]; | |
undefined4 local_94; | |
undefined auStack_90 [4]; | |
undefined4 local_8c; | |
undefined4 local_88; | |
uint local_5c; | |
uint local_58; | |
int local_50; | |
undefined4 local_34; | |
undefined4 local_30; | |
undefined4 local_2c; | |
undefined4 local_28; | |
int *local_24; | |
local_24c = 0; | |
local_24 = DAT_8f69d118; | |
uVar7 = FUN_8f604754(0x89,(uint)&local_24c,4,0); | |
if ((int)uVar7 == 0) { | |
uVar2 = local_24c & 0xffff; | |
DAT_8f688286 = (undefined2)uVar2; | |
DAT_8f688284 = (undefined2)(local_24c >> 0x10); | |
if ((int *)(local_24c >> 0x10) == (int *)0x0) { | |
if (uVar2 == 6) { | |
uVar7 = FUN_8f6045dc(0x89,(uint)auStack_248,0x48); | |
if ((int)uVar7 != 0) goto LAB_8f611c88; | |
DAT_8f67eebc = local_244; | |
DAT_8f67eec8 = local_240; | |
DAT_8f67eecc = local_214; | |
DAT_8f67eed0 = local_208; | |
} | |
else if (uVar2 == 7) { | |
uVar7 = FUN_8f6045dc(0x89,(uint)auStack_200,0x50); | |
if ((int)uVar7 != 0) goto LAB_8f611c88; | |
DAT_8f67eedc = uStack_1bc; | |
DAT_8f67eee0 = uStack_1b8; | |
DAT_8f67eebc = local_1fc; | |
DAT_8f67eec8 = local_1f8; | |
DAT_8f67eecc = local_1cc; | |
DAT_8f67eed0 = local_1c0; | |
} | |
else if (uVar2 == 8) { | |
uVar7 = FUN_8f6045dc(0x89,(uint)auStack_1b0,0x5c); | |
if ((int)uVar7 != 0) goto LAB_8f611c88; | |
DAT_8f67eed4 = local_178 & 0xff0000 | local_170 << 0x18 | local_17c & 0xff | | |
(local_178 & 0xff) << 8; | |
DAT_8f67eecc = local_17c; | |
DAT_8f67eed0 = local_170; | |
DAT_8f67eebc = local_1ac; | |
DAT_8f67eec8 = local_1a8; | |
puVar3 = auStack_1b0; | |
puVar5 = &DAT_8f67eebc; | |
do { | |
uVar1 = *(uint *)(puVar3 + 0x48); | |
puVar4 = puVar3 + 8; | |
uVar2 = *(uint *)(puVar3 + 0x44); | |
bVar6 = uVar2 != 0x7fffffff; | |
puVar5[8] = uVar2; | |
if (bVar6) { | |
uVar2 = uVar2 & 0xff; | |
} | |
puVar5[9] = uVar1; | |
if (!bVar6) { | |
uVar2 = 0; | |
} | |
puVar5[10] = (uVar1 & 0xff) << 8 | uVar1 & 0xff0000 | uVar2; | |
puVar3 = puVar4; | |
puVar5 = puVar5 + 3; | |
} while (puVar4 != auStack_198); | |
} | |
else if (uVar2 == 9) { | |
uVar7 = FUN_8f6045dc(0x89,(uint)auStack_154,0x60); | |
if ((int)uVar7 != 0) goto LAB_8f611c88; | |
DAT_8f67eed4 = local_11c & 0xff0000 | local_114 << 0x18 | local_120 & 0xff | | |
(local_11c & 0xff) << 8; | |
DAT_8f67eecc = local_120; | |
DAT_8f67eed0 = local_114; | |
DAT_8f67eebc = local_150; | |
DAT_8f67eec8 = local_14c; | |
puVar3 = auStack_154; | |
puVar5 = &DAT_8f67eebc; | |
do { | |
uVar1 = *(uint *)(puVar3 + 0x48); | |
puVar4 = puVar3 + 8; | |
uVar2 = *(uint *)(puVar3 + 0x44); | |
bVar6 = uVar2 != 0x7fffffff; | |
puVar5[8] = uVar2; | |
if (bVar6) { | |
uVar2 = uVar2 & 0xff; | |
} | |
puVar5[9] = uVar1; | |
if (!bVar6) { | |
uVar2 = 0; | |
} | |
puVar5[10] = (uVar1 & 0xff) << 8 | uVar1 & 0xff0000 | uVar2; | |
puVar3 = puVar4; | |
puVar5 = puVar5 + 3; | |
} while (puVar4 != auStack_13c); | |
DAT_8f67eec0 = local_110[6]; | |
} | |
else if (uVar2 == 10) { | |
uVar7 = FUN_8f6045dc(0x89,(uint)auStack_f4,100); | |
if ((int)uVar7 != 0) goto LAB_8f611c88; | |
DAT_8f67eed4 = local_bc & 0xff0000 | local_b4 << 0x18 | local_c0 & 0xff | | |
(local_bc & 0xff) << 8; | |
DAT_8f67eecc = local_c0; | |
DAT_8f67eed0 = local_b4; | |
DAT_8f67eebc = local_f0; | |
DAT_8f67eec8 = local_ec; | |
puVar3 = auStack_f4; | |
puVar5 = &DAT_8f67eebc; | |
do { | |
uVar1 = *(uint *)(puVar3 + 0x48); | |
puVar4 = puVar3 + 8; | |
uVar2 = *(uint *)(puVar3 + 0x44); | |
bVar6 = uVar2 != 0x7fffffff; | |
puVar5[8] = uVar2; | |
if (bVar6) { | |
uVar2 = uVar2 & 0xff; | |
} | |
puVar5[9] = uVar1; | |
if (!bVar6) { | |
uVar2 = 0; | |
} | |
puVar5[10] = (uVar1 & 0xff) << 8 | uVar1 & 0xff0000 | uVar2; | |
puVar3 = puVar4; | |
puVar5 = puVar5 + 3; | |
} while (puVar4 != auStack_dc); | |
DAT_8f67eec0 = local_b0[6]; | |
DAT_8f67eec4 = local_94; | |
} | |
else if (10 < uVar2) { | |
uVar7 = FUN_8f6045dc(0x89,(uint)auStack_90,0x6c); | |
if ((int)uVar7 != 0) goto LAB_8f611c88; | |
DAT_8f67eed0 = local_50; | |
DAT_8f67eecc = local_5c; | |
DAT_8f67eebc = local_8c; | |
DAT_8f67eec8 = local_88; | |
DAT_8f67eec0 = local_34; | |
DAT_8f67eec4 = local_30; | |
DAT_8f67ef10 = local_2c; | |
DAT_8f67ef14 = local_28; | |
DAT_8f67eed4 = local_58 & 0xff0000 | local_50 << 0x18 | local_5c & 0xff | | |
(local_58 & 0xff) << 8; | |
} | |
uVar8 = FUN_8f611aec(); | |
uVar9 = FUN_8f6263f0((int)uVar8,(int)((ulonglong)uVar8 >> 0x20)); | |
uVar7 = FUN_8f626428((int)uVar9,(int)((ulonglong)uVar9 >> 0x20)); | |
DAT_8f67ef0c = (int)uVar8 << 8 | (int)uVar9 << 0x10 | (int)uVar7 << 0xb; | |
uVar7 = uVar7 & 0xffffffff00000000 | (ulonglong)DAT_8f67ef0c; | |
} | |
else { | |
dprintf((byte *)s_Unsupported_board_info_format__u_8f65ed90,(int *)(local_24c >> 0x10),uVar2, | |
&DAT_8f688284); | |
uVar7 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_board_c_8f65ed28,0x11e); | |
} | |
} | |
LAB_8f611c88: | |
if (local_24 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar7,(int)(uVar7 >> 0x20),local_24); | |
} | |
return; | |
} | |
void FUN_8f61203c(void) | |
{ | |
int *piVar1; | |
int *piVar2; | |
undefined4 extraout_r1; | |
undefined4 uVar3; | |
int *in_lr; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
FUN_8f611bc4(); | |
uVar4 = FUN_8f600600(&DAT_8f67eebc,extraout_r1); | |
piVar2 = DAT_8f69d118; | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),piVar1); | |
} | |
uVar4 = CONCAT44(DAT_8f67eebc,0x8f67eebc); | |
if (DAT_8f67eebc == (int *)0x130) { | |
LAB_8f6006dc: | |
DAT_8f67eed8 = 1; | |
uVar4 = CONCAT44(DAT_8f67eebc,0x8f67eebc); | |
goto LAB_8f6006ac; | |
} | |
if (DAT_8f67eebc < (int *)0x131) { | |
uVar3 = 0x125; | |
if (DAT_8f67eebc == (int *)0x125) goto LAB_8f6006d0; | |
} | |
else { | |
if (DAT_8f67eebc == (int *)0x152) { | |
LAB_8f6006d0: | |
DAT_8f67eed8 = 0; | |
goto LAB_8f6006ac; | |
} | |
uVar3 = 0x15f; | |
if (DAT_8f67eebc == (int *)0x15f) goto LAB_8f6006dc; | |
} | |
dprintf((byte *)s_Platform_type___u_is_not_support_8f65985c,DAT_8f67eebc,piVar1,uVar3); | |
uVar4 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_target_msm8953_init_c_8f659840,0x1e0); | |
LAB_8f6006ac: | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),piVar2); | |
} | |
void FUN_8f61208c(int param_1,int param_2,uint param_3,byte *param_4) | |
{ | |
byte bVar1; | |
int *piVar2; | |
uint *puVar3; | |
uint uVar4; | |
uint uVar5; | |
uint *puVar6; | |
uint uVar7; | |
uint uVar8; | |
uint uStack_38; | |
uint *local_34; | |
uint uStack_30; | |
undefined4 uStack_2c; | |
uint uStack_28; | |
int *local_24; | |
piVar2 = DAT_8f69d118; | |
uVar8 = (uint)*param_4; | |
puVar6 = &uStack_38; | |
local_34 = DAT_8f65edb8; | |
uStack_30 = DAT_8f65edbc; | |
uStack_2c = DAT_8f65edc0; | |
uStack_28 = DAT_8f65edc4; | |
local_24 = DAT_8f69d118; | |
if (uVar8 < param_3) { | |
uVar7 = 0; | |
do { | |
uVar4 = uVar8 + 1; | |
bVar1 = *(byte *)(param_1 + uVar8); | |
puVar6 = puVar6 + 1; | |
uVar5 = *puVar6; | |
uVar8 = uVar4 & 0xff; | |
*param_4 = (byte)uVar8; | |
uVar7 = uVar7 | (uint)bVar1 << (uVar5 & 0xff); | |
puVar3 = &uStack_28; | |
if (param_3 <= uVar8) break; | |
} while (puVar6 != &uStack_28); | |
} | |
else { | |
uVar7 = 0; | |
puVar3 = DAT_8f65edb8; | |
uVar4 = DAT_8f65edbc; | |
} | |
*(uint *)(DAT_8f688290 * 0x8000 + 0x2400010 + param_2 * 4) = uVar7; | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(puVar3,uVar4,piVar2); | |
} | |
void FUN_8f61214c(int param_1,int param_2,uint param_3,byte *param_4) | |
{ | |
uint *puVar1; | |
int *piVar2; | |
uint uVar3; | |
uint uVar4; | |
uint uVar5; | |
int iVar6; | |
uint local_40 [4]; | |
undefined4 local_30; | |
int *local_2c; | |
piVar2 = DAT_8f69d118; | |
uVar3 = *(uint *)(PTR_DAT_8f61220c + 4); | |
local_40[0] = *(uint *)PTR_DAT_8f61220c; | |
local_40[1] = uVar3; | |
local_40[2] = *(undefined4 *)(PTR_DAT_8f61220c + 8); | |
local_40[3] = *(undefined4 *)(PTR_DAT_8f61220c + 0xc); | |
local_30 = *(undefined4 *)(PTR_DAT_8f61220c + 0x10); | |
iVar6 = 0; | |
local_2c = DAT_8f69d118; | |
uVar5 = (uint)*param_4; | |
uVar4 = *(uint *)(DAT_8f688290 * 0x8000 + 0x2c00018 + param_2 * 4); | |
do { | |
if (param_3 <= uVar5) break; | |
puVar1 = local_40 + iVar6; | |
uVar3 = (uint)*(byte *)((int)&local_30 + iVar6); | |
iVar6 = iVar6 + 1; | |
*(char *)(param_1 + uVar5) = (char)((uVar4 & *puVar1) >> uVar3); | |
uVar5 = *param_4 + 1 & 0xff; | |
*param_4 = (byte)uVar5; | |
} while (iVar6 != 4); | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(local_30,uVar3,piVar2); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f612210(undefined4 param_1,undefined4 param_2) | |
{ | |
int iVar1; | |
int iVar2; | |
int iVar3; | |
undefined4 uVar4; | |
undefined4 uVar5; | |
int *piVar6; | |
int iVar7; | |
int *in_lr; | |
undefined8 uVar8; | |
iVar3 = DAT_8f69d118; | |
DAT_8f688288 = _DAT_0200f000; | |
uVar8 = FUN_8f602f6c(param_1,param_2); | |
DAT_8f688298 = (int)uVar8; | |
uVar4 = param_2; | |
uVar5 = param_1; | |
if (0x2000ffff < DAT_8f688288) { | |
DAT_8f68829c = FUN_8f63666c(0x1000,(int)((ulonglong)uVar8 >> 0x20)); | |
if (DAT_8f68829c == 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_spmi_c_8f65eddc,0x3d); | |
} | |
iVar2 = DAT_8f68829c; | |
iVar1 = DAT_8f688298; | |
uVar4 = DAT_8f68828c; | |
uVar5 = DAT_8f688290; | |
if (DAT_8f688298 != 0) { | |
iVar7 = 0; | |
piVar6 = (int *)&DAT_0200f800; | |
do { | |
*(char *)(iVar2 + ((uint)(*piVar6 << 0x10) >> 0x18 | ((uint)(*piVar6 << 0xc) >> 0x1c) << 8)) | |
= (char)iVar7; | |
iVar7 = iVar7 + 1; | |
piVar6 = piVar6 + 1; | |
uVar4 = DAT_8f68828c; | |
uVar5 = DAT_8f688290; | |
} while (iVar7 != iVar1); | |
} | |
} | |
DAT_8f688290 = uVar5; | |
DAT_8f68828c = uVar4; | |
DAT_8f688294 = 1; | |
if (iVar3 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar3,DAT_8f69d118,(int *)0x1); | |
} | |
return; | |
} | |
void FUN_8f612340(byte *param_1,int *param_2) | |
{ | |
int iVar1; | |
uint *puVar2; | |
uint *extraout_r1; | |
uint *extraout_r1_00; | |
uint uVar3; | |
uint uVar4; | |
uint local_20; | |
int *local_1c; | |
uVar4 = DAT_8f688290; | |
local_1c = DAT_8f69d118; | |
local_20 = 0; | |
if (DAT_8f688288 < 0x20010000) { | |
iVar1 = DAT_8f688290 * 0x8000; | |
*(undefined4 *)(iVar1 + 0x2400004) = 0; | |
if (param_1 == (byte *)0x0) { | |
dprintf((byte *)s_PMIC_arbiter_error__no_command_p_8f65ee04,param_2,&DAT_8f688290,0); | |
uVar4 = 1; | |
puVar2 = extraout_r1_00; | |
goto LAB_8f612444; | |
} | |
} | |
else { | |
uVar4 = (uint)*(byte *)(DAT_8f68829c + (uint)CONCAT11(param_1[2],param_1[3])); | |
iVar1 = uVar4 * 0x8000; | |
DAT_8f688290 = uVar4; | |
*(undefined4 *)(iVar1 + 0x2400004) = 0; | |
} | |
FUN_8f61208c(*param_2,0,(uint)*(byte *)(param_2 + 1),(byte *)&local_20); | |
uVar3 = (uint)*(byte *)(param_2 + 1); | |
if (local_20 < uVar3) { | |
FUN_8f61208c(*param_2,1,uVar3,(byte *)&local_20); | |
uVar3 = (uint)*(byte *)(param_2 + 1); | |
} | |
puVar2 = (uint *)(iVar1 + 0x2400008); | |
uVar3 = uVar3 - 1 & 0xff; | |
param_1[5] = (byte)uVar3; | |
*param_1 = 0; | |
*(uint *)((uVar4 + 0x480) * 0x8000) = (uint)param_1[1] << 0x1a | (uint)param_1[4] << 4 | uVar3; | |
do { | |
uVar3 = *puVar2; | |
} while (uVar3 == 0); | |
uVar4 = uVar3 ^ 1; | |
if (uVar4 != 0) { | |
dprintf((byte *)s_SPMI_write_command_failure__cmd__8f65ee30,(int *)(uint)*param_1,uVar4,uVar3); | |
puVar2 = extraout_r1; | |
} | |
LAB_8f612444: | |
if (local_1c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar4,puVar2,local_1c); | |
} | |
void FUN_8f6124ac(byte *param_1,int *param_2) | |
{ | |
int iVar1; | |
byte bVar2; | |
undefined4 extraout_r1; | |
undefined4 uVar3; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
uint uVar4; | |
uint uVar5; | |
byte local_15; | |
int *local_14; | |
local_15 = 0; | |
local_14 = DAT_8f69d118; | |
if (0x2000ffff < DAT_8f688288) { | |
DAT_8f688290 = (uint)*(byte *)(DAT_8f68829c + (uint)CONCAT11(param_1[2],param_1[3])); | |
} | |
iVar1 = DAT_8f688290 * 0x8000; | |
*(undefined4 *)(iVar1 + 0x2c00004) = 0; | |
bVar2 = *(byte *)(param_2 + 1); | |
*param_1 = 1; | |
uVar4 = bVar2 - 1 & 0xff; | |
param_1[5] = (byte)uVar4; | |
*(uint *)(iVar1 + 0x2c00000) = | |
(uint)param_1[4] << 4 | (uint)param_1[1] << 0x1a | 0x8000000 | uVar4; | |
do { | |
uVar4 = *(uint *)(iVar1 + 0x2c00008); | |
} while (uVar4 == 0); | |
uVar5 = uVar4 ^ 1; | |
if (uVar5 == 0) { | |
FUN_8f61214c(*param_2,0,(uint)*(byte *)(param_2 + 1),&local_15); | |
uVar3 = extraout_r1; | |
if ((uint)local_15 < (uint)*(byte *)(param_2 + 1)) { | |
FUN_8f61214c(*param_2,1,(uint)*(byte *)(param_2 + 1),&local_15); | |
uVar3 = extraout_r1_01; | |
if ((uint)local_15 < (uint)*(byte *)(param_2 + 1)) { | |
FUN_8f61214c(*param_2,2,(uint)*(byte *)(param_2 + 1),&local_15); | |
uVar3 = extraout_r1_02; | |
goto LAB_8f612578; | |
} | |
} | |
uVar5 = 0; | |
} | |
else { | |
dprintf((byte *)s_SPMI_read_command_failure__cmd_i_8f65ee68,(int *)(uint)*param_1,uVar5,uVar4); | |
uVar3 = extraout_r1_00; | |
} | |
LAB_8f612578: | |
if (local_14 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar5,uVar3,local_14); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f612654) | |
void FUN_8f612618(void) | |
{ | |
return; | |
} | |
void FUN_8f612690(int *param_1,int param_2) | |
{ | |
int *piVar1; | |
uint uVar2; | |
piVar1 = DAT_8f69d118; | |
*(undefined4 *) | |
(*param_1 + 0x13004 + (uint)*(byte *)((int)param_1 + param_2 * 0x18 + 0x1a) * 0x1000) = 1; | |
uVar2 = (uint)*(byte *)((int)param_1 + param_2 * 0x18 + 0x1a); | |
*(undefined4 *)(*param_1 + 0x13004 + uVar2 * 0x1000) = 0; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,uVar2,piVar1); | |
} | |
void FUN_8f6126fc(int *param_1,int param_2,uint param_3) | |
{ | |
int *piVar1; | |
uint uVar2; | |
uint uVar3; | |
int *piVar4; | |
int *extraout_r1; | |
int iVar5; | |
uint uVar6; | |
piVar1 = DAT_8f69d118; | |
uVar3 = (uint)*(byte *)((int)param_1 + (param_2 + 1) * 0x18 + 2); | |
iVar5 = *param_1 + uVar3 * 0x1000; | |
while( true ) { | |
do { | |
uVar6 = *(uint *)(*param_1 + (param_1[0x15] + 3) * 0x1000); | |
} while ((uVar6 & 1 << uVar3 & 0x7fffU) == 0); | |
piVar4 = *(int **)(iVar5 + 0x13010); | |
uVar2 = (uint)piVar4 & 0x10; | |
if (uVar2 != 0) break; | |
if (((uint)piVar4 & param_3) != 0) { | |
*(undefined4 *)(iVar5 + 0x13014) = 0x29; | |
LAB_8f612774: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,piVar4,piVar1); | |
} | |
} | |
dprintf((byte *)s_Unexpected_interrupt___val__u_8f65eea0,piVar4,param_3,uVar6); | |
uVar2 = 1; | |
piVar4 = extraout_r1; | |
goto LAB_8f612774; | |
} | |
void FUN_8f6127a4(int *param_1,int param_2) | |
{ | |
int *piVar1; | |
uint uVar2; | |
uint uVar3; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
*(undefined4 *) | |
(*param_1 + 0x13018 + (uint)*(byte *)((int)param_1 + param_2 * 0x18 + 0x1a) * 0x1000) = 0x19; | |
uVar2 = *(uint *)(*param_1 + 0x3004 + param_1[0x15] * 0x1000); | |
uVar3 = uVar2 | 1 << *(sbyte *)((int)param_1 + param_2 * 0x18 + 0x1a); | |
uVar4 = CONCAT44(uVar3,uVar2); | |
*(uint *)(*param_1 + 0x3004 + param_1[0x15] * 0x1000) = uVar3; | |
if (*(char *)(param_1 + param_2 * 6 + 7) == '\0') { | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
} | |
else { | |
uVar4 = FUN_8f61097c((uint)*(byte *)((int)param_1 + param_2 * 0x18 + 0x1b),&LAB_8f612658, | |
(int *)0x0); | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f610944((uint)*(byte *)((int)param_1 + param_2 * 0x18 + 0x1b), | |
(int)((ulonglong)uVar4 >> 0x20)); | |
return; | |
} | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f61288c) | |
void FUN_8f61285c(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
void FUN_8f612890(int *param_1,int param_2) | |
{ | |
byte bVar1; | |
int *piVar2; | |
int iVar3; | |
undefined4 uVar4; | |
uint uVar5; | |
undefined4 uVar6; | |
undefined4 extraout_r1; | |
int iVar7; | |
int *piVar8; | |
uint uVar9; | |
int *in_lr; | |
piVar2 = DAT_8f69d118; | |
piVar8 = param_1 + param_2 * 6; | |
if (*(short *)(piVar8 + 5) < 0) { | |
dprintf((byte *)s_Size_exceeds_max_size_for_a_desc_8f65eec0,DAT_8f69d118, | |
(int)*(short *)(piVar8 + 5),piVar8); | |
uVar4 = 1; | |
uVar6 = extraout_r1; | |
} | |
else { | |
iVar3 = FUN_8f602f04(piVar8[3] & 7,DAT_8f69d118); | |
if (iVar3 != 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_bam_c_8f65eef0,0xa1); | |
} | |
uVar9 = (uint)*(ushort *)(param_1 + param_2 * 6 + 5); | |
if ((uVar9 - 1 & uVar9) != 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_bam_c_8f65eef0,0xa6); | |
uVar9 = (uint)*(ushort *)(param_1 + param_2 * 6 + 5); | |
} | |
iVar7 = *param_1; | |
iVar3 = param_1[param_2 * 6 + 3]; | |
param_1[param_2 * 6 + 4] = iVar3; | |
uVar5 = (uint)*(byte *)((int)param_1 + param_2 * 0x18 + 0x1a); | |
*(uint *)(iVar7 + 0x13820 + uVar5 * 0x1000) = uVar9 << 3; | |
iVar7 = *param_1; | |
bVar1 = *(byte *)((int)param_1 + param_2 * 0x18 + 0x1a); | |
uVar4 = FUN_8f602f04(iVar3,uVar5); | |
uVar6 = 1; | |
*(undefined4 *)(iVar7 + 0x1381c + (uint)bVar1 * 0x1000) = uVar4; | |
uVar4 = 0; | |
*(undefined2 *)((int)param_1 + param_2 * 0x18 + 0x16) = 8; | |
iVar3 = *(byte *)((int)param_1 + param_2 * 0x18 + 0x1a) + 0x13; | |
*(uint *)(*param_1 + iVar3 * 0x1000) = *(uint *)(*param_1 + iVar3 * 0x1000) | 2; | |
*(undefined *)((int)param_1 + param_2 * 0x18 + 0x1d) = 1; | |
} | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar4,uVar6,piVar2); | |
} | |
void FUN_8f612a00(int *param_1,int param_2) | |
{ | |
int *piVar1; | |
int *piVar2; | |
uint uVar3; | |
uint uVar4; | |
piVar1 = DAT_8f69d118; | |
*(undefined4 *) | |
(*param_1 + 0x13004 + (uint)*(byte *)((int)param_1 + param_2 * 0x18 + 0x1a) * 0x1000) = 1; | |
*(undefined4 *) | |
(*param_1 + 0x13004 + (uint)*(byte *)((int)param_1 + param_2 * 0x18 + 0x1a) * 0x1000) = 0; | |
FUN_8f6127a4(param_1,param_2); | |
uVar3 = (uint)*(byte *)((int)param_1 + param_2 * 0x18 + 0x1e); | |
uVar4 = (uint)*(byte *)((int)param_1 + param_2 * 0x18 + 9) << 3 | uVar3 << 0x10 | 0x20; | |
*(uint *)(*param_1 + (*(byte *)((int)param_1 + param_2 * 0x18 + 0x1a) + 0x13) * 0x1000) = uVar4; | |
piVar2 = DAT_8f69d118; | |
*(undefined *)((int)param_1 + param_2 * 0x18 + 0x1d) = 0; | |
if (piVar1 == piVar2) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar3,uVar4,piVar1); | |
} | |
void FUN_8f612a9c(int *param_1,int *param_2,uint param_3) | |
{ | |
int *piVar1; | |
int iVar2; | |
uint uVar3; | |
piVar1 = DAT_8f69d118; | |
if (*(ushort *)(param_1 + (int)param_2 * 6 + 5) <= param_3) { | |
dprintf((byte *)s_Max_allowed_desc_is_one_less_tha_8f65ef74,param_2,DAT_8f69d118,DAT_8f69d118); | |
return; | |
} | |
uVar3 = (uint)*(byte *)((int)param_1 + ((int)param_2 + 1) * 0x18 + 2); | |
iVar2 = *(int *)(*param_1 + 0x13818 + uVar3 * 0x1000); | |
*(uint *)(*param_1 + 0x13818 + uVar3 * 0x1000) = | |
iVar2 + param_3 * 8 & (uint)*(ushort *)(param_1 + (int)param_2 * 6 + 5) * 8 - 1; | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar2,uVar3,piVar1); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f612b88) | |
void FUN_8f612b3c(int param_1,int param_2) | |
{ | |
return; | |
} | |
void FUN_8f612b8c(int param_1,int param_2,int param_3,int *param_4,byte param_5) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
int *piVar3; | |
uint uVar4; | |
uint extraout_r1; | |
uint extraout_r1_00; | |
uint extraout_r1_01; | |
uint extraout_r1_02; | |
uint extraout_r1_03; | |
int *piVar5; | |
int iVar6; | |
piVar1 = DAT_8f69d118; | |
piVar3 = (int *)(param_1 + param_2 * 0x18); | |
piVar5 = (int *)piVar3[4]; | |
if (param_4 == (int *)0x0 || param_3 == 0) { | |
dprintf((byte *)s_Wrong_params_for_BAM_transfer_8f65efa8,piVar3,param_3,param_4); | |
uVar2 = 1; | |
uVar4 = extraout_r1_00; | |
} | |
else if (*(char *)((int)piVar3 + 0x1d) == '\0') { | |
dprintf((byte *)s_Please_allocate_the_FIFO_for_the_8f65efc8, | |
(int *)(uint)*(byte *)((int)piVar3 + 0x1a),param_3,param_4); | |
uVar2 = 1; | |
uVar4 = extraout_r1_01; | |
} | |
else if ((param_5 & 6) == 6) { | |
dprintf((byte *)s_Can_t_lock_and_unlock_in_the_sam_8f65eff8,(int *)&DAT_00000006,param_3,param_4 | |
); | |
uVar2 = 1; | |
uVar4 = extraout_r1_02; | |
} | |
else if ((param_5 & 0x48) == 0x48) { | |
dprintf((byte *)s_EOT_flag_set_on_the_CMD_desc_8f65f020,(int *)0x48,param_3,param_4); | |
uVar2 = 1; | |
uVar4 = extraout_r1_03; | |
} | |
else if ((int *)(uint)*(ushort *)(param_1 + 0x58) < param_4) { | |
dprintf((byte *)s_len_of_the_desc_exceeds_max_leng_8f65f040,param_4, | |
(int *)(uint)*(ushort *)(param_1 + 0x58),param_4); | |
uVar2 = 1; | |
uVar4 = extraout_r1; | |
} | |
else { | |
*(byte *)((int)piVar5 + 7) = param_5; | |
iVar6 = param_1 + param_2 * 0x18 + 8; | |
*piVar5 = param_3; | |
*(short *)(piVar5 + 1) = (short)param_4; | |
*(bool *)((int)piVar5 + 6) = param_4 == (int *)0x0 || param_3 == 0; | |
FUN_8f625b24((uint)piVar5,8); | |
piVar3 = *(int **)(iVar6 + 4); | |
uVar2 = 0; | |
uVar4 = (uint)(((int)piVar5 - (int)piVar3) * 0x2000) >> 0x10; | |
if (uVar4 != *(ushort *)(iVar6 + 0xc) - 1) { | |
piVar3 = piVar5 + 2; | |
} | |
*(int **)(param_1 + param_2 * 0x18 + 0x10) = piVar3; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,uVar4,piVar1); | |
} | |
return; | |
} | |
void FUN_8f612ce4(int *param_1,int *param_2,int param_3,int *param_4,byte param_5) | |
{ | |
bool bVar1; | |
int *piVar2; | |
undefined4 uVar3; | |
undefined4 extraout_r1; | |
undefined4 uVar4; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
int *piVar5; | |
uint uVar6; | |
piVar2 = DAT_8f69d118; | |
bVar1 = param_3 == 0 || param_4 == (int *)0x0; | |
uVar6 = (uint)bVar1; | |
if (param_3 == 0 || param_4 == (int *)0x0) { | |
dprintf((byte *)s_Wrong_params_for_BAM_transfer_8f65efa8,param_2,param_3,DAT_8f69d118); | |
uVar3 = 1; | |
uVar4 = extraout_r1_00; | |
} | |
else { | |
piVar5 = (int *)(uint)*(ushort *)(param_1 + 0x16); | |
if ((int *)((uint)*(ushort *)(param_1 + (int)param_2 * 6 + 5) * (int)piVar5) < param_4) { | |
dprintf((byte *)s_Data_transfer_exceeds_desc_fifo_l_8f65f06c,param_2, | |
(int *)((uint)*(ushort *)(param_1 + (int)param_2 * 6 + 5) * (int)piVar5),piVar5); | |
uVar3 = 1; | |
uVar4 = extraout_r1_01; | |
} | |
else { | |
if (piVar5 < param_4) { | |
do { | |
param_4 = (int *)((int)param_4 - (int)piVar5); | |
uVar6 = uVar6 + 1; | |
FUN_8f612b8c((int)param_1,(int)param_2,param_3,piVar5,bVar1); | |
piVar5 = (int *)(uint)*(ushort *)(param_1 + 0x16); | |
param_3 = param_3 + (int)piVar5; | |
if (param_4 == (int *)0x0) goto LAB_8f612da0; | |
} while (piVar5 < param_4); | |
} | |
uVar6 = uVar6 + 1; | |
FUN_8f612b8c((int)param_1,(int)param_2,param_3,param_4,param_5); | |
LAB_8f612da0: | |
FUN_8f612a9c(param_1,(int *)((uint)param_2 & 0xff),uVar6); | |
uVar3 = 0; | |
uVar4 = extraout_r1; | |
} | |
} | |
if (piVar2 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar3,uVar4,piVar2); | |
} | |
return; | |
} | |
void FUN_8f612df8(uint *param_1,uint param_2,uint param_3,int param_4) | |
{ | |
int iVar1; | |
int iVar2; | |
iVar1 = DAT_8f69d118; | |
*param_1 = param_2 & 0xffffff | param_4 << 0x18; | |
param_1[1] = param_3; | |
iVar2 = DAT_8f69d118; | |
*(undefined *)(param_1 + 2) = 0xff; | |
*(undefined *)((int)param_1 + 9) = 0xff; | |
*(undefined *)((int)param_1 + 10) = 0xff; | |
*(undefined *)((int)param_1 + 0xb) = 0xff; | |
if (iVar1 == iVar2) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1 + 4,iVar1,(int *)0xffffffff); | |
} | |
void FUN_8f612e58(uint *param_1,uint *param_2) | |
{ | |
int *piVar1; | |
undefined4 extraout_r1; | |
piVar1 = DAT_8f69d118; | |
FUN_8f612df8(param_2,DAT_8f6882f4 + 4,*param_1,0); | |
FUN_8f612df8(param_2 + 4,DAT_8f6882f4 + 8,param_1[1],0); | |
FUN_8f612df8(param_2 + 8,DAT_8f6882f4 + 0x20,param_1[2],0); | |
FUN_8f612df8(param_2 + 0xc,DAT_8f6882f4 + 0x24,param_1[3],0); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_2 + 0x10,extraout_r1,piVar1); | |
} | |
void FUN_8f612f00(uint param_1) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
FUN_8f612a9c((int *)&DAT_8f688310,(int *)0x2,param_1); | |
uVar2 = FUN_8f6126fc((int *)&DAT_8f688310,2,1); | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f612b3c((int)&DAT_8f688310,2); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
void FUN_8f612f6c(uint param_1) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f6126fc((int *)&DAT_8f688310,param_1 & 0xff,1); | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f612b3c((int)&DAT_8f688310,param_1); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
void FUN_8f612fc8(uint param_1,undefined4 param_2) | |
{ | |
uint uVar1; | |
int iVar2; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 local_18; | |
int *local_14; | |
local_14 = DAT_8f69d118; | |
uVar1 = FUN_8f602f04(&local_18,param_2); | |
FUN_8f612df8((uint *)&DAT_8f69d850,param_1,uVar1,1); | |
iVar2 = FUN_8f602f04(&DAT_8f69d850,extraout_r1); | |
FUN_8f612b8c((int)&DAT_8f688310,2,iVar2,(int *)0x10,(byte)param_2 | 0x88); | |
FUN_8f612f00(1); | |
if (local_14 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(local_18,extraout_r1_00,local_14); | |
} | |
void FUN_8f61305c(uint *param_1,byte param_2) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
FUN_8f612df8(param_1,DAT_8f6882f4 + 0xe8,1,0); | |
FUN_8f612b8c((int)&DAT_8f688310,2,(int)param_1,(int *)0x10,param_2 | 0x88); | |
FUN_8f612f00(1); | |
FUN_8f612df8(param_1,DAT_8f6882f4 + 0xe8,2,0); | |
uVar2 = FUN_8f612b8c((int)&DAT_8f688310,2,(int)param_1,(int *)0x10,0x88); | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f612f00(1); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
void FUN_8f61311c(int *param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
uint uVar2; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
int *piVar3; | |
ulonglong uVar4; | |
piVar1 = DAT_8f69d118; | |
piVar3 = DAT_8f69d118; | |
if (((uint)param_1 & 0x10) != 0) { | |
piVar3 = &DAT_8f6882f4; | |
uVar4 = FUN_8f612fc8(DAT_8f6882f4 + 0xec,0); | |
param_2 = (undefined4)(uVar4 >> 0x20); | |
if ((uVar4 & 0x80) != 0) { | |
param_1 = (int *)((uint)param_1 & 0xffffffef); | |
FUN_8f61305c((uint *)&DAT_8f69d210,0); | |
param_2 = extraout_r1_00; | |
} | |
} | |
uVar2 = (uint)param_1 & 0x150; | |
if (uVar2 != 0) { | |
dprintf((byte *)s_Nand_Flash_error__Status____d_8f65f098,param_1,param_3,piVar3); | |
param_2 = extraout_r1; | |
if (((uint)param_1 & 0x40) == 0) { | |
uVar2 = 1; | |
} | |
else { | |
uVar2 = 2; | |
} | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,param_2,piVar1); | |
} | |
return; | |
} | |
void FUN_8f6131b8(uint *param_1,uint *param_2) | |
{ | |
int *piVar1; | |
uint *puVar2; | |
undefined4 extraout_r1; | |
piVar1 = DAT_8f69d118; | |
puVar2 = (uint *)FUN_8f612e58(param_1,param_2); | |
FUN_8f612df8(puVar2,DAT_8f6882f4,param_1[4],0); | |
FUN_8f612df8(puVar2 + 4,DAT_8f6882f4 + 0x10,param_1[7],0); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(puVar2 + 8,extraout_r1,piVar1); | |
} | |
void FUN_8f61322c(uint *param_1,undefined4 param_2) | |
{ | |
int iVar1; | |
int *piVar2; | |
uint uVar3; | |
undefined4 extraout_r1; | |
piVar2 = DAT_8f69d118; | |
iVar1 = DAT_8f6882f4; | |
uVar3 = FUN_8f602f04(param_2,param_2); | |
FUN_8f612df8(param_1,iVar1 + 0x14,uVar3,1); | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1 + 4,extraout_r1,piVar2); | |
} | |
void FUN_8f613294(uint *param_1,int param_2) | |
{ | |
int *piVar1; | |
uint *puVar2; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 uVar3; | |
piVar1 = DAT_8f69d118; | |
FUN_8f612df8(param_1,DAT_8f6882f4 + 0x14,0x20,0); | |
puVar2 = param_1 + 4; | |
uVar3 = extraout_r1; | |
if (param_2 != 0) { | |
FUN_8f612df8(puVar2,DAT_8f6882f4 + 0x44,0xc0,0); | |
puVar2 = param_1 + 8; | |
uVar3 = extraout_r1_00; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(puVar2,uVar3,piVar1); | |
} | |
void FUN_8f613310(uint *param_1,uint *param_2) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
piVar1 = DAT_8f69d118; | |
FUN_8f612df8(param_2,DAT_8f6882f4 + 0x28,param_1[5],0); | |
uVar2 = FUN_8f612df8(param_2 + 4,DAT_8f6882f4 + 0xf20,param_1[6],0); | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f6131b8(param_1,param_2 + 8); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,param_2 + 8,piVar1); | |
} | |
void FUN_8f613390(uint param_1) | |
{ | |
uint uVar1; | |
int iVar2; | |
int *piVar3; | |
int iVar4; | |
int iVar5; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
int *extraout_r1_02; | |
undefined4 extraout_r1_03; | |
undefined uVar6; | |
undefined4 uVar7; | |
undefined8 uVar8; | |
ulonglong uVar9; | |
uint local_48; | |
uint local_44; | |
uint local_40; | |
undefined4 local_3c; | |
undefined4 local_38; | |
uint local_34; | |
undefined4 local_30; | |
undefined4 local_2c; | |
char local_28; | |
char local_27; | |
int *local_24; | |
local_24 = DAT_8f69d118; | |
uVar1 = FUN_8f6582ac(param_1,DAT_8f6882c8); | |
uVar7 = extraout_r1; | |
if (*(char *)(DAT_8f68830c + uVar1) != '\x02') { | |
if (*(char *)(DAT_8f68830c + uVar1) == '\x01') { | |
iVar2 = 6; | |
goto LAB_8f6133e4; | |
} | |
local_40 = DAT_8f688308 & 0xfffffe3f; | |
local_3c = DAT_8f6882ec; | |
local_48 = DAT_8f6882dc << 9 | param_1 << 0x10; | |
iVar2 = 1; | |
local_34 = DAT_8f688374 | 1; | |
local_44 = (param_1 << 8) >> 0x18; | |
local_38 = 0x33; | |
local_30 = 0x80040000; | |
local_2c = 1; | |
uVar8 = FUN_8f613310(&local_48,(uint *)&DAT_8f69d210); | |
piVar3 = (int *)FUN_8f602f04((int)uVar8 + 0x70962df0,(int)((ulonglong)uVar8 >> 0x20)); | |
FUN_8f612b8c((int)&DAT_8f688310,2,(int)&DAT_8f69d210,piVar3,0x9c); | |
iVar4 = FUN_8f602f04(&local_28,extraout_r1_00); | |
uVar7 = 4; | |
FUN_8f612ce4((int *)&DAT_8f688310,(int *)0x1,iVar4,(int *)&DAT_00000004,0x80); | |
FUN_8f612f00(1); | |
uVar9 = FUN_8f612fc8(DAT_8f6882f4 + 0x14,0); | |
if ((uVar9 & 0x150) == 0) { | |
FUN_8f612fc8(DAT_8f6882f4 + 0x14,2); | |
} | |
else { | |
iVar5 = FUN_8f61311c((int *)uVar9,(int)(uVar9 >> 0x20),iVar4); | |
FUN_8f612fc8(DAT_8f6882f4 + 0x14,2); | |
if (iVar5 != 0) { | |
dprintf((byte *)s_Could_not_read_bad_block_value_8f65f0b8,extraout_r1_02,iVar4,uVar7); | |
uVar7 = extraout_r1_03; | |
goto LAB_8f6133e4; | |
} | |
} | |
FUN_8f612f6c(1); | |
uVar7 = extraout_r1_01; | |
if (DAT_8f6882d0 == 0) { | |
if (local_28 == -1) { | |
uVar6 = 2; | |
iVar2 = DAT_8f6882d0; | |
} | |
else { | |
uVar6 = 1; | |
iVar2 = 6; | |
} | |
*(undefined *)(DAT_8f68830c + uVar1) = uVar6; | |
goto LAB_8f6133e4; | |
} | |
if ((local_28 != -1) && (local_27 != -1)) { | |
iVar2 = 6; | |
*(undefined *)(DAT_8f68830c + uVar1) = 1; | |
goto LAB_8f6133e4; | |
} | |
} | |
iVar2 = 0; | |
LAB_8f6133e4: | |
if (local_24 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar2,uVar7,local_24); | |
} | |
return; | |
} | |
void FUN_8f6135a0(uint param_1,int param_2,undefined4 param_3) | |
{ | |
int iVar1; | |
int *piVar2; | |
uint *puVar3; | |
uint *puVar4; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
uint uVar5; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
undefined4 extraout_r1_03; | |
undefined4 extraout_r1_04; | |
uint uVar6; | |
undefined4 uVar7; | |
uint *puVar8; | |
undefined4 extraout_r1_05; | |
int *piVar9; | |
uint uVar10; | |
int *piVar11; | |
uint uVar12; | |
uint uVar13; | |
uint uVar14; | |
uint *puVar15; | |
undefined *puVar16; | |
undefined *puVar17; | |
undefined4 *puVar18; | |
byte bVar19; | |
uint *puVar20; | |
int *in_lr; | |
bool bVar21; | |
longlong lVar22; | |
undefined8 uVar23; | |
uint *local_170; | |
uint *local_16c; | |
uint *local_168; | |
uint local_164; | |
uint local_134; | |
uint local_130; | |
undefined4 local_12c; | |
undefined4 local_128; | |
uint local_124; | |
uint local_118; | |
uint local_114; | |
uint local_110; | |
undefined4 local_10c; | |
undefined4 local_108; | |
uint local_104; | |
uint local_f8; | |
uint local_f4 [4]; | |
undefined4 local_e4; | |
undefined4 local_e0; | |
undefined4 local_dc; | |
undefined4 local_d8; | |
undefined4 local_d4; | |
undefined4 local_d0; | |
undefined4 local_cc; | |
undefined4 local_c8; | |
undefined4 local_c4; | |
undefined4 local_c0; | |
undefined4 local_bc; | |
undefined4 local_b8; | |
undefined4 local_b4; | |
undefined4 local_b0; | |
undefined4 local_ac; | |
undefined4 local_a8; | |
uint local_a4 [4]; | |
undefined4 local_94; | |
undefined4 local_90; | |
undefined4 local_8c; | |
undefined4 local_88; | |
undefined4 local_84; | |
undefined4 local_80; | |
undefined auStack_7c [40]; | |
undefined auStack_54 [40]; | |
int *local_2c; | |
uVar6 = DAT_8f688374; | |
uVar10 = DAT_8f6882dc; | |
uVar13 = param_1 << 0x10; | |
uVar14 = (param_1 << 8) >> 0x18; | |
local_2c = DAT_8f69d118; | |
local_f4[0] = 0; | |
local_f4[1] = 0; | |
local_f4[2] = 0; | |
local_f4[3] = 0; | |
local_e4 = 0; | |
local_e0 = 0; | |
local_dc = 0; | |
local_d8 = 0; | |
local_d4 = 0; | |
local_d0 = 0; | |
local_cc = 0; | |
local_c8 = 0; | |
local_c4 = 0; | |
local_c0 = 0; | |
local_bc = 0; | |
local_b8 = 0; | |
local_b4 = 0; | |
local_b0 = 0; | |
local_ac = 0; | |
local_a8 = 0; | |
local_a4[0] = 0; | |
local_a4[1] = 0; | |
local_a4[2] = 0; | |
local_a4[3] = 0; | |
local_94 = 0; | |
local_90 = 0; | |
local_8c = 0; | |
local_88 = 0; | |
local_84 = 0; | |
local_80 = 0; | |
local_12c = DAT_8f688378; | |
local_128 = DAT_8f688304; | |
local_124 = 0x33; | |
local_118 = 1; | |
local_134 = uVar13; | |
local_130 = uVar14; | |
lVar22 = FUN_8f613390(param_1); | |
uVar12 = (uint)lVar22; | |
if (uVar12 == 0) { | |
FUN_8f61305c((uint *)&DAT_8f69d210,4); | |
if (DAT_8f6882dc != 0) { | |
local_168 = (uint *)&DAT_8f69d210; | |
uVar10 = (uVar10 - 1) * 4 & 0xffff; | |
piVar11 = (int *)(uVar10 + 4 & 0xffff); | |
piVar9 = (int *)(0x200 - uVar10 & 0xffff); | |
local_164 = 0x82040000; | |
puVar15 = (uint *)&DAT_8f69d210; | |
puVar18 = &local_cc; | |
local_170 = local_a4; | |
local_16c = local_f4; | |
do { | |
puVar3 = puVar15; | |
if (uVar12 == 0) { | |
puVar3 = (uint *)FUN_8f612e58(&local_134,puVar15); | |
puVar15 = puVar3 + 4; | |
FUN_8f612df8(puVar3,DAT_8f6882f4 + 0x28,uVar6,0); | |
puVar3 = local_168; | |
} | |
local_168 = puVar3; | |
FUN_8f612df8(puVar15,DAT_8f6882f4,local_124,0); | |
if (DAT_8f6882dc - 1 == uVar12) { | |
puVar3 = puVar15 + 8; | |
FUN_8f612df8(puVar15 + 4,DAT_8f6882f4 + 0xf24, | |
(uint)piVar9 | 0x80000000 | (int)piVar11 << 0x10,0); | |
iVar1 = FUN_8f602f04(param_2,extraout_r1_02); | |
FUN_8f612b8c((int)&DAT_8f688310,1,iVar1,piVar9,0); | |
iVar1 = FUN_8f602f04(param_3,extraout_r1_03); | |
FUN_8f612b8c((int)&DAT_8f688310,1,iVar1,piVar11,0x80); | |
FUN_8f612a9c((int *)&DAT_8f688310,(int *)0x1,2); | |
local_164 = (int)piVar9 << 0x10; | |
} | |
else { | |
iVar1 = FUN_8f602f04(param_2,extraout_r1); | |
FUN_8f612b8c((int)&DAT_8f688310,1,iVar1,(int *)0x204,0); | |
FUN_8f612a9c((int *)&DAT_8f688310,(int *)0x1,1); | |
puVar3 = puVar15 + 4; | |
} | |
puVar4 = puVar3 + 8; | |
FUN_8f612df8(puVar3,DAT_8f6882f4 + 0xf20,local_164,0); | |
FUN_8f612df8(puVar3 + 4,DAT_8f6882f4 + 0x10,local_118,0); | |
puVar15 = puVar3 + 0x14; | |
param_2 = param_2 + 0x204; | |
piVar2 = (int *)FUN_8f602f04((int)puVar4 - (int)local_168,extraout_r1_00); | |
FUN_8f612b8c((int)&DAT_8f688310,2,(int)local_168,piVar2,0x18); | |
uVar5 = DAT_8f6882f4 + 0x14; | |
uVar10 = FUN_8f602f04(local_16c,uVar5); | |
FUN_8f612df8(puVar4,uVar5,uVar10,1); | |
uVar5 = DAT_8f6882f4 + 0x18; | |
uVar10 = FUN_8f602f04(puVar18,uVar5); | |
FUN_8f612df8(puVar3 + 0xc,uVar5,uVar10,1); | |
uVar5 = DAT_8f6882f4 + 0xec; | |
uVar10 = FUN_8f602f04(local_170,uVar5); | |
FUN_8f612df8(puVar3 + 0x10,uVar5,uVar10,1); | |
bVar21 = DAT_8f6882dc - 1 == uVar12; | |
uVar12 = uVar12 + 1; | |
if (bVar21) { | |
bVar19 = 10; | |
} | |
else { | |
bVar19 = 8; | |
} | |
uVar23 = FUN_8f602f04(puVar4,extraout_r1_01); | |
piVar2 = (int *)FUN_8f602f04((int)puVar15 - (int)puVar4,(int)((ulonglong)uVar23 >> 0x20)); | |
FUN_8f612b8c((int)&DAT_8f688310,2,(int)uVar23,piVar2,bVar19); | |
FUN_8f612a9c((int *)&DAT_8f688310,(int *)0x2,2); | |
puVar18 = puVar18 + 1; | |
local_170 = local_170 + 1; | |
local_16c = local_16c + 1; | |
} while (uVar12 < DAT_8f6882dc); | |
} | |
FUN_8f612f6c(1); | |
lVar22 = CONCAT44(extraout_r1_04,DAT_8f6882dc); | |
if (DAT_8f6882dc != 0) { | |
iVar1 = 0; | |
uVar10 = 0; | |
do { | |
uVar6 = *(uint *)((int)local_f4 + iVar1); | |
if (((uVar6 & 0x110) != 0) && | |
(uVar6 = *(uint *)((int)local_a4 + iVar1) & 0x50, uVar6 != 0x50)) { | |
uVar10 = (int)DAT_8f6882f0 * DAT_8f6882dc; | |
puVar15 = (uint *)FUN_8f6366a8((int *)0x10,uVar10); | |
if (puVar15 == (uint *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_qpic_nand_c_8f65f0d8,0x5b5); | |
} | |
FUN_8f636968(puVar15,0,uVar10); | |
uVar6 = DAT_8f6882fc; | |
uVar10 = (int)DAT_8f6882f0 << 0x10; | |
local_10c = DAT_8f688308; | |
local_108 = DAT_8f6882ec; | |
local_104 = 0x32; | |
local_f8 = 1; | |
local_114 = uVar13; | |
local_110 = uVar14; | |
if (DAT_8f6882dc != 0) { | |
puVar3 = (uint *)&DAT_8f69d210; | |
local_16c = (uint *)&DAT_8f69d210; | |
uVar13 = 0; | |
puVar16 = auStack_54; | |
puVar17 = auStack_7c; | |
local_170 = puVar15; | |
do { | |
if (uVar13 == 0) { | |
puVar4 = (uint *)FUN_8f612e58(&local_114,puVar3); | |
puVar3 = puVar4 + 0xc; | |
FUN_8f612df8(puVar4,DAT_8f6882f4 + 0x28,uVar6,0); | |
FUN_8f612df8(puVar4 + 4,DAT_8f6882f4,local_104,0); | |
FUN_8f612df8(puVar4 + 8,DAT_8f6882f4 + 0xf20,uVar10 | 0x80000205,0); | |
uVar7 = 4; | |
} | |
else { | |
uVar7 = 0; | |
local_16c = puVar3; | |
} | |
puVar4 = puVar3 + 4; | |
if (uVar13 == DAT_8f6882dc - 1) { | |
bVar19 = 0x98; | |
uVar7 = 0x80; | |
} | |
else { | |
bVar19 = (byte)uVar7 | 0x18; | |
} | |
iVar1 = FUN_8f602f04(local_170,uVar7); | |
FUN_8f612b8c((int)&DAT_8f688310,1,iVar1,DAT_8f6882f0,(byte)uVar7); | |
FUN_8f612a9c((int *)&DAT_8f688310,(int *)0x1,1); | |
FUN_8f612df8(puVar3,DAT_8f6882f4 + 0x10,local_f8,0); | |
piVar9 = (int *)FUN_8f602f04((int)puVar4 - (int)local_16c,local_16c); | |
FUN_8f612b8c((int)&DAT_8f688310,2,(int)local_16c,piVar9,bVar19); | |
uVar14 = DAT_8f6882f4 + 0x14; | |
uVar12 = FUN_8f602f04(puVar17,uVar14); | |
FUN_8f612df8(puVar4,uVar14,uVar12,1); | |
uVar14 = DAT_8f6882f4 + 0x18; | |
uVar12 = FUN_8f602f04(puVar16,uVar14); | |
FUN_8f612df8(puVar3 + 8,uVar14,uVar12,1); | |
puVar3 = puVar3 + 0xc; | |
bVar21 = uVar13 == DAT_8f6882dc - 1; | |
uVar13 = uVar13 + 1; | |
if (bVar21) { | |
uVar7 = 10; | |
} | |
else { | |
uVar7 = 8; | |
} | |
uVar23 = FUN_8f602f04(puVar4,uVar7); | |
piVar9 = (int *)FUN_8f602f04((int)puVar3 - (int)puVar4, | |
(int)((ulonglong)uVar23 >> 0x20)); | |
FUN_8f612b8c((int)&DAT_8f688310,2,(int)uVar23,piVar9,(byte)uVar7); | |
local_170 = (uint *)((int)local_170 + (int)DAT_8f6882f0); | |
FUN_8f612a9c((int *)&DAT_8f688310,(int *)0x2,2); | |
puVar16 = puVar16 + 4; | |
puVar17 = puVar17 + 4; | |
} while (uVar13 < DAT_8f6882dc); | |
} | |
FUN_8f612f6c(1); | |
uVar13 = DAT_8f6882dc; | |
if (DAT_8f6882dc != 0) { | |
uVar13 = 0; | |
puVar3 = puVar15; | |
do { | |
if (DAT_8f6882f0 != (int *)0x0) { | |
puVar20 = (uint *)((int)puVar3 + (int)DAT_8f6882f0); | |
iVar1 = 0; | |
puVar4 = puVar3; | |
do { | |
puVar8 = (uint *)((int)puVar4 + 1); | |
for (uVar10 = (uint)*(byte *)puVar4; uVar10 != 0; uVar10 = uVar10 >> 1) { | |
if ((uVar10 & 1) == 0) { | |
iVar1 = iVar1 + 1; | |
} | |
if (4 < iVar1) { | |
uVar13 = 5; | |
goto LAB_8f613d84; | |
} | |
} | |
puVar4 = puVar8; | |
puVar3 = puVar20; | |
} while (puVar8 != puVar20); | |
} | |
uVar13 = uVar13 + 1; | |
} while (uVar13 != DAT_8f6882dc); | |
uVar13 = 0; | |
} | |
LAB_8f613d84: | |
FUN_8f636758((int)puVar15); | |
lVar22 = CONCAT44(extraout_r1_05,uVar13); | |
goto LAB_8f6136bc; | |
} | |
uVar10 = uVar10 + 1; | |
iVar1 = iVar1 + 4; | |
} while (uVar10 != DAT_8f6882dc); | |
lVar22 = (ulonglong)uVar6 << 0x20; | |
} | |
} | |
LAB_8f6136bc: | |
if (local_2c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)lVar22,(int)((ulonglong)lVar22 >> 0x20),local_2c); | |
} | |
return; | |
} | |
void FUN_8f613de4(int param_1,int param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
int iVar2; | |
int iVar3; | |
int extraout_r1; | |
int extraout_r1_00; | |
int extraout_r1_01; | |
int *piVar4; | |
uint uVar5; | |
int *piVar6; | |
uint uVar7; | |
byte bVar8; | |
int iVar9; | |
iVar2 = DAT_8f69d118; | |
piVar4 = DAT_8f6882dc; | |
if (DAT_8f6882dc == (int *)0x0) { | |
LAB_8f613ef4: | |
if (iVar2 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(&DAT_8f69d118,iVar2,piVar4); | |
} | |
FUN_8f612a9c((int *)&DAT_8f688310,(int *)0x0,(uint)piVar4); | |
return; | |
} | |
uVar5 = 0; | |
iVar3 = param_2; | |
piVar6 = (int *)0x0; | |
iVar9 = param_1; | |
do { | |
piVar4 = DAT_8f6882d8; | |
uVar7 = (int)DAT_8f6882dc - 1; | |
if (uVar7 == uVar5) { | |
bVar8 = 0x80; | |
} | |
else { | |
bVar8 = 0; | |
} | |
if (param_2 == 0) { | |
iVar3 = FUN_8f602f04(param_1,iVar3); | |
FUN_8f612b8c((int)&DAT_8f688310,0,iVar3,piVar4,bVar8 | 0x40); | |
piVar4 = (int *)((int)piVar6 + 1); | |
iVar3 = extraout_r1_00; | |
if (DAT_8f6882dc <= (int *)(uVar5 + 1)) goto LAB_8f613ef4; | |
} | |
else { | |
if (uVar5 < uVar7) { | |
bVar8 = bVar8 | 0x40; | |
piVar4 = (int *)0x204; | |
} | |
else { | |
piVar4 = (int *)(uVar7 * -4 + 0x200); | |
bVar8 = 0; | |
} | |
iVar3 = FUN_8f602f04(iVar9,iVar3); | |
FUN_8f612b8c((int)&DAT_8f688310,0,iVar3,piVar4,bVar8); | |
piVar1 = DAT_8f6882dc; | |
piVar4 = (int *)((int)piVar6 + 1); | |
iVar3 = extraout_r1; | |
if (((int)DAT_8f6882dc - 1U == uVar5) && (param_2 == 1)) { | |
iVar3 = FUN_8f602f04(param_3,extraout_r1); | |
FUN_8f612b8c((int)&DAT_8f688310,0,iVar3,(int *)((int)piVar1 << 2),0xc0); | |
piVar4 = (int *)((int)piVar6 + 2); | |
iVar3 = extraout_r1_01; | |
} | |
if (DAT_8f6882dc <= (int *)(uVar5 + 1)) goto LAB_8f613ef4; | |
} | |
iVar9 = iVar9 + 0x204; | |
uVar5 = uVar5 + 1; | |
piVar6 = piVar4; | |
} while( true ); | |
} | |
void FUN_8f613f70(int param_1,int param_2,int param_3,undefined4 param_4) | |
{ | |
uint *puVar1; | |
int *piVar2; | |
int *piVar3; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 uVar4; | |
undefined4 extraout_r1_02; | |
uint uVar5; | |
uint *puVar6; | |
uint uVar7; | |
int **ppiVar8; | |
uint *puVar9; | |
undefined8 uVar10; | |
undefined8 uVar11; | |
ulonglong uVar12; | |
int local_84; | |
uint local_74; | |
uint local_70; | |
undefined4 local_6c; | |
undefined4 local_68; | |
uint local_64; | |
int *local_58; | |
int *local_54 [10]; | |
int *local_2c; | |
local_2c = DAT_8f69d118; | |
if (param_2 == 0) { | |
local_74 = param_1 << 0x10; | |
local_64 = 0x36; | |
local_6c = DAT_8f688308; | |
local_70 = (uint)(param_1 << 8) >> 0x18; | |
local_68 = DAT_8f6882ec; | |
local_58 = (int *)0x1; | |
FUN_8f613de4(param_3,0,param_4); | |
} | |
else { | |
local_64 = 0x36; | |
local_68 = DAT_8f688304; | |
local_6c = DAT_8f688378; | |
local_70 = (uint)(param_1 << 8) >> 0x18; | |
local_74 = param_1 << 0x10; | |
local_58 = (int *)0x1; | |
FUN_8f613de4(param_3,param_2,param_4); | |
uVar5 = DAT_8f688374; | |
if (param_2 == 1) goto LAB_8f613ff8; | |
} | |
uVar5 = DAT_8f688374 | 1; | |
LAB_8f613ff8: | |
FUN_8f612df8((uint *)&DAT_8f69d210,DAT_8f6882f4 + 0x28,uVar5,0); | |
puVar1 = (uint *)FUN_8f612e58(&local_74,(uint *)&DAT_8f69d220); | |
puVar9 = puVar1 + 4; | |
FUN_8f612df8(puVar1,DAT_8f6882f4,local_64,0); | |
piVar2 = (int *)FUN_8f602f04(puVar1 + 0x1c258b80,extraout_r1); | |
FUN_8f612b8c((int)&DAT_8f688310,2,(int)&DAT_8f69d210,piVar2,0xc); | |
if (DAT_8f6882dc != (int *)0x0) { | |
local_84 = 1; | |
piVar2 = (int *)0x0; | |
puVar1 = (uint *)&DAT_8f69d850; | |
ppiVar8 = local_54; | |
while( true ) { | |
puVar6 = puVar9 + 4; | |
FUN_8f612df8(puVar9,DAT_8f6882f4 + 0x10,(uint)local_58,0); | |
piVar3 = (int *)FUN_8f602f04(0x10,extraout_r1_00); | |
FUN_8f612b8c((int)&DAT_8f688310,2,(int)puVar9,piVar3,0x18); | |
uVar10 = FUN_8f61322c(puVar1,ppiVar8); | |
piVar3 = (int *)FUN_8f602f04((int)(uint *)uVar10 - (int)puVar1, | |
(int)((ulonglong)uVar10 >> 0x20)); | |
FUN_8f612b8c((int)&DAT_8f688310,2,(int)puVar1,piVar3,8); | |
uVar11 = FUN_8f613294(puVar6,(uint)(piVar2 == (int *)((int)DAT_8f6882dc - 1U))); | |
puVar9 = (uint *)uVar11; | |
piVar3 = (int *)FUN_8f602f04((int)puVar9 - (int)puVar6,(int)((ulonglong)uVar11 >> 0x20)); | |
FUN_8f612b8c((int)&DAT_8f688310,2,(int)puVar6,piVar3,0x88); | |
FUN_8f612f00(local_84 + 3); | |
piVar3 = *ppiVar8; | |
uVar12 = CONCAT44(extraout_r1_01,piVar3) & 0xffffffff00000150; | |
if (((uint)piVar3 & 0x150) != 0) { | |
uVar12 = FUN_8f61311c(piVar3,extraout_r1_01,puVar6); | |
} | |
uVar4 = (undefined4)(uVar12 >> 0x20); | |
piVar2 = (int *)((int)piVar2 + 1); | |
*ppiVar8 = (int *)uVar12; | |
if (DAT_8f6882dc <= piVar2) break; | |
local_84 = 0; | |
puVar1 = (uint *)uVar10; | |
ppiVar8 = ppiVar8 + 1; | |
} | |
if (DAT_8f6882dc != (int *)0x0) { | |
ppiVar8 = &local_58; | |
piVar2 = (int *)0x0; | |
do { | |
ppiVar8 = ppiVar8 + 1; | |
if (((uint)*ppiVar8 & 0x150) != 0) { | |
uVar10 = FUN_8f61311c(*ppiVar8,uVar4,puVar6); | |
uVar4 = (undefined4)((ulonglong)uVar10 >> 0x20); | |
uVar5 = (uint)uVar10; | |
if (uVar5 != 0) { | |
uVar7 = uVar5 & 0xff; | |
dprintf((byte *)s_Failed_to_write_CW__d_for_page____8f65f100,piVar2,param_1,uVar5); | |
goto LAB_8f6141fc; | |
} | |
} | |
piVar2 = (int *)((int)piVar2 + 1); | |
} while (piVar2 < DAT_8f6882dc); | |
} | |
} | |
uVar7 = 0; | |
LAB_8f6141fc: | |
FUN_8f612f6c(0); | |
if (local_2c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar7,extraout_r1_02,local_2c); | |
} | |
return; | |
} | |
void FUN_8f614290(uint param_1) | |
{ | |
undefined8 uVar1; | |
uint auStack_228 [133]; | |
int *local_14; | |
local_14 = DAT_8f69d118; | |
FUN_8f636968(auStack_228,0,0x214); | |
if ((param_1 & DAT_8f6882cc) != 0) { | |
param_1 = param_1 & ~DAT_8f6882cc; | |
} | |
uVar1 = FUN_8f613f70(param_1,0,(int)auStack_228,0); | |
if (local_14 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar1,(int)((ulonglong)uVar1 >> 0x20),local_14); | |
} | |
void FUN_8f614300(uint param_1) | |
{ | |
int *piVar1; | |
int iVar2; | |
int *piVar3; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 uVar4; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
uint *puVar5; | |
undefined *puVar6; | |
undefined8 uVar7; | |
int *local_50; | |
uint local_4c; | |
int local_48; | |
uint local_44; | |
undefined4 local_40; | |
undefined4 local_3c; | |
undefined4 local_30; | |
int *local_2c; | |
puVar6 = &DAT_8f6882a0; | |
local_2c = DAT_8f69d118; | |
piVar3 = DAT_8f69d118; | |
piVar1 = (int *)FUN_8f6582ac(param_1,DAT_8f6882c8); | |
iVar2 = FUN_8f613390(param_1); | |
if (iVar2 == 0) { | |
local_40 = DAT_8f688304; | |
local_44 = DAT_8f688378 & 0xfffffe3f; | |
local_3c = 0x3a; | |
local_30 = 1; | |
local_4c = param_1; | |
local_48 = iVar2; | |
uVar7 = FUN_8f6131b8(&local_4c,(uint *)&DAT_8f69d210); | |
puVar5 = (uint *)uVar7; | |
piVar3 = (int *)FUN_8f602f04(puVar5 + 0x1c258b7c,(int)((ulonglong)uVar7 >> 0x20)); | |
FUN_8f612b8c((int)&DAT_8f688310,2,(int)&DAT_8f69d210,piVar3,0x9c); | |
FUN_8f612f00(1); | |
local_50 = (int *)FUN_8f612fc8(DAT_8f6882f4 + 0x14,0); | |
uVar7 = FUN_8f61322c((uint *)&DAT_8f69d850,&local_50); | |
piVar3 = (int *)FUN_8f602f04((int)uVar7 + 0x709627b0,(int)((ulonglong)uVar7 >> 0x20)); | |
FUN_8f612b8c((int)&DAT_8f688310,2,(int)&DAT_8f69d850,piVar3,8); | |
uVar7 = FUN_8f613294(puVar5,1); | |
piVar3 = (int *)FUN_8f602f04((int)uVar7 - (int)puVar5,(int)((ulonglong)uVar7 >> 0x20)); | |
FUN_8f612b8c((int)&DAT_8f688310,2,(int)puVar5,piVar3,0x88); | |
FUN_8f612f00(2); | |
piVar3 = (int *)((uint)local_50 & 0x150); | |
if (piVar3 != (int *)0x0) { | |
piVar3 = (int *)FUN_8f61311c(local_50,extraout_r1,puVar5); | |
} | |
iVar2 = DAT_8f6882f4; | |
local_50 = piVar3; | |
FUN_8f612fc8(DAT_8f6882f4 + 0x14,2); | |
piVar3 = local_50; | |
uVar4 = extraout_r1_00; | |
if (local_50 != (int *)0x0) { | |
dprintf((byte *)s_NAND_Erase_error__Block_address_b_8f65f124,piVar1,puVar5,iVar2); | |
FUN_8f614290(param_1); | |
piVar3 = (int *)0x1; | |
uVar4 = extraout_r1_02; | |
} | |
} | |
else { | |
dprintf((byte *)s_NAND_Erase_error__Block_address_b_8f65f124,piVar1,piVar3,puVar6); | |
piVar3 = (int *)0x1; | |
uVar4 = extraout_r1_01; | |
} | |
if (local_2c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(piVar3,uVar4,local_2c); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f614520) | |
void FUN_8f6144e4(void) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f614560) | |
void FUN_8f614524(void) | |
{ | |
return; | |
} | |
void FUN_8f614564(int param_1,undefined4 *param_2,int *param_3,undefined4 *param_4, | |
undefined4 *param_5) | |
{ | |
bool bVar1; | |
bool bVar2; | |
uint uVar3; | |
undefined4 *puVar4; | |
int *piVar5; | |
uint uVar6; | |
uint uVar7; | |
int iVar8; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 uVar9; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
undefined4 extraout_r1_03; | |
uint uVar10; | |
uint uVar11; | |
undefined4 *puVar12; | |
uint uVar13; | |
int *piVar14; | |
int iVar15; | |
uint uVar16; | |
undefined8 uVar17; | |
piVar5 = DAT_8f69d118; | |
puVar4 = DAT_8f688300; | |
uVar7 = DAT_8f6882cc; | |
uVar3 = DAT_8f6882c8; | |
puVar12 = DAT_8f6882b4; | |
uVar10 = (int)DAT_8f6882b4 - 1; | |
uVar11 = *(uint *)(param_1 + 0x10); | |
iVar15 = *(int *)(param_1 + 0x14); | |
if (((uint)param_3 & uVar10) == 0) { | |
uVar6 = FUN_8f6582ac((uint)param_3,(uint)DAT_8f6882b4); | |
uVar16 = iVar15 + uVar11; | |
uVar13 = uVar11 * uVar3; | |
uVar6 = uVar6 + uVar13; | |
uVar7 = FUN_8f6582ac(uVar6 & ~uVar7,uVar3); | |
if ((uVar11 < uVar7) && (iVar15 = uVar7 - uVar11, iVar15 != 0)) { | |
if (uVar11 < uVar16) { | |
do { | |
uVar11 = uVar11 + 1; | |
iVar8 = FUN_8f613390(uVar13); | |
uVar13 = uVar13 + DAT_8f6882c8; | |
if (iVar8 == 0) { | |
iVar15 = iVar15 + -1; | |
} | |
else { | |
uVar6 = uVar6 + DAT_8f6882c8; | |
} | |
if (iVar15 == 0) goto LAB_8f61460c; | |
} while (uVar11 < (uint)(*(int *)(param_1 + 0x14) + *(int *)(param_1 + 0x10))); | |
} | |
bVar2 = false; | |
} | |
else { | |
LAB_8f61460c: | |
bVar2 = true; | |
} | |
piVar14 = (int *)0x0; | |
uVar7 = FUN_8f6582ac((int)param_2 + uVar10 + (int)param_5,(int)param_2 + (int)puVar12); | |
uVar9 = extraout_r1; | |
while( true ) { | |
bVar1 = bVar2; | |
if (uVar3 * uVar16 <= uVar6) { | |
bVar1 = false; | |
} | |
if (!bVar1) break; | |
if (uVar7 == 0) goto LAB_8f614750; | |
param_5 = puVar4; | |
uVar17 = FUN_8f6135a0(uVar6,(int)DAT_8f6882f8,puVar4); | |
uVar9 = (undefined4)((ulonglong)uVar17 >> 0x20); | |
if ((int)uVar17 == 5) { | |
uVar6 = uVar6 + 1; | |
piVar14 = (int *)((int)piVar14 + 1); | |
} | |
else if ((int)uVar17 == 6) { | |
piVar14 = (int *)((int)piVar14 + 1); | |
uVar6 = uVar6 + DAT_8f6882c8; | |
} | |
else { | |
uVar6 = uVar6 + 1; | |
param_5 = DAT_8f6882b4; | |
FUN_8f63685c(param_4,DAT_8f6882f8,(int)DAT_8f6882b4); | |
puVar12 = (undefined4 *)((int)param_4 + (int)DAT_8f6882b4); | |
uVar9 = extraout_r1_00; | |
param_4 = puVar12; | |
if (param_2 != (undefined4 *)0x0) { | |
param_4 = (undefined4 *)((int)puVar12 + (int)param_2); | |
param_5 = param_2; | |
FUN_8f63685c(puVar12,puVar4,(int)param_2); | |
uVar9 = extraout_r1_01; | |
} | |
uVar7 = uVar7 - 1; | |
} | |
} | |
dprintf((byte *)s_flash_read_image__failed___d_err_8f65f424,piVar14,param_5,0); | |
uVar7 = 1; | |
uVar9 = extraout_r1_03; | |
} | |
else { | |
dprintf((byte *)s_Read_request_start_not_at_page_b_8f65f3f4,param_3,param_3,DAT_8f6882c8); | |
uVar7 = 3; | |
uVar9 = extraout_r1_02; | |
} | |
LAB_8f614750: | |
if (piVar5 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar7,uVar9,piVar5); | |
} | |
void FUN_8f614798(int param_1,int param_2,undefined4 *param_3,uint *param_4) | |
{ | |
uint *puVar1; | |
int *piVar2; | |
undefined4 *puVar3; | |
undefined4 uVar4; | |
int *extraout_r1; | |
int *piVar5; | |
int *extraout_r1_00; | |
int *extraout_r1_01; | |
int *extraout_r1_02; | |
int *extraout_r1_03; | |
undefined4 *puVar6; | |
uint *puVar7; | |
int iVar8; | |
uint uVar9; | |
uint uVar10; | |
uint *puVar11; | |
uint uVar12; | |
uint uVar13; | |
undefined8 uVar14; | |
piVar2 = DAT_8f69d118; | |
puVar1 = DAT_8f688300; | |
uVar13 = (int)(uint *)(DAT_8f6882d8 * DAT_8f6882dc) - (int)DAT_8f6882b4; | |
puVar11 = DAT_8f6882b4; | |
if (param_2 != 0) { | |
puVar11 = (uint *)(DAT_8f6882d8 * DAT_8f6882dc); | |
} | |
uVar9 = *(int *)(param_1 + 0x10) * (int)DAT_8f6882c8; | |
uVar12 = (int)DAT_8f6882c8 * (*(int *)(param_1 + 0x10) + *(int *)(param_1 + 0x14)); | |
puVar7 = param_4; | |
puVar3 = (undefined4 *)FUN_8f6582ac(uVar13,DAT_8f6882dc); | |
FUN_8f636968(puVar1,0xff,(int)puVar3); | |
piVar5 = extraout_r1; | |
if (param_4 == (uint *)0x0) { | |
LAB_8f6148fc: | |
uVar13 = uVar9 + (int)DAT_8f6882cc & ~(uint)DAT_8f6882cc; | |
if (uVar13 <= uVar12 && uVar12 - uVar13 != 0) { | |
do { | |
FUN_8f614300(uVar13); | |
uVar13 = uVar13 + (int)DAT_8f6882c8; | |
piVar5 = extraout_r1_00; | |
} while (uVar13 <= uVar12 && uVar12 - uVar13 != 0); | |
} | |
uVar4 = 0; | |
} | |
else if (param_4 < puVar11) { | |
LAB_8f614998: | |
dprintf((byte *)s_flash_write_image__image_undersi_8f65f494,(int *)param_4,puVar11,puVar7); | |
uVar4 = 0xffffffff; | |
piVar5 = extraout_r1_02; | |
} | |
else { | |
if (uVar9 < uVar12) { | |
do { | |
if ((uVar9 & (uint)DAT_8f6882cc) == 0) { | |
uVar14 = FUN_8f614300(uVar9); | |
piVar5 = (int *)((ulonglong)uVar14 >> 0x20); | |
if ((int)uVar14 == 0) goto LAB_8f614894; | |
uVar9 = uVar9 + (int)DAT_8f6882c8; | |
puVar7 = DAT_8f6882c8; | |
} | |
else { | |
LAB_8f614894: | |
FUN_8f63685c(DAT_8f6882f8,param_3,(int)DAT_8f6882b4); | |
if (param_2 == 0) { | |
puVar3 = DAT_8f6882f8; | |
puVar7 = puVar1; | |
uVar14 = FUN_8f613f70(uVar9,1,(int)DAT_8f6882f8,puVar1); | |
puVar6 = DAT_8f6882cc; | |
} | |
else { | |
FUN_8f63685c((undefined4 *)((int)DAT_8f6882f8 + (int)DAT_8f6882b4), | |
(undefined4 *)((int)param_3 + (int)DAT_8f6882b4),uVar13); | |
puVar7 = (uint *)((int)DAT_8f6882f8 + (int)DAT_8f6882b4); | |
puVar3 = DAT_8f6882f8; | |
uVar14 = FUN_8f613f70(uVar9,1,(int)DAT_8f6882f8,puVar7); | |
puVar6 = DAT_8f6882cc; | |
} | |
piVar5 = (int *)((ulonglong)uVar14 >> 0x20); | |
DAT_8f6882cc = puVar6; | |
if ((int)uVar14 == 0) { | |
param_4 = (uint *)((int)param_4 - (int)puVar11); | |
uVar9 = uVar9 + 1; | |
param_3 = (undefined4 *)((int)param_3 + (int)puVar11); | |
} | |
else { | |
uVar10 = uVar9 & ~(uint)puVar6; | |
iVar8 = (int)puVar11 * (uVar9 & (uint)puVar6); | |
param_3 = (undefined4 *)((int)param_3 - iVar8); | |
param_4 = (uint *)((int)param_4 + iVar8); | |
FUN_8f614300(uVar10); | |
FUN_8f614290(uVar10); | |
uVar9 = uVar10 + (int)DAT_8f6882c8; | |
piVar5 = extraout_r1_01; | |
puVar3 = puVar6; | |
puVar7 = DAT_8f6882c8; | |
} | |
} | |
if (param_4 == (uint *)0x0) goto LAB_8f6148fc; | |
if (param_4 < puVar11) goto LAB_8f614998; | |
} while (uVar9 <= uVar12 && uVar12 - uVar9 != 0); | |
} | |
dprintf((byte *)s_flash_write_image__out_of_space_8f65f470,piVar5,puVar3,puVar7); | |
uVar4 = 0xffffffff; | |
piVar5 = extraout_r1_03; | |
} | |
if (piVar2 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar4,piVar5,piVar2); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f614a18) | |
void FUN_8f6149cc(int param_1) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f614a68) | |
void FUN_8f614a24(int param_1) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f614ac0) | |
void FUN_8f614a74(int param_1) | |
{ | |
return; | |
} | |
void FUN_8f614acc(int param_1) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f636758(param_1); | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
return; | |
} | |
void FUN_8f614b18(int param_1,int param_2) | |
{ | |
int *piVar1; | |
uint *puVar2; | |
undefined4 extraout_r1; | |
undefined4 uVar3; | |
uint uVar4; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
uVar4 = param_1 + param_2 + 0x1c; | |
uVar5 = FUN_8f6366a8((int *)0x40,param_1 + param_2 + 0x5bU & 0xffffffc0); | |
uVar3 = (undefined4)((ulonglong)uVar5 >> 0x20); | |
puVar2 = (uint *)uVar5; | |
if (puVar2 != (uint *)0x0) { | |
FUN_8f636968(puVar2,0,uVar4); | |
*puVar2 = uVar4; | |
puVar2[1] = 0x10; | |
puVar2[2] = puVar2[1] + param_1; | |
uVar3 = extraout_r1; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(puVar2,uVar3,piVar1); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f614c24) | |
// WARNING: Removing unreachable block (ram,0x8f614c44) | |
// WARNING: Removing unreachable block (ram,0x8f614c48) | |
void FUN_8f614be8(void) | |
{ | |
do { | |
software_smc(0); | |
} while( true ); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f614cd0) | |
void FUN_8f614c50(uint param_1,uint param_2) | |
{ | |
software_smc(0); | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f614d64) | |
void FUN_8f614cdc(uint param_1,uint param_2,undefined4 param_3,undefined4 param_4) | |
{ | |
software_smc(0); | |
return; | |
} | |
void FUN_8f614d70(int param_1,uint param_2,undefined4 *param_3,int param_4,undefined4 *param_5, | |
int param_6) | |
{ | |
int *piVar1; | |
int *piVar2; | |
undefined4 *puVar3; | |
uint uVar4; | |
undefined4 extraout_r1; | |
undefined4 uVar5; | |
int iVar6; | |
undefined8 uVar7; | |
piVar1 = DAT_8f69d118; | |
uVar7 = FUN_8f614b18(param_4,param_6); | |
uVar5 = (undefined4)((ulonglong)uVar7 >> 0x20); | |
piVar2 = (int *)uVar7; | |
if (piVar2 == (int *)0x0) { | |
iVar6 = -5; | |
} | |
else { | |
piVar2[3] = param_1 << 10 | param_2; | |
if (param_3 != (undefined4 *)0x0) { | |
puVar3 = (undefined4 *)FUN_8f614a24((int)piVar2); | |
FUN_8f63685c(puVar3,param_3,param_4); | |
} | |
FUN_8f625b24((uint)piVar2,*piVar2); | |
iVar6 = FUN_8f614be8(); | |
if ((iVar6 == 0) && (param_6 != 0)) { | |
uVar4 = FUN_8f6149cc((int)piVar2); | |
do { | |
FUN_8f625b4c(uVar4,0xc); | |
} while (*(int *)(uVar4 + 8) == 0); | |
puVar3 = (undefined4 *)FUN_8f614a74(uVar4); | |
FUN_8f625b4c((uint)puVar3,param_6); | |
if (param_5 != (undefined4 *)0x0) { | |
FUN_8f63685c(param_5,puVar3,param_6); | |
} | |
} | |
FUN_8f614acc((int)piVar2); | |
uVar5 = extraout_r1; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar6,uVar5,piVar1); | |
} | |
void FUN_8f614ef0(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4, | |
undefined4 param_5,undefined4 param_6,undefined4 *param_7) | |
{ | |
int *piVar1; | |
piVar1 = DAT_8f69d118; | |
do { | |
software_smc(0); | |
} while (param_1 == 1); | |
if (param_7 != (undefined4 *)0x0) { | |
*param_7 = param_2; | |
param_7[1] = param_3; | |
param_7[2] = param_4; | |
param_2 = param_3; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,param_2,piVar1); | |
} | |
return; | |
} | |
void FUN_8f614fbc(int **param_1,undefined4 *param_2) | |
{ | |
int *piVar1; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 uVar2; | |
int *piVar3; | |
int iVar4; | |
int *in_lr; | |
undefined8 uVar5; | |
int *local_24; | |
int *local_20; | |
int local_1c; | |
piVar1 = DAT_8f69d118; | |
local_24 = (int *)0x0; | |
if (param_1[0xf] == (int *)0x0) { | |
piVar3 = *param_1; | |
} | |
else { | |
piVar3 = (int *)((uint)*param_1 | 0x80000000); | |
} | |
*param_1 = piVar3; | |
local_20 = param_1[5]; | |
if (4 < ((uint)param_1[1] & 0xf)) { | |
local_24 = (int *)FUN_8f6366a8((int *)0x40,0x40); | |
if (local_24 == (int *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f65f4c4, | |
(int *)s_platform_msm_shared_scm_c_8f65f4e4,0x4c6); | |
} | |
for (local_1c = 0; local_1c < 10; local_1c = local_1c + 1) { | |
local_24[local_1c] = (int)param_1[local_1c + 5]; | |
} | |
FUN_8f625b24((uint)local_24,0x40); | |
local_20 = local_24; | |
} | |
uVar5 = FUN_8f614ef0((int)*param_1,param_1[1],param_1[2],param_1[3],param_1[4],local_20,param_2); | |
uVar2 = (undefined4)((ulonglong)uVar5 >> 0x20); | |
iVar4 = (int)uVar5; | |
if (iVar4 == 0) { | |
if (local_24 != (int *)0x0) { | |
FUN_8f636758((int)local_24); | |
uVar2 = extraout_r1_00; | |
} | |
iVar4 = 0; | |
} | |
else { | |
dprintf((byte *)s_SCM_call__0x_x_failed_with___x_8f65f50c,*param_1,iVar4,*param_1); | |
uVar2 = extraout_r1; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar4,uVar2,piVar1); | |
} | |
void FUN_8f6151bc(int param_1,uint param_2) | |
{ | |
int iVar1; | |
undefined8 uVar2; | |
int local_58; | |
undefined4 local_54; | |
undefined4 local_50; | |
int *local_4c; | |
undefined4 local_48; | |
uint local_44; | |
int *local_c; | |
local_c = DAT_8f69d118; | |
FUN_8f636968((uint *)&local_4c,0,0x40); | |
local_58 = 0; | |
local_54 = 0; | |
local_50 = 0; | |
local_4c = (int *)0x2000601; | |
local_48 = 1; | |
local_44 = (param_1 << 8 | param_2) & 0xffff | 0x2000000; | |
uVar2 = FUN_8f614fbc(&local_4c,&local_58); | |
iVar1 = (int)uVar2; | |
if (iVar1 == 0) { | |
iVar1 = local_58; | |
} | |
if (local_c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar1,(int)((ulonglong)uVar2 >> 0x20),local_c); | |
} | |
void FUN_8f6152ac(void) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f6151bc(6,1); | |
if (0 < (int)uVar2) { | |
DAT_8f69d990 = 1; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
return; | |
} | |
void FUN_8f615328(undefined4 param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = CONCAT44(param_2,param_1); | |
if (DAT_8f68a000 == 0) { | |
uVar2 = FUN_8f6152ac(); | |
if ((int)uVar2 < 0) { | |
uVar2 = dprintf((byte *)s_Failed_to_initialize_SCM_8f65f52c,(int *)((ulonglong)uVar2 >> 0x20), | |
param_3,(int)uVar2); | |
} | |
DAT_8f68a000 = 1; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
void FUN_8f6153b8(undefined4 param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
undefined4 extraout_r1; | |
piVar1 = DAT_8f69d118; | |
if (DAT_8f68a000 == 0) { | |
FUN_8f615328(param_1,param_2,param_3); | |
param_2 = extraout_r1; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(DAT_8f69d990,param_2,piVar1); | |
} | |
return; | |
} | |
void FUN_8f615420(undefined4 param_1) | |
{ | |
uint *puVar1; | |
int iVar2; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 *puVar3; | |
undefined8 uVar4; | |
int local_58; | |
undefined4 local_54; | |
undefined4 local_50; | |
int *local_4c; | |
undefined4 local_48; | |
undefined4 local_44; | |
undefined4 local_40; | |
int *local_c; | |
local_c = DAT_8f69d118; | |
local_50 = 0; | |
puVar3 = (undefined4 *)0x40; | |
local_54 = param_1; | |
puVar1 = FUN_8f636968((uint *)&local_4c,0,0x40); | |
iVar2 = FUN_8f6153b8(puVar1,extraout_r1,puVar3); | |
if (iVar2 == 0) { | |
puVar3 = &local_54; | |
uVar4 = FUN_8f614d70(0xc,2,puVar3,8,(undefined4 *)0x0,0); | |
} | |
else { | |
local_4c = (int *)0x2000c02; | |
local_48 = 2; | |
local_40 = 0; | |
local_44 = param_1; | |
uVar4 = FUN_8f614fbc(&local_4c,(undefined4 *)0x0); | |
} | |
local_58 = (int)uVar4; | |
if (local_58 != 0) { | |
dprintf((byte *)s_Secure_Config_failed_8f65f548,(int *)((ulonglong)uVar4 >> 0x20),puVar3, | |
local_58); | |
uVar4 = CONCAT44(extraout_r1_00,1); | |
} | |
local_58 = (int)uVar4; | |
if (local_c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(local_58,(int)((ulonglong)uVar4 >> 0x20),local_c); | |
} | |
return; | |
} | |
void FUN_8f615538(uint param_1,int param_2) | |
{ | |
undefined4 uVar1; | |
int iVar2; | |
undefined4 extraout_r1; | |
undefined4 uVar3; | |
undefined8 uVar4; | |
int local_68; | |
int local_64; | |
uint local_60; | |
int local_5c; | |
int local_58; | |
undefined4 local_54; | |
undefined4 local_50; | |
int *local_4c; | |
undefined4 local_48; | |
uint local_44; | |
int local_40; | |
int *local_c; | |
local_c = DAT_8f69d118; | |
local_64 = 0; | |
FUN_8f636968((uint *)&local_4c,0,0x40); | |
local_58 = 0; | |
local_54 = 0; | |
uVar3 = 0; | |
local_50 = 0; | |
local_60 = param_1; | |
local_5c = param_2; | |
uVar1 = FUN_8f625b24(param_1,param_2); | |
iVar2 = FUN_8f6153b8(uVar1,extraout_r1,uVar3); | |
if (iVar2 == 0) { | |
uVar4 = FUN_8f614d70(7,5,&local_60,8,&local_68,4); | |
} | |
else { | |
local_4c = (int *)0x2000705; | |
local_48 = 0x22; | |
local_44 = local_60; | |
local_40 = local_5c; | |
uVar4 = FUN_8f614fbc(&local_4c,&local_58); | |
local_68 = local_58; | |
} | |
local_64 = (int)uVar4; | |
if ((local_64 == 0) && (local_68 != 0)) { | |
local_64 = local_68; | |
} | |
if (local_c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(local_64,(int)((ulonglong)uVar4 >> 0x20),local_c); | |
} | |
return; | |
} | |
void FUN_8f615698(undefined4 param_1) | |
{ | |
uint *puVar1; | |
int iVar2; | |
undefined4 extraout_r1; | |
undefined4 uVar3; | |
undefined8 uVar4; | |
undefined4 local_6c; | |
undefined4 local_68; | |
undefined4 local_64; | |
undefined4 local_60; | |
undefined4 *local_5c; | |
int local_58; | |
undefined4 local_54; | |
undefined4 local_50; | |
int *local_4c; | |
undefined4 local_48; | |
undefined4 local_44; | |
int local_40; | |
int *local_c; | |
local_c = DAT_8f69d118; | |
local_64 = 0; | |
local_60 = 0; | |
uVar3 = 0x40; | |
local_6c = param_1; | |
puVar1 = FUN_8f636968((uint *)&local_4c,0,0x40); | |
local_5c = &local_6c; | |
local_58 = 4; | |
iVar2 = FUN_8f6153b8(puVar1,extraout_r1,uVar3); | |
if (iVar2 == 0) { | |
local_64 = 0; | |
local_60 = 0; | |
local_54 = 8; | |
local_50 = 1; | |
uVar4 = FUN_8f614d70(8,1,local_5c,local_58,(undefined4 *)0x0,0); | |
} | |
else { | |
local_4c = (int *)0x2000801; | |
local_48 = 1; | |
local_44 = local_6c; | |
local_40 = local_58; | |
uVar4 = FUN_8f614fbc(&local_4c,(undefined4 *)0x0); | |
} | |
local_68 = (undefined4)uVar4; | |
if (local_c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(local_68,(int)((ulonglong)uVar4 >> 0x20),local_c); | |
} | |
return; | |
} | |
void FUN_8f6157b4(void) | |
{ | |
uint *puVar1; | |
int iVar2; | |
undefined4 extraout_r1; | |
undefined4 uVar3; | |
undefined8 uVar4; | |
undefined4 local_50; | |
int *local_4c; | |
undefined4 local_48; | |
undefined4 local_44; | |
undefined4 local_10; | |
int *local_c; | |
local_c = DAT_8f69d118; | |
uVar3 = 0x40; | |
puVar1 = FUN_8f636968((uint *)&local_4c,0,0x40); | |
iVar2 = FUN_8f6153b8(puVar1,extraout_r1,uVar3); | |
if (iVar2 == 0) { | |
uVar3 = 0; | |
uVar4 = FUN_8f614c50(9,1); | |
} | |
else { | |
local_4c = (int *)0x2000901; | |
local_48 = 1; | |
local_44 = 0; | |
local_10 = 1; | |
uVar4 = FUN_8f614fbc(&local_4c,(undefined4 *)0x0); | |
} | |
if ((int)uVar4 != 0) { | |
iVar2 = FUN_8f6153b8((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),uVar3); | |
if (iVar2 == 0) { | |
uVar4 = FUN_8f614c50(9,2); | |
} | |
else { | |
local_4c = (int *)0x2000902; | |
local_48 = 1; | |
local_44 = 0; | |
local_10 = 1; | |
uVar4 = FUN_8f614fbc(&local_4c,(undefined4 *)0x0); | |
} | |
} | |
local_50 = (undefined4)uVar4; | |
if (local_c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(local_50,(int)((ulonglong)uVar4 >> 0x20),local_c); | |
} | |
return; | |
} | |
void FUN_8f6158f0(undefined4 param_1,undefined4 param_2) | |
{ | |
int iVar1; | |
int *extraout_r1; | |
int *extraout_r1_00; | |
int *piVar2; | |
undefined4 *puVar3; | |
int **ppiVar4; | |
int *in_lr; | |
undefined8 uVar5; | |
int *local_54; | |
undefined4 local_50; | |
undefined4 *local_4c; | |
undefined4 local_48; | |
int *local_14; | |
local_14 = DAT_8f69d118; | |
puVar3 = (undefined4 *)0x40; | |
FUN_8f636968((uint *)&local_54,0,0x40); | |
DAT_8f689004 = 0; | |
DAT_8f68904c = 0; | |
DAT_8f689000 = param_2; | |
DAT_8f689048 = param_1; | |
iVar1 = FUN_8f6153b8(param_1,0,puVar3); | |
if (iVar1 == 0) { | |
puVar3 = &DAT_8f689000; | |
ppiVar4 = (int **)0x50; | |
FUN_8f614d70(1,0xf,&DAT_8f689000,0x50,(undefined4 *)0x0,0); | |
piVar2 = extraout_r1; | |
} | |
else { | |
local_54 = (int *)0x200010f; | |
local_50 = 0x12; | |
local_4c = &DAT_8f689000; | |
local_48 = 0x50; | |
ppiVar4 = &local_54; | |
FUN_8f614fbc(ppiVar4,(undefined4 *)0x0); | |
piVar2 = extraout_r1_00; | |
} | |
dprintf((byte *)s_Failed_to_jump_to_kernel_8f65f698,piVar2,puVar3,ppiVar4); | |
uVar5 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f65f4c4, | |
(int *)s_platform_msm_shared_scm_c_8f65f4e4,0x433); | |
if (local_14 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),local_14); | |
} | |
return; | |
} | |
void FUN_8f615a50(undefined4 *param_1,uint param_2) | |
{ | |
uint *puVar1; | |
int iVar2; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 uVar3; | |
int *local_58; | |
undefined *local_54; | |
uint local_50; | |
int *local_4c; | |
undefined4 local_48; | |
undefined *local_44; | |
uint local_40; | |
int *local_c; | |
local_c = DAT_8f69d118; | |
uVar3 = 0x40; | |
puVar1 = FUN_8f636968((uint *)&local_4c,0,0x40); | |
iVar2 = FUN_8f6153b8(puVar1,extraout_r1,uVar3); | |
if (iVar2 == 0) { | |
local_54 = &DAT_8f688380; | |
local_50 = param_2; | |
FUN_8f625b24((uint)&DAT_8f688380,param_2); | |
local_58 = (int *)FUN_8f614d70(10,1,&local_54,8,(undefined4 *)0x0,0); | |
FUN_8f625b24((uint)&DAT_8f688380,param_2); | |
} | |
else { | |
local_4c = (int *)0x2000a01; | |
local_48 = 0x22; | |
local_44 = &DAT_8f688380; | |
local_40 = param_2; | |
FUN_8f625b24((uint)&DAT_8f688380,param_2); | |
local_58 = (int *)FUN_8f614fbc(&local_4c,(undefined4 *)0x0); | |
if (local_58 == (int *)0x0) { | |
FUN_8f625b24((uint)&DAT_8f688380,param_2); | |
} | |
else { | |
dprintf((byte *)s_Secure_canary_SCM_failed___x_8f65f6b8,local_58,uVar3,local_58); | |
} | |
} | |
FUN_8f636b10(param_1,param_2,(undefined4 *)&DAT_8f688380,0x40); | |
if (local_c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(local_58,extraout_r1_00,local_c); | |
} | |
return; | |
} | |
void FUN_8f615bd4(undefined4 param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
ulonglong uVar1; | |
ulonglong uVar2; | |
uint local_10; | |
int *local_c; | |
local_c = DAT_8f69d118; | |
uVar1 = FUN_8f615a50(&local_10,4); | |
uVar2 = uVar1 & 0xffffffff00000000 | (ulonglong)local_10; | |
if ((int)uVar1 != 0) { | |
dprintf((byte *)s_scm_call_for_random_failed_____8f65f6d8,(int *)(uVar1 >> 0x20),param_3, | |
(int)uVar1); | |
uVar2 = FUN_8f6367c8(); | |
} | |
local_10 = (uint)uVar2; | |
if (local_c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(local_10,(int)(uVar2 >> 0x20),local_c); | |
} | |
return; | |
} | |
void FUN_8f615c50(void) | |
{ | |
uint *puVar1; | |
int iVar2; | |
undefined4 extraout_r1; | |
int **ppiVar3; | |
undefined8 uVar4; | |
uint local_60; | |
int local_5c; | |
uint local_58; | |
undefined4 local_54; | |
undefined4 local_50; | |
int *local_4c [16]; | |
int *local_c; | |
local_c = DAT_8f69d118; | |
local_5c = 0; | |
puVar1 = FUN_8f636968((uint *)local_4c,0,0x40); | |
local_58 = 0; | |
local_54 = 0; | |
local_50 = 0; | |
iVar2 = FUN_8f6153b8(puVar1,extraout_r1,0); | |
if (iVar2 == 0) { | |
ppiVar3 = (int **)0x0; | |
uVar4 = FUN_8f614d70(6,4,(undefined4 *)0x0,0,&local_60,4); | |
} | |
else { | |
local_4c[0] = (int *)0x2000604; | |
ppiVar3 = local_4c; | |
uVar4 = FUN_8f614fbc(ppiVar3,&local_58); | |
local_60 = local_58; | |
} | |
local_5c = (int)uVar4; | |
if (local_5c == 0) { | |
if ((local_60 & 1) != 0) { | |
DAT_8f67ef20 = 0; | |
} | |
if ((local_60 & 4) != 0) { | |
DAT_8f67ef1c = 0; | |
} | |
} | |
else { | |
uVar4 = dprintf((byte *)s_scm_call_to_check_secure_boot_fu_8f65f72c, | |
(int *)((ulonglong)uVar4 >> 0x20),ppiVar3,local_5c); | |
} | |
if (local_c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),local_c); | |
} | |
return; | |
} | |
void FUN_8f615da0(void) | |
{ | |
int *piVar1; | |
undefined4 extraout_r1; | |
piVar1 = DAT_8f69d118; | |
FUN_8f615c50(); | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(DAT_8f67ef20,extraout_r1,piVar1); | |
} | |
return; | |
} | |
void FUN_8f615df4(undefined4 param_1,undefined4 param_2) | |
{ | |
uint *puVar1; | |
int iVar2; | |
undefined4 extraout_r1; | |
undefined8 uVar3; | |
undefined4 local_5c; | |
undefined4 local_58; | |
undefined4 local_54; | |
undefined4 local_50; | |
int *local_4c; | |
undefined4 local_48; | |
undefined4 local_44; | |
undefined4 local_40; | |
undefined4 local_10; | |
int *local_c; | |
local_c = DAT_8f69d118; | |
puVar1 = FUN_8f636968((uint *)&local_4c,0,0x40); | |
local_58 = 0; | |
local_54 = 0; | |
local_50 = 0; | |
iVar2 = FUN_8f6153b8(puVar1,extraout_r1,0); | |
if (iVar2 == 0) { | |
uVar3 = FUN_8f614cdc(5,2,param_1,param_2); | |
} | |
else { | |
local_4c = (int *)0x2000502; | |
local_48 = 2; | |
local_10 = 1; | |
local_44 = param_1; | |
local_40 = param_2; | |
uVar3 = FUN_8f614fbc(&local_4c,&local_58); | |
} | |
local_5c = (undefined4)uVar3; | |
if (local_c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(local_5c,(int)((ulonglong)uVar3 >> 0x20),local_c); | |
} | |
return; | |
} | |
void FUN_8f615ef8(uint param_1,uint param_2,undefined4 param_3,undefined4 param_4) | |
{ | |
uint *puVar1; | |
int iVar2; | |
undefined4 extraout_r1; | |
undefined8 uVar3; | |
undefined4 local_5c; | |
undefined4 local_58; | |
undefined4 local_54; | |
undefined4 local_50; | |
int *local_4c; | |
undefined4 local_48; | |
undefined4 local_44; | |
undefined4 local_40; | |
int *local_c; | |
local_c = DAT_8f69d118; | |
puVar1 = FUN_8f636968((uint *)&local_4c,0,0x40); | |
local_58 = 0; | |
local_54 = 0; | |
local_50 = 0; | |
iVar2 = FUN_8f6153b8(puVar1,extraout_r1,0); | |
if (iVar2 == 0) { | |
uVar3 = FUN_8f614cdc(param_1,param_2,param_3,param_4); | |
} | |
else { | |
local_4c = (int *)((param_1 << 8 | param_2) & 0xffff | 0x2000000); | |
local_48 = 2; | |
local_44 = param_3; | |
local_40 = param_4; | |
uVar3 = FUN_8f614fbc(&local_4c,&local_58); | |
} | |
local_5c = (undefined4)uVar3; | |
if (local_c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(local_5c,(int)((ulonglong)uVar3 >> 0x20),local_c); | |
} | |
return; | |
} | |
void FUN_8f616014(void) | |
{ | |
int *piVar1; | |
int *piVar2; | |
uint extraout_r1; | |
uint extraout_r1_00; | |
undefined4 uVar3; | |
ulonglong uVar4; | |
undefined4 local_10; | |
piVar1 = DAT_8f69d118; | |
FUN_8f615c50(); | |
uVar4 = (ulonglong)extraout_r1 << 0x20; | |
if ((DAT_8f67ef20 == 0) && (uVar4 = (ulonglong)extraout_r1 << 0x20, DAT_8f67ef1c == 0)) { | |
uVar3 = 1; | |
uVar4 = FUN_8f615ef8(1,9,1,0); | |
piVar2 = (int *)uVar4; | |
if (piVar2 != (int *)0x0) { | |
dprintf((byte *)s_Failed_to_disable_secure_wdog_de_8f65f758,piVar2,uVar3,piVar2); | |
uVar4 = uVar4 & 0xffffffff | (ulonglong)extraout_r1_00 << 0x20; | |
} | |
} | |
local_10 = (undefined4)uVar4; | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(local_10,(int)(uVar4 >> 0x20),piVar1); | |
} | |
return; | |
} | |
void FUN_8f6160c4(int param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined4 extraout_r1; | |
undefined8 uVar3; | |
int *local_14; | |
undefined4 local_10; | |
piVar1 = DAT_8f69d118; | |
if (param_1 == -0xfffffff) { | |
local_10 = 0x10; | |
} | |
else if (param_1 == -0xffffffe) { | |
local_10 = 1; | |
} | |
else { | |
local_10 = 0; | |
} | |
iVar2 = FUN_8f6151bc(1,0x10); | |
if (iVar2 < 1) { | |
local_14 = (int *)FUN_8f615df4(0x193d100,local_10); | |
local_10 = param_3; | |
} | |
else { | |
local_14 = (int *)FUN_8f615ef8(1,0x10,local_10,0); | |
} | |
if (local_14 == (int *)0x0) { | |
uVar3 = FUN_8f616014(); | |
} | |
else { | |
dprintf((byte *)s_Failed_to_write_to_boot_misc___d_8f65f784,local_14,local_10,local_14); | |
uVar3 = CONCAT44(extraout_r1,local_14); | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,(int)((ulonglong)uVar3 >> 0x20),piVar1); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f616244) | |
void FUN_8f6161c8(uint param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
void FUN_8f616250(int *param_1,uint *param_2) | |
{ | |
uint *puVar1; | |
uint uVar2; | |
uint extraout_r1; | |
undefined4 uVar3; | |
uint *puVar4; | |
uint *puVar5; | |
uint local_60; | |
uint local_5c; | |
uint local_58; | |
int *local_54; | |
uint local_50 [4]; | |
uint local_40 [11]; | |
int *local_14; | |
uVar3 = 0x40; | |
local_14 = DAT_8f69d118; | |
FUN_8f636968((uint *)&local_54,0,0x40); | |
local_60 = 0; | |
local_5c = 0; | |
local_58 = 0; | |
if (param_2 == (uint *)0x0) { | |
dprintf((byte *)s__s__Invalid_input_8f65f854,(int *)s_allocate_extra_arg_buffer_8f65f824,uVar3,0 | |
); | |
uVar3 = 0xffffffff; | |
uVar2 = extraout_r1; | |
} | |
else { | |
local_50[0] = *param_2; | |
local_50[1] = param_2[1]; | |
local_50[2] = param_2[2]; | |
local_50[3] = param_2[3]; | |
if (3 < (local_50[0] & 0xf)) { | |
puVar4 = local_50 + 3; | |
puVar5 = param_2; | |
do { | |
puVar1 = puVar5 + 4; | |
puVar5 = puVar5 + 1; | |
puVar4 = puVar4 + 1; | |
*puVar4 = *puVar1; | |
} while (puVar4 != local_50 + (local_50[0] & 0xf)); | |
} | |
local_54 = param_1; | |
uVar3 = FUN_8f614fbc(&local_54,&local_60); | |
param_2[0xb] = local_60; | |
param_2[0xc] = local_5c; | |
param_2[0xd] = local_58; | |
uVar2 = local_60; | |
} | |
if (local_14 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar3,uVar2,local_14); | |
} | |
return; | |
} | |
void FUN_8f616340(int param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
undefined4 *puVar2; | |
undefined4 *puVar3; | |
undefined4 *extraout_r1; | |
piVar1 = DAT_8f69d118; | |
if (param_1 < 1) { | |
dprintf((byte *)s__s__Invalid_Input_8f65f868,(int *)s___qseecom_check_handle_exists_8f65ffdc, | |
param_3,DAT_8f69d118); | |
puVar2 = (undefined4 *)0x0; | |
puVar3 = extraout_r1; | |
} | |
else { | |
puVar3 = &DAT_8f68a028; | |
puVar2 = DAT_8f68a02c; | |
if (DAT_8f68a02c != &DAT_8f68a028) { | |
do { | |
if (puVar2[0xc] == param_1) goto LAB_8f6163a0; | |
puVar2 = (undefined4 *)puVar2[1]; | |
} while (puVar2 != &DAT_8f68a028); | |
} | |
puVar2 = (undefined4 *)0x0; | |
} | |
LAB_8f6163a0: | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(puVar2,puVar3,piVar1); | |
} | |
return; | |
} | |
void FUN_8f6163d8(int *param_1,uint param_2,int **param_3,int *param_4,int **param_5) | |
{ | |
int *piVar1; | |
int iVar2; | |
uint uVar3; | |
int *piVar4; | |
uint extraout_r1; | |
undefined4 extraout_r1_00; | |
uint *puVar5; | |
undefined4 uVar6; | |
undefined4 *puVar7; | |
int *piVar8; | |
int *piVar9; | |
int *piVar10; | |
int *piVar11; | |
uint *puVar12; | |
uint *puVar13; | |
bool bVar14; | |
undefined8 uVar15; | |
int *local_ac; | |
int *local_a4; | |
int *local_9c; | |
uint *local_90; | |
int *local_84; | |
int *local_80; | |
undefined4 local_7c; | |
uint local_78; | |
int *local_74; | |
int *local_70; | |
int *local_6c; | |
int *local_68; | |
int *local_64; | |
int *local_4c; | |
ushort local_48; | |
int *local_44; | |
int *local_2c; | |
local_ac = (int *)(uint)(param_5 == (int **)0x0 || param_3 == (int **)0x0); | |
local_2c = DAT_8f69d118; | |
local_84 = (int *)0x0; | |
local_80 = (int *)0x0; | |
local_7c = 0; | |
if (param_5 != (int **)0x0 && param_3 != (int **)0x0) { | |
piVar4 = DAT_8f69d118; | |
uVar15 = FUN_8f627334((int)PTR_DAT_8f616ab8); | |
local_9c = *param_3; | |
local_a4 = local_ac; | |
do { | |
iVar2 = FUN_8f6153b8((int)uVar15,(int)((ulonglong)uVar15 >> 0x20),piVar4); | |
piVar4 = DAT_8f68a088; | |
if (iVar2 == 0) { | |
piVar4 = param_4; | |
piVar9 = (int *)FUN_8f614d70((int)param_1,param_2,param_3,(int)param_4,param_5,10); | |
goto LAB_8f6164e4; | |
} | |
puVar7 = &DAT_8f68a084; | |
if (DAT_8f68a088 != (int *)0x0) { | |
local_a4 = DAT_8f68a088; | |
FUN_8f625b4c((uint)DAT_8f68a088,DAT_8f68a08c); | |
local_ac = (int *)(uint)*(ushort *)((int)piVar4 + 2); | |
} | |
uVar6 = 0x48; | |
FUN_8f636968(&local_78,0,0x48); | |
piVar4 = *param_3; | |
if (param_1 == (int *)&DAT_00000006) { | |
if (param_2 == 1) { | |
piVar9 = (int *)0x2000601; | |
local_74 = (int *)0x2000603; | |
local_78 = param_2; | |
} | |
else if (param_2 == 3) { | |
piVar9 = (int *)0x2000603; | |
local_78 = 1; | |
local_74 = piVar4; | |
} | |
else { | |
piVar9 = (int *)0x0; | |
} | |
piVar9 = (int *)FUN_8f616250(piVar9,&local_78); | |
goto LAB_8f6164c0; | |
} | |
if (param_1 != (int *)0xfc) { | |
piVar9 = (int *)0xffffffff; | |
dprintf((byte *)s_svc_id_0x_x_is_not_supported_by_a_8f65f8b4,param_1,uVar6,puVar7); | |
goto LAB_8f6164c0; | |
} | |
switch((int)piVar4 + -1) { | |
case 0: | |
local_74 = param_3[1]; | |
local_70 = param_3[2]; | |
uVar3 = 0x101; | |
local_6c = param_3[3]; | |
goto LAB_8f61698c; | |
case 1: | |
local_74 = param_3[1]; | |
uVar3 = 0x102; | |
goto LAB_8f6168a0; | |
default: | |
piVar9 = (int *)0xffffffff; | |
dprintf((byte *)s_qseos_cmd_id_0x_d_is_not_support_8f65f87c,piVar4,uVar6,(int)piVar4 + -1); | |
break; | |
case 3: | |
local_70 = param_3[2]; | |
local_74 = param_3[1]; | |
local_6c = param_3[3]; | |
local_78 = 0x83; | |
piVar9 = (int *)FUN_8f616250((int *)0x32000201,&local_78); | |
break; | |
case 4: | |
local_74 = param_3[1]; | |
uVar3 = 0x202; | |
goto LAB_8f6168a0; | |
case 5: | |
local_6c = param_3[3]; | |
local_74 = param_3[1]; | |
local_70 = param_3[2]; | |
local_64 = param_3[5]; | |
local_68 = param_3[4]; | |
local_78 = 0x885; | |
piVar9 = (int *)FUN_8f616250((int *)0x30000001,&local_78); | |
break; | |
case 6: | |
local_74 = param_3[1]; | |
local_70 = param_3[2]; | |
local_78 = 2; | |
piVar9 = (int *)FUN_8f616250((int *)0x32000203,&local_78); | |
break; | |
case 10: | |
local_74 = param_3[1]; | |
local_70 = param_3[2]; | |
uVar3 = 0x107; | |
local_6c = param_3[3]; | |
LAB_8f61698c: | |
local_78 = 3; | |
piVar9 = (int *)FUN_8f616250((int *)(uVar3 | 0x32000000),&local_78); | |
break; | |
case 0xb: | |
piVar9 = (int *)FUN_8f616250((int *)0x32000108,&local_78); | |
break; | |
case 0xc: | |
local_74 = param_3[1]; | |
local_70 = param_3[2]; | |
uVar3 = 0x105; | |
goto LAB_8f6169d8; | |
case 0xd: | |
local_74 = param_3[1]; | |
local_70 = param_3[2]; | |
uVar3 = 0x106; | |
LAB_8f6169d8: | |
local_78 = 0x22; | |
piVar9 = (int *)FUN_8f616250((int *)(uVar3 | 0x32000000),&local_78); | |
break; | |
case 0xe: | |
local_74 = param_3[1]; | |
uVar3 = 0x401; | |
LAB_8f6168a0: | |
local_78 = 1; | |
piVar9 = (int *)FUN_8f616250((int *)(uVar3 | 0x32000000),&local_78); | |
break; | |
case 0xf: | |
piVar9 = (int *)FUN_8f616250((int *)0x32000402,&local_78); | |
} | |
LAB_8f6164c0: | |
piVar1 = DAT_8f68a088; | |
param_3 = (int **)(uint)local_48; | |
bVar14 = DAT_8f68a088 != (int *)0x0; | |
*param_5 = local_4c; | |
*(ushort *)(param_5 + 1) = local_48; | |
*(int **)((int)param_5 + 6) = local_44; | |
piVar4 = local_44; | |
if (bVar14) { | |
FUN_8f625b4c((uint)piVar1,DAT_8f68a08c); | |
piVar1 = DAT_8f68a088; | |
piVar11 = (int *)(uint)*(ushort *)((int)local_a4 + 2); | |
if (local_ac < piVar11) { | |
piVar10 = (int *)((int)piVar11 - (int)local_ac); | |
local_90 = (uint *)FUN_8f63666c((uint)piVar10,extraout_r1_00); | |
if (local_90 != (uint *)0x0) { | |
FUN_8f636968(local_90,0,(int)piVar10); | |
param_3 = (int **)((int)(piVar1 + 1) + (int)local_ac); | |
piVar11 = piVar10; | |
FUN_8f636b10(local_90,(uint)piVar10,param_3,(uint)piVar10); | |
goto LAB_8f61677c; | |
} | |
LAB_8f616aa0: | |
dprintf((byte *)s_Failed_to_alloc_buffer_to_print_T_8f65f8e8,piVar10,param_3,piVar4); | |
} | |
else if (piVar11 < local_ac) { | |
piVar10 = (int *)((int)piVar11 + (0xffc - (int)local_ac)); | |
piVar8 = (int *)(0xffc - (int)local_ac); | |
piVar4 = piVar8; | |
local_90 = (uint *)FUN_8f63666c((uint)piVar10,extraout_r1_00); | |
if (local_90 == (uint *)0x0) goto LAB_8f616aa0; | |
FUN_8f636968(local_90,0,(int)piVar10); | |
param_3 = (int **)(piVar1 + 1); | |
FUN_8f636b10(local_90,(uint)piVar10,(undefined4 *)((int)param_3 + (int)local_ac), | |
(uint)piVar8); | |
FUN_8f636b10((undefined4 *)((int)local_90 + (int)piVar8),(int)piVar10 - (int)piVar8, | |
param_3,(uint)piVar11); | |
LAB_8f61677c: | |
if (piVar10 != (int *)0x0) { | |
piVar4 = (int *)0x0; | |
piVar11 = (int *)0x0; | |
puVar5 = local_90; | |
puVar12 = local_90; | |
do { | |
param_3 = (int **)(uint)*(byte *)puVar12; | |
if ((param_3 == (int **)0xd) && | |
(param_3 = (int **)(uint)*(byte *)((int)puVar12 + 1), param_3 == (int **)0xa)) { | |
*(byte *)puVar12 = 0; | |
puVar13 = (uint *)((int)puVar12 + 2); | |
*(byte *)((int)puVar12 + 1) = 0; | |
piVar4 = (int *)((int)piVar4 + 2); | |
dprintf((byte *)(s_SERIAL_NUMBER____s_8f65e864 + 0x10),(int *)puVar5,10,0); | |
puVar5 = puVar13; | |
} | |
else { | |
piVar4 = (int *)((int)piVar4 + 1); | |
puVar13 = (uint *)((int)puVar12 + 1); | |
} | |
puVar12 = puVar13; | |
} while (piVar4 < piVar10); | |
} | |
FUN_8f636758((int)local_90); | |
piVar4 = piVar11; | |
} | |
} | |
LAB_8f6164e4: | |
if (piVar9 != (int *)0x0) { | |
dprintf((byte *)s_ERROR__scm_call_to_load_failed___8f65f914,piVar9,param_3,piVar4); | |
piVar9 = (int *)0xffffffff; | |
goto LAB_8f616524; | |
} | |
if (param_1 == (int *)&DAT_00000006) goto LAB_8f616524; | |
piVar4 = *param_5; | |
if (piVar4 != (int *)0x1) { | |
if (piVar4 == (int *)0x0) { | |
iVar2 = 0xee01; | |
if ((((int *)(uint)*(ushort *)(param_5 + 1) != (int *)0xee01) || | |
(iVar2 = *(int *)((int)param_5 + 6), iVar2 == 0)) && | |
(local_9c == (int *)&DAT_00000006)) { | |
dprintf((byte *)s_ERROR__Resp_type__d_or_Resp_Data_8f65f940, | |
(int *)(uint)*(ushort *)(param_5 + 1),*(undefined4 *)((int)param_5 + 6),iVar2); | |
piVar9 = (int *)0xffffffff; | |
} | |
} | |
else if (piVar4 == (int *)0xffffffff) { | |
dprintf((byte *)s_scm_call_failed_w_response_resul_8f65f970,*param_5,param_3,0xffffffff); | |
piVar9 = piVar4; | |
} | |
else { | |
dprintf((byte *)s_scm_call_return_unknown_response_8f65f9d8,*param_5,param_3,piVar4); | |
piVar9 = (int *)0xffffffff; | |
} | |
goto LAB_8f616524; | |
} | |
if (*(ushort *)(param_5 + 1) != 0xee02) goto LAB_8f616a84; | |
FUN_8f627334((int)PTR_DAT_8f616abc); | |
puVar7 = DAT_8f68a008; | |
if (DAT_8f68a008 != &DAT_8f68a004) { | |
iVar2 = DAT_8f68a008[2]; | |
while (*(int *)((int)param_5 + 6) != iVar2) { | |
puVar7 = (undefined4 *)puVar7[1]; | |
if (puVar7 == &DAT_8f68a004) goto LAB_8f61665c; | |
iVar2 = puVar7[2]; | |
} | |
FUN_8f625b4c(puVar7[3],puVar7[4]); | |
(*(code *)puVar7[5])(puVar7[3],puVar7[4]); | |
FUN_8f625b24(puVar7[3],puVar7[4]); | |
} | |
LAB_8f61665c: | |
piVar4 = (int *)puVar7[2]; | |
param_3 = &local_84; | |
local_9c = (int *)0x7; | |
local_84 = (int *)0x7; | |
local_7c = 0; | |
local_80 = piVar4; | |
uVar15 = FUN_8f627418((int)PTR_DAT_8f616abc); | |
} while( true ); | |
} | |
piVar9 = (int *)0xffffffff; | |
LAB_8f616530: | |
if (local_2c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(piVar9,param_2,local_2c); | |
} | |
return; | |
LAB_8f616a84: | |
dprintf((byte *)s_Listener_service_incorrect_resp__8f65f998,*param_5, | |
(uint)*(ushort *)(param_5 + 1),0xee02); | |
piVar9 = (int *)0xffffffff; | |
LAB_8f616524: | |
FUN_8f627418((int)PTR_DAT_8f616ab8); | |
param_2 = extraout_r1; | |
goto LAB_8f616530; | |
} | |
void FUN_8f616ac0(undefined4 *param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
undefined4 *puVar2; | |
undefined4 *extraout_r1; | |
undefined4 *puVar3; | |
piVar1 = DAT_8f69d118; | |
if (param_1 == (undefined4 *)0x0) { | |
dprintf((byte *)s__s__Invalid_Input_8f65f868,(int *)s___qseecom_check_listener_exists_8f65ffa0, | |
param_3,DAT_8f69d118); | |
puVar3 = param_1; | |
puVar2 = extraout_r1; | |
} | |
else { | |
puVar2 = &DAT_8f68a004; | |
puVar3 = DAT_8f68a008; | |
if (DAT_8f68a008 != &DAT_8f68a004) { | |
do { | |
if ((undefined4 *)puVar3[2] == param_1) goto LAB_8f616b14; | |
puVar3 = (undefined4 *)puVar3[1]; | |
} while (puVar3 != &DAT_8f68a004); | |
} | |
puVar3 = (undefined4 *)0x0; | |
} | |
LAB_8f616b14: | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(puVar3,puVar2,piVar1); | |
} | |
return; | |
} | |
void FUN_8f616b54(int *param_1,undefined4 param_2,int **param_3) | |
{ | |
undefined *puVar1; | |
undefined *puVar2; | |
undefined uVar3; | |
int iVar4; | |
uint uVar5; | |
int **ppiVar6; | |
undefined4 extraout_r1; | |
int *piVar7; | |
int *extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
uint uVar8; | |
uint uVar9; | |
int *piVar10; | |
undefined4 uVar11; | |
int *piVar12; | |
undefined *puVar13; | |
undefined8 uVar14; | |
longlong lVar15; | |
int *local_68; | |
undefined2 local_64; | |
undefined2 uStack_62; | |
undefined2 local_60; | |
int *local_5c; | |
int *local_58; | |
int *local_54; | |
int *local_50; | |
int *local_4c; | |
int *local_48; | |
int *local_44; | |
int *local_40; | |
int *local_3c; | |
int *local_38; | |
int *local_34; | |
int *local_30; | |
int local_2c; | |
local_2c = DAT_8f69d118; | |
if (param_1 == (int *)0x0) { | |
dprintf((byte *)s__s__Input_error_8f65fa00,(int *)s_qseecom_start_app_8f65f840,param_3, | |
DAT_8f69d118); | |
ppiVar6 = (int **)0xffffffff; | |
goto LAB_8f616d54; | |
} | |
FUN_8f627334((int)&DAT_8f68a05c); | |
iVar4 = DAT_8f68a07c; | |
if ((DAT_8f68a07c == 0) || (iVar4 = DAT_8f68a080, DAT_8f68a080 == 0)) { | |
dprintf((byte *)s__s_qseecom_init_not_done_8f65fa14,(int *)s_qseecom_start_app_8f65f840,param_3, | |
iVar4); | |
FUN_8f627418((int)PTR_DAT_8f617090); | |
ppiVar6 = (int **)0xffffffff; | |
goto LAB_8f616d54; | |
} | |
FUN_8f627418((int)&DAT_8f68a05c); | |
if (DAT_8f68a078 == (int *)0x0) { | |
local_5c = DAT_8f68a078; | |
local_58 = DAT_8f68a078; | |
local_54 = DAT_8f68a078; | |
local_50 = DAT_8f68a078; | |
local_4c = DAT_8f68a078; | |
local_48 = DAT_8f68a078; | |
local_44 = DAT_8f68a078; | |
local_40 = DAT_8f68a078; | |
local_3c = DAT_8f68a078; | |
local_38 = DAT_8f68a078; | |
local_34 = DAT_8f68a078; | |
local_30 = DAT_8f68a078; | |
local_68 = DAT_8f68a078; | |
local_64 = 0; | |
uStack_62 = 0; | |
local_60 = 0; | |
piVar10 = DAT_8f68a078; | |
iVar4 = FUN_8f606760((byte *)s_cmnlib_8f65fa30); | |
uVar3 = FUN_8f606904(iVar4); | |
FUN_8f60db18(uVar3); | |
uVar14 = FUN_8f606814(iVar4,extraout_r1); | |
piVar7 = (int *)((ulonglong)uVar14 >> 0x20); | |
piVar12 = (int *)uVar14; | |
if ((piVar7 != (int *)0x0 || (int *)0xfffff < piVar12) && | |
(piVar7 != (int *)0x0 || piVar12 != (int *)0x100000)) { | |
dprintf((byte *)s_Invalid_cmnlib_partition_size__8f65fa38,piVar7,param_3,piVar10); | |
LAB_8f616f10: | |
ppiVar6 = (int **)0xffffffff; | |
} | |
else { | |
uVar14 = FUN_8f6366a8((int *)0x1000,(int)piVar12 + 0xfffU & 0xfffff000); | |
uVar5 = (uint)uVar14; | |
if (uVar5 == 0) { | |
dprintf((byte *)s__s__Aloc_failed_for__s_image_8f65fa58, | |
(int *)s_qseecom_load_commonlib_image_8f65f7f0,s_cmnlib_8f65fa30,piVar10); | |
goto LAB_8f616f10; | |
} | |
lVar15 = FUN_8f60688c(iVar4,(int)((ulonglong)uVar14 >> 0x20)); | |
uVar9 = (uint)((ulonglong)lVar15 >> 0x20); | |
piVar10 = (int *)((uint)lVar15 | uVar9); | |
if (lVar15 == 0) { | |
dprintf((byte *)s_ERROR__No__s_found_8f65fa78,(int *)s_cmnlib_8f65fa30,param_3,0); | |
ppiVar6 = (int **)0xffffffff; | |
LAB_8f616d84: | |
FUN_8f636758(uVar5); | |
} | |
else { | |
uVar8 = uVar5; | |
piVar10 = piVar12; | |
uVar14 = FUN_8f60d85c((uint)lVar15,uVar9,uVar5,(uint)piVar12); | |
if ((int *)uVar14 != (int *)0x0) { | |
dprintf((byte *)s_ERROR__Cannot_read__s_image_8f65fa8c,(int *)s_cmnlib_8f65fa30,uVar8, | |
piVar10); | |
ppiVar6 = (int **)0xffffffff; | |
goto LAB_8f616d84; | |
} | |
local_50 = (int *)FUN_8f602f04(uVar5,(int)((ulonglong)uVar14 >> 0x20)); | |
local_5c = (int *)0xb; | |
local_58 = (int *)uVar14; | |
local_54 = piVar12; | |
FUN_8f636b10(&local_4c,0x20,(undefined4 *)s_cmnlib_8f65fa30,0x20); | |
FUN_8f625b24((uint)local_50,(int)local_54); | |
param_3 = &local_5c; | |
piVar10 = (int *)0x10; | |
ppiVar6 = (int **)FUN_8f6163d8((int *)0xfc,1,param_3,(int *)0x10,&local_68); | |
if (ppiVar6 != (int **)0x0) goto LAB_8f616d84; | |
ppiVar6 = (int **)CONCAT22(local_60,uStack_62); | |
FUN_8f636758(uVar5); | |
if (ppiVar6 == (int **)0x0) { | |
dprintf((byte *)s_Loading_cmnlib_done_8f65fae4,extraout_r1_00,param_3,piVar10); | |
DAT_8f68a078 = (int *)0x1; | |
goto LAB_8f616cf0; | |
} | |
} | |
} | |
param_3 = ppiVar6; | |
dprintf((byte *)s__s_qseecom_load_commonlib_image_f_8f65faac,(int *)s_qseecom_start_app_8f65f840 | |
,ppiVar6,piVar10); | |
goto LAB_8f616d54; | |
} | |
LAB_8f616cf0: | |
FUN_8f627334((int)PTR_DAT_8f617090); | |
puVar2 = PTR_DAT_8f617094; | |
for (puVar13 = DAT_8f68a02c; puVar13 != puVar2; puVar13 = *(undefined **)(puVar13 + 4)) { | |
param_3 = (int **)0x20; | |
iVar4 = FUN_8f636e98((byte *)param_1,puVar13 + 0x10,(int *)0x20); | |
puVar1 = PTR_DAT_8f617090; | |
if (iVar4 == 0) { | |
if (puVar13 != (undefined *)0x0) { | |
ppiVar6 = *(int ***)(puVar13 + 0x30); | |
*(int *)(puVar13 + 0xc) = *(int *)(puVar13 + 0xc) + 1; | |
FUN_8f627418((int)puVar1); | |
goto LAB_8f616d54; | |
} | |
break; | |
} | |
} | |
FUN_8f627418((int)&DAT_8f68a05c); | |
uVar11 = 0; | |
local_5c = (int *)0x0; | |
local_58 = (int *)0x0; | |
local_54 = (int *)0x0; | |
local_50 = (int *)0x0; | |
local_4c = (int *)0x0; | |
local_48 = (int *)0x0; | |
local_44 = (int *)0x0; | |
local_40 = (int *)0x0; | |
local_3c = (int *)0x0; | |
local_38 = (int *)0x0; | |
local_34 = (int *)0x0; | |
local_30 = (int *)0x0; | |
iVar4 = FUN_8f606760((byte *)param_1); | |
uVar3 = FUN_8f606904(iVar4); | |
FUN_8f60db18(uVar3); | |
uVar14 = FUN_8f606814(iVar4,extraout_r1_01); | |
piVar12 = (int *)((ulonglong)uVar14 >> 0x20); | |
piVar10 = (int *)uVar14; | |
if ((piVar12 != (int *)0x0 || (int *)0xfffff < piVar10) && | |
(piVar12 != (int *)0x0 || piVar10 != (int *)0x100000)) { | |
dprintf((byte *)s_Invalid_TA_partition_size__8f65fafc,piVar12,param_3,uVar11); | |
LAB_8f616ea8: | |
ppiVar6 = (int **)0xffffffff; | |
} | |
else { | |
uVar14 = FUN_8f6366a8((int *)0x1000,(int)piVar10 + 0xfffU & 0xfffff000); | |
uVar5 = (uint)uVar14; | |
if (uVar5 == 0) { | |
dprintf((byte *)s__s__Aloc_failed_for__s_image_8f65fa58,(int *)s___qseecom_load_app_8f65ff8c, | |
param_1,uVar11); | |
goto LAB_8f616ea8; | |
} | |
lVar15 = FUN_8f60688c(iVar4,(int)((ulonglong)uVar14 >> 0x20)); | |
if (lVar15 == 0) { | |
dprintf((byte *)s_ERROR__No__s_found_8f65fa78,param_1,param_3,0); | |
LAB_8f616ea0: | |
FUN_8f636758(uVar5); | |
goto LAB_8f616ea8; | |
} | |
uVar9 = uVar5; | |
piVar12 = piVar10; | |
uVar14 = FUN_8f60d85c((uint)lVar15,(uint)((ulonglong)lVar15 >> 0x20),uVar5,(uint)piVar10); | |
if ((int *)uVar14 != (int *)0x0) { | |
dprintf((byte *)s_ERROR__Cannot_read__s_image_8f65fa8c,param_1,uVar9,piVar12); | |
goto LAB_8f616ea0; | |
} | |
local_50 = (int *)FUN_8f602f04(uVar5,(int)((ulonglong)uVar14 >> 0x20)); | |
local_5c = (int *)0x1; | |
local_58 = (int *)uVar14; | |
local_54 = piVar10; | |
FUN_8f636b10(&local_4c,0x20,param_1,0x20); | |
FUN_8f625b24((uint)local_50,(int)local_54); | |
param_3 = &local_5c; | |
uVar11 = 0x10; | |
ppiVar6 = (int **)FUN_8f6163d8((int *)0xfc,1,param_3,(int *)0x10,&local_68); | |
if (ppiVar6 == (int **)0x0) { | |
ppiVar6 = (int **)CONCAT22(local_60,uStack_62); | |
FUN_8f636758(uVar5); | |
if (ppiVar6 != (int **)0x0) { | |
FUN_8f627334((int)&DAT_8f68a05c); | |
uVar14 = FUN_8f63666c(0x34,extraout_r1_02); | |
piVar10 = (int *)uVar14; | |
if (piVar10 == (int *)0x0) { | |
dprintf((byte *)s_malloc_for_app_entry_failed_8f65fb50,(int *)((ulonglong)uVar14 >> 0x20), | |
param_3,uVar11); | |
dprintf((byte *)s__s____qseecom_add_app_entry_fail_8f65fb70, | |
(int *)s_qseecom_start_app_8f65f840,param_3,uVar11); | |
FUN_8f627418((int)&DAT_8f68a05c); | |
ppiVar6 = (int **)0xffffffff; | |
} | |
else { | |
piVar10[3] = 1; | |
param_3 = (int **)0x20; | |
piVar10[2] = (int)ppiVar6; | |
FUN_8f636d18((int)(piVar10 + 4),(byte *)param_1,0x20); | |
piVar10[1] = (int)puVar2; | |
ppiVar6 = (int **)((int)DAT_8f68a054 + 1); | |
*piVar10 = (int)DAT_8f68a028; | |
DAT_8f68a028[1] = (int)piVar10; | |
piVar10[0xc] = (int)ppiVar6; | |
DAT_8f68a028 = piVar10; | |
DAT_8f68a054 = ppiVar6; | |
FUN_8f627418((int)&DAT_8f68a05c); | |
} | |
goto LAB_8f616d54; | |
} | |
} | |
else { | |
FUN_8f636758(uVar5); | |
} | |
} | |
param_3 = ppiVar6; | |
dprintf((byte *)s__s____qseecom_load_app_failed_wi_8f65fb18,(int *)s_qseecom_start_app_8f65f840, | |
param_3,param_1); | |
ppiVar6 = (int **)0xffffffff; | |
LAB_8f616d54: | |
if (local_2c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(ppiVar6,local_2c,(int *)param_3); | |
} | |
return; | |
} | |
void FUN_8f617098(int param_1,undefined4 *param_2,int *param_3,undefined4 *param_4,int *param_5) | |
{ | |
int iVar1; | |
char *pcVar2; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
undefined4 extraout_r1_03; | |
undefined4 extraout_r1_04; | |
undefined4 extraout_r1_05; | |
undefined4 extraout_r1_06; | |
int *piVar3; | |
int *piVar4; | |
undefined4 uVar5; | |
undefined4 *puVar6; | |
undefined8 uVar7; | |
int *apiStack_50 [3]; | |
int *local_44; | |
undefined4 local_40; | |
undefined4 local_3c; | |
int *local_38; | |
undefined4 local_34; | |
int *local_30; | |
int *local_2c; | |
local_2c = DAT_8f69d118; | |
if (param_1 < 1) { | |
dprintf((byte *)s__s_Handle_is_Invalid_8f65fc20,(int *)s_qseecom_send_command_8f65fffc,param_3, | |
param_4); | |
iVar1 = -1; | |
uVar5 = extraout_r1_06; | |
goto LAB_8f6171f4; | |
} | |
if (param_4 == (undefined4 *)0x0 || param_2 == (undefined4 *)0x0) { | |
dprintf((byte *)s__s__Input_Buffers_invalid_8f65fc38,(int *)s_qseecom_send_command_8f65fffc, | |
param_3,param_4); | |
iVar1 = -1; | |
uVar5 = extraout_r1_05; | |
goto LAB_8f6171f4; | |
} | |
piVar3 = param_3; | |
FUN_8f627334((int)&DAT_8f68a05c); | |
iVar1 = DAT_8f68a07c; | |
if ((DAT_8f68a07c == 0) || (iVar1 = DAT_8f68a080, DAT_8f68a080 == 0)) { | |
dprintf((byte *)s__s_qseecom_init_not_done_8f65fa14,(int *)s_qseecom_send_command_8f65fffc, | |
piVar3,iVar1); | |
FUN_8f627418((int)PTR_DAT_8f6172f0); | |
iVar1 = -1; | |
uVar5 = extraout_r1_04; | |
goto LAB_8f6171f4; | |
} | |
iVar1 = FUN_8f616340(param_1,extraout_r1,piVar3); | |
if (iVar1 == 0) { | |
iVar1 = -1; | |
dprintf((byte *)s__s__Send_cmd_on_an_app_that_was_n_8f65fc54, | |
(int *)s_qseecom_send_command_8f65fffc,param_1,0); | |
FUN_8f627418((int)&DAT_8f68a05c); | |
uVar5 = extraout_r1_03; | |
goto LAB_8f6171f4; | |
} | |
uVar5 = *(undefined4 *)(iVar1 + 8); | |
FUN_8f627418((int)&DAT_8f68a05c); | |
piVar4 = (int *)~(uint)param_5; | |
if (piVar4 < param_3) { | |
pcVar2 = s__s_Integer_overflow_8f65fc8c; | |
LAB_8f61721c: | |
dprintf((byte *)pcVar2,(int *)s___qseecom_send_cmd_8f65f810,piVar3,piVar4); | |
dprintf((byte *)s_req__cmd_req_len___u_8f65fca4,param_3,piVar3,piVar4); | |
dprintf((byte *)s_req__resp_len___u_8f65fcbc,param_5,piVar3,piVar4); | |
iVar1 = -1; | |
} | |
else { | |
piVar4 = (int *)((int)param_3 + (int)param_5); | |
if ((int *)0x100000 < piVar4) { | |
pcVar2 = s__s_Cmd___Rsp_len_greater_than_TA_8f65fcd0; | |
goto LAB_8f61721c; | |
} | |
local_44 = (int *)&DAT_00000006; | |
local_40 = uVar5; | |
uVar7 = FUN_8f602f04(0xa0000000,extraout_r1_00); | |
local_3c = (undefined4)uVar7; | |
puVar6 = (undefined4 *)(((int)param_3 + 0xfffU & 0xfffff000) + 0xa0000000); | |
local_38 = param_3; | |
local_34 = FUN_8f602f04(puVar6,(int)((ulonglong)uVar7 >> 0x20)); | |
local_30 = param_5; | |
FUN_8f636b10((undefined4 *)0xa0000000,0x100000,param_2,(uint)param_3); | |
FUN_8f636b10(puVar6,(uint)param_5,param_4,(uint)param_5); | |
iVar1 = FUN_8f6163d8((int *)0xfc,1,&local_44,(int *)&DAT_00000018,apiStack_50); | |
FUN_8f636b10(param_2,(uint)param_3,(undefined4 *)0xa0000000,(uint)local_38); | |
FUN_8f636b10(param_4,(uint)param_5,puVar6,(uint)local_30); | |
uVar5 = extraout_r1_01; | |
if (iVar1 == 0) goto LAB_8f6171f4; | |
} | |
dprintf((byte *)s__s___qseecom_send_cmd_failed_wit_8f65fcf8,(int *)s_qseecom_send_command_8f65fffc | |
,iVar1,param_1); | |
uVar5 = extraout_r1_02; | |
LAB_8f6171f4: | |
if (local_2c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar1,uVar5,local_2c); | |
} | |
return; | |
} | |
void FUN_8f6172f4(int param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
uint **ppuVar1; | |
undefined4 *puVar2; | |
uint **ppuVar3; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
undefined4 extraout_r1_03; | |
int iVar4; | |
uint *puVar5; | |
int **ppiVar6; | |
int iVar7; | |
uint *puVar8; | |
undefined4 uVar9; | |
int *piVar10; | |
uint *puVar11; | |
undefined8 uVar12; | |
int *local_38 [3]; | |
int *local_2c; | |
uint *local_28; | |
undefined4 local_24; | |
uint *local_20; | |
int *local_1c; | |
local_1c = DAT_8f69d118; | |
FUN_8f627334((int)&DAT_8f68a05c); | |
if (DAT_8f68a07c == 0) { | |
dprintf((byte *)s__s_qseecom_init_not_done_8f65fa14,(int *)s_qseecom_register_listener_8f65f7d4, | |
param_3,0); | |
FUN_8f627418((int)&DAT_8f68a05c); | |
piVar10 = (int *)0xffffffff; | |
uVar9 = extraout_r1_02; | |
goto LAB_8f61738c; | |
} | |
iVar7 = DAT_8f68a07c; | |
FUN_8f627418((int)&DAT_8f68a05c); | |
FUN_8f627334((int)&DAT_8f68a00c); | |
if (param_1 == 0) { | |
dprintf((byte *)s__s_Invalid_Input_listnr_8f65fd30,(int *)s_qseecom_register_listener_8f65f7d4, | |
param_3,iVar7); | |
piVar10 = (int *)0xffffffff; | |
uVar9 = extraout_r1_03; | |
goto LAB_8f61738c; | |
} | |
puVar2 = *(undefined4 **)(param_1 + 4); | |
iVar7 = *(int *)(param_1 + 8); | |
if (((puVar2 == (undefined4 *)0x0) || (iVar7 == 0)) || | |
(iVar4 = *(int *)(param_1 + 0xc), iVar4 == 0)) { | |
dprintf((byte *)s__s_Invalid_Input_listnr_id__d_sb_8f65fd4c, | |
(int *)s_qseecom_register_listener_8f65f7d4,puVar2,iVar7); | |
piVar10 = (int *)0xffffffff; | |
uVar9 = extraout_r1_01; | |
goto LAB_8f61738c; | |
} | |
uVar12 = FUN_8f616ac0(puVar2,extraout_r1,iVar4); | |
piVar10 = (int *)((ulonglong)uVar12 >> 0x20); | |
if ((int)uVar12 == 0) { | |
ppuVar3 = (uint **)FUN_8f63666c(0x18,piVar10); | |
if (ppuVar3 == (uint **)0x0) { | |
piVar10 = (int *)0xffffffff; | |
dprintf((byte *)s__s_new_entry_malloc_failed_for_s_8f65fdac, | |
(int *)s_qseecom_register_listener_8f65f7d4,0x18,iVar7); | |
} | |
else { | |
FUN_8f636968((uint *)ppuVar3,0,0x18); | |
puVar8 = *(uint **)(param_1 + 8); | |
puVar5 = *(uint **)(param_1 + 0xc); | |
puVar11 = *(uint **)(param_1 + 4); | |
ppuVar3[4] = puVar8; | |
ppuVar3[5] = puVar5; | |
ppuVar3[2] = puVar11; | |
puVar5 = (uint *)FUN_8f6366a8((int *)0x1000,(int)puVar8 + 0xfffU & 0xfffff000); | |
iVar7 = *(int *)(param_1 + 8); | |
ppuVar3[3] = puVar5; | |
if (puVar5 == (uint *)0x0) { | |
dprintf((byte *)s__s_virt_sb_base_malloc_failed_fo_8f65fdd4, | |
(int *)s_qseecom_register_listener_8f65f7d4,iVar7,puVar8); | |
} | |
else { | |
FUN_8f636968(puVar5,0,iVar7 + 0xfffU & 0xfffff000); | |
FUN_8f625b24((uint)ppuVar3[3],*(int *)(param_1 + 8) + 0xfffU & 0xfffff000); | |
local_28 = ppuVar3[2]; | |
local_20 = ppuVar3[4]; | |
local_2c = (int *)&DAT_00000004; | |
local_24 = FUN_8f602f04(ppuVar3[3],local_28); | |
ppiVar6 = &local_2c; | |
uVar9 = 0x10; | |
local_38[0] = (int *)0x1; | |
piVar10 = (int *)FUN_8f6163d8((int *)0xfc,1,ppiVar6,(int *)0x10,local_38); | |
puVar5 = DAT_8f68a004; | |
if (piVar10 == (int *)0x0) { | |
ppuVar3[1] = (uint *)&DAT_8f68a004; | |
ppuVar1 = ppuVar3; | |
*ppuVar3 = DAT_8f68a004; | |
DAT_8f68a004 = (uint *)ppuVar1; | |
puVar5[1] = (uint)ppuVar3; | |
goto LAB_8f617380; | |
} | |
dprintf((byte *)s_qseecom_scm_call_failed_with_err_8f65fe00,piVar10,ppiVar6,uVar9); | |
} | |
if (ppuVar3[3] != (uint *)0x0) { | |
FUN_8f636758((int)ppuVar3[3]); | |
} | |
piVar10 = (int *)0xffffffff; | |
FUN_8f636758((int)ppuVar3); | |
} | |
} | |
else { | |
dprintf((byte *)s_Service_is_not_unique_and_is_alr_8f65fd78,piVar10,iVar4,iVar7); | |
piVar10 = (int *)0xfffffffe; | |
} | |
LAB_8f617380: | |
FUN_8f627418((int)PTR_DAT_8f617568); | |
uVar9 = extraout_r1_00; | |
LAB_8f61738c: | |
if (local_1c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(piVar10,uVar9,local_1c); | |
} | |
void FUN_8f61756c(undefined4 *param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
int *piVar2; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
int iVar3; | |
undefined4 uVar4; | |
int *piVar5; | |
undefined8 uVar6; | |
int *local_28; | |
undefined4 *local_24; | |
int *local_20 [3]; | |
int *local_14; | |
local_14 = DAT_8f69d118; | |
FUN_8f627334((int)&DAT_8f68a05c); | |
if (DAT_8f68a07c == 0) { | |
dprintf((byte *)s__s_qseecom_init_not_done_8f65fa14, | |
(int *)s_qseecom_deregister_listener_8f65ffc0,param_3,0); | |
FUN_8f627418((int)&DAT_8f68a05c); | |
piVar2 = (int *)0xffffffff; | |
uVar4 = extraout_r1_01; | |
goto LAB_8f61762c; | |
} | |
iVar3 = DAT_8f68a07c; | |
FUN_8f627418((int)&DAT_8f68a05c); | |
FUN_8f627334((int)&DAT_8f68a00c); | |
uVar6 = FUN_8f616ac0(param_1,extraout_r1,param_3); | |
piVar1 = (int *)uVar6; | |
if (piVar1 == (int *)0x0) { | |
dprintf((byte *)s_Service_not_present_8f65fe28,(int *)((ulonglong)uVar6 >> 0x20),param_3,iVar3); | |
LAB_8f617658: | |
piVar2 = (int *)0xffffffff; | |
} | |
else { | |
uVar4 = 8; | |
local_20[0] = (int *)0x1; | |
local_28 = (int *)&DAT_00000005; | |
local_24 = param_1; | |
piVar2 = (int *)FUN_8f6163d8((int *)0xfc,1,&local_28,(int *)0x8,local_20); | |
if (piVar2 != (int *)0x0) { | |
dprintf((byte *)s_scm_call___failed_with_err___d___8f65fe40,piVar2,local_24,uVar4); | |
goto LAB_8f617658; | |
} | |
piVar5 = (int *)piVar1[1]; | |
*piVar5 = *piVar1; | |
*(int **)(*piVar1 + 4) = piVar5; | |
piVar1[1] = 0; | |
*piVar1 = 0; | |
FUN_8f636758((int)piVar1); | |
} | |
FUN_8f627418((int)PTR_DAT_8f617698); | |
uVar4 = extraout_r1_00; | |
LAB_8f61762c: | |
if (local_14 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(piVar2,uVar4,local_14); | |
} | |
void FUN_8f61769c(void) | |
{ | |
int *piVar1; | |
uint *puVar2; | |
int *extraout_r1; | |
int *piVar3; | |
undefined4 extraout_r1_00; | |
int *extraout_r1_01; | |
int *extraout_r1_02; | |
undefined8 uVar4; | |
int *apiStack_34 [3]; | |
int *local_28; | |
undefined4 local_24; | |
undefined4 local_20; | |
int *local_1c; | |
local_20 = 0x800000; | |
local_1c = DAT_8f69d118; | |
local_24 = 0x85b00000; | |
local_28 = (int *)0xd; | |
dprintf((byte *)s_secure_app_region_addr_0x_x_size_8f65fe70,(int *)0x85b00000,0x800000,0x85b00000) | |
; | |
piVar1 = (int *)FUN_8f6163d8((int *)0xfc,1,&local_28,(int *)0xc,apiStack_34); | |
dprintf((byte *)s_TZ_App_region_notif_returned_wit_8f65fe98,piVar1,local_24,local_20); | |
piVar3 = extraout_r1; | |
if (piVar1 == (int *)0x0) { | |
uVar4 = FUN_8f6366a8((int *)0x1000,0x1000); | |
piVar3 = (int *)((ulonglong)uVar4 >> 0x20); | |
puVar2 = (uint *)uVar4; | |
if (puVar2 == (uint *)0x0) { | |
piVar1 = (int *)0xffffffff; | |
} | |
else { | |
FUN_8f636968(puVar2,0,0x1000); | |
FUN_8f625b24((uint)puVar2,0x1000); | |
DAT_8f68a084 = 0xe; | |
DAT_8f68a088 = FUN_8f602f04(puVar2,extraout_r1_00); | |
DAT_8f68a08c = 0x1000; | |
piVar1 = (int *)FUN_8f6163d8((int *)0xfc,1,(int **)&DAT_8f68a084,(int *)0xc,apiStack_34); | |
dprintf((byte *)s_TZ_App_log_region_register_retur_8f65fed8,piVar1,DAT_8f68a088,DAT_8f68a08c); | |
piVar3 = extraout_r1_01; | |
if (piVar1 == (int *)0x0) { | |
DAT_8f68a080 = 1; | |
dprintf((byte *)s_Qseecom_TZ_Init_Done_in_Appsbl_8f65ff1c,extraout_r1_01,1,&DAT_8f68a004); | |
piVar3 = extraout_r1_02; | |
} | |
} | |
} | |
if (local_1c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(piVar1,piVar3,local_1c); | |
} | |
void FUN_8f6177f8(void) | |
{ | |
undefined4 extraout_r1; | |
undefined4 uVar1; | |
undefined8 uVar2; | |
int *local_24; | |
int *local_20 [3]; | |
int *local_14; | |
local_14 = DAT_8f69d118; | |
local_24 = (int *)0xa; | |
FUN_8f636968((uint *)&DAT_8f68a004,0,0x80); | |
FUN_8f6272e4((undefined4 *)&DAT_8f68a05c); | |
FUN_8f6272e4((undefined4 *)&DAT_8f68a030); | |
FUN_8f6272e4((undefined4 *)&DAT_8f68a00c); | |
DAT_8f68a008 = &DAT_8f68a004; | |
DAT_8f68a004 = &DAT_8f68a004; | |
DAT_8f68a02c = &DAT_8f68a028; | |
DAT_8f68a028 = &DAT_8f68a028; | |
uVar2 = FUN_8f6163d8((int *)&DAT_00000006,3,&local_24,(int *)&DAT_00000004,local_20); | |
uVar1 = (undefined4)((ulonglong)uVar2 >> 0x20); | |
if ((int)uVar2 == 0) { | |
DAT_8f68a07c = 1; | |
DAT_8f68a04c = local_20[0]; | |
dprintf((byte *)s_Qseecom_Init_Done_in_Appsbl_vers_8f65ff3c,local_20[0],1,local_20[0]); | |
uVar1 = extraout_r1; | |
} | |
if (local_14 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,uVar1,local_14); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f617900) | |
void FUN_8f6178c4(void) | |
{ | |
return; | |
} | |
void FUN_8f617904(undefined4 param_1,int *param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
int *extraout_r1; | |
undefined4 extraout_r1_00; | |
piVar1 = DAT_8f69d118; | |
if (DAT_8f68a088 != 0) { | |
FUN_8f636758(DAT_8f68a088); | |
param_2 = extraout_r1; | |
} | |
DAT_8f68a07c = 0; | |
dprintf((byte *)s_Qseecom_De_Init_Done_in_Appsbl_8f65ff6c,param_2,param_3,&DAT_8f68a004); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,extraout_r1_00,piVar1); | |
} | |
void FUN_8f617970(int *param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
int *piVar3; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
piVar3 = (int *)param_1[1]; | |
if ((*param_1 == 0) && (piVar3 == (int *)0x0)) { | |
return; | |
} | |
*piVar3 = *param_1; | |
iVar2 = param_1[2]; | |
*(int **)(*param_1 + 4) = piVar3; | |
param_1[1] = 0; | |
*param_1 = 0; | |
uVar4 = FUN_8f636758(iVar2); | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),piVar1); | |
} | |
FUN_8f636758((int)param_1); | |
return; | |
} | |
void FUN_8f617a00(int **param_1,int **param_2) | |
{ | |
int *piVar1; | |
int **ppiVar2; | |
uint uVar3; | |
undefined4 uVar4; | |
int **extraout_r1; | |
int **ppiVar5; | |
int **extraout_r1_00; | |
int iVar6; | |
int **ppiVar7; | |
int ***pppiVar8; | |
int **ppiVar9; | |
int **ppiVar10; | |
int *piVar11; | |
int **ppiVar12; | |
uint uVar13; | |
int iVar14; | |
undefined8 uVar15; | |
int **ppiStack_60; | |
int **local_5c [4]; | |
int **local_4c [4]; | |
int **local_3c; | |
int **local_38; | |
int **local_34; | |
int **local_30; | |
int **local_2c; | |
ppiVar10 = (int **)param_1[1]; | |
ppiVar9 = (int **)0x0; | |
local_5c[0] = (int **)0x0; | |
local_5c[1] = (int **)0x0; | |
local_2c = DAT_8f69d118; | |
local_5c[2] = (int **)0x0; | |
local_5c[3] = (int **)0x0; | |
local_4c[0] = (int **)0x0; | |
local_4c[1] = (int **)0x0; | |
local_4c[2] = (int **)0x0; | |
local_4c[3] = (int **)0x0; | |
local_3c = (int **)0x0; | |
local_38 = (int **)0x0; | |
local_34 = (int **)0x0; | |
local_30 = (int **)0x0; | |
ppiVar5 = param_2; | |
if ((param_1 != ppiVar10) && (ppiVar2 = param_1, ppiVar7 = DAT_8f69d118, ppiVar10 != (int **)0x0)) | |
{ | |
do { | |
switch(param_2) { | |
case (int **)0x0: | |
ppiVar9 = (int **)ppiVar10[2]; | |
piVar11 = *ppiVar9; | |
uVar15 = FUN_8f6118b8(); | |
ppiVar5 = (int **)((ulonglong)uVar15 >> 0x20); | |
ppiVar12 = (int **)((uint)piVar11 & 0xff0000); | |
ppiVar2 = (int **)((int)uVar15 << 0x10); | |
break; | |
default: | |
goto switchD_8f617a6c_caseD_1; | |
case (int **)0x7: | |
iVar14 = 0; | |
uVar13 = 0; | |
do { | |
iVar6 = uVar13 + 4; | |
uVar3 = uVar13 & 0xff; | |
uVar13 = uVar13 + 1; | |
*(uint *)((int)local_5c + iVar14) = (uint)*(byte *)(ppiVar10[2] + iVar6); | |
uVar15 = FUN_8f6119f8(uVar3); | |
ppiVar2 = (int **)((uint)uVar15 & 0xff); | |
*(int ***)((int)local_4c + iVar14) = ppiVar2; | |
iVar14 = iVar14 + 4; | |
} while (uVar13 != 4); | |
ppiVar5 = (int **)((ulonglong)uVar15 >> 0x20); | |
ppiVar7 = local_4c[0]; | |
ppiVar9 = local_5c[0]; | |
if ((((local_5c[0] != local_4c[0]) || | |
(ppiVar5 = local_4c[1], ppiVar7 = local_5c[1], local_5c[1] != local_4c[1])) || | |
(ppiVar2 = local_4c[2], ppiVar5 = local_5c[2], local_5c[2] != local_4c[2])) || | |
(ppiVar2 = local_5c[3], local_5c[3] != local_4c[3])) goto LAB_8f617ab8; | |
ppiVar12 = (int **)0x0; | |
ppiVar9 = (int **)param_1[1]; | |
local_3c = local_5c[0]; | |
local_38 = local_5c[1]; | |
local_34 = local_5c[2]; | |
local_30 = local_5c[3]; | |
goto LAB_8f617ad4; | |
case (int **)0x8: | |
ppiVar9 = (int **)ppiVar10[2]; | |
piVar11 = ppiVar9[2]; | |
uVar15 = FUN_8f6265e0(ppiVar2,ppiVar5); | |
ppiVar5 = (int **)((ulonglong)uVar15 >> 0x20); | |
ppiVar12 = (int **)((uint)piVar11 & 0x1800); | |
ppiVar2 = (int **)((uint)uVar15 & 0x1800); | |
break; | |
case (int **)0x9: | |
ppiVar9 = (int **)ppiVar10[2]; | |
piVar11 = ppiVar9[2]; | |
uVar15 = FUN_8f6265e0(ppiVar2,ppiVar5); | |
ppiVar5 = (int **)((ulonglong)uVar15 >> 0x20); | |
ppiVar12 = (int **)((uint)piVar11 & 0xf0000); | |
ppiVar2 = (int **)((uint)uVar15 & 0xf0000); | |
} | |
if (ppiVar12 == ppiVar2) { | |
ppiVar9 = (int **)param_1[1]; | |
goto LAB_8f617ad4; | |
} | |
LAB_8f617ab8: | |
ppiVar10 = (int **)ppiVar10[1]; | |
} while ((param_1 != ppiVar10) && (ppiVar10 != (int **)0x0)); | |
ppiVar9 = (int **)param_1[1]; | |
ppiVar12 = (int **)0x0; | |
LAB_8f617ad4: | |
if ((param_1 != ppiVar9) && (ppiVar9 != (int **)0x0)) { | |
do { | |
switch(param_2) { | |
case (int **)0x0: | |
ppiVar7 = (int **)(*ppiVar9[2] & 0xff0000); | |
break; | |
default: | |
goto switchD_8f617a6c_caseD_1; | |
case (int **)0x7: | |
piVar11 = ppiVar9[2]; | |
pppiVar8 = &ppiStack_60; | |
do { | |
piVar1 = piVar11 + 4; | |
piVar11 = piVar11 + 1; | |
pppiVar8 = pppiVar8 + 1; | |
*pppiVar8 = (int **)(uint)*(byte *)piVar1; | |
} while (pppiVar8 != local_5c + 3); | |
ppiVar5 = local_5c[0]; | |
ppiVar7 = local_3c; | |
if ((((local_5c[0] != local_3c) || | |
(ppiVar5 = local_5c[1], ppiVar7 = local_38, local_5c[1] != local_38)) || | |
(ppiVar5 = local_5c[2], ppiVar7 = local_34, local_5c[2] != local_34)) || | |
(ppiVar5 = local_5c[3], ppiVar7 = local_30, local_5c[3] != local_30)) | |
goto LAB_8f617c28; | |
goto LAB_8f617c34; | |
case (int **)0x8: | |
ppiVar7 = (int **)(ppiVar9[2][2] & 0x1800); | |
break; | |
case (int **)0x9: | |
ppiVar7 = (int **)(ppiVar9[2][2] & 0xf0000); | |
} | |
if (ppiVar7 != ppiVar12) { | |
LAB_8f617c28: | |
ppiVar10 = (int **)*ppiVar9; | |
FUN_8f617970((int *)ppiVar9,ppiVar5); | |
ppiVar5 = extraout_r1_00; | |
ppiVar9 = ppiVar10; | |
} | |
LAB_8f617c34: | |
ppiVar9 = (int **)ppiVar9[1]; | |
} while ((param_1 != ppiVar9) && (ppiVar9 != (int **)0x0)); | |
} | |
} | |
uVar4 = 1; | |
LAB_8f617bfc: | |
if (local_2c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar4,ppiVar5,(int *)local_2c); | |
switchD_8f617a6c_caseD_1: | |
dprintf((byte *)s_ERROR__Unsupported_version___d__i_8f660014,(int *)param_2,ppiVar7,ppiVar9); | |
uVar4 = 0; | |
ppiVar5 = extraout_r1; | |
goto LAB_8f617bfc; | |
} | |
void FUN_8f617ce8(int **param_1,int *param_2,int *param_3) | |
{ | |
int *piVar1; | |
int *piVar2; | |
uint uVar3; | |
undefined4 uVar4; | |
int *extraout_r1; | |
int *piVar5; | |
int *extraout_r1_00; | |
int *extraout_r1_01; | |
int *piVar6; | |
int **ppiVar7; | |
int *piVar8; | |
int **ppiVar9; | |
uint uVar10; | |
int *piVar11; | |
ulonglong uVar12; | |
ulonglong uVar13; | |
piVar1 = DAT_8f69d118; | |
ppiVar7 = (int **)param_1[1]; | |
piVar5 = param_2; | |
if ((param_1 != ppiVar7) && (ppiVar7 != (int **)0x0)) { | |
piVar11 = (int *)0x0; | |
piVar6 = DAT_8f69d118; | |
do { | |
switch((int)param_2 + -1) { | |
case 0: | |
piVar6 = ppiVar7[2]; | |
piVar8 = (int *)piVar6[3]; | |
uVar13 = FUN_8f611aac(); | |
goto LAB_8f617d74; | |
case 1: | |
piVar6 = ppiVar7[2]; | |
uVar3 = piVar6[1]; | |
uVar13 = FUN_8f6117b8(); | |
piVar8 = (int *)(uVar3 & 0xffff00); | |
uVar13 = uVar13 & 0xffffffff00ffff00; | |
goto LAB_8f617d74; | |
case 2: | |
piVar6 = ppiVar7[2]; | |
uVar3 = 0; | |
uVar10 = piVar6[4]; | |
break; | |
case 3: | |
piVar6 = ppiVar7[2]; | |
uVar3 = 1; | |
uVar10 = piVar6[5]; | |
break; | |
case 4: | |
piVar6 = ppiVar7[2]; | |
uVar3 = 2; | |
uVar10 = piVar6[6]; | |
break; | |
case 5: | |
piVar6 = ppiVar7[2]; | |
uVar3 = 3; | |
uVar10 = piVar6[7]; | |
break; | |
default: | |
goto switchD_8f617d28_caseD_6; | |
case 9: | |
uVar3 = FUN_8f602b84(); | |
param_3 = ppiVar7[2]; | |
piVar8 = (int *)(uint)*(byte *)(param_3 + 8); | |
piVar6 = (int *)((uVar3 << 0x10) >> 0x18); | |
uVar13 = CONCAT44(uVar3,(uint)piVar6 | (uVar3 & 0xff) << 4) & 0xffffffffff; | |
LAB_8f617d74: | |
piVar5 = (int *)(uVar13 >> 0x20); | |
if (piVar8 == (int *)uVar13) goto LAB_8f617e38; | |
goto LAB_8f617d7c; | |
} | |
uVar12 = FUN_8f6119f8(uVar3); | |
piVar5 = (int *)(uVar12 >> 0x20); | |
piVar8 = (int *)(uVar10 & 0xffff00); | |
uVar13 = uVar12 & 0xffffffff00ffff00; | |
if (piVar8 == (int *)((uint)uVar12 & 0xffff00)) { | |
LAB_8f617e38: | |
ppiVar7 = (int **)param_1[1]; | |
goto joined_r0x8f617dd0; | |
} | |
LAB_8f617d7c: | |
piVar5 = (int *)(uVar13 >> 0x20); | |
param_3 = (int *)(uint)(piVar11 < piVar8); | |
if ((int *)uVar13 <= piVar8) { | |
param_3 = (int *)0x0; | |
} | |
piVar2 = piVar8; | |
if ((param_3 == (int *)0x0) && (piVar2 = piVar11, piVar8 < piVar11)) { | |
ppiVar9 = (int **)*ppiVar7; | |
FUN_8f617970((int *)ppiVar7,piVar5); | |
piVar5 = extraout_r1; | |
ppiVar7 = ppiVar9; | |
} | |
piVar11 = piVar2; | |
ppiVar7 = (int **)ppiVar7[1]; | |
} while ((param_1 != ppiVar7) && (ppiVar7 != (int **)0x0)); | |
ppiVar7 = (int **)param_1[1]; | |
piVar8 = piVar11; | |
joined_r0x8f617dd0: | |
do { | |
if ((ppiVar7 == param_1) || (ppiVar7 == (int **)0x0)) break; | |
switch((int)param_2 + -1) { | |
case 0: | |
piVar6 = (int *)ppiVar7[2][3]; | |
break; | |
case 1: | |
piVar6 = (int *)(ppiVar7[2][1] & 0xffff00); | |
break; | |
case 2: | |
piVar6 = (int *)(ppiVar7[2][4] & 0xffff00); | |
break; | |
case 3: | |
piVar6 = (int *)(ppiVar7[2][5] & 0xffff00); | |
break; | |
case 4: | |
piVar6 = (int *)(ppiVar7[2][6] & 0xffff00); | |
break; | |
case 5: | |
piVar6 = (int *)(ppiVar7[2][7] & 0xffff00); | |
break; | |
default: | |
goto switchD_8f617d28_caseD_6; | |
case 9: | |
piVar6 = (int *)(uint)*(byte *)((int)ppiVar7[2] + 0x20); | |
} | |
ppiVar9 = ppiVar7; | |
if (piVar6 != piVar8) { | |
ppiVar9 = (int **)*ppiVar7; | |
FUN_8f617970((int *)ppiVar7,piVar5); | |
piVar5 = extraout_r1_01; | |
} | |
ppiVar7 = (int **)((int *)ppiVar9)[1]; | |
} while( true ); | |
} | |
uVar4 = 1; | |
LAB_8f617eb8: | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar4,piVar5,piVar1); | |
} | |
return; | |
switchD_8f617d28_caseD_6: | |
dprintf((byte *)s_ERROR__Unsupported_version___d__i_8f660014,param_2,param_3,piVar6); | |
uVar4 = 0; | |
piVar5 = extraout_r1_00; | |
goto LAB_8f617eb8; | |
} | |
void FUN_8f617f74(undefined4 *param_1,int **param_2) | |
{ | |
ushort uVar1; | |
int *piVar2; | |
undefined4 uVar3; | |
int **ppiVar4; | |
int *piVar5; | |
undefined4 uVar6; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
uint uVar7; | |
uint uVar8; | |
int *in_lr; | |
undefined8 uVar9; | |
piVar2 = DAT_8f69d118; | |
uVar1 = *(ushort *)param_1; | |
uVar7 = param_1[1]; | |
uVar8 = param_1[2]; | |
uVar9 = FUN_8f611778(); | |
uVar6 = (undefined4)((ulonglong)uVar9 >> 0x20); | |
if ((((((((uint)uVar9 & 0xffff) == (uint)uVar1) && | |
(uVar9 = FUN_8f611838(), uVar6 = (undefined4)((ulonglong)uVar9 >> 0x20), | |
(uint)uVar9 == (uVar7 & 0xff))) && | |
(uVar9 = FUN_8f611878(), uVar6 = (undefined4)((ulonglong)uVar9 >> 0x20), | |
(uint)uVar9 == (uVar8 & 0xff))) && | |
((uVar9 = FUN_8f6265e0((uint)uVar9,uVar6), uVar6 = (undefined4)((ulonglong)uVar9 >> 0x20), | |
((uint)uVar9 & 0x700) == (uVar8 & 0x700) && | |
(uVar7 = param_1[3], uVar9 = FUN_8f611aac(), uVar6 = (undefined4)((ulonglong)uVar9 >> 0x20), | |
uVar7 <= (uint)uVar9)))) && | |
((uVar7 = param_1[1], uVar9 = FUN_8f6117b8(), uVar6 = (undefined4)((ulonglong)uVar9 >> 0x20), | |
(uVar7 & 0xffff00) <= ((uint)uVar9 & 0xffff00) && | |
((uVar7 = param_1[4], uVar9 = FUN_8f6119f8(0), uVar6 = (undefined4)((ulonglong)uVar9 >> 0x20) | |
, (uVar7 & 0xffff00) <= ((uint)uVar9 & 0xffff00) && | |
(uVar7 = param_1[5], uVar9 = FUN_8f6119f8(1), uVar6 = (undefined4)((ulonglong)uVar9 >> 0x20) | |
, (uVar7 & 0xffff00) <= ((uint)uVar9 & 0xffff00))))))) && | |
((uVar7 = param_1[6], uVar9 = FUN_8f6119f8(2), uVar6 = (undefined4)((ulonglong)uVar9 >> 0x20), | |
(uVar7 & 0xffff00) <= ((uint)uVar9 & 0xffff00) && | |
(uVar7 = param_1[7], uVar9 = FUN_8f6119f8(3), uVar6 = (undefined4)((ulonglong)uVar9 >> 0x20), | |
(uVar7 & 0xffff00) <= ((uint)uVar9 & 0xffff00))))) { | |
uVar9 = FUN_8f63666c(0xc,uVar6); | |
uVar6 = (undefined4)((ulonglong)uVar9 >> 0x20); | |
ppiVar4 = (int **)uVar9; | |
if (ppiVar4 == (int **)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_dev_tree_c_8f660048,0x6b); | |
uVar6 = extraout_r1; | |
} | |
ppiVar4[1] = (int *)0x0; | |
*ppiVar4 = (int *)0x0; | |
piVar5 = (int *)FUN_8f63666c(0x2c,uVar6); | |
ppiVar4[2] = piVar5; | |
if (piVar5 == (int *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_dev_tree_c_8f660048,0x70); | |
} | |
FUN_8f636968((uint *)ppiVar4[2],0,0x2c); | |
FUN_8f63685c(ppiVar4[2],param_1,0x2c); | |
piVar5 = *param_2; | |
uVar3 = 1; | |
*ppiVar4 = piVar5; | |
ppiVar4[1] = (int *)param_2; | |
piVar5[1] = (int)ppiVar4; | |
*param_2 = (int *)ppiVar4; | |
uVar6 = extraout_r1_00; | |
} | |
else { | |
uVar3 = 0; | |
} | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar3,uVar6,piVar2); | |
} | |
void FUN_8f618180(int **param_1,undefined4 param_2,int *param_3) | |
{ | |
int *piVar1; | |
int *piVar2; | |
int *extraout_r1; | |
int *piVar3; | |
int **ppiVar4; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
uVar5 = FUN_8f617a00(param_1,(int **)0x0); | |
piVar3 = (int *)((ulonglong)uVar5 >> 0x20); | |
if ((int)uVar5 != 0) { | |
uVar5 = FUN_8f617a00(param_1,(int **)0x7); | |
piVar3 = (int *)((ulonglong)uVar5 >> 0x20); | |
if ((int)uVar5 != 0) { | |
uVar5 = FUN_8f617a00(param_1,(int **)0x8); | |
piVar3 = (int *)((ulonglong)uVar5 >> 0x20); | |
if ((int)uVar5 != 0) { | |
uVar5 = FUN_8f617a00(param_1,(int **)0x9); | |
piVar3 = (int *)((ulonglong)uVar5 >> 0x20); | |
if ((int)uVar5 != 0) { | |
uVar5 = FUN_8f617ce8(param_1,(int *)0x1,param_3); | |
piVar3 = (int *)((ulonglong)uVar5 >> 0x20); | |
if ((int)uVar5 != 0) { | |
uVar5 = FUN_8f617ce8(param_1,(int *)0x2,param_3); | |
piVar3 = (int *)((ulonglong)uVar5 >> 0x20); | |
if ((int)uVar5 != 0) { | |
uVar5 = FUN_8f617ce8(param_1,(int *)0x3,param_3); | |
piVar3 = (int *)((ulonglong)uVar5 >> 0x20); | |
if ((int)uVar5 != 0) { | |
uVar5 = FUN_8f617ce8(param_1,(int *)&DAT_00000004,param_3); | |
piVar3 = (int *)((ulonglong)uVar5 >> 0x20); | |
if ((int)uVar5 != 0) { | |
uVar5 = FUN_8f617ce8(param_1,(int *)&DAT_00000005,param_3); | |
piVar3 = (int *)((ulonglong)uVar5 >> 0x20); | |
if ((int)uVar5 != 0) { | |
uVar5 = FUN_8f617ce8(param_1,(int *)&DAT_00000006,param_3); | |
piVar3 = (int *)((ulonglong)uVar5 >> 0x20); | |
if ((int)uVar5 != 0) { | |
uVar5 = FUN_8f617ce8(param_1,(int *)0xa,param_3); | |
piVar3 = (int *)((ulonglong)uVar5 >> 0x20); | |
if ((int)uVar5 != 0) { | |
for (ppiVar4 = (int **)param_1[1]; param_1 != ppiVar4; | |
ppiVar4 = (int **)ppiVar4[1]) { | |
if (ppiVar4 == (int **)0x0) { | |
dprintf((byte *)s_ERROR__Couldn_t_find_the_suitabl_8f660094,piVar3, | |
param_3,0); | |
piVar3 = extraout_r1; | |
break; | |
} | |
piVar2 = ppiVar4[2]; | |
if (piVar2 != (int *)0x0) goto LAB_8f6182b4; | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
piVar2 = (int *)0x0; | |
LAB_8f6182b4: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(piVar2,piVar3,piVar1); | |
} | |
void FUN_8f6182d0(uint param_1) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
uint uVar3; | |
uint extraout_r1; | |
uint uVar4; | |
uint uVar5; | |
int iVar6; | |
uint uVar7; | |
uint uVar8; | |
uint uVar9; | |
bool bVar10; | |
piVar1 = DAT_8f69d118; | |
uVar3 = *(uint *)(param_1 + 4); | |
uVar4 = ((uVar3 << 0x10) >> 0x18) << 0x10 | uVar3 << 0x18 | uVar3 >> 0x18 | | |
((uVar3 << 8) >> 0x18) << 8; | |
if (CARRY4(param_1,uVar4)) { | |
dprintf((byte *)s_Integer_over_in_fdt_header__s__d_8f6600bc, | |
(int *)s_fdt_check_header_ext_8f6606cc,0x49,uVar4); | |
uVar2 = 4; | |
uVar4 = extraout_r1; | |
} | |
else { | |
uVar9 = *(uint *)(param_1 + 0x24); | |
uVar7 = *(uint *)(param_1 + 8); | |
uVar4 = ((uVar9 << 0x10) >> 0x18) << 0x10 | uVar9 << 0x18 | uVar9 >> 0x18 | | |
((uVar9 << 8) >> 0x18) << 8; | |
uVar8 = ((uVar7 << 0x10) >> 0x18) << 0x10 | uVar7 << 0x18 | uVar7 >> 0x18 | | |
((uVar7 << 8) >> 0x18) << 8; | |
uVar5 = uVar4 + uVar8; | |
iVar6 = uVar5 + param_1; | |
bVar10 = (char)(CARRY4(uVar4,uVar8) + CARRY4(uVar5,param_1)) == '\0'; | |
uVar4 = uVar3 >> 0x18; | |
if ((bVar10 && iVar6 != -1 || bVar10 && iVar6 == -1) && | |
(uVar4 = (((uVar3 << 0x10) >> 0x18) << 0x10 | uVar3 << 0x18 | uVar4 | | |
((uVar3 << 8) >> 0x18) << 8) + param_1, | |
(((uVar7 << 0x10) >> 0x18) << 0x10 | uVar7 << 0x18 | uVar7 >> 0x18 | | |
((uVar7 << 8) >> 0x18) << 8) + | |
(((uVar9 << 0x10) >> 0x18) << 0x10 | uVar9 << 0x18 | uVar9 >> 0x18 | | |
((uVar9 << 8) >> 0x18) << 8) + param_1 <= uVar4)) { | |
uVar8 = *(uint *)(param_1 + 0x20); | |
uVar5 = *(uint *)(param_1 + 0xc); | |
uVar3 = ((uVar8 << 0x10) >> 0x18) << 0x10 | uVar8 << 0x18 | uVar8 >> 0x18 | | |
((uVar8 << 8) >> 0x18) << 8; | |
uVar7 = ((uVar5 << 0x10) >> 0x18) << 0x10 | uVar5 << 0x18 | uVar5 >> 0x18 | | |
((uVar5 << 8) >> 0x18) << 8; | |
uVar5 = uVar3 + uVar7; | |
iVar6 = param_1 + uVar5; | |
bVar10 = (char)(CARRY4(uVar3,uVar7) + CARRY4(param_1,uVar5)) == '\0'; | |
if ((bVar10 && iVar6 != -1 || bVar10 && iVar6 == -1) && | |
(uVar7 + (((uVar8 << 0x10) >> 0x18) << 0x10 | uVar8 << 0x18 | uVar8 >> 0x18 | | |
((uVar8 << 8) >> 0x18) << 8) + param_1 <= uVar4)) { | |
uVar2 = 0; | |
goto LAB_8f618394; | |
} | |
} | |
uVar2 = 4; | |
} | |
LAB_8f618394: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,uVar4,piVar1); | |
} | |
void FUN_8f6184cc(uint param_1,int param_2,uint *param_3,int **param_4) | |
{ | |
longlong lVar1; | |
byte *pbVar2; | |
byte *pbVar3; | |
uint *puVar4; | |
uint *puVar5; | |
uint uVar6; | |
int **ppiVar7; | |
int **ppiVar8; | |
int **ppiVar9; | |
uint uVar10; | |
undefined4 *puVar11; | |
uint uVar12; | |
int *piVar13; | |
int *extraout_r1; | |
uint uVar14; | |
int iVar15; | |
int *extraout_r1_00; | |
int *extraout_r1_01; | |
int *extraout_r1_02; | |
int *extraout_r1_03; | |
int *extraout_r1_04; | |
int *extraout_r1_05; | |
int *extraout_r1_06; | |
int *extraout_r1_07; | |
int *extraout_r1_08; | |
int *extraout_r1_09; | |
int *extraout_r1_10; | |
int *extraout_r1_11; | |
int *extraout_r1_12; | |
uint uVar16; | |
int *extraout_r1_13; | |
undefined4 extraout_r1_14; | |
undefined4 extraout_r1_15; | |
uint *puVar17; | |
uint *puVar18; | |
undefined4 uVar19; | |
uint **ppuVar20; | |
byte **ppbVar21; | |
uint *puVar22; | |
uint *puVar23; | |
uint uVar24; | |
int *piVar25; | |
uint *puVar26; | |
uint uVar27; | |
undefined4 *puVar28; | |
uint uVar29; | |
int iVar30; | |
uint uVar31; | |
uint uVar32; | |
int *in_lr; | |
uint uVar33; | |
undefined8 uVar34; | |
ulonglong uVar35; | |
int local_114; | |
uint *local_104; | |
byte *local_100; | |
int *local_e8; | |
char *local_e4; | |
uint *local_d0; | |
uint *local_c4; | |
uint local_bc; | |
uint *local_b0; | |
uint *local_ac; | |
uint *local_a8; | |
uint *local_a4; | |
uint local_a0; | |
uint *local_9c; | |
uint local_98; | |
int *local_94; | |
byte *local_90; | |
uint uStack_8c; | |
uint local_88; | |
uint local_84; | |
uint local_80; | |
uint local_7c; | |
uint local_78; | |
uint local_74; | |
uint uStack_70; | |
uint local_6c; | |
uint local_68; | |
uint local_64; | |
uint *local_60; | |
uint local_5c; | |
uint local_58; | |
uint uStack_54; | |
uint *local_50; | |
int *local_2c; | |
uVar19 = 0; | |
local_2c = DAT_8f69d118; | |
local_b0 = (uint *)0x0; | |
local_e4 = (char *)param_3; | |
uVar34 = FUN_8f63666c(0xc,param_2); | |
piVar13 = (int *)((ulonglong)uVar34 >> 0x20); | |
ppiVar9 = (int **)uVar34; | |
if (ppiVar9 == (int **)0x0) { | |
dprintf((byte *)s_Out_of_memory_8f6600e0,piVar13,local_e4,uVar19); | |
piVar13 = extraout_r1_12; | |
goto LAB_8f618bc8; | |
} | |
if (param_3 != (uint *)0x0) { | |
local_b0 = param_3; | |
} | |
ppiVar9[1] = (int *)ppiVar9; | |
*ppiVar9 = (int *)ppiVar9; | |
if (param_3 == (uint *)0x0) { | |
local_e4 = &DAT_00000004; | |
FUN_8f63685c(&local_b0,(undefined4 *)(param_1 + 0x2c),4); | |
puVar23 = (uint *)(param_1 + (int)local_b0); | |
piVar13 = extraout_r1_06; | |
if (CARRY4(param_1,(uint)local_b0)) goto LAB_8f618c08; | |
} | |
else { | |
puVar23 = (uint *)(param_1 + (int)param_3); | |
if (CARRY4(param_1,(uint)param_3)) { | |
LAB_8f618c08: | |
ppiVar9 = (int **)0x0; | |
goto LAB_8f618bc8; | |
} | |
} | |
for (; puVar4 = puVar23 + 10, puVar4 < (uint *)(param_1 + param_2); | |
puVar23 = (uint *)((int)puVar23 + uVar24)) { | |
local_e4 = (char *)0x28; | |
FUN_8f63685c(&uStack_54,puVar23,0x28); | |
uVar34 = FUN_8f6371a4(&uStack_54); | |
piVar13 = (int *)((ulonglong)uVar34 >> 0x20); | |
if ((int)uVar34 != 0) break; | |
uVar34 = FUN_8f6182d0((uint)&uStack_54); | |
piVar13 = (int *)((ulonglong)uVar34 >> 0x20); | |
pbVar2 = (byte *)uVar34; | |
if (pbVar2 != (byte *)0x0) break; | |
piVar13 = (int *)((uint)((int)local_50 << 8) >> 0x18); | |
local_ac = local_50; | |
local_e4 = (char *)(((uint)((int)local_50 << 0x10) >> 0x18) << 0x10 | (int)local_50 << 0x18 | | |
(uint)local_50 >> 0x18 | (int)piVar13 << 8); | |
puVar4 = local_50; | |
if (CARRY4((uint)puVar23,(uint)local_e4)) break; | |
local_a8 = local_50; | |
piVar13 = (int *)(((uint)((int)local_50 << 0x10) >> 0x18) << 0x10 | (int)local_50 << 0x18 | | |
(uint)local_50 >> 0x18); | |
local_e4 = (char *)((int)puVar23 + ((uint)piVar13 | ((uint)((int)local_50 << 8) >> 0x18) << 8)); | |
if ((uint *)(param_1 + param_2) < local_e4) break; | |
local_a4 = local_50; | |
local_e4 = (char *)(((uint)((int)local_50 << 0x10) >> 0x18) << 0x10 | (int)local_50 << 0x18); | |
uVar24 = (uint)local_e4 | (uint)local_50 >> 0x18 | ((uint)((int)local_50 << 8) >> 0x18) << 8; | |
local_90 = pbVar2; | |
uVar34 = FUN_8f637e54(puVar23,(int *)&DAT_8f6600f0,(int *)local_e4); | |
piVar13 = (int *)((ulonglong)uVar34 >> 0x20); | |
uVar10 = (uint)uVar34; | |
if (-1 < (int)uVar10) { | |
uVar34 = FUN_8f637d68((int)puVar23,uVar10,(byte *)s_model_8f6600f4,&local_a0); | |
pbVar3 = (byte *)uVar34; | |
local_100 = pbVar3; | |
if ((pbVar3 != (byte *)0x0) && (local_100 = pbVar2, 0 < (int)local_a0)) { | |
local_100 = (byte *)FUN_8f63666c(local_a0,(int)((ulonglong)uVar34 >> 0x20)); | |
if (local_100 == (byte *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_dev_tree_c_8f660048,0xab); | |
} | |
FUN_8f636d18((int)local_100,pbVar3,local_a0); | |
} | |
local_104 = (uint *)FUN_8f637d68((int)puVar23,uVar10,(byte *)s_qcom_pmic_id_8f6600fc, | |
(uint *)&local_94); | |
ppuVar20 = &local_9c; | |
puVar4 = (uint *)FUN_8f637d68((int)puVar23,uVar10,(byte *)s_qcom_board_id_8f66010c, | |
(uint *)ppuVar20); | |
if ((local_104 == (uint *)0x0) || ((int)local_94 < 1)) { | |
if ((puVar4 == (uint *)0x0) || ((int)local_9c < 1)) goto LAB_8f618778; | |
if (((uint)local_9c & 7) == 0) { | |
local_114 = 2; | |
uVar29 = 8; | |
goto LAB_8f618590; | |
} | |
local_e4 = (char *)0x8; | |
dprintf((byte *)s_qcom_board_id_in_device_tree_is___8f660170,(int *)local_9c,8,ppuVar20); | |
piVar13 = extraout_r1; | |
} | |
else { | |
if ((puVar4 == (uint *)0x0) || ((int)local_9c < 1)) { | |
LAB_8f618778: | |
uVar29 = 0xc; | |
local_114 = 1; | |
} | |
else { | |
if ((((uint)local_9c | (uint)local_94) & 7) != 0) { | |
local_e4 = (char *)local_9c; | |
dprintf((byte *)s_qcom_pmic_id__d__or_qcom_board_i_8f66011c,local_94,local_9c,8); | |
piVar13 = extraout_r1_03; | |
goto LAB_8f6185cc; | |
} | |
uVar29 = 8; | |
local_114 = 3; | |
} | |
LAB_8f618590: | |
local_e4 = s_qcom_msm_id_8f6601b0; | |
uVar34 = FUN_8f637d68((int)puVar23,uVar10,(byte *)s_qcom_msm_id_8f6601b0,&local_98); | |
piVar13 = (int *)((ulonglong)uVar34 >> 0x20); | |
puVar18 = (uint *)uVar34; | |
if ((puVar18 != (uint *)0x0) && (0 < (int)local_98)) { | |
uVar35 = FUN_8f658450(local_98,uVar29); | |
piVar13 = (int *)(uVar35 >> 0x20); | |
if (piVar13 == (int *)0x0) { | |
local_e4 = s_infr_board_rev_8f6601bc; | |
ppbVar21 = &local_90; | |
uVar34 = FUN_8f637d68((int)puVar23,uVar10,(byte *)s_infr_board_rev_8f6601bc, | |
(uint *)ppbVar21); | |
piVar13 = local_94; | |
uVar10 = local_98; | |
uVar19 = (undefined4)((ulonglong)uVar34 >> 0x20); | |
puVar26 = (uint *)uVar34; | |
if (local_114 == 1) { | |
uVar34 = FUN_8f63666c(0x2c,uVar19); | |
puVar4 = (uint *)uVar34; | |
if (puVar4 != (uint *)0x0) { | |
local_e4 = (char *)0x2c; | |
FUN_8f636968(puVar4,0,0x2c); | |
puVar18 = puVar18 + 3; | |
while (local_98 != 0) { | |
local_58 = puVar18[-3]; | |
local_64 = puVar18[-2]; | |
local_e4 = (char *)puVar18[-1]; | |
*puVar4 = ((local_58 << 0x10) >> 0x18) << 0x10 | local_58 << 0x18 | | |
local_58 >> 0x18 | ((local_58 << 8) >> 0x18) << 8; | |
puVar4[2] = local_64 & 0xff; | |
puVar4[1] = ((local_64 << 0x10) >> 0x18) << 0x10 | local_64 << 0x18 | | |
local_64 >> 0x18 | ((local_64 << 8) >> 0x18) << 8; | |
puVar4[3] = ((uint)((int)local_e4 << 0x10) >> 0x18) << 0x10 | | |
(int)local_e4 << 0x18 | (uint)local_e4 >> 0x18 | | |
((uint)((int)local_e4 << 8) >> 0x18) << 8; | |
local_60 = (uint *)local_e4; | |
local_5c = local_64; | |
uVar10 = FUN_8f6119f8(0); | |
puVar4[4] = uVar10; | |
uVar10 = FUN_8f6119f8(1); | |
puVar4[5] = uVar10; | |
uVar10 = FUN_8f6119f8(2); | |
puVar4[6] = uVar10; | |
uVar10 = FUN_8f6119f8(3); | |
puVar4[9] = (uint)puVar23; | |
puVar4[10] = uVar24; | |
puVar4[7] = uVar10; | |
iVar15 = FUN_8f617f74(puVar4,ppiVar9); | |
if (iVar15 == 0) { | |
puVar18 = puVar18 + 3; | |
local_98 = local_98 - 0xc; | |
} | |
} | |
FUN_8f636758((int)puVar4); | |
piVar13 = extraout_r1_07; | |
goto LAB_8f618d18; | |
} | |
dprintf((byte *)s_Out_of_memory_8f6600e0,(int *)((ulonglong)uVar34 >> 0x20),local_e4, | |
ppbVar21); | |
piVar13 = extraout_r1_11; | |
} | |
else { | |
puVar22 = local_9c; | |
if ((int)local_9c < 0) { | |
puVar22 = (uint *)((int)local_9c + 7); | |
} | |
uVar29 = (int)puVar22 >> 3; | |
uVar34 = FUN_8f63666c(uVar29 * 8,uVar19); | |
uVar19 = (undefined4)((ulonglong)uVar34 >> 0x20); | |
puVar22 = (uint *)uVar34; | |
if (puVar22 == (uint *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_dev_tree_c_8f660048,0x125); | |
uVar19 = extraout_r1_14; | |
} | |
uVar14 = local_98; | |
if ((int)local_98 < 0) { | |
uVar14 = local_98 + 7; | |
} | |
uVar34 = FUN_8f63666c(uVar14 & 0xfffffff8,uVar19); | |
uVar19 = (undefined4)((ulonglong)uVar34 >> 0x20); | |
puVar5 = (uint *)uVar34; | |
if (puVar5 == (uint *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_dev_tree_c_8f660048,0x127); | |
uVar19 = extraout_r1_15; | |
} | |
if (local_114 == 3) { | |
piVar25 = local_94; | |
if ((int)local_94 < 0) { | |
piVar25 = (int *)((int)local_94 + 7); | |
} | |
local_d0 = (uint *)FUN_8f63666c(((int)piVar25 >> 3) << 4,uVar19); | |
if (local_d0 == (uint *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_dev_tree_c_8f660048,0x12a); | |
} | |
} | |
else { | |
local_d0 = (uint *)0x0; | |
} | |
if (uVar29 != 0) { | |
uVar14 = 0; | |
do { | |
local_68 = *puVar4; | |
puVar17 = (uint *)((int)puVar22 + uVar14); | |
*puVar17 = ((local_68 << 0x10) >> 0x18) << 0x10 | local_68 << 0x18 | | |
local_68 >> 0x18 | ((local_68 << 8) >> 0x18) << 8; | |
local_6c = puVar4[1]; | |
uVar14 = uVar14 + 8; | |
uVar6 = ((local_6c << 0x10) >> 0x18) << 0x10 | local_6c << 0x18 | local_6c >> 0x18 | |
| ((local_6c << 8) >> 0x18) << 8; | |
puVar17[1] = uVar6; | |
if (uVar6 == 0) { | |
uStack_70 = *puVar4; | |
puVar17[1] = uStack_70 & 0xff; | |
} | |
puVar4 = puVar4 + 2; | |
} while (uVar29 * 8 != uVar14); | |
local_9c = local_9c + uVar29 * -2; | |
} | |
if ((int)uVar10 < 0) { | |
uVar10 = uVar10 + 7; | |
} | |
uVar10 = (int)uVar10 >> 3; | |
if (uVar10 != 0) { | |
iVar15 = 0; | |
do { | |
local_74 = *puVar18; | |
puVar4 = (uint *)((int)puVar5 + iVar15); | |
*puVar4 = ((local_74 << 0x10) >> 0x18) << 0x10 | local_74 << 0x18 | | |
local_74 >> 0x18 | ((local_74 << 8) >> 0x18) << 8; | |
local_78 = puVar18[1]; | |
iVar15 = iVar15 + 8; | |
puVar4[1] = ((local_78 << 0x10) >> 0x18) << 0x10 | local_78 << 0x18 | | |
local_78 >> 0x18 | ((local_78 << 8) >> 0x18) << 8; | |
puVar18 = puVar18 + 2; | |
} while (iVar15 != uVar10 * 8); | |
local_98 = local_98 + uVar10 * -8; | |
} | |
piVar25 = (int *)((int)piVar13 + 7); | |
if (-1 < (int)piVar13) { | |
piVar25 = piVar13; | |
} | |
uVar14 = (int)piVar25 >> 3; | |
if (local_104 == (uint *)0x0 || local_114 != 3) { | |
local_c4 = (uint *)(uVar29 * uVar10); | |
puVar4 = (uint *)(uVar14 * (int)local_c4); | |
} | |
else { | |
if (uVar14 != 0) { | |
uVar6 = 0; | |
puVar18 = local_d0; | |
puVar4 = local_104; | |
do { | |
local_7c = *puVar4; | |
uVar6 = uVar6 + 1; | |
*puVar18 = ((local_7c << 0x10) >> 0x18) << 0x10 | local_7c << 0x18 | | |
local_7c >> 0x18 | ((local_7c << 8) >> 0x18) << 8; | |
local_80 = puVar4[1]; | |
puVar18[1] = ((local_80 << 0x10) >> 0x18) << 0x10 | local_80 << 0x18 | | |
local_80 >> 0x18 | ((local_80 << 8) >> 0x18) << 8; | |
local_84 = puVar4[2]; | |
puVar18[2] = ((local_84 << 0x10) >> 0x18) << 0x10 | local_84 << 0x18 | | |
local_84 >> 0x18 | ((local_84 << 8) >> 0x18) << 8; | |
local_88 = puVar4[3]; | |
puVar18[3] = ((local_88 << 0x10) >> 0x18) << 0x10 | local_88 << 0x18 | | |
local_88 >> 0x18 | ((local_88 << 8) >> 0x18) << 8; | |
puVar18 = puVar18 + 4; | |
puVar4 = puVar4 + 4; | |
} while (uVar14 != uVar6); | |
local_94 = local_94 + uVar14 * -4; | |
local_104 = local_104 + uVar14 * 4; | |
} | |
puVar4 = (uint *)(uVar14 * uVar29 * uVar10); | |
local_c4 = puVar4; | |
} | |
local_e4 = (char *)(uVar29 * uVar10); | |
if (puVar26 != (uint *)0x0) { | |
uStack_8c = *puVar26; | |
puVar26 = (uint *)(((uStack_8c << 0x10) >> 0x18) << 0x10 | uStack_8c << 0x18 | | |
uStack_8c >> 0x18 | ((uStack_8c << 8) >> 0x18) << 8); | |
} | |
uVar35 = (ulonglong)uVar10 * (ulonglong)uVar29; | |
iVar15 = (int)(uVar35 >> 0x20); | |
lVar1 = (ulonglong)uVar14 * (uVar35 & 0xffffffff); | |
puVar18 = (uint *)lVar1; | |
if ((uVar14 * iVar15 + (int)((ulonglong)lVar1 >> 0x20) == 0 && puVar18 == puVar4) && | |
(puVar18 = (uint *)local_e4, iVar15 == 0 && (uint *)uVar35 == (uint *)local_e4)) { | |
puVar11 = (undefined4 *)FUN_8f63666c((int)local_c4 * 0x2c,0); | |
if (puVar11 == (undefined4 *)0x0) { | |
local_e4 = s_platform_msm_shared_dev_tree_c_8f660048; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_dev_tree_c_8f660048,0x174); | |
} | |
if (uVar10 != 0) { | |
iVar15 = 0; | |
local_bc = 0; | |
local_e4 = (char *)puVar5; | |
do { | |
if (uVar29 != 0) { | |
uVar6 = 0; | |
puVar4 = puVar22; | |
iVar30 = iVar15; | |
do { | |
if (local_104 == (uint *)0x0 || local_114 != 3) { | |
uVar12 = *(uint *)((int)local_e4 + 4); | |
iVar15 = iVar30 + 1; | |
uVar16 = *puVar4; | |
uVar31 = puVar4[1]; | |
puVar11[iVar30 * 0xb] = *(uint *)local_e4; | |
puVar11[iVar30 * 0xb + 1] = uVar16; | |
puVar11[iVar30 * 0xb + 2] = uVar31; | |
puVar11[iVar30 * 0xb + 3] = uVar12; | |
uVar19 = FUN_8f6119f8(0); | |
puVar11[iVar30 * 0xb + 4] = uVar19; | |
uVar19 = FUN_8f6119f8(1); | |
puVar11[iVar30 * 0xb + 5] = uVar19; | |
uVar19 = FUN_8f6119f8(2); | |
puVar11[iVar30 * 0xb + 6] = uVar19; | |
uVar19 = FUN_8f6119f8(3); | |
puVar11[iVar30 * 0xb + 9] = puVar23; | |
puVar11[iVar30 * 0xb + 10] = uVar24; | |
puVar11[iVar30 * 0xb + 7] = uVar19; | |
} | |
else { | |
iVar15 = iVar30; | |
if (uVar14 != 0) { | |
uVar32 = *puVar4; | |
uVar12 = puVar4[1]; | |
uVar31 = *(uint *)local_e4; | |
uVar33 = *(uint *)((int)local_e4 + 4); | |
uVar16 = 0; | |
puVar18 = local_d0; | |
puVar17 = puVar11 + iVar30 * 0xb + 4; | |
do { | |
uVar27 = puVar18[1]; | |
uVar16 = uVar16 + 1; | |
puVar17[-4] = uVar31; | |
puVar17[-1] = uVar33; | |
puVar17[1] = uVar27; | |
uVar27 = puVar18[2]; | |
puVar17[-3] = uVar32; | |
puVar17[-2] = uVar12; | |
puVar17[2] = uVar27; | |
uVar27 = *puVar18; | |
puVar17[5] = (uint)puVar23; | |
puVar17[6] = uVar24; | |
*puVar17 = uVar27; | |
uVar27 = puVar18[3]; | |
puVar17[4] = (uint)puVar26; | |
puVar17[3] = uVar27; | |
puVar18 = puVar18 + 4; | |
puVar17 = puVar17 + 0xb; | |
} while (uVar14 != uVar16); | |
iVar15 = iVar30 + uVar14; | |
} | |
} | |
uVar6 = uVar6 + 1; | |
puVar4 = puVar4 + 2; | |
iVar30 = iVar15; | |
} while (uVar29 != uVar6); | |
} | |
local_bc = local_bc + 1; | |
local_e4 = (char *)((int)local_e4 + 8); | |
} while (uVar10 != local_bc); | |
} | |
if (local_c4 != (uint *)0x0) { | |
puVar4 = (uint *)0x0; | |
puVar28 = puVar11; | |
do { | |
puVar4 = (uint *)((int)puVar4 + 1); | |
FUN_8f617f74(puVar28,ppiVar9); | |
puVar28 = puVar28 + 0xb; | |
} while (puVar4 != local_c4); | |
} | |
FUN_8f636758((int)puVar22); | |
FUN_8f636758((int)puVar5); | |
if (local_d0 != (uint *)0x0) { | |
FUN_8f636758((int)local_d0); | |
} | |
FUN_8f636758((int)puVar11); | |
piVar13 = extraout_r1_13; | |
LAB_8f618d18: | |
if (local_100 != (byte *)0x0) { | |
FUN_8f636758((int)local_100); | |
piVar13 = extraout_r1_08; | |
} | |
} | |
else { | |
local_e4 = (char *)puVar18; | |
FUN_8f636758((int)puVar22); | |
FUN_8f636758((int)puVar5); | |
piVar13 = extraout_r1_00; | |
if (local_d0 != (uint *)0x0) { | |
FUN_8f636758((int)local_d0); | |
piVar13 = extraout_r1_01; | |
} | |
if (local_100 != (byte *)0x0) { | |
FUN_8f636758((int)local_100); | |
piVar13 = extraout_r1_02; | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
LAB_8f6185cc: | |
} | |
uVar34 = FUN_8f618180(ppiVar9,piVar13,(int *)local_e4); | |
piVar13 = (int *)((ulonglong)uVar34 >> 0x20); | |
ppiVar7 = (int **)uVar34; | |
if (ppiVar7 != (int **)0x0) { | |
local_e8 = ppiVar7[10]; | |
ppiVar7 = (int **)ppiVar7[9]; | |
} | |
ppiVar8 = (int **)ppiVar9[1]; | |
while (ppiVar9 != ppiVar8) { | |
piVar25 = *ppiVar8; | |
FUN_8f617970((int *)ppiVar8,piVar13); | |
piVar13 = extraout_r1_04; | |
ppiVar8 = (int **)piVar25[1]; | |
} | |
if (ppiVar7 == (int **)0x0) { | |
dprintf((byte *)s_DTB_offset_is_incorrect__kernel_i_8f660234,piVar13,local_e4,puVar4); | |
ppiVar9 = ppiVar7; | |
piVar13 = extraout_r1_10; | |
} | |
else { | |
uVar34 = FUN_8f629c00((undefined *)param_4,(uint)local_e8); | |
if ((int)uVar34 == 0) { | |
FUN_8f63685c(param_4,ppiVar7,(int)local_e8); | |
*(undefined4 *)(param_1 + (int)local_b0) = 0; | |
ppiVar9 = param_4; | |
piVar13 = extraout_r1_05; | |
} | |
else { | |
dprintf((byte *)s_Tags_addresses_overlap_with_aboo_8f660204,(int *)((ulonglong)uVar34 >> 0x20) | |
,local_e4,puVar4); | |
ppiVar9 = (int **)0x0; | |
piVar13 = extraout_r1_09; | |
} | |
} | |
LAB_8f618bc8: | |
if (local_2c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(ppiVar9,piVar13,local_2c); | |
} | |
return; | |
} | |
void FUN_8f6190c8(uint *param_1,uint param_2,int *param_3,uint param_4,int *param_5,uint param_6) | |
{ | |
int iVar1; | |
uint extraout_r1; | |
uint extraout_r1_00; | |
uint extraout_r1_01; | |
undefined4 extraout_r1_02; | |
undefined *puVar2; | |
char *pcVar3; | |
uint uVar4; | |
int *piVar5; | |
ulonglong uVar6; | |
undefined8 uVar7; | |
uint local_64; | |
uint local_60; | |
uint local_5c; | |
int *local_58; | |
uint local_54; | |
int *local_50; | |
uint local_4c; | |
uint local_48; | |
uint local_44; | |
int *local_40; | |
uint local_3c; | |
uint local_38; | |
uint local_34; | |
int *local_30; | |
int *local_2c; | |
local_2c = DAT_8f69d118; | |
pcVar3 = (char *)param_3; | |
uVar4 = param_4; | |
iVar1 = FUN_8f604c44(); | |
DAT_8f68a090 = param_2; | |
if (iVar1 == 0) { | |
DAT_8f68a098 = 1; | |
DAT_8f68a09c = 1; | |
if (DAT_8f68a094 != 0) goto LAB_8f61912c; | |
LAB_8f619200: | |
puVar2 = &DAT_8f660344; | |
local_54 = ((uint)((int)param_3 << 0x10) >> 0x18) << 0x10 | (int)param_3 << 0x18 | | |
(uint)param_3 >> 0x18 | ((uint)((int)param_3 << 8) >> 0x18) << 8; | |
local_50 = param_3; | |
uVar6 = FUN_8f63877c(param_1,DAT_8f68a090,(undefined4 *)&DAT_8f660344,&local_54,4); | |
if ((int)uVar6 != 0) { | |
LAB_8f6194b8: | |
dprintf((byte *)s_ERROR__Could_not_set_prop_reg_fo_8f6604c4,(int *)(uVar6 >> 0x20),puVar2, | |
(int)uVar6); | |
uVar6 = uVar6 & 0xffffffff | (ulonglong)extraout_r1_01 << 0x20; | |
goto LAB_8f6191e4; | |
} | |
LAB_8f619244: | |
DAT_8f68a094 = 1; | |
LAB_8f619170: | |
if (DAT_8f68a09c == 2) { | |
local_38 = param_6; | |
local_3c = ((param_6 << 0x10) >> 0x18) << 0x10 | param_6 << 0x18 | param_6 >> 0x18 | | |
((param_6 << 8) >> 0x18) << 8; | |
puVar2 = &DAT_8f660344; | |
uVar6 = FUN_8f638890(param_1,DAT_8f68a090,(undefined4 *)&DAT_8f660344,&local_3c,4); | |
if ((int)uVar6 != 0) goto LAB_8f6193c0; | |
} | |
local_34 = ((uint)((int)param_5 << 0x10) >> 0x18) << 0x10 | (int)param_5 << 0x18 | | |
(uint)param_5 >> 0x18 | ((uint)((int)param_5 << 8) >> 0x18) << 8; | |
puVar2 = &DAT_8f660344; | |
local_30 = param_5; | |
uVar6 = FUN_8f638890(param_1,DAT_8f68a090,(undefined4 *)&DAT_8f660344,&local_34,4); | |
piVar5 = (int *)uVar6; | |
if (piVar5 != (int *)0x0) { | |
dprintf((byte *)s_Failed_to_add_the_memory_informa_8f660378,piVar5,puVar2,piVar5); | |
uVar6 = uVar6 & 0xffffffff | (ulonglong)extraout_r1 << 0x20; | |
} | |
} | |
else { | |
uVar7 = FUN_8f637e54(param_1,(int *)&DAT_8f6600f0,(int *)pcVar3); | |
piVar5 = (int *)uVar7; | |
if ((int)piVar5 < 0) { | |
dprintf((byte *)s_Could_not_find_memory_node__8f6603a8,(int *)((ulonglong)uVar7 >> 0x20), | |
pcVar3,uVar4); | |
LAB_8f6194e4: | |
dprintf((byte *)s_Could_not_find__address_cells_an_8f660480,piVar5,pcVar3,piVar5); | |
uVar6 = CONCAT44(extraout_r1_02,piVar5); | |
goto LAB_8f6191e4; | |
} | |
pcVar3 = s__address_cells_8f6603c8; | |
uVar7 = FUN_8f637d68((int)param_1,(uint)piVar5,(byte *)s__address_cells_8f6603c8, | |
(uint *)&local_30); | |
if ((int)local_30 < 1) { | |
if (local_30 == (int *)0xffffffff) { | |
DAT_8f68a098 = 2; | |
dprintf((byte *)s_Using_default__addr_cell_size____8f6603d8,(int *)0x2,pcVar3,2); | |
goto LAB_8f6192bc; | |
} | |
LAB_8f6193fc: | |
dprintf((byte *)s_Error_finding_the__address_cells_8f6603fc,(int *)((ulonglong)uVar7 >> 0x20), | |
pcVar3,local_30); | |
LAB_8f61940c: | |
piVar5 = local_30; | |
if ((int)local_30 < 0) goto LAB_8f6194e4; | |
} | |
else { | |
if ((uint *)uVar7 == (uint *)0x0) goto LAB_8f6193fc; | |
uVar4 = *(uint *)uVar7; | |
DAT_8f68a098 = ((uVar4 << 0x10) >> 0x18) << 0x10 | uVar4 << 0x18 | uVar4 >> 0x18 | | |
((uVar4 << 8) >> 0x18) << 8; | |
LAB_8f6192bc: | |
pcVar3 = s__size_cells_8f660428; | |
uVar7 = FUN_8f637d68((int)param_1,(uint)piVar5,(byte *)s__size_cells_8f660428, | |
(uint *)&local_30); | |
if (0 < (int)local_30) { | |
if ((uint *)uVar7 != (uint *)0x0) { | |
uVar4 = *(uint *)uVar7; | |
DAT_8f68a09c = ((uVar4 << 0x10) >> 0x18) << 0x10 | uVar4 << 0x18 | uVar4 >> 0x18 | | |
((uVar4 << 8) >> 0x18) << 8; | |
goto LAB_8f61930c; | |
} | |
LAB_8f619500: | |
dprintf((byte *)s_Error_finding_the__size_cells_pr_8f660458, | |
(int *)((ulonglong)uVar7 >> 0x20),pcVar3,local_30); | |
goto LAB_8f61940c; | |
} | |
if (local_30 != (int *)0xffffffff) goto LAB_8f619500; | |
DAT_8f68a09c = 1; | |
dprintf((byte *)s_Using_default__size_cell_size____8f660434,(int *)0x1,pcVar3,1); | |
} | |
LAB_8f61930c: | |
if (DAT_8f68a094 == 0) { | |
if (DAT_8f68a098 != 2) goto LAB_8f619200; | |
puVar2 = &DAT_8f660344; | |
local_64 = ((param_4 << 0x10) >> 0x18) << 0x10 | param_4 << 0x18 | param_4 >> 0x18 | | |
((param_4 << 8) >> 0x18) << 8; | |
local_60 = param_4; | |
uVar6 = FUN_8f63877c(param_1,DAT_8f68a090,(undefined4 *)&DAT_8f660344,&local_64,4); | |
if ((int)uVar6 != 0) goto LAB_8f6194b8; | |
puVar2 = &DAT_8f660344; | |
local_5c = ((uint)((int)param_3 << 0x10) >> 0x18) << 0x10 | (int)param_3 << 0x18 | | |
(uint)param_3 >> 0x18 | ((uint)((int)param_3 << 8) >> 0x18) << 8; | |
local_58 = param_3; | |
uVar6 = FUN_8f638890(param_1,DAT_8f68a090,(undefined4 *)&DAT_8f660344,&local_5c,4); | |
if ((int)uVar6 != 0) goto LAB_8f6193c0; | |
goto LAB_8f619244; | |
} | |
if (DAT_8f68a098 == 2) { | |
puVar2 = &DAT_8f660344; | |
local_4c = ((param_4 << 0x10) >> 0x18) << 0x10 | param_4 << 0x18 | param_4 >> 0x18 | | |
((param_4 << 8) >> 0x18) << 8; | |
local_48 = param_4; | |
uVar6 = FUN_8f638890(param_1,DAT_8f68a090,(undefined4 *)&DAT_8f660344,&local_4c,4); | |
if ((int)uVar6 == 0) goto LAB_8f61912c; | |
} | |
else { | |
LAB_8f61912c: | |
puVar2 = &DAT_8f660344; | |
local_44 = ((uint)((int)param_3 << 0x10) >> 0x18) << 0x10 | (int)param_3 << 0x18 | | |
(uint)param_3 >> 0x18 | ((uint)((int)param_3 << 8) >> 0x18) << 8; | |
local_40 = param_3; | |
uVar6 = FUN_8f638890(param_1,DAT_8f68a090,(undefined4 *)&DAT_8f660344,&local_44,4); | |
if ((int)uVar6 == 0) goto LAB_8f619170; | |
} | |
LAB_8f6193c0: | |
dprintf((byte *)s_ERROR__Could_not_append_prop_reg_8f6604f4,(int *)(uVar6 >> 0x20),puVar2, | |
(int)uVar6); | |
uVar6 = uVar6 & 0xffffffff | (ulonglong)extraout_r1_00 << 0x20; | |
} | |
LAB_8f6191e4: | |
if (local_2c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar6,(int)(uVar6 >> 0x20),local_2c); | |
} | |
return; | |
} | |
void FUN_8f61953c(uint *param_1,undefined4 *param_2,uint param_3,int param_4) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined4 extraout_r1; | |
undefined4 uVar3; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
undefined4 extraout_r1_03; | |
undefined4 extraout_r1_04; | |
undefined4 extraout_r1_05; | |
undefined4 extraout_r1_06; | |
undefined4 extraout_r1_07; | |
undefined4 extraout_r1_08; | |
uint uVar4; | |
int *piVar5; | |
char *pcVar6; | |
uint uVar7; | |
uint uVar8; | |
uint *puVar9; | |
undefined8 uVar10; | |
uint local_34; | |
uint local_30; | |
uint local_2c; | |
uint local_28; | |
int *local_24; | |
local_24 = DAT_8f69d118; | |
uVar4 = param_3; | |
iVar2 = param_4; | |
uVar10 = FUN_8f6371a4(param_1); | |
piVar5 = (int *)((ulonglong)uVar10 >> 0x20); | |
if ((int)uVar10 == 0) { | |
uVar10 = FUN_8f6182d0((uint)param_1); | |
piVar5 = (int *)((ulonglong)uVar10 >> 0x20); | |
piVar1 = (int *)uVar10; | |
if (piVar1 == (int *)0x0) { | |
uVar7 = param_1[1]; | |
uVar4 = ((uVar7 << 0x10) >> 0x18) << 0x10 | uVar7 << 0x18; | |
uVar8 = uVar4 | uVar7 >> 0x18; | |
uVar10 = FUN_8f629c00((undefined *)param_1,(uVar8 | ((uVar7 << 8) >> 0x18) << 8) + 0x400); | |
if ((int)uVar10 == 0) { | |
uVar7 = param_1[1]; | |
uVar4 = ((uVar7 << 0x10) >> 0x18) << 0x10 | uVar7 << 0x18; | |
piVar5 = (int *)((uVar4 | uVar7 >> 0x18 | ((uVar7 << 8) >> 0x18) << 8) + 0x400); | |
piVar1 = (int *)FUN_8f638af8(param_1,param_1,(uint)piVar5); | |
if (piVar1 == (int *)0x0) { | |
piVar1 = (int *)FUN_8f637e54(param_1,(int *)s__memory_8f660584,piVar5); | |
if ((int)piVar1 < 0) { | |
dprintf((byte *)s_Could_not_find_memory_node__8f6603a8,piVar1,piVar5,uVar4); | |
uVar3 = extraout_r1_05; | |
} | |
else { | |
uVar10 = FUN_8f601128(param_1,(uint)piVar1); | |
piVar1 = (int *)uVar10; | |
if (piVar1 == (int *)0x0) { | |
uVar10 = FUN_8f637e54(param_1,(int *)s__chosen_8f6605b0,piVar5); | |
piVar1 = (int *)uVar10; | |
if ((int)piVar1 < 0) { | |
dprintf((byte *)s_Could_not_find_chosen_node__8f6605b8, | |
(int *)((ulonglong)uVar10 >> 0x20),piVar5,uVar4); | |
uVar3 = extraout_r1_08; | |
} | |
else { | |
piVar5 = piVar1; | |
if (param_2 != (undefined4 *)0x0) { | |
iVar2 = FUN_8f636de0((byte *)param_2); | |
pcVar6 = s_bootargs_8f6605d8; | |
uVar10 = FUN_8f6389c0(param_1,(uint)piVar1,(undefined4 *)s_bootargs_8f6605d8, | |
param_2,iVar2 + 1); | |
piVar5 = (int *)uVar10; | |
if (piVar5 != (int *)0x0) { | |
dprintf((byte *)s_ERROR__Cannot_update_chosen_node_8f6605e4, | |
(int *)((ulonglong)uVar10 >> 0x20),pcVar6,param_2); | |
uVar3 = extraout_r1_07; | |
piVar1 = piVar5; | |
goto LAB_8f619580; | |
} | |
} | |
if (param_4 != 0) { | |
pcVar6 = s_linux_initrd_start_8f660614; | |
local_34 = ((param_3 << 0x10) >> 0x18) << 0x10 | param_3 << 0x18 | param_3 >> 0x18 | |
| ((param_3 << 8) >> 0x18) << 8; | |
puVar9 = &local_34; | |
local_30 = param_3; | |
uVar10 = FUN_8f63877c(param_1,(uint)piVar1, | |
(undefined4 *)s_linux_initrd_start_8f660614,puVar9,4); | |
if ((int *)uVar10 != (int *)0x0) { | |
dprintf((byte *)s_ERROR__Cannot_update_chosen_node_8f660628, | |
(int *)((ulonglong)uVar10 >> 0x20),pcVar6,puVar9); | |
uVar3 = extraout_r1_06; | |
piVar1 = (int *)uVar10; | |
goto LAB_8f619580; | |
} | |
local_28 = param_3 + param_4; | |
pcVar6 = s_linux_initrd_end_8f660660; | |
local_2c = (local_28 * 0x10000 >> 0x18) << 0x10 | local_28 * 0x1000000 | | |
local_28 >> 0x18 | (local_28 * 0x100 >> 0x18) << 8; | |
puVar9 = &local_2c; | |
uVar10 = FUN_8f63877c(param_1,(uint)piVar1, | |
(undefined4 *)s_linux_initrd_end_8f660660,puVar9,4); | |
piVar5 = (int *)uVar10; | |
if (piVar5 != (int *)0x0) { | |
dprintf((byte *)s_ERROR__Cannot_update_chosen_node_8f660674, | |
(int *)((ulonglong)uVar10 >> 0x20),pcVar6,puVar9); | |
uVar3 = extraout_r1_00; | |
piVar1 = piVar5; | |
goto LAB_8f619580; | |
} | |
} | |
FUN_8f638e54(param_1); | |
uVar3 = extraout_r1_01; | |
piVar1 = piVar5; | |
} | |
} | |
else { | |
dprintf((byte *)s_ERROR__Cannot_update_memory_node_8f66058c, | |
(int *)((ulonglong)uVar10 >> 0x20),piVar5,uVar4); | |
uVar3 = extraout_r1_04; | |
} | |
} | |
} | |
else { | |
dprintf((byte *)s_Failed_to_move_resize_dtb_buffer_8f66055c,piVar1,piVar5,uVar4); | |
uVar3 = extraout_r1_03; | |
} | |
} | |
else { | |
dprintf((byte *)s_Error__Fdt_addresses_overlap_wit_8f660528, | |
(int *)((ulonglong)uVar10 >> 0x20),uVar4,uVar8); | |
uVar3 = extraout_r1_02; | |
} | |
goto LAB_8f619580; | |
} | |
} | |
dprintf((byte *)s_Invalid_device_tree_header_8f6606ac,piVar5,uVar4,iVar2); | |
uVar3 = extraout_r1; | |
piVar1 = (int *)0x1; | |
LAB_8f619580: | |
if (local_24 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(piVar1,uVar3,local_24); | |
} | |
return; | |
} | |
void FUN_8f6197cc(int param_1,uint param_2) | |
{ | |
short sVar1; | |
int *piVar2; | |
int iVar3; | |
int iVar4; | |
uint *puVar5; | |
int iVar6; | |
int iVar7; | |
piVar2 = DAT_8f69d118; | |
if (param_2 != 0) { | |
sVar1 = (short)param_2; | |
iVar4 = param_1 + 0xc; | |
iVar3 = param_1 + 8; | |
iVar6 = param_1; | |
do { | |
puVar5 = *(uint **)(iVar6 + 8); | |
iVar7 = iVar6 + 0xc; | |
param_1 = iVar3 + 0xc; | |
if (puVar5 == (uint *)0x0) { | |
*(undefined4 *)(iVar6 + 8) = 0x110a000; | |
} | |
if (puVar5 == (uint *)0x0) { | |
puVar5 = (uint *)0x110a000; | |
} | |
param_2 = *puVar5 & ~((uint)*(byte *)(iVar3 + -3) << (*(uint *)(iVar3 + -8) & 0xff)) | | |
(uint)*(byte *)(iVar3 + -4) << (*(uint *)(iVar3 + -8) & 0xff); | |
*puVar5 = param_2; | |
iVar3 = param_1; | |
iVar6 = iVar7; | |
} while (iVar7 != (short)(sVar1 - 1U & 0xff) * 0xc + iVar4); | |
} | |
if (piVar2 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,param_2,piVar2); | |
} | |
return; | |
} | |
void FUN_8f61986c(int param_1,uint param_2) | |
{ | |
short sVar1; | |
int *piVar2; | |
int iVar3; | |
int iVar4; | |
uint *puVar5; | |
int iVar6; | |
int iVar7; | |
piVar2 = DAT_8f69d118; | |
if (param_2 != 0) { | |
sVar1 = (short)param_2; | |
iVar4 = param_1 + 0xc; | |
iVar3 = param_1 + 8; | |
iVar6 = param_1; | |
do { | |
puVar5 = *(uint **)(iVar6 + 8); | |
iVar7 = iVar6 + 0xc; | |
param_1 = iVar3 + 0xc; | |
if (puVar5 == (uint *)0x0) { | |
*(undefined4 *)(iVar6 + 8) = 0x110a000; | |
} | |
if (puVar5 == (uint *)0x0) { | |
puVar5 = (uint *)0x110a000; | |
} | |
param_2 = *puVar5 & ~((uint)*(byte *)(iVar3 + -3) << (*(uint *)(iVar3 + -8) & 0xff)) | | |
(uint)*(byte *)(iVar3 + -4) << (*(uint *)(iVar3 + -8) & 0xff); | |
*puVar5 = param_2; | |
iVar3 = param_1; | |
iVar6 = iVar7; | |
} while (iVar7 != (short)(sVar1 - 1U & 0xff) * 0xc + iVar4); | |
} | |
if (piVar2 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,param_2,piVar2); | |
} | |
return; | |
} | |
void FUN_8f61990c(undefined4 param_1,int *param_2,int param_3) | |
{ | |
int *piVar1; | |
undefined4 extraout_r1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
if (param_3 == 0) { | |
dprintf((byte *)s_ERROR__Boot_Invalid__RSA_KEY_is_N_8f6606e4,param_2,param_2,0); | |
uVar2 = CONCAT44(extraout_r1,0xffffffff); | |
} | |
else { | |
uVar2 = FUN_8f651d7c(0,(undefined)param_1,(char)param_2,(char)param_3,1); | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6199b4) | |
void FUN_8f619974(int *param_1,uint param_2,int *param_3,undefined4 *param_4) | |
{ | |
FUN_8f619cfc(param_1,param_2,param_4,(int *)((uint)param_3 & 0xff)); | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f61b048) | |
void FUN_8f6199b8(undefined4 param_1,undefined4 param_2) | |
{ | |
byte bVar1; | |
int *piVar2; | |
undefined4 uVar3; | |
uint uVar4; | |
int *piVar5; | |
undefined8 uVar6; | |
piVar5 = DAT_8f69d118; | |
uVar6 = CONCAT44(param_2,param_1); | |
if (DAT_8f68a0a0 != 1) { | |
uVar6 = FUN_8f61af94(param_1,param_2); | |
uVar6 = FUN_8f61afd8((int)uVar6,(int)((ulonglong)uVar6 >> 0x20)); | |
DAT_8f68a0a0 = 1; | |
} | |
piVar2 = DAT_8f69d118; | |
bVar1 = DAT_8f68a1b6; | |
uVar3 = (undefined4)((ulonglong)uVar6 >> 0x20); | |
if (piVar5 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar6,uVar3,piVar5); | |
} | |
uVar4 = (uint)DAT_8f68a1fc; | |
piVar5 = DAT_8f69d118; | |
if (uVar4 != 0) { | |
FUN_8f61285c(&DAT_8f68a19c,uVar3); | |
} | |
FUN_8f612a00(&DAT_8f68a19c,0); | |
uVar6 = FUN_8f612890(&DAT_8f68a19c,0); | |
if ((int)uVar6 == 0) { | |
FUN_8f612a00(&DAT_8f68a19c,1); | |
uVar6 = FUN_8f612890(&DAT_8f68a19c,1); | |
if ((int)uVar6 == 0) { | |
*(uint *)(DAT_8f68a184 + 0x400) = (uint)(bVar1 >> 1) << 5 | 0xe000f; | |
if (piVar2 == DAT_8f69d118) { | |
FUN_8f619ff0(&DAT_8f68a19c,(int *)(DAT_8f68a184 + 0x400), | |
(uint)(DAT_8f68a1ce >> 1) << 5 | 0xe020f,4); | |
return; | |
} | |
goto LAB_8f61a304; | |
} | |
uVar6 = dprintf((byte *)s_CRYPTO__BAM_Write_FIFO_init_erro_8f6609a0, | |
(int *)((ulonglong)uVar6 >> 0x20),uVar4,piVar5); | |
} | |
else { | |
uVar6 = dprintf((byte *)s_CRYPTO__BAM_Read_FIFO_init_error_8f66097c, | |
(int *)((ulonglong)uVar6 >> 0x20),uVar4,piVar5); | |
} | |
if (piVar2 == DAT_8f69d118) { | |
dprintf((byte *)s_CRYPTO__BAM_init_error_8f6609c4,(int *)((ulonglong)uVar6 >> 0x20),piVar2, | |
DAT_8f69d118); | |
return; | |
} | |
LAB_8f61a304: | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar6,(int)((ulonglong)uVar6 >> 0x20),piVar2); | |
} | |
void FUN_8f619a14(void) | |
{ | |
undefined4 *puVar1; | |
undefined4 *puVar2; | |
undefined4 uStack_34; | |
undefined4 local_30 [5]; | |
int *local_1c; | |
local_30[0] = DAT_8f660800; | |
local_30[1] = DAT_8f660804; | |
local_30[2] = DAT_8f660808; | |
local_30[3] = DAT_8f66080c; | |
local_30[4] = DAT_8f660810; | |
local_1c = DAT_8f69d118; | |
DAT_8f68a0a4 = 0; | |
DAT_8f68a0a8 = 0; | |
FUN_8f636968((uint *)&DAT_8f68a0ac,0,0x40); | |
puVar1 = (undefined4 *)0x8f68a0f4; | |
puVar2 = &uStack_34; | |
do { | |
puVar2 = puVar2 + 1; | |
puVar1 = puVar1 + 1; | |
*puVar1 = *puVar2; | |
} while (puVar2 != local_30 + 4); | |
DAT_8f68a0ec = 0; | |
if (local_1c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,local_1c,DAT_8f69d118); | |
} | |
void FUN_8f619ab0(void) | |
{ | |
undefined4 *puVar1; | |
undefined4 *puVar2; | |
undefined4 uStack_40; | |
undefined4 local_3c [8]; | |
int *local_1c; | |
puVar2 = &uStack_40; | |
local_3c[0] = *(undefined4 *)PTR_DAT_8f619b48; | |
local_3c[1] = *(undefined4 *)(PTR_DAT_8f619b48 + 4); | |
local_3c[2] = *(undefined4 *)(PTR_DAT_8f619b48 + 8); | |
local_3c[3] = *(undefined4 *)(PTR_DAT_8f619b48 + 0xc); | |
DAT_8f68a10c = 0; | |
DAT_8f68a110 = 0; | |
local_3c[4] = *(undefined4 *)(PTR_DAT_8f619b48 + 0x10); | |
local_3c[5] = *(undefined4 *)(PTR_DAT_8f619b48 + 0x14); | |
local_3c[6] = *(undefined4 *)(PTR_DAT_8f619b48 + 0x18); | |
local_3c[7] = *(undefined4 *)(PTR_DAT_8f619b48 + 0x1c); | |
local_1c = DAT_8f69d118; | |
FUN_8f636968((uint *)&DAT_8f68a114,0,0x40); | |
puVar1 = (undefined4 *)0x8f68a15c; | |
do { | |
puVar2 = puVar2 + 1; | |
puVar1 = puVar1 + 1; | |
*puVar1 = *puVar2; | |
} while (puVar2 != local_3c + 7); | |
DAT_8f68a154 = 0; | |
if (local_1c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,local_1c,DAT_8f69d118); | |
} | |
void FUN_8f619b4c(uint *param_1,int *param_2,int param_3,uint param_4) | |
{ | |
uint uVar1; | |
undefined4 uVar3; | |
int *extraout_r1; | |
int *extraout_r1_00; | |
int *extraout_r1_01; | |
int iVar4; | |
uint uVar5; | |
int iVar6; | |
uint uVar7; | |
uint uVar8; | |
int *piVar9; | |
uint uVar10; | |
int local_30; | |
int *local_2c; | |
int iVar2; | |
uVar10 = (uint)*(byte *)(param_1 + 0x12); | |
iVar6 = 0; | |
local_2c = DAT_8f69d118; | |
uVar7 = 1; | |
local_30 = 1; | |
iVar4 = param_3 + uVar10; | |
iVar2 = 1; | |
piVar9 = param_2; | |
while( true ) { | |
uVar1 = FUN_8f61b1a0(iVar2,piVar9); | |
uVar5 = iVar4 - iVar6; | |
piVar9 = param_2; | |
if (uVar1 < uVar5) { | |
uVar5 = FUN_8f61b1a0(uVar1,iVar4); | |
uVar1 = (uint)*(byte *)(param_1 + 0x12); | |
if (uVar1 == 0) { | |
piVar9 = (int *)((int)param_2 + (iVar6 - uVar10)); | |
uVar8 = uVar5; | |
} | |
else { | |
uVar8 = uVar5 - uVar1; | |
uVar1 = 0; | |
} | |
} | |
else { | |
uVar1 = 1; | |
if (*(byte *)(param_1 + 0x12) == 0) { | |
uVar8 = uVar5 - uVar10; | |
piVar9 = (int *)((int)param_2 + (iVar6 - uVar10)); | |
} | |
else { | |
uVar8 = uVar5 - *(byte *)(param_1 + 0x12); | |
} | |
} | |
FUN_8f61b04c(param_1,uVar5,param_4,uVar7,uVar1); | |
FUN_8f61b0c0((int *)param_1,(uint)piVar9,uVar8,uVar5,&local_30); | |
if (local_30 != 1) { | |
dprintf((byte *)(s__do_sha_update_returns_error_fro_8f660833 + 1),extraout_r1,uVar8,local_30); | |
uVar3 = 2; | |
goto LAB_8f619cc0; | |
} | |
uVar7 = param_4; | |
FUN_8f61b110(param_1 + 0x15,&local_30,param_4); | |
if (local_30 != 1) { | |
dprintf((byte *)s_do_sha_update_returns_error_from_8f660868,extraout_r1_00,uVar7,local_30); | |
uVar3 = 2; | |
goto LAB_8f619cc0; | |
} | |
piVar9 = extraout_r1_00; | |
if (uVar1 == 0) { | |
FUN_8f61b15c(param_1,extraout_r1_00); | |
piVar9 = extraout_r1_01; | |
} | |
iVar6 = iVar6 + uVar5; | |
*(undefined *)(param_1 + 0x12) = 0; | |
if (iVar4 == iVar6) break; | |
uVar7 = 0; | |
iVar2 = iVar4; | |
} | |
uVar3 = 0; | |
LAB_8f619cc0: | |
if (local_2c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar3,&DAT_8f69d118,local_2c); | |
} | |
void FUN_8f619cfc(int *param_1,uint param_2,undefined4 *param_3,int *param_4) | |
{ | |
int *piVar1; | |
undefined4 *puVar2; | |
int *piVar3; | |
undefined4 uVar4; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
undefined8 uVar5; | |
uint auStack_8c [4]; | |
uint auStack_7c [22]; | |
int *local_24; | |
local_24 = DAT_8f69d118; | |
uVar5 = FUN_8f600c64(param_1,param_2); | |
uVar4 = (undefined4)((ulonglong)uVar5 >> 0x20); | |
piVar1 = (int *)uVar5; | |
if (param_4 == (int *)0x1) { | |
if (piVar1 == (int *)0x1) { | |
if (local_24 == DAT_8f69d118) { | |
if (param_3 == (undefined4 *)0x0) { | |
param_3 = (undefined4 *)&DAT_8f69d0d8; | |
} | |
piVar1 = DAT_8f69d118; | |
uVar5 = FUN_8f652f6c(auStack_7c); | |
if ((int)uVar5 != 0) { | |
FUN_8f652c98(auStack_7c,param_1,param_2); | |
FUN_8f652dd4((undefined *)param_3,auStack_7c); | |
FUN_8f63b3a0((byte *)auStack_7c,(byte *)0x60); | |
uVar5 = CONCAT44(extraout_r1_01,param_3); | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),piVar1); | |
} | |
return; | |
} | |
goto LAB_8f619dc8; | |
} | |
if (piVar1 != (int *)0x2) goto LAB_8f619d3c; | |
if ((param_1 != (int *)0x0 && param_2 != 0) && (param_3 != (undefined4 *)0x0)) { | |
FUN_8f6199b8(2,uVar4); | |
FUN_8f619a14(); | |
piVar3 = (int *)FUN_8f619b4c(&DAT_8f68a0a4,param_1,param_2,1); | |
piVar1 = param_4; | |
param_4 = piVar3; | |
if (piVar3 == (int *)0x0) { | |
puVar2 = FUN_8f63685c(param_3,(undefined4 *)PTR_DAT_8f619ecc,0x14); | |
uVar5 = CONCAT44(extraout_r1_00,puVar2); | |
} | |
else { | |
LAB_8f619e9c: | |
dprintf((byte *)s_do_sha_update_returns_error__d_8f66089c,param_4,param_2,piVar1); | |
uVar5 = dprintf((byte *)s_crypto_sha256_returns_error__d_8f6608bc,param_4,param_2,piVar1); | |
piVar1 = (int *)uVar5; | |
if (param_4 != (int *)0x0) goto LAB_8f619d40; | |
} | |
goto LAB_8f619e40; | |
} | |
LAB_8f619d80: | |
param_4 = (int *)0x3; | |
} | |
else if (param_4 == (int *)0x2) { | |
if (piVar1 == (int *)0x1) { | |
if (local_24 == DAT_8f69d118) { | |
if (param_3 == (undefined4 *)0x0) { | |
param_3 = (undefined4 *)&DAT_8f69d0ec; | |
} | |
piVar1 = DAT_8f69d118; | |
FUN_8f653130(auStack_8c); | |
if (param_2 != 0) { | |
FUN_8f652ff0(auStack_8c,param_1,param_2); | |
} | |
FUN_8f6531e0((undefined *)param_3,auStack_8c); | |
FUN_8f63b3a0((byte *)auStack_8c,(byte *)0x70); | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_3,extraout_r1_02,piVar1); | |
} | |
return; | |
} | |
goto LAB_8f619dc8; | |
} | |
if (piVar1 == (int *)0x2) { | |
if ((param_1 == (int *)0x0 || param_2 == 0) || (param_3 == (undefined4 *)0x0)) | |
goto LAB_8f619d80; | |
FUN_8f6199b8(2,uVar4); | |
FUN_8f619ab0(); | |
param_4 = (int *)FUN_8f619b4c(&DAT_8f68a10c,param_1,param_2,2); | |
if (param_4 != (int *)0x0) goto LAB_8f619e9c; | |
puVar2 = FUN_8f63685c(param_3,(undefined4 *)PTR_DAT_8f619ec8,0x20); | |
uVar5 = CONCAT44(extraout_r1,puVar2); | |
LAB_8f619e40: | |
if (local_24 == DAT_8f69d118) { | |
return; | |
} | |
goto LAB_8f619dc8; | |
} | |
} | |
else { | |
LAB_8f619d3c: | |
param_4 = (int *)0x2; | |
} | |
LAB_8f619d40: | |
uVar5 = CONCAT44(param_4,piVar1); | |
if (local_24 == DAT_8f69d118) { | |
dprintf((byte *)s_crypto_sha256_returns_error__d_8f6608bc,param_4,local_24,DAT_8f69d118); | |
return; | |
} | |
LAB_8f619dc8: | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),local_24); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f619f0c) | |
void FUN_8f619ed0(void) | |
{ | |
return; | |
} | |
void FUN_8f619f10(int param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
int *piVar2; | |
int *extraout_r1; | |
int *piVar3; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
piVar3 = DAT_8f69d118; | |
piVar2 = (int *)FUN_8f635d28(0x40,8); | |
uVar4 = FUN_8f6366a8(piVar2,param_1 * 8 + 0x3fU & 0xffffffc0); | |
piVar2 = (int *)((ulonglong)uVar4 >> 0x20); | |
if ((int)uVar4 == 0) { | |
dprintf((byte *)s_Could_not_allocate_fifo_buffer_8f6608dc,piVar2,param_3,piVar3); | |
piVar2 = extraout_r1; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,piVar2,piVar1); | |
} | |
void FUN_8f619f80(int param_1,int *param_2,uint param_3,uint param_4) | |
{ | |
int *piVar1; | |
int *piVar2; | |
undefined4 uVar3; | |
bool bVar4; | |
piVar1 = DAT_8f69d118; | |
FUN_8f612df8((uint *)(param_1 + *param_2 * 0x10),param_3,param_4,0); | |
uVar3 = FUN_8f625b24(param_1 + *param_2 * 0x10,0x10); | |
piVar2 = DAT_8f69d118; | |
bVar4 = piVar1 == DAT_8f69d118; | |
*param_2 = *param_2 + 1; | |
if (bVar4) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar3,piVar1,piVar2); | |
} | |
void FUN_8f619ff0(int *param_1,int *param_2,uint param_3,byte param_4) | |
{ | |
int iVar1; | |
int iVar2; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 uVar3; | |
uint auStack_2c [4]; | |
int *local_1c; | |
local_1c = DAT_8f69d118; | |
FUN_8f612df8(auStack_2c,(uint)param_2,param_3,0); | |
FUN_8f625b24((uint)auStack_2c,0x10); | |
iVar1 = FUN_8f602f04(auStack_2c,extraout_r1); | |
uVar3 = 0x10; | |
iVar2 = FUN_8f612b8c((int)param_1,1,iVar1,(int *)0x10,param_4 | 0x88); | |
if (iVar2 == 0) { | |
FUN_8f612a9c(param_1,(int *)0x1,1); | |
FUN_8f6126fc(param_1,1,1); | |
FUN_8f612b3c((int)param_1,1); | |
uVar3 = extraout_r1_00; | |
} | |
else { | |
dprintf((byte *)s_CRYPTO_WRITE_REG__Reg_write_fail_8f6608fc,param_2,iVar1,uVar3); | |
uVar3 = extraout_r1_01; | |
} | |
if (local_1c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar2,uVar3,local_1c); | |
} | |
void FUN_8f61a308(int *param_1,uint *param_2,uint param_3) | |
{ | |
int *piVar1; | |
int iVar2; | |
int iVar3; | |
uint uVar4; | |
uint uVar5; | |
uint uVar6; | |
int *piVar7; | |
undefined8 uVar8; | |
piVar1 = DAT_8f69d118; | |
if (param_3 == 1) { | |
if ((param_2[0x14] & 2) != 0) { | |
param_3 = 0x10001; | |
} | |
iVar3 = *param_1; | |
iVar2 = param_1[2]; | |
uVar5 = 5; | |
param_1[3] = 0; | |
param_1[4] = 0; | |
} | |
else { | |
if (param_3 != 2) { | |
uVar8 = dprintf((byte *)s_crypto_set_sha_ctx_invalid_auth_a_8f6609dc,(int *)param_2,param_3, | |
DAT_8f69d118); | |
if (piVar1 == DAT_8f69d118) { | |
dprintf((byte *)s_Authentication_alg_config_failed_8f660a08, | |
(int *)((ulonglong)uVar8 >> 0x20),piVar1,DAT_8f69d118); | |
return; | |
} | |
goto LAB_8f61a4c4; | |
} | |
uVar5 = param_2[0x14]; | |
iVar3 = *param_1; | |
param_1[3] = 0; | |
param_1[4] = 0; | |
param_3 = 0x201; | |
if ((uVar5 & 2) != 0) { | |
param_3 = 0x10201; | |
} | |
iVar2 = param_1[2]; | |
uVar5 = 8; | |
} | |
piVar7 = param_1 + 3; | |
FUN_8f619f80(iVar2,piVar7,iVar3 + 0x200,0); | |
iVar2 = 0; | |
FUN_8f619f80(param_1[2],piVar7,*param_1 + 0x300,param_3); | |
uVar6 = 0; | |
do { | |
while ((param_2[0x14] & 1) == 0) { | |
uVar6 = uVar6 + 1; | |
FUN_8f619f80(param_1[2],piVar7,*param_1 + 0x310 + iVar2,*(uint *)((int)param_2 + iVar2 + 0x54) | |
); | |
iVar2 = iVar2 + 4; | |
if (uVar5 <= uVar6) goto LAB_8f61a430; | |
} | |
uVar4 = *(uint *)((int)param_2 + iVar2 + 0x54); | |
uVar6 = uVar6 + 1; | |
FUN_8f619f80(param_1[2],piVar7,*param_1 + 0x310 + iVar2, | |
uVar4 << 0x18 | (uVar4 >> 8 & 0xff) << 0x10 | (uVar4 >> 0x10 & 0xff) << 8 | | |
uVar4 >> 0x18); | |
iVar2 = iVar2 + 4; | |
} while (uVar6 < uVar5); | |
LAB_8f61a430: | |
uVar8 = FUN_8f619f80(param_1[2],piVar7,*param_1 + 0x390,*param_2); | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f619f80(param_1[2],piVar7,*param_1 + 0x394,param_2[1]); | |
return; | |
} | |
LAB_8f61a4c4: | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar8,(int)((ulonglong)uVar8 >> 0x20),piVar1); | |
} | |
void FUN_8f61a4c8(int **param_1,int *param_2,uint param_3) | |
{ | |
int *piVar1; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
int *piVar2; | |
int *piVar3; | |
int **ppiVar4; | |
int **ppiVar5; | |
uint uVar6; | |
uint uVar7; | |
undefined4 uVar8; | |
int *piVar9; | |
undefined8 uVar10; | |
piVar1 = DAT_8f69d118; | |
piVar2 = *param_1; | |
piVar9 = (int *)param_2[0x13]; | |
if ((uint)(*piVar2 << 8) >> 0x18 == 0) { | |
uVar6 = param_3 & 0x3f; | |
if (uVar6 == 0) { | |
uVar7 = uVar6; | |
piVar3 = (int *)((int)piVar9 + 0x3fU & 0xffffffc0); | |
} | |
else { | |
dprintf((byte *)s_Data_start_not_aligned_at_burst_l_8f660a2c,param_2,piVar2,0); | |
uVar6 = param_3 - (param_3 & 0xffffffc0); | |
piVar2 = *param_1; | |
uVar7 = param_3 & 0xffffffc0; | |
piVar3 = (int *)((int)piVar9 + uVar6 + 0x3f & 0xffffffc0); | |
} | |
} | |
else { | |
uVar6 = 0; | |
uVar7 = uVar6; | |
piVar3 = piVar9; | |
} | |
ppiVar5 = param_1 + 3; | |
ppiVar4 = param_1 + 6; | |
FUN_8f619f80((int)param_1[2],(int *)ppiVar5,(uint)(piVar2 + 0xc2),uVar6); | |
FUN_8f619f80((int)param_1[2],(int *)ppiVar5,(uint)(*param_1 + 0xc1),(uint)piVar9); | |
FUN_8f619f80((int)param_1[2],(int *)ppiVar5,(uint)(*param_1 + 0x44),(uint)piVar3); | |
FUN_8f619f80((int)param_1[2],(int *)ppiVar5,(uint)(*param_1 + 0x48),5); | |
piVar2 = param_1[2] + (int)param_1[4] * 4; | |
piVar9 = (int *)((int)param_1[2] + ((int)param_1[3] * 0x10 - (int)piVar2)); | |
uVar10 = FUN_8f612b8c((int)ppiVar4,1,(int)piVar2,piVar9,0x8c); | |
if ((int)uVar10 != 0) { | |
dprintf((byte *)s_CRYPTO_ADD_DESC__Adding_desc_fai_8f660a58,(int *)((ulonglong)uVar10 >> 0x20), | |
piVar2,piVar9); | |
} | |
param_1[4] = param_1[3]; | |
FUN_8f612a9c((int *)ppiVar4,(int *)0x1,1); | |
FUN_8f6126fc((int *)ppiVar4,1,1); | |
FUN_8f612b3c((int)ppiVar4,1); | |
if (uVar7 == 0) { | |
FUN_8f625b24(param_3,(int)piVar3); | |
} | |
else { | |
FUN_8f625b24(uVar7,(int)piVar3); | |
param_3 = uVar7; | |
} | |
uVar10 = FUN_8f612ce4((int *)ppiVar4,(int *)0x1,param_3,piVar3,0xd0); | |
piVar2 = (int *)((ulonglong)uVar10 >> 0x20); | |
if ((int)uVar10 == 0) { | |
FUN_8f625b24((uint)param_1[5],0x80); | |
param_3 = FUN_8f602f04(param_1[5],extraout_r1_00); | |
piVar3 = (int *)0x80; | |
uVar10 = FUN_8f612ce4((int *)ppiVar4,(int *)0x0,param_3,(int *)0x80,0x80); | |
piVar2 = (int *)((ulonglong)uVar10 >> 0x20); | |
if ((int)uVar10 == 0) { | |
uVar8 = 1; | |
FUN_8f6126fc((int *)ppiVar4,1,1); | |
FUN_8f612b3c((int)ppiVar4,1); | |
FUN_8f6126fc((int *)ppiVar4,0,1); | |
FUN_8f612b3c((int)ppiVar4,0); | |
FUN_8f625b24((uint)param_1[5],0x80); | |
goto LAB_8f61a634; | |
} | |
} | |
dprintf((byte *)s_Crypto_send_data_failed_8f660a80,piVar2,param_3,piVar3); | |
uVar8 = 2; | |
LAB_8f61a634: | |
FUN_8f619ff0((int *)ppiVar4,*param_1 + 0x40,0,2); | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar8,extraout_r1,piVar1); | |
} | |
return; | |
} | |
void FUN_8f61a7c8(int param_1,undefined4 *param_2,int param_3) | |
{ | |
int iVar1; | |
int *piVar2; | |
undefined4 uVar3; | |
int *extraout_r1; | |
undefined4 *extraout_r1_00; | |
uint uVar4; | |
int *piVar5; | |
uint uVar6; | |
int iVar7; | |
piVar2 = DAT_8f69d118; | |
iVar7 = *(int *)(param_1 + 0x14); | |
uVar4 = *(uint *)(iVar7 + 0x60); | |
piVar5 = (int *)(uVar4 << 0x18 | (uVar4 >> 8 & 0xff) << 0x10 | (uVar4 >> 0x10 & 0xff) << 8 | | |
uVar4 >> 0x18); | |
uVar4 = (uint)piVar5 & 0x104001; | |
uVar6 = *(uint *)(iVar7 + 100); | |
if ((uVar4 != 0) || ((uVar6 >> 0x18 & 2) != 0)) { | |
FUN_8f603e98((int *)(uint)*(byte *)(param_1 + 4)); | |
dprintf((byte *)s_crypto_get_digest_status_error_8f660a9c,extraout_r1,param_3,uVar4); | |
dprintf((byte *)s_status____x_status2____x_8f660abc,piVar5, | |
uVar6 << 0x18 | (uVar6 >> 8 & 0xff) << 0x10 | (uVar6 >> 0x10 & 0xff) << 8 | | |
uVar6 >> 0x18,uVar4); | |
uVar3 = 2; | |
param_2 = extraout_r1_00; | |
goto LAB_8f61a83c; | |
} | |
if (param_3 == 1) { | |
uVar4 = 5; | |
LAB_8f61a870: | |
param_2 = param_2 + -1; | |
uVar6 = 0; | |
do { | |
iVar1 = uVar6 * 4; | |
uVar6 = uVar6 + 1; | |
param_2 = param_2 + 1; | |
*param_2 = *(undefined4 *)(iVar7 + iVar1); | |
} while (uVar6 < uVar4); | |
} | |
else if (param_3 == 2) { | |
uVar4 = 8; | |
goto LAB_8f61a870; | |
} | |
uVar3 = 1; | |
LAB_8f61a83c: | |
if (piVar2 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar3,param_2,piVar2); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f61a964) | |
void FUN_8f61a930(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f61a99c) | |
void FUN_8f61a968(undefined4 param_1,int *param_2) | |
{ | |
int *piVar1; | |
undefined *puVar2; | |
undefined *puVar3; | |
undefined *puVar4; | |
char *pcVar5; | |
int *piVar6; | |
int *extraout_r1; | |
int *extraout_r1_00; | |
int *piVar7; | |
int *in_lr; | |
undefined8 uVar8; | |
piVar1 = DAT_8f69d118; | |
pcVar5 = (char *)DAT_8f69d118; | |
piVar7 = DAT_8f69d118; | |
uVar8 = FUN_8f610bf4((int *)(s_gcc_usb30_master_clk_8f65acd8 + 4),param_2,DAT_8f69d118); | |
piVar6 = (int *)((ulonglong)uVar8 >> 0x20); | |
puVar2 = (undefined *)uVar8; | |
if (puVar2 == (undefined *)0x0) { | |
pcVar5 = s_platform_msm8953_acpuclock_c_8f65a5ac; | |
piVar7 = (int *)0x19b; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0x19b); | |
piVar6 = extraout_r1_00; | |
} | |
uVar8 = FUN_8f610bf4((int *)s_usb30_phy_reset_8f65aa04,piVar6,pcVar5); | |
piVar6 = (int *)((ulonglong)uVar8 >> 0x20); | |
puVar3 = (undefined *)uVar8; | |
if (puVar3 == (undefined *)0x0) { | |
pcVar5 = s_platform_msm8953_acpuclock_c_8f65a5ac; | |
piVar7 = (int *)0x19f; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0x19f); | |
piVar6 = extraout_r1; | |
} | |
puVar4 = (undefined *)FUN_8f610bf4((int *)s_usb30_pipe_clk_8f65a65c,piVar6,pcVar5); | |
if (puVar4 == (undefined *)0x0) { | |
piVar7 = (int *)0x1a2; | |
pcVar5 = s_platform_msm8953_acpuclock_c_8f65a5ac; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm8953_acpuclock_c_8f65a5ac,0x1a2); | |
} | |
uVar8 = FUN_8f6109b4(puVar2,1); | |
piVar6 = (int *)((ulonglong)uVar8 >> 0x20); | |
if ((int)uVar8 == 0) { | |
uVar8 = FUN_8f6109b4(puVar3,1); | |
if ((int)uVar8 == 0) { | |
uVar8 = FUN_8f6109b4(puVar4,1); | |
if ((int)uVar8 == 0) { | |
FUN_8f6104fc(100); | |
uVar8 = FUN_8f6109b4(puVar4,0); | |
piVar6 = (int *)((ulonglong)uVar8 >> 0x20); | |
if ((int)uVar8 != 0) { | |
if (piVar1 == DAT_8f69d118) { | |
pcVar5 = s_Failed_to_deassert_usb_pipe_clk_8f65aaac; | |
goto LAB_8f60403c; | |
} | |
goto LAB_8f604020; | |
} | |
} | |
else { | |
dprintf((byte *)s_Failed_to_assert_usb30_pipe_clk_8f65aa88,(int *)((ulonglong)uVar8 >> 0x20) | |
,pcVar5,piVar7); | |
} | |
uVar8 = FUN_8f6109b4(puVar3,0); | |
piVar6 = (int *)((ulonglong)uVar8 >> 0x20); | |
if ((int)uVar8 != 0) { | |
if (piVar1 == DAT_8f69d118) { | |
pcVar5 = s_Failed_to_deassert_usb30_phy_com_8f65aad0; | |
goto LAB_8f60403c; | |
} | |
goto LAB_8f604020; | |
} | |
} | |
else { | |
dprintf((byte *)s_Failed_to_assert_usb30_phy_reset_8f65aa60,(int *)((ulonglong)uVar8 >> 0x20), | |
pcVar5,piVar7); | |
} | |
uVar8 = FUN_8f6109b4(puVar2,0); | |
if ((int)uVar8 == 0) { | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
} | |
else if (piVar1 == DAT_8f69d118) { | |
dprintf((byte *)s_Failed_to_deassert_usb30_master_c_8f65aafc,(int *)((ulonglong)uVar8 >> 0x20) | |
,piVar1,DAT_8f69d118); | |
return; | |
} | |
} | |
else if (piVar1 == DAT_8f69d118) { | |
pcVar5 = s_Failed_to_assert_usb30_master_re_8f65aa34; | |
LAB_8f60403c: | |
dprintf((byte *)pcVar5,piVar6,piVar1,DAT_8f69d118); | |
return; | |
} | |
LAB_8f604020: | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar8,(int)((ulonglong)uVar8 >> 0x20),piVar1); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61a9a0(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
int *piVar2; | |
int *piVar3; | |
uint uVar4; | |
int *piVar5; | |
uint uVar6; | |
int iVar7; | |
int iVar8; | |
undefined8 uVar9; | |
piVar1 = DAT_8f69d118; | |
uVar9 = FUN_8f601034(param_1,param_2); | |
uVar4 = (uint)uVar9; | |
uVar9 = FUN_8f600ff8(uVar4,(int)((ulonglong)uVar9 >> 0x20)); | |
iVar7 = (int)uVar9; | |
if (uVar4 == 0 || iVar7 == 0) { | |
piVar5 = (int *)0x0; | |
uVar9 = FUN_8f603080(); | |
_DAT_00078604 = 1; | |
if ((uint)uVar9 < 0x20000000) { | |
_DAT_00078048 = 8; | |
iVar7 = FUN_8f61a930((uint)uVar9,(int)((ulonglong)uVar9 >> 0x20)); | |
if (iVar7 != 0) { | |
uRam00078004 = 0xe1; | |
} | |
_DAT_000780a4 = 0x82; | |
_DAT_00078104 = 3; | |
_DAT_000780f8 = 0xd5; | |
_DAT_000780fc = 0xaa; | |
_DAT_00078100 = 0x4d; | |
_DAT_00078094 = 1; | |
_DAT_00078088 = 0x2b; | |
_DAT_0007808c = 0x68; | |
_DAT_0007810c = 0x7c; | |
_DAT_00078034 = 2; | |
_DAT_00078038 = 0x1f; | |
_DAT_0007803c = 0xf; | |
_DAT_00078024 = 1; | |
_DAT_0007800c = 0xf; | |
_DAT_00078010 = 0xf; | |
_DAT_00078014 = 0x46; | |
_DAT_00078400 = 0xda; | |
_DAT_00078404 = 0x42; | |
_DAT_0007804c = 0x90; | |
iVar7 = FUN_8f61a930(0xda,0x42); | |
if (iVar7 == 0) { | |
_DAT_00078050 = 5; | |
} | |
else { | |
_DAT_00078050 = 7; | |
} | |
_DAT_000780d8 = 0x20; | |
_DAT_000780e0 = 0x77; | |
piVar2 = (int *)0x3; | |
_DAT_000780e8 = 0x15; | |
_DAT_00078268 = 3; | |
_DAT_000784bc = 2; | |
_DAT_000784c0 = 0x6c; | |
_DAT_000784c4 = 199; | |
_DAT_000784f8 = 0x40; | |
_DAT_00078500 = 0x73; | |
_DAT_00078504 = 6; | |
_DAT_0007864c = 0x48; | |
uVar9 = 0x1900000001; | |
_DAT_000780ac = 1; | |
_DAT_000780b0 = 2; | |
_DAT_000780b8 = 0x31; | |
_DAT_000780bc = 1; | |
_DAT_000780c0 = 0x19; | |
_DAT_000780c4 = 0x19; | |
_DAT_00078654 = 8; | |
_DAT_00078600 = 0; | |
_DAT_00078608 = 3; | |
} | |
else { | |
do { | |
iVar7 = piVar5[-0x1c26042f]; | |
piVar2 = piVar5 + 2; | |
*(int *)(iVar7 + 0x78000) = piVar5[-0x1c26042e]; | |
piVar5 = piVar2; | |
} while (piVar2 != (int *)0x1c8); | |
uVar9 = FUN_8f61a930(&DAT_8f67ef44,(int *)(iVar7 + 0x78000)); | |
if ((int)uVar9 != 0) { | |
piVar5 = (int *)0x0; | |
do { | |
piVar2 = piVar5 + 2; | |
uVar9 = CONCAT44((int *)(piVar5[-0x1c260437] + 0x78000),&DAT_8f67ef24); | |
*(int *)(piVar5[-0x1c260437] + 0x78000) = piVar5[-0x1c260436]; | |
piVar5 = piVar2; | |
} while (piVar2 != (int *)0x20); | |
} | |
} | |
} | |
else { | |
iVar8 = 0; | |
uVar6 = 0; | |
while( true ) { | |
uVar6 = uVar6 + 1; | |
piVar5 = (int *)(iVar7 + iVar8); | |
piVar2 = (int *)(*piVar5 + 0x78000); | |
*piVar2 = piVar5[1]; | |
if (uVar4 <= uVar6) break; | |
if (uVar6 == 7) { | |
uVar9 = FUN_8f6104a8(1); | |
} | |
iVar8 = iVar8 + 8; | |
} | |
} | |
iVar7 = 1000; | |
do { | |
if ((_DAT_00078974 & 0x40) == 0) { | |
piVar5 = (int *)uVar9; | |
piVar2 = (int *)((ulonglong)uVar9 >> 0x20); | |
piVar3 = piVar1; | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f6036c4(); | |
return; | |
} | |
goto LAB_8f61ac60; | |
} | |
uVar4 = _DAT_00078974; | |
uVar9 = FUN_8f6104fc(1); | |
iVar7 = iVar7 + -1; | |
} while (iVar7 != 0); | |
dprintf((byte *)s_QMP_phy_initialization_failed__f_8f660ad8,(int *)((ulonglong)uVar9 >> 0x20), | |
piVar2,uVar4); | |
piVar3 = (int *)0x1; | |
DAT_8f68a180 = 1; | |
piVar5 = piVar1; | |
piVar2 = DAT_8f69d118; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
LAB_8f61ac60: | |
// WARNING: Subroutine does not return | |
FUN_8f635428(piVar5,piVar2,piVar3); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f61acac) | |
void FUN_8f61ac70(void) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f61ace4) | |
void FUN_8f61acb0(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f61ad1c) | |
void FUN_8f61ace8(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f61ad54) | |
void FUN_8f61ad20(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61ad58(void) | |
{ | |
ulonglong uVar1; | |
uint uVar2; | |
int *piVar3; | |
int iVar4; | |
undefined8 uVar5; | |
ulonglong uVar6; | |
piVar3 = DAT_8f69d118; | |
uVar2 = _DAT_0184103c; | |
_DAT_0184103c = _DAT_0184103c | 1; | |
uVar5 = FUN_8f6104fc(10); | |
_DAT_0184103c = uVar2 & 0xfffffffe; | |
_DAT_0007e010 = 0x11; | |
DataMemoryBarrier(0xf); | |
_DAT_000790b4 = 0x23; | |
uVar5 = FUN_8f61ace8((int)uVar5,(int)((ulonglong)uVar5 >> 0x20)); | |
iVar4 = (int)uVar5; | |
if ((iVar4 == 0) && (iVar4 = FUN_8f61ad20(0,(int)((ulonglong)uVar5 >> 0x20)), iVar4 == 0)) { | |
uVar5 = FUN_8f60300c(); | |
iVar4 = (int)uVar5; | |
if (iVar4 == 0) { | |
_DAT_00079080 = 0xa0; | |
_DAT_00079084 = 0xa5; | |
_DAT_00079088 = 0x81; | |
_DAT_0007908c = 0x85; | |
goto LAB_8f61ae10; | |
} | |
} | |
_DAT_00079080 = 0xf8; | |
_DAT_00079084 = 0xb3; | |
_DAT_00079088 = 0x83; | |
_DAT_0007908c = 0xc0; | |
_DAT_00079008 = 0x30; | |
_DAT_0007900c = 0x79; | |
_DAT_00079010 = 0x21; | |
_DAT_0007909c = 0x14; | |
uVar5 = CONCAT44(0x9f,iVar4); | |
_DAT_0007901c = 0x9f; | |
_DAT_00079018 = 0; | |
LAB_8f61ae10: | |
iVar4 = FUN_8f61acb0((int)uVar5,(int)((ulonglong)uVar5 >> 0x20)); | |
if (iVar4 != 0) { | |
uRam000790c4 = 0; | |
} | |
_DAT_000790b4 = 0x22; | |
FUN_8f6104fc(0x96); | |
if ((_DAT_0193f044 & 1) != 0) { | |
uRam00079004 = 0x80; | |
} | |
uVar6 = FUN_8f6104fc(100); | |
if (((uint)_DAT_00079038 & 0x20) == 0) { | |
iVar4 = 99; | |
do { | |
uVar6 = FUN_8f6104fc(5); | |
uVar1 = uVar6 & 0xffffffff | ZEXT48(_DAT_00079038) << 0x20; | |
if (((uint)_DAT_00079038 & 0x20) != 0) goto LAB_8f61ae90; | |
iVar4 = iVar4 + -1; | |
} while (iVar4 != 0); | |
if (piVar3 == DAT_8f69d118) { | |
dprintf((byte *)s_QUSB2PHY_failed_to_lock___d_8f660b18,_DAT_00079038,piVar3,DAT_8f69d118); | |
return; | |
} | |
} | |
else { | |
LAB_8f61ae90: | |
uVar1 = uVar6; | |
if (piVar3 == DAT_8f69d118) { | |
return; | |
} | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar1,(int)(uVar1 >> 0x20),piVar3); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f61af50) | |
void FUN_8f61af10(undefined4 *param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
int *piVar2; | |
int iVar3; | |
int iVar4; | |
undefined4 uVar5; | |
undefined4 uVar6; | |
undefined8 uVar7; | |
piVar1 = DAT_8f69d118; | |
DAT_8f68a19c = param_1[2]; | |
DAT_8f68a184 = *param_1; | |
DAT_8f68a188 = param_1[1]; | |
DAT_8f68a1fc = *(undefined *)(param_1 + 7); | |
DAT_8f68a1b6 = *(undefined *)((int)param_1 + 0x1d); | |
DAT_8f68a1a5 = 1; | |
DAT_8f68a1b0 = (undefined2)param_1[5]; | |
uVar7 = FUN_8f619f10(param_1[5],1,DAT_8f68a188); | |
DAT_8f68a1a8 = (undefined4)uVar7; | |
DAT_8f68a1ba = *(undefined *)((int)param_1 + 0x1f); | |
DAT_8f68a1ce = *(byte *)((int)param_1 + 0x1e); | |
DAT_8f68a1bd = 0; | |
DAT_8f68a1c8 = (undefined2)param_1[6]; | |
DAT_8f68a1c0 = FUN_8f619f10(param_1[6],(int)((ulonglong)uVar7 >> 0x20),(uint)DAT_8f68a1ce); | |
uVar5 = 0x7fc0; | |
DAT_8f68a1d2 = *(undefined *)(param_1 + 8); | |
DAT_8f68a1ec = 0x8000; | |
uVar6 = param_1[3]; | |
DAT_8f68a1f4 = 0x7fc0; | |
DAT_8f68a1f0 = uVar6; | |
piVar2 = (int *)FUN_8f635d28(0x40,0x40); | |
uVar7 = FUN_8f6366a8(piVar2,0x80); | |
if ((int)uVar7 == 0) { | |
dprintf((byte *)s_Could_not_allocate_output_dump_b_8f660930,(int *)((ulonglong)uVar7 >> 0x20), | |
uVar5,uVar6); | |
} | |
DAT_8f68a198 = (int)uVar7; | |
uVar7 = FUN_8f6366a8((int *)0x40,param_1[4] * 0x10 + 0x3fU & 0xffffffc0); | |
iVar3 = (int)uVar7; | |
iVar4 = iVar3; | |
if (iVar3 == 0) { | |
iVar4 = dprintf((byte *)s_Could_not_allocate_ce_array_buff_8f660958, | |
(int *)((ulonglong)uVar7 >> 0x20),uVar5,uVar6); | |
} | |
DAT_8f68a18c = iVar3; | |
DAT_8f68a190 = 0; | |
DAT_8f68a194 = 0; | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar4,piVar1,DAT_8f69d118); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f61af90) | |
void FUN_8f61af54(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
FUN_8f619ff0(&DAT_8f68a19c,(int *)(DAT_8f68a184 + 0x100),0,2); | |
FUN_8f612690(&DAT_8f68a19c,0); | |
FUN_8f612690(&DAT_8f68a19c,1); | |
FUN_8f636758(DAT_8f68a198); | |
FUN_8f636758(DAT_8f68a18c); | |
uVar2 = FUN_8f636758(DAT_8f68a1a8); | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
FUN_8f636758(DAT_8f68a1c0); | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f61afd4) | |
void FUN_8f61af94(undefined4 param_1,undefined4 param_2) | |
{ | |
FUN_8f603e98((int *)(uint)(byte)DAT_8f68a188); | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f61b008) | |
void FUN_8f61afd8(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
void FUN_8f61b04c(uint *param_1,uint param_2,uint param_3,uint param_4,int param_5) | |
{ | |
int *piVar1; | |
int *piVar2; | |
undefined4 uVar3; | |
if (param_4 != 0) { | |
param_4 = 1; | |
} | |
param_1[0x14] = param_4; | |
piVar1 = DAT_8f69d118; | |
if (param_5 != 0) { | |
param_4 = param_1[0x14]; | |
} | |
param_1[0x13] = param_2; | |
if (param_5 != 0) { | |
param_1[0x14] = param_4 | 2; | |
} | |
uVar3 = FUN_8f61a308(&DAT_8f68a184,param_1,param_3); | |
piVar2 = DAT_8f69d118; | |
param_1[0x14] = 0; | |
if (piVar1 != piVar2) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar3,0,piVar1); | |
} | |
return; | |
} | |
void FUN_8f61b0c0(int *param_1,uint param_2,undefined4 param_3,undefined4 param_4, | |
undefined4 *param_5) | |
{ | |
int *piVar1; | |
bool bVar2; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
uVar3 = FUN_8f61a4c8((int **)&DAT_8f68a184,param_1,param_2); | |
bVar2 = piVar1 == DAT_8f69d118; | |
*param_5 = (int)uVar3; | |
if (bVar2) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,(int)((ulonglong)uVar3 >> 0x20),piVar1); | |
} | |
void FUN_8f61b110(undefined4 *param_1,undefined4 *param_2,int param_3) | |
{ | |
int *piVar1; | |
bool bVar2; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
uVar3 = FUN_8f61a7c8((int)&DAT_8f68a184,param_1,param_3); | |
bVar2 = piVar1 == DAT_8f69d118; | |
*param_2 = (int)uVar3; | |
if (bVar2) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,(int)((ulonglong)uVar3 >> 0x20),piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f61a8e8) | |
// WARNING: Removing unreachable block (ram,0x8f61b19c) | |
void FUN_8f61b15c(uint *param_1,undefined4 param_2) | |
{ | |
int iVar1; | |
uint uVar2; | |
iVar1 = DAT_8f68a198; | |
uVar2 = *(uint *)(DAT_8f68a198 + 0x40); | |
*param_1 = uVar2 << 0x18 | (uVar2 >> 8 & 0xff) << 0x10 | (uVar2 >> 0x10 & 0xff) << 8 | | |
uVar2 >> 0x18; | |
uVar2 = *(uint *)(iVar1 + 0x44); | |
param_1[1] = uVar2 << 0x18 | (uVar2 >> 8 & 0xff) << 0x10 | (uVar2 >> 0x10 & 0xff) << 8 | | |
uVar2 >> 0x18; | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f61a92c) | |
// WARNING: Removing unreachable block (ram,0x8f61b1dc) | |
void FUN_8f61b1a0(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61b1e0(uint param_1,uint *param_2,uint **param_3) | |
{ | |
uint uVar1; | |
int *piVar2; | |
uint uVar3; | |
int iVar4; | |
piVar2 = DAT_8f69d118; | |
uVar1 = _DAT_01a01000; | |
uVar3 = (uint)*(byte *)(param_1 + 0x94); | |
if (uVar3 != 0) { | |
if (*(char *)(param_1 + 0x28b) == '\0') { | |
iVar4 = *(int *)(param_1 + 0x24); | |
uVar3 = 1 - *(byte *)(param_1 + 0x95); | |
if (1 < *(byte *)(param_1 + 0x95)) { | |
uVar3 = 0; | |
} | |
goto joined_r0x8f61b22c; | |
} | |
uVar3 = 0; | |
} | |
iVar4 = *(int *)(param_1 + 0x24); | |
joined_r0x8f61b22c: | |
if (iVar4 == 1) { | |
if (uVar3 == 0) { | |
uVar3 = 0x2048; | |
} | |
else { | |
uVar3 = 0x20d8; | |
} | |
*param_2 = uVar3 | 0x20000; | |
*param_3 = (uint *)0x24090; | |
if (*(char *)(param_1 + 0x97) != '\0') { | |
*param_2 = *param_2 | 0x10; | |
} | |
} | |
else if (iVar4 == 2) { | |
if (uVar3 == 0) { | |
uVar3 = 0x2840; | |
} | |
else { | |
uVar3 = 0x38c0; | |
} | |
*param_2 = uVar3 | 0x20000; | |
*param_3 = (uint *)0x25080; | |
if (*(char *)(param_1 + 0x97) != '\0') { | |
*param_2 = *param_2 | 0x1000; | |
} | |
} | |
else { | |
if (uVar3 == 0) { | |
uVar3 = 0x2041; | |
} | |
else { | |
uVar3 = 0x20c3; | |
} | |
*param_2 = uVar3 | 0x20000; | |
*param_3 = (uint *)0x24082; | |
if (*(char *)(param_1 + 0x97) != '\0') { | |
*param_2 = *param_2 | 2; | |
} | |
} | |
if (((uVar1 & 0xfffbffff) == 0x10080000 || uVar1 == 0x10060000) || (uVar1 == 0x100b0000)) { | |
if (*(int *)(param_1 + 0x1c) == 2) { | |
param_1 = *param_2 | 0x80000000; | |
*param_2 = param_1; | |
param_2 = (uint *)((uint)*param_3 | 0x40000000); | |
} | |
else { | |
param_1 = *param_2 | 0x40000000; | |
*param_2 = param_1; | |
param_2 = (uint *)((uint)*param_3 | 0x80000000); | |
} | |
*param_3 = param_2; | |
} | |
else if ((((uVar1 == 0x10090000 || uVar1 == 0x10050000) || (uVar1 >> 0x10 == 0x1007)) || | |
(uVar1 == 0x10100000)) || ((uVar1 & 0xfffbffff) == 0x100a0000 || uVar1 == 0x100f0000)) { | |
if (*(int *)(param_1 + 0x1c) == 2) { | |
param_1 = *param_2 | 0x20000000; | |
*param_2 = param_1; | |
param_2 = (uint *)((uint)*param_3 | 0x40000000); | |
} | |
else { | |
param_1 = *param_2 | 0x40000000; | |
*param_2 = param_1; | |
param_2 = (uint *)((uint)*param_3 | 0x20000000); | |
} | |
*param_3 = param_2; | |
} | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,param_2,piVar2); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61b3fc(uint *param_1,uint *param_2,uint *param_3) | |
{ | |
uint uVar1; | |
int *piVar2; | |
uint uVar3; | |
undefined4 uVar4; | |
uint uVar5; | |
uint uVar6; | |
uint uVar7; | |
uint uVar8; | |
bool bVar9; | |
piVar2 = DAT_8f69d118; | |
uVar5 = param_2[0xb]; | |
uVar3 = ((param_1[2] - uVar5) - param_2[0xc]) * 0x10000; | |
uVar6 = uVar3 | (param_1[1] - param_2[0xd]) - param_2[0xe]; | |
uVar8 = uVar6; | |
if (*(char *)(param_2 + 0x25) == '\0') { | |
LAB_8f61b494: | |
uVar3 = param_1[3] * param_1[4] >> 3; | |
} | |
else { | |
if ((param_3 != (uint *)0x1a27000) && (((uint)param_3 & 0xfffeffff) != 0x1a07000)) { | |
uVar8 = uVar3 + param_2[0xf]; | |
goto LAB_8f61b494; | |
} | |
uVar7 = *param_2; | |
uVar1 = uVar7 >> 1; | |
bVar9 = uVar1 != 0; | |
if (bVar9) { | |
uVar7 = uVar5 << 0x10; | |
} | |
uVar8 = uVar3 + param_2[0x10]; | |
if (bVar9) { | |
uVar5 = uVar7 | uVar1; | |
} | |
uVar3 = param_1[3] * param_1[4] >> 3; | |
if (bVar9) goto LAB_8f61b4ac; | |
} | |
uVar5 = param_2[0xd] | uVar5 << 0x10; | |
uVar7 = uVar5; | |
LAB_8f61b4ac: | |
param_3[5] = *param_1; | |
param_3[9] = uVar3; | |
param_3[1] = uVar6; | |
*param_3 = uVar8; | |
param_3[3] = uVar8; | |
param_3[2] = uVar5; | |
param_3[4] = uVar7; | |
param_3[0xc] = 0x2243f; | |
param_3[0xd] = 0x20001; | |
if ((param_2[6] & 1) == 0) { | |
uVar3 = 0; | |
} | |
else { | |
uVar3 = 0x2000; | |
} | |
if ((param_2[6] & 2) != 0) { | |
uVar3 = uVar3 | 0x4000; | |
} | |
if ((((_DAT_01a01000 >> 0x10 == 0x1007) || (_DAT_01a01000 >> 0x10 == 0x100e)) || | |
(_DAT_01a01000 >> 0x10 == 0x1010)) || (uVar4 = 0x100f, _DAT_01a01000 >> 0x10 == 0x100f)) { | |
param_3[0x42] = uVar8; | |
uVar4 = 0x200000; | |
param_3[0x46] = uVar8; | |
uVar3 = uVar3 | 0x80000000; | |
param_3[0x4a] = uVar8; | |
param_3[0x84] = 0x200000; | |
param_3[0x85] = 0x200000; | |
param_3[0x86] = 0x200000; | |
param_3[0x87] = 0x200000; | |
} | |
param_3[0xe] = uVar3; | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar3,uVar4,piVar2); | |
} | |
void FUN_8f61b5ac(uint param_1,uint *param_2,uint *param_3,int param_4) | |
{ | |
int *piVar1; | |
uint *puVar2; | |
uint uVar3; | |
uint uVar4; | |
uint *puVar5; | |
uint uVar6; | |
piVar1 = DAT_8f69d118; | |
if (param_3 < param_2) { | |
uVar4 = param_1; | |
uVar6 = 1; | |
while (uVar6 != (int)param_2 - (int)param_3) { | |
uVar3 = uVar6 + 1; | |
uVar4 = uVar4 | param_1 << (uVar6 % 3) * 8; | |
uVar6 = uVar3; | |
if (uVar3 % 3 == 0) { | |
puVar2 = (uint *)(param_4 + 0x1a01080); | |
puVar5 = (uint *)(param_4 + 0x1a01130); | |
param_4 = param_4 + 4; | |
*puVar2 = uVar4; | |
*puVar5 = uVar4; | |
uVar4 = uVar3 % 3; | |
} | |
} | |
param_2 = (uint *)(uVar6 * -0x55555555); | |
if (uVar6 % 3 != 0) { | |
param_2 = (uint *)(param_4 + 0x1a01080); | |
*param_2 = uVar4; | |
*(uint *)(param_4 + 0x1a01130) = uVar4; | |
param_4 = param_4 + 4; | |
} | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_4,param_2,piVar1); | |
} | |
return; | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61b69c(void) | |
{ | |
int *piVar1; | |
int *piVar2; | |
undefined4 uVar3; | |
piVar1 = DAT_8f69d118; | |
piVar2 = (int *)0x10080000; | |
if (_DAT_01a01000 == 0x10080000 || _DAT_01a01000 == 0x100b0000) { | |
uVar3 = 0x1420; | |
} | |
else { | |
uVar3 = 0; | |
piVar2 = (int *)0x100a0000; | |
if (_DAT_01a01000 == 0x100a0000) { | |
uVar3 = 0x1334; | |
} | |
else { | |
piVar2 = (int *)0x1007; | |
if (_DAT_01a01000 >> 0x10 == 0x1007) { | |
uVar3 = 0x1330; | |
} | |
else { | |
dprintf((byte *)s_Invalid_PPB0_CONFIG_offset_8f660b34,DAT_8f69d118,0x1007,_DAT_01a01000); | |
} | |
} | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar3,piVar1,piVar2); | |
} | |
return; | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61b73c(int param_1,int param_2,int param_3) | |
{ | |
int *piVar1; | |
uint *puVar2; | |
int *piVar3; | |
int iVar4; | |
int *piVar5; | |
uint uVar6; | |
uint *puVar7; | |
uint *puVar8; | |
uint uVar9; | |
int *in_lr; | |
int iVar10; | |
undefined8 uVar11; | |
uint local_3c; | |
uint local_38; | |
piVar1 = DAT_8f69d118; | |
if (_DAT_01a01000 == 0x10060000 || _DAT_01a01000 == 0x100c0000) { | |
iVar4 = *(int *)(param_1 + 0x24); | |
puVar7 = (uint *)0x0; | |
iVar10 = 0x1fff; | |
uVar9 = 0x2000; | |
puVar8 = (uint *)0x0; | |
} | |
else { | |
puVar7 = (uint *)0x0; | |
if (_DAT_01a01000 == 0x10080000 || _DAT_01a01000 == 0x100b0000) { | |
iVar4 = *(int *)(param_1 + 0x24); | |
iVar10 = 0x27ff; | |
uVar9 = 0x2800; | |
puVar8 = puVar7; | |
} | |
else { | |
puVar7 = (uint *)0x0; | |
if (_DAT_01a01000 + 0xeffd0000 < 0xffd0000) { | |
iVar4 = *(int *)(param_1 + 0x24); | |
iVar10 = 0x1fff; | |
uVar9 = 0x2000; | |
puVar8 = (uint *)0xc; | |
if (iVar4 == 1) { | |
iVar4 = 1; | |
puVar7 = (uint *)0x2; | |
} | |
else { | |
puVar7 = (uint *)0x0; | |
} | |
} | |
else { | |
iVar10 = 0xfff; | |
iVar4 = *(int *)(param_1 + 0x24); | |
uVar9 = 0x1000; | |
puVar8 = puVar7; | |
} | |
} | |
} | |
uVar6 = _DAT_01a01000 >> 0x10; | |
if (((uVar6 == 0x1006 || uVar6 == 0x1001) || (uVar6 == 0x1008)) || (uVar6 - 0x100b < 2)) { | |
if (iVar4 == 1) { | |
local_38 = 8; | |
local_3c = 7; | |
} | |
else if (iVar4 == 2) { | |
local_38 = 0xd; | |
local_3c = 4; | |
} | |
else { | |
local_38 = 9; | |
local_3c = 1; | |
} | |
} | |
else if (iVar4 == 1) { | |
local_38 = 0x11; | |
local_3c = 0x10; | |
} | |
else if (iVar4 == 2) { | |
local_38 = 0xd; | |
local_3c = 10; | |
} | |
else { | |
local_38 = 4; | |
local_3c = 1; | |
} | |
uVar6 = (uint)*(byte *)(param_1 + 0x94); | |
if (uVar6 == 0) { | |
iVar4 = 0x3000; | |
} | |
else { | |
iVar4 = *(int *)(param_1 + 0x3c) * 6; | |
} | |
puVar2 = (uint *)FUN_8f6582ac(iVar4 + iVar10,uVar9); | |
if (&DAT_00000004 < puVar2) { | |
dprintf((byte *)s_ERROR___s__Out_of_SMP_s__cnt__d__8f660b50,(int *)s_mdss_smp_setup_8f660b90, | |
puVar2,uVar6); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_mdp5_c_8f660b74,0x1dc); | |
} | |
*(int *)(param_2 + 0x50) = (int)puVar2 << 6; | |
*(int *)(param_2 + 0x54) = (int)puVar2 << 7; | |
*(int *)(param_2 + 0x58) = (int)puVar2 * 0xc0; | |
if (*(char *)(param_1 + 0x94) != '\0') { | |
puVar2 = (uint *)FUN_8f6582ac((uVar9 + *(int *)(param_1 + 0x40) * 6) - 1,uVar9); | |
*(int *)(param_3 + 0x50) = (int)puVar2 << 6; | |
*(int *)(param_3 + 0x54) = (int)puVar2 << 7; | |
*(int *)(param_3 + 0x58) = (int)puVar2 * 0xc0; | |
} | |
uVar11 = FUN_8f61b5ac(local_3c,puVar2,puVar7,(int)puVar8); | |
if (*(char *)(param_1 + 0x94) == '\0') { | |
piVar3 = (int *)((ulonglong)uVar11 >> 0x20); | |
piVar5 = piVar1; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
} | |
else { | |
piVar3 = piVar1; | |
piVar5 = DAT_8f69d118; | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f61b5ac(local_38,puVar2,puVar7,(int)uVar11); | |
return; | |
} | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar11,piVar3,piVar5); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61ba24(undefined4 param_1) | |
{ | |
uint uVar1; | |
uint uVar2; | |
int *piVar3; | |
undefined8 uVar4; | |
piVar3 = DAT_8f69d118; | |
uVar2 = _DAT_01a01000; | |
uVar4 = CONCAT44(DAT_8f69d118,param_1); | |
uVar1 = _DAT_01a01000 >> 0x10; | |
if ((uVar1 != 0x1007) && (uVar4 = FUN_8f615420(1), (int)uVar4 == 0)) { | |
if (uVar2 < 0x10030000) { | |
uRam01ac8004 = 1; | |
} | |
if (uVar1 == 0x1000) { | |
_DAT_01ac80d8 = 0x707; | |
_DAT_01ac80f0 = 0x30; | |
_DAT_01ac8124 = 1; | |
_DAT_01ac8178 = 0xfff; | |
_DAT_01ac817c = 0xfff0fff; | |
uVar4 = 0x222200000001; | |
_DAT_01ac8160 = 0x22222222; | |
_DAT_01ac8164 = 0x2222; | |
} | |
else if (uVar1 == 0x1001) { | |
uVar4 = 0x70700000000; | |
_DAT_01ac80d8 = 0x707; | |
_DAT_01ac8124 = 3; | |
} | |
} | |
if (piVar3 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),piVar3); | |
} | |
return; | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61bb1c(void) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
_DAT_01a012ac = 0x40000000; | |
FUN_8f6104fc(0x14); | |
_DAT_01a012ac = 0x40000040; | |
_DAT_01a012b4 = 0x40000000; | |
_DAT_01a013a8 = 0x400000; | |
uVar2 = FUN_8f6104fc(0x14); | |
_DAT_01a013a8 = 0x404000; | |
_DAT_01a013b0 = 0x40000000; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61bb98(uint *param_1) | |
{ | |
int *piVar1; | |
uint uVar2; | |
int iVar3; | |
piVar1 = DAT_8f69d118; | |
iVar3 = param_1[0x27] - 2; | |
if (iVar3 != 0) { | |
iVar3 = 1; | |
} | |
uVar2 = *param_1; | |
if (iVar3 != 0) { | |
uVar2 = FUN_8f6582ac(uVar2,param_1[0x27]); | |
} | |
if (*(char *)((int)param_1 + 0x28b) != '\0') { | |
uVar2 = uVar2 >> 1; | |
} | |
_DAT_01a7103c = | |
param_1[0x31] << 0x10 | param_1[0x37] << 0x1c | param_1[0x34] | param_1[0x32] << 8 | | |
param_1[0x33] << 4; | |
_DAT_01a71038 = param_1[0x2f] << 8 | param_1[0x2e] << 0xc | param_1[0x30]; | |
_DAT_01a71034 = | |
param_1[0x36] << 10 | param_1[0x35] << 0xb | 1 | param_1[0x28] << 8 | param_1[0x29] << 7 | | |
param_1[0x2a] << 4 | param_1[0x2b] << 3 | param_1[0x2c] << 2 | param_1[0x2d] << 1 | | |
iVar3 << 9 | uVar2 << 0x10; | |
if (*(char *)((int)param_1 + 0x28b) != '\0') { | |
uRam01a71834 = _DAT_01a71034; | |
uRam01a71838 = _DAT_01a71038; | |
uRam01a7183c = _DAT_01a7103c; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(_DAT_01a71034,_DAT_01a71038,piVar1); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f61bce8) | |
void FUN_8f61bcac(undefined4 param_1) | |
{ | |
DAT_8f68a200 = param_1; | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f61bd28) | |
void FUN_8f61bcec(void) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f61bdcc) | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61bd2c(void) | |
{ | |
return; | |
} | |
void FUN_8f61bdd0(int param_1,undefined4 *param_2,undefined4 *param_3,int *param_4,int *param_5) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
if (param_1 == 2) { | |
*param_2 = 0x10000; | |
*param_3 = 0x100; | |
iVar2 = FUN_8f61bd2c(); | |
*param_4 = iVar2 + 0x1a12f00; | |
uVar3 = FUN_8f61bd2c(); | |
*param_5 = (int)uVar3 + 0x1a12700; | |
} | |
else { | |
*param_2 = 0x100; | |
*param_3 = 0x10000; | |
iVar2 = FUN_8f61bd2c(); | |
*param_4 = iVar2 + 0x1a12700; | |
uVar3 = FUN_8f61bd2c(); | |
*param_5 = (int)uVar3 + 0x1a12f00; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,(int)((ulonglong)uVar3 >> 0x20),piVar1); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61be88(uint *param_1,int param_2) | |
{ | |
char cVar1; | |
int *piVar2; | |
uint uVar3; | |
int iVar4; | |
int iVar5; | |
uint uVar6; | |
int iVar7; | |
uint uVar8; | |
uint uVar9; | |
uint uVar10; | |
uint uVar11; | |
int iVar12; | |
int iVar13; | |
uint uVar14; | |
bool bVar15; | |
undefined8 uVar16; | |
piVar2 = DAT_8f69d118; | |
uVar16 = CONCAT44(param_2,param_1); | |
if (param_1 == (uint *)0x0) goto LAB_8f61bffc; | |
uVar8 = *param_1; | |
if (*(char *)((int)param_1 + 0x95) == '\0') { | |
LAB_8f61bebc: | |
cVar1 = *(char *)((int)param_1 + 0x97); | |
} | |
else { | |
if (*(char *)((int)param_1 + 0x97) == '\0') { | |
if (*(char *)(param_1 + 0x25) != '\0') { | |
iVar12 = FUN_8f61bd2c(); | |
if (iVar12 + 0x1a12700 == param_2) { | |
uVar8 = param_1[0xf]; | |
} | |
else { | |
uVar8 = param_1[0x10]; | |
} | |
} | |
} | |
else { | |
uVar8 = uVar8 >> 1; | |
} | |
iVar12 = FUN_8f61bd2c(); | |
if (iVar12 + 0x1a12700 != param_2) goto LAB_8f61bebc; | |
if (*(char *)((int)param_1 + 0x96) == '\0') { | |
_DAT_01a013f0 = 0x100; | |
_DAT_01a012f8 = 0x10; | |
} | |
else { | |
_DAT_01a013f0 = 0x10; | |
_DAT_01a012f8 = 0x100; | |
} | |
_DAT_01a012f4 = 1; | |
cVar1 = *(char *)((int)param_1 + 0x97); | |
} | |
if ((cVar1 != '\0') && (iVar12 = FUN_8f61bd2c(), iVar12 + 0x1a12700 == param_2)) { | |
iVar12 = FUN_8f61b69c(); | |
*(undefined4 *)(iVar12 + 0x1a00000) = 0x20; | |
*(undefined4 *)(iVar12 + 0x1a00004) = 0x310000; | |
} | |
if ((param_1[0x26] == 0) || (uVar3 = param_1[0x27], uVar3 == 0)) { | |
uVar3 = 1; | |
param_1[0x27] = 1; | |
} | |
uVar6 = param_1[1]; | |
if (param_1[8] == 1) { | |
uVar8 = param_1[0x51]; | |
} | |
else { | |
uVar8 = FUN_8f6582ac(uVar8 + param_1[0x23],uVar3); | |
} | |
uVar11 = param_1[0x1c]; | |
uVar10 = param_1[0x1f]; | |
uVar9 = uVar11 + param_1[0x1a]; | |
iVar12 = uVar10 + param_1[0x1d]; | |
uVar3 = param_1[0x1b]; | |
uVar14 = param_1[0x1e]; | |
iVar4 = uVar6 + param_1[0x24] + iVar12; | |
iVar7 = uVar8 + uVar9 + uVar3; | |
iVar13 = iVar12 * iVar7 + param_1[0x22]; | |
iVar5 = iVar4 * iVar7 + (param_1[0x22] - 1); | |
iVar12 = FUN_8f61bd2c(); | |
*(uint *)(param_2 + 8) = uVar11 | iVar7 * 0x10000; | |
*(uint *)(param_2 + 0xc) = (iVar4 + uVar14) * iVar7; | |
bVar15 = iVar12 + 0x1a12500 == param_2; | |
if (bVar15) { | |
iVar13 = iVar13 + uVar9; | |
} | |
*(undefined4 *)(param_2 + 0x10) = 0; | |
if (bVar15) { | |
iVar5 = iVar5 - uVar3; | |
} | |
*(uint *)(param_2 + 0x14) = uVar10 * iVar7; | |
*(undefined4 *)(param_2 + 0x18) = 0; | |
*(uint *)(param_2 + 0x3c) = uVar9 | (uVar8 + uVar9 + -1) * 0x10000; | |
*(int *)(param_2 + 0x1c) = iVar13; | |
*(undefined4 *)(param_2 + 0x20) = 0; | |
*(int *)(param_2 + 0x24) = iVar5; | |
*(undefined4 *)(param_2 + 0x28) = 0; | |
*(undefined4 *)(param_2 + 0x40) = 0; | |
*(undefined4 *)(param_2 + 0x2c) = 0; | |
*(undefined4 *)(param_2 + 0x30) = 0; | |
*(undefined4 *)(param_2 + 0x34) = 0; | |
*(undefined4 *)(param_2 + 0x38) = 0; | |
*(undefined4 *)(param_2 + 0x48) = 0xff; | |
uVar16 = FUN_8f61bd2c(); | |
if ((int)uVar16 + 0x1a12500 == param_2) { | |
*(undefined4 *)((int)uVar16 + 0x1a12590) = 0x212a; | |
} | |
else { | |
*(undefined4 *)(param_2 + 0x90) = 0x213f; | |
} | |
LAB_8f61bffc: | |
if (piVar2 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar16,(int)((ulonglong)uVar16 >> 0x20),piVar2); | |
} | |
return; | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61c0f0(uint *param_1,int param_2) | |
{ | |
int *piVar1; | |
uint uVar2; | |
int iVar3; | |
uint uVar4; | |
undefined4 uVar5; | |
uint uVar6; | |
uint uVar7; | |
bool bVar8; | |
piVar1 = DAT_8f69d118; | |
iVar3 = param_2; | |
if (((param_1 != (uint *)0x0) && (0x1004ffff < _DAT_01a01000)) && | |
(uVar6 = param_1[0x1f] + param_1[0x1d], uVar6 < 0x19)) { | |
uVar2 = *param_1; | |
if (*(char *)((int)param_1 + 0x95) != '\0') { | |
if (*(char *)((int)param_1 + 0x97) == '\0') { | |
if (*(char *)(param_1 + 0x25) != '\0') { | |
uVar2 = FUN_8f61bd2c(); | |
bVar8 = param_2 == uVar2 + 0x1a12700; | |
if (bVar8) { | |
uVar2 = param_1[0xf]; | |
} | |
uVar6 = param_1[0x1d] + param_1[0x1f]; | |
if (!bVar8) { | |
uVar2 = param_1[0x10]; | |
} | |
} | |
} | |
else { | |
uVar2 = uVar2 >> 1; | |
} | |
} | |
if (param_1[8] == 1) { | |
uVar2 = param_1[0x51]; | |
} | |
else if (((param_1[8] == 2) && (param_1[0x26] != 0)) && (param_1[0x27] != 0)) { | |
uVar2 = FUN_8f6582ac(uVar2,param_1[0x27]); | |
} | |
uVar4 = param_1[0x1e]; | |
uVar7 = 0x19 - uVar6; | |
if (uVar4 <= 0x19 - uVar6) { | |
uVar7 = uVar4; | |
} | |
iVar3 = param_1[0x1a] + param_1[0x1c] + param_1[0x1b]; | |
uVar5 = 0x80800000; | |
if (param_1[0xc0] == 0) { | |
uVar5 = 0x80000000; | |
} | |
param_1 = (uint *)(((uVar4 + param_1[1] + uVar6) - uVar7) * (iVar3 + uVar2) + 1); | |
*(uint **)(param_2 + 0x170) = param_1; | |
*(undefined4 *)(param_2 + 4) = uVar5; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,iVar3,piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f61c394) | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61c24c(int param_1,int param_2) | |
{ | |
uint uVar1; | |
uint uVar2; | |
uint uVar3; | |
uint uVar4; | |
uVar3 = *(uint *)(param_1 + 4); | |
if ((*(char *)(param_2 + 0x94) != '\0') && (*(char *)(param_2 + 0x97) == '\0')) { | |
uVar3 = *(uint *)(param_2 + 0x3c); | |
} | |
uVar1 = *(int *)(param_1 + 8) << 0x10; | |
_DAT_01a45004 = uVar3 | uVar1; | |
_DAT_01a45000 = 0; | |
_DAT_01a45020 = 0x100; | |
_DAT_01a45024 = 0xff; | |
_DAT_01a45050 = 0x100; | |
_DAT_01a45054 = 0xff; | |
_DAT_01a45080 = 0x100; | |
_DAT_01a45084 = 0xff; | |
_DAT_01a450b0 = 0x100; | |
_DAT_01a450b4 = 0xff; | |
if (*(int *)(param_2 + 0x24) == 1) { | |
uVar3 = 0x1000; | |
_DAT_01a02000 = 0x200; | |
} | |
else if (*(int *)(param_2 + 0x24) == 2) { | |
uVar3 = 0x200000; | |
_DAT_01a02000 = 0x40000; | |
} | |
else { | |
uVar3 = 8; | |
_DAT_01a02000 = 1; | |
} | |
if ((*(char *)(param_2 + 0x94) != '\0') && (*(char *)(param_2 + 0x97) != '\0')) { | |
_DAT_01a02000 = _DAT_01a02000 | uVar3; | |
} | |
uVar2 = uRam01a02204; | |
if ((*(char *)(param_2 + 0x94) != '\0') && (uVar4 = (uint)*(byte *)(param_2 + 0x97), uVar4 == 0)) | |
{ | |
_DAT_01a46004 = uVar1 | *(uint *)(param_2 + 0x40); | |
_DAT_01a46020 = 0x100; | |
_DAT_01a46024 = 0xff; | |
_DAT_01a46050 = 0x100; | |
_DAT_01a46054 = 0xff; | |
_DAT_01a46080 = 0x100; | |
_DAT_01a46084 = 0xff; | |
_DAT_01a460b0 = 0x100; | |
_DAT_01a460b4 = 0xff; | |
uVar2 = uVar3; | |
_DAT_01a46000 = uVar4; | |
if (*(char *)(param_2 + 0x95) == '\0') { | |
uRam01a02004 = uVar3; | |
uVar2 = uRam01a02204; | |
} | |
} | |
uRam01a02204 = uVar2; | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f61c464) | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61c398(int param_1) | |
{ | |
uint uVar1; | |
uint uVar2; | |
bool bVar3; | |
uVar1 = _DAT_01a01000 >> 0x10; | |
uVar2 = uVar1 & 0xfffffffd; | |
if (uVar2 == 0x1000) { | |
_DAT_01a011e0 = 0xe9; | |
} | |
else if (uVar1 == 0x1001) { | |
_DAT_01a011e0 = 0xa5; | |
} | |
else if ((uVar1 == 0x1008 || uVar1 == 0x1006) || (uVar1 - 0x100b < 2)) { | |
_DAT_01a011e0 = 0xe4; | |
} | |
else { | |
bVar3 = 0x1004 < uVar2; | |
if (uVar2 != 0x1005) { | |
bVar3 = uVar1 != 0x1009; | |
} | |
if (bVar3 && (uVar2 != 0x1005 && uVar1 != 0x100a)) { | |
if (uVar1 == 0x1003) { | |
_DAT_01a011e0 = 0xfa; | |
} | |
} | |
else { | |
_DAT_01a011e0 = 0xa4; | |
} | |
} | |
return; | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61c468(int param_1) | |
{ | |
char cVar1; | |
int iVar2; | |
int iVar3; | |
uint uVar4; | |
uint uVar5; | |
int *piVar6; | |
int iVar7; | |
int unaff_r9; | |
bool bVar8; | |
int local_34; | |
int local_30 [3]; | |
int *local_24; | |
iVar7 = *(int *)(param_1 + 0x24); | |
local_24 = DAT_8f69d118; | |
if (iVar7 == 1) { | |
unaff_r9 = 5; | |
} | |
local_34 = 0; | |
local_30[0] = 0; | |
local_30[1] = 0; | |
local_30[2] = 0; | |
if (iVar7 != 1) { | |
if (iVar7 == 2) { | |
unaff_r9 = 10; | |
iVar7 = 2; | |
} | |
else { | |
unaff_r9 = 4; | |
iVar7 = 0; | |
} | |
} | |
uVar4 = _DAT_01a01000 >> 0x10; | |
if ((uVar4 == 0x1008 || uVar4 == 0x1006) || (uVar4 - 0x100b < 2)) { | |
local_34 = 2; | |
iVar2 = 2; | |
local_30[0] = 2; | |
local_30[1] = 2; | |
local_30[2] = 2; | |
} | |
else { | |
uVar5 = uVar4 & 0xfffffffd; | |
iVar2 = 0x1005; | |
bVar8 = 0x1004 < uVar5; | |
if (uVar5 != 0x1005) { | |
bVar8 = uVar4 != 0x1009; | |
} | |
if (bVar8 && (uVar5 != 0x1005 && uVar4 != 0x100a)) goto LAB_8f61c504; | |
iVar2 = 1; | |
local_30[1] = 2; | |
local_34 = 1; | |
local_30[0] = 2; | |
local_30[2] = 2; | |
} | |
local_30[2] = 2; | |
local_30[1] = 2; | |
local_30[0] = 2; | |
if (((_DAT_01a01000 & 0xfffaffff) == 0x100a0000) || (_DAT_01a01000 == 0x10100000)) { | |
iVar3 = 0x1ab0020; | |
} | |
else { | |
iVar3 = 0x1ac8020; | |
if (_DAT_01a01000 >> 0x10 == 0x1007) { | |
iVar3 = 0x1ab0000; | |
} | |
} | |
piVar6 = &local_34; | |
cVar1 = *(char *)(param_1 + 0x94); | |
param_1 = iVar3 - (int)piVar6; | |
while( true ) { | |
uVar4 = *(uint *)(param_1 + (int)piVar6) & ~(3 << (iVar7 << 1 & 0xffU)) | | |
iVar2 << (iVar7 << 1 & 0xffU); | |
if (cVar1 != '\0') { | |
uVar4 = uVar4 & ~(3 << (unaff_r9 << 1 & 0xffU)) | iVar2 << (unaff_r9 << 1 & 0xffU); | |
} | |
*(uint *)(param_1 + (int)piVar6) = uVar4; | |
if (piVar6 == local_30 + 2) break; | |
piVar6 = piVar6 + 1; | |
iVar2 = *piVar6; | |
} | |
LAB_8f61c504: | |
if (local_24 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,iVar2,local_24); | |
} | |
return; | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61c5fc(uint *param_1,uint *param_2) | |
{ | |
undefined4 uVar1; | |
int iVar2; | |
uint uVar3; | |
uint *puVar4; | |
uint *puVar5; | |
code *pcVar6; | |
uint local_2c; | |
uint local_28; | |
int local_24; | |
int local_20; | |
int *local_1c; | |
local_1c = DAT_8f69d118; | |
FUN_8f61bdd0(param_1[7],&local_2c,&local_28,&local_24,&local_20); | |
FUN_8f61be88(param_1,local_24); | |
uVar1 = FUN_8f61c0f0(param_1,local_24); | |
if (*(char *)((int)param_1 + 0x28b) != '\0') { | |
FUN_8f61be88(param_1,local_20); | |
uVar1 = FUN_8f61c0f0(param_1,local_20); | |
} | |
if (_DAT_01a01000 >> 0x10 != 0x1007) { | |
uVar1 = FUN_8f61bb1c(); | |
} | |
if (param_1[9] == 1) { | |
puVar5 = (uint *)0x1a17000; | |
puVar4 = (uint *)0x1a15000; | |
} | |
else { | |
puVar4 = (uint *)0x1a25000; | |
puVar5 = (uint *)0x1a27000; | |
if (param_1[9] != 2) { | |
puVar4 = (uint *)0x1a05000; | |
puVar5 = (uint *)0x1a07000; | |
} | |
} | |
iVar2 = FUN_8f61ba24(uVar1); | |
if ((((_DAT_01a01000 >> 0x10 != 0x1007) && (_DAT_01a01000 >> 0x10 != 0x100e)) && | |
(_DAT_01a01000 >> 0x10 != 0x1010)) && (_DAT_01a01000 >> 0x10 != 0x100f)) { | |
iVar2 = FUN_8f61b73c((int)param_1,(int)puVar4,(int)puVar5); | |
} | |
FUN_8f61c398(iVar2); | |
FUN_8f61c468((int)param_1); | |
FUN_8f61b3fc(param_2,param_1,puVar4); | |
if (*(char *)(param_1 + 0x25) != '\0') { | |
FUN_8f61b3fc(param_2,param_1,puVar5); | |
} | |
FUN_8f61c24c((int)param_2,(int)param_1); | |
if (param_1[7] == 2) { | |
_DAT_01a02014 = 0x1f30; | |
uVar3 = 0x30; | |
} | |
else { | |
_DAT_01a02014 = 0x1f30; | |
param_1[7] = 1; | |
if (*(char *)((int)param_1 + 0x96) == '\0') { | |
_DAT_01a02014 = 0x1f20; | |
uVar3 = 0x20; | |
} | |
else { | |
uVar3 = 0x30; | |
} | |
} | |
if (((*(char *)(param_1 + 0x25) != '\0') && (*(char *)((int)param_1 + 0x28b) == '\0')) && | |
((*(char *)((int)param_1 + 0x95) == '\0' && (param_1[0x11] != 2)))) { | |
_DAT_01a02014 = uVar3 | 0x181f00; | |
} | |
uVar3 = param_1[8]; | |
if (uVar3 != 1) { | |
if ((uVar3 == 2) && (param_1[0x26] != 0)) { | |
FUN_8f61bb98(param_1); | |
} | |
goto LAB_8f61c7a8; | |
} | |
pcVar6 = (code *)param_1[0x8d]; | |
if (pcVar6 == (code *)0x0) goto LAB_8f61c7a8; | |
if (*(char *)(param_1 + 0x25) == '\0') { | |
LAB_8f61c91c: | |
(*pcVar6)(param_1,0x1a71000,0x1a81000,0,0); | |
} | |
else { | |
if (*(char *)((int)param_1 + 0x28b) == '\0') { | |
if ((*(char *)((int)param_1 + 0x95) != '\0') || (param_1[0x11] != 2)) goto LAB_8f61c91c; | |
} | |
else { | |
if ((*(char *)((int)param_1 + 0x95) == '\0') || (param_1[0x11] != 1)) goto LAB_8f61c91c; | |
uVar3 = 0; | |
} | |
(*pcVar6)(param_1,0x1a71000,0x1a81000,uVar3,uVar3); | |
(*(code *)param_1[0x8d])(param_1,0x1a71800,0x1a81400,uVar3,uVar3); | |
} | |
LAB_8f61c7a8: | |
if (*(char *)((int)param_1 + 0x28b) != '\0') { | |
if (*(char *)((int)param_1 + 0x97) == '\0') { | |
if (param_1[7] == 2) { | |
_DAT_01a02214 = 0x1f20; | |
} | |
else { | |
_DAT_01a02214 = 0x1f20; | |
param_1[7] = 1; | |
if (*(char *)((int)param_1 + 0x96) == '\0') { | |
_DAT_01a02214 = 0x1f30; | |
} | |
} | |
} | |
local_2c = local_28 | local_2c; | |
} | |
_DAT_01a01004 = local_2c; | |
_DAT_01a012e0 = 0x1111; | |
_DAT_01a011ec = 1; | |
_DAT_01a013f8 = 1; | |
if (local_1c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,0x1111,local_1c); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61c9b4(uint *param_1,uint *param_2) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
int iVar3; | |
uint *puVar4; | |
uint *puVar5; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f61be88(param_1,0x1a12500); | |
if (param_1[9] == 1) { | |
puVar5 = (uint *)0x1a17000; | |
puVar4 = (uint *)0x1a15000; | |
} | |
else { | |
puVar4 = (uint *)0x1a25000; | |
puVar5 = (uint *)0x1a27000; | |
if (param_1[9] != 2) { | |
puVar4 = (uint *)0x1a05000; | |
puVar5 = (uint *)0x1a07000; | |
} | |
} | |
if (_DAT_01a01000 >> 0x10 != 0x1007) { | |
uVar2 = FUN_8f61bb1c(); | |
} | |
FUN_8f61ba24(uVar2); | |
iVar3 = FUN_8f61b73c((int)param_1,(int)puVar4,(int)puVar5); | |
FUN_8f61c398(iVar3); | |
FUN_8f61c468((int)param_1); | |
FUN_8f61b3fc(param_2,param_1,puVar4); | |
if (*(char *)(param_1 + 0x25) != '\0') { | |
FUN_8f61b3fc(param_2,param_1,puVar5); | |
} | |
FUN_8f61c24c((int)param_2,(int)param_1); | |
_DAT_01a02014 = 0x1f10; | |
if (*(char *)(param_1 + 0x25) != '\0') { | |
_DAT_01a02014 = 0x181f10; | |
} | |
_DAT_01a01004 = 9; | |
_DAT_01a012e0 = 0x1111; | |
_DAT_01a011ec = 1; | |
_DAT_01a013f8 = 1; | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,0x1111,piVar1); | |
} | |
return; | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61cb04(uint *param_1,uint *param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined4 uVar3; | |
piVar1 = DAT_8f69d118; | |
iVar2 = FUN_8f61bd2c(); | |
FUN_8f61be88(param_1,iVar2 + 0x1a12b00); | |
iVar2 = FUN_8f61bd2c(); | |
uVar3 = FUN_8f61c0f0(param_1,iVar2 + 0x1a12b00); | |
param_1[9] = 1; | |
if (_DAT_01a01000 >> 0x10 != 0x1007) { | |
uVar3 = FUN_8f61bb1c(); | |
} | |
FUN_8f61ba24(uVar3); | |
iVar2 = FUN_8f61b73c((int)param_1,0x1a15000,0x1a17000); | |
FUN_8f61c398(iVar2); | |
FUN_8f61b3fc(param_2,param_1,(uint *)0x1a15000); | |
if (*(char *)(param_1 + 0x25) != '\0') { | |
FUN_8f61b3fc(param_2,param_1,(uint *)0x1a17000); | |
} | |
FUN_8f61c24c((int)param_2,(int)param_1); | |
if (*(char *)(param_1 + 0x25) == '\0') { | |
_DAT_01a02014 = 0x40; | |
} | |
else { | |
_DAT_01a02014 = 0x181f40; | |
} | |
_DAT_01a01004 = 0x3000000; | |
_DAT_01a012e0 = 0x11111; | |
_DAT_01a011ec = 1; | |
_DAT_01a013f8 = 1; | |
_DAT_01a7a400 = 1; | |
_DAT_01a01410 = 0; | |
_DAT_01a6c804 = 0; | |
_DAT_01a7a330 = (uint)*(ushort *)param_1 | param_1[1] << 0x10; | |
_DAT_01a7a300 = 0x80; | |
_DAT_01a7a304 = 0x3ff0000; | |
_DAT_01a7a200 = 0; | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,0,piVar1); | |
} | |
return; | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61cc8c(uint *param_1,uint *param_2) | |
{ | |
char cVar1; | |
undefined4 *puVar2; | |
int iVar3; | |
undefined4 uVar4; | |
uint *extraout_r1; | |
uint *extraout_r1_00; | |
uint *extraout_r1_01; | |
uint *puVar5; | |
uint *puVar6; | |
code *pcVar7; | |
uint uStack_2c; | |
uint uStack_28; | |
int local_24; | |
int local_20; | |
int *local_1c; | |
local_1c = DAT_8f69d118; | |
if (param_1 == (uint *)0x0) { | |
uVar4 = 0xfffffff8; | |
} | |
else { | |
puVar2 = (undefined4 *)FUN_8f61bdd0(param_1[7],&uStack_2c,&uStack_28,&local_24,&local_20); | |
if (*(char *)((int)param_1 + 0x95) == '\0') { | |
cVar1 = *(char *)((int)param_1 + 0x97); | |
} | |
else { | |
if (*(char *)((int)param_1 + 0x97) == '\0') { | |
_DAT_01a012f8 = 2; | |
} | |
else { | |
_DAT_01a012f8 = 6; | |
} | |
if (*(char *)((int)param_1 + 0x96) == '\0') { | |
_DAT_01a012f8 = _DAT_01a012f8 | 0x100; | |
} | |
else { | |
_DAT_01a012f8 = _DAT_01a012f8 | 0x10; | |
} | |
_DAT_01a012f4 = 1; | |
cVar1 = *(char *)((int)param_1 + 0x97); | |
_DAT_01a013f0 = _DAT_01a012f8; | |
} | |
if (cVar1 != '\0') { | |
iVar3 = FUN_8f61b69c(); | |
puVar2 = (undefined4 *)(iVar3 + 0x1a00000); | |
*puVar2 = 0x20; | |
*(undefined4 *)(iVar3 + 0x1a00004) = 0x310000; | |
} | |
if (_DAT_01a01000 >> 0x10 != 0x1007) { | |
puVar2 = (undefined4 *)FUN_8f61bb1c(); | |
} | |
if (*(char *)((int)param_1 + 0x28b) != '\0') { | |
uStack_2c = uStack_28 | uStack_2c; | |
} | |
if (param_1[9] == 1) { | |
puVar6 = (uint *)0x1a17000; | |
puVar5 = (uint *)0x1a15000; | |
} | |
else { | |
puVar5 = (uint *)0x1a25000; | |
puVar6 = (uint *)0x1a27000; | |
if (param_1[9] != 2) { | |
puVar5 = (uint *)0x1a05000; | |
puVar6 = (uint *)0x1a07000; | |
} | |
} | |
_DAT_01a01004 = uStack_2c; | |
iVar3 = FUN_8f61ba24(puVar2); | |
if ((((_DAT_01a01000 >> 0x10 != 0x1007) && (_DAT_01a01000 >> 0x10 != 0x100e)) && | |
(_DAT_01a01000 >> 0x10 != 0x1010)) && (_DAT_01a01000 >> 0x10 != 0x100f)) { | |
iVar3 = FUN_8f61b73c((int)param_1,(int)puVar5,(int)puVar6); | |
} | |
FUN_8f61c398(iVar3); | |
FUN_8f61c468((int)param_1); | |
FUN_8f61b3fc(param_2,param_1,puVar5); | |
if (*(char *)(param_1 + 0x25) != '\0') { | |
FUN_8f61b3fc(param_2,param_1,puVar6); | |
} | |
FUN_8f61c24c((int)param_2,(int)param_1); | |
*(undefined4 *)(local_24 + 0x90) = 0x213f; | |
if (param_1[7] == 2) { | |
param_2 = (uint *)0x30; | |
_DAT_01a02014 = 0x21f30; | |
} | |
else { | |
_DAT_01a02014 = 0x21f20; | |
param_1[7] = 1; | |
if (*(char *)((int)param_1 + 0x96) == '\0') { | |
param_2 = (uint *)0x20; | |
} | |
else { | |
param_2 = (uint *)0x30; | |
_DAT_01a02014 = 0x21f30; | |
} | |
} | |
if (((*(char *)(param_1 + 0x25) != '\0') && (*(char *)((int)param_1 + 0x28b) == '\0')) && | |
((*(char *)((int)param_1 + 0x95) == '\0' && (param_1[0x11] != 2)))) { | |
_DAT_01a02014 = (uint)param_2 | 0x1a1f00; | |
} | |
if (param_1[8] == 1) { | |
pcVar7 = (code *)param_1[0x8d]; | |
if (pcVar7 != (code *)0x0) { | |
if (((*(char *)(param_1 + 0x25) == '\0') || (*(char *)((int)param_1 + 0x28b) != '\0')) || | |
((*(char *)((int)param_1 + 0x95) != '\0' || (param_1[0x11] != 2)))) { | |
(*pcVar7)(param_1,0x1a71000,0x1a81000,0,0); | |
param_2 = extraout_r1_01; | |
} | |
else { | |
(*pcVar7)(param_1,0x1a71000,0x1a81000,1,1); | |
(*(code *)param_1[0x8d])(param_1,0x1a71800,0x1a81400,1,1); | |
param_2 = extraout_r1_00; | |
} | |
} | |
} | |
else if ((param_1[8] == 2) && (param_1[0x26] != 0)) { | |
FUN_8f61bb98(param_1); | |
param_2 = extraout_r1; | |
} | |
if ((*(char *)((int)param_1 + 0x28b) == '\0') || | |
(*(undefined4 *)(local_20 + 0x90) = 0x213f, *(char *)((int)param_1 + 0x97) != '\0')) { | |
uVar4 = 0; | |
} | |
else { | |
if (param_1[7] == 2) { | |
_DAT_01a02214 = 0x21f20; | |
} | |
else { | |
param_2 = (uint *)0x1; | |
param_1[7] = 1; | |
_DAT_01a02214 = 0x21f20; | |
if (*(char *)((int)param_1 + 0x96) == '\0') { | |
_DAT_01a02214 = 0x21f30; | |
} | |
} | |
uVar4 = 0; | |
} | |
} | |
if (local_1c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar4,param_2,local_1c); | |
} | |
return; | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61d080(uint param_1) | |
{ | |
int iVar1; | |
undefined8 uVar2; | |
uint local_1c; | |
uint *puStack_18; | |
int *local_14; | |
local_14 = DAT_8f69d118; | |
FUN_8f61b1e0(param_1,&local_1c,&puStack_18); | |
_DAT_01a02018 = local_1c; | |
if ((*(char *)(param_1 + 0x94) != '\0') && (*(char *)(param_1 + 0x97) == '\0')) { | |
puRam01a02218 = puStack_18; | |
} | |
iVar1 = 0x1a12f00; | |
if (*(int *)(param_1 + 0x1c) == 1) { | |
iVar1 = 0x1a12700; | |
} | |
uVar2 = FUN_8f61bd2c(); | |
*(undefined4 *)((int)uVar2 + iVar1) = 1; | |
if (local_14 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,(int)((ulonglong)uVar2 >> 0x20),local_14); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61d124(int param_1) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined4 extraout_r1; | |
undefined4 uVar3; | |
int iVar4; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
iVar4 = 0x1a12f00; | |
if (*(int *)(param_1 + 0x1c) == 1) { | |
iVar4 = 0x1a12700; | |
} | |
uVar5 = FUN_8f60106c(*(int *)(param_1 + 0x1c),DAT_8f69d118); | |
uVar3 = (undefined4)((ulonglong)uVar5 >> 0x20); | |
if ((int)uVar5 == 0) { | |
iVar2 = FUN_8f61bd2c(); | |
*(undefined4 *)(iVar2 + iVar4) = 0; | |
FUN_8f6104a8(0x3c); | |
_DAT_01a01018 = 0xff777713; | |
uVar3 = extraout_r1; | |
} | |
_DAT_01a01010 = 0; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,uVar3,piVar1); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61d1b8(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f60106c(param_1,param_2); | |
if ((int)uVar2 == 0) { | |
_DAT_01a01018 = 0xff777713; | |
} | |
_DAT_01a01010 = 0; | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
return; | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61d218(uint param_1) | |
{ | |
byte bVar1; | |
uint extraout_r1; | |
uint uVar2; | |
uint extraout_r1_00; | |
uint local_1c; | |
uint *puStack_18; | |
int *local_14; | |
local_14 = DAT_8f69d118; | |
FUN_8f61b1e0(param_1,&local_1c,&puStack_18); | |
_DAT_01a02018 = local_1c; | |
if ((*(char *)(param_1 + 0x94) != '\0') && (*(char *)(param_1 + 0x97) == '\0')) { | |
puRam01a02218 = puStack_18; | |
} | |
uVar2 = extraout_r1; | |
if ((*(char *)(param_1 + 0x514) != '\0') && (*(int *)(param_1 + 0xc) == 9)) { | |
bVar1 = *(byte *)(param_1 + 0x27b); | |
uVar2 = (uint)bVar1 * | |
(*(int *)(param_1 + 0x74) + *(int *)(param_1 + 0x78) + *(int *)(param_1 + 0x7c) + | |
*(int *)(param_1 + 0x2c) + *(int *)(param_1 + 0x30) + *(int *)(param_1 + 4)); | |
if (uVar2 == 0) { | |
_DAT_01a71004 = 0x80000; | |
} | |
else { | |
uVar2 = FUN_8f6582ac(19200000,uVar2); | |
_DAT_01a71004 = (uVar2 * (uint)bVar1 * 100) / 6000 | 0x80000; | |
uVar2 = extraout_r1_00; | |
} | |
if (*(char *)(param_1 + 0x97) != '\0') { | |
uRam01a73004 = _DAT_01a71004; | |
} | |
if (*(char *)(param_1 + 0x94) != '\0') { | |
uRam01a71804 = _DAT_01a71004; | |
} | |
DataSynchronizationBarrier(0xf); | |
_DAT_01a71030 = *(uint *)(param_1 + 0x518) | 0x80000000; | |
if (*(char *)(param_1 + 0x97) != '\0') { | |
uRam01a73030 = *(uint *)(param_1 + 0x518) | 0x80000000; | |
} | |
if (*(char *)(param_1 + 0x94) != '\0') { | |
uRam01a71830 = *(uint *)(param_1 + 0x518) | 0x80000000; | |
} | |
DataSynchronizationBarrier(0xf); | |
} | |
_DAT_01a0201c = 1; | |
if (local_14 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,uVar2,local_14); | |
} | |
return; | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61d3ac(uint param_1) | |
{ | |
int iVar1; | |
uint local_14; | |
uint *puStack_10; | |
int *local_c; | |
local_c = DAT_8f69d118; | |
FUN_8f61b1e0(param_1,&local_14,&puStack_10); | |
_DAT_01a02018 = local_14; | |
iVar1 = FUN_8f61bd2c(); | |
*(undefined4 *)(iVar1 + 0x1a12500) = 1; | |
if (local_c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,1,local_c); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61d418(uint param_1) | |
{ | |
int iVar1; | |
uint local_14; | |
uint *puStack_10; | |
int *local_c; | |
local_c = DAT_8f69d118; | |
FUN_8f61b1e0(param_1,&local_14,&puStack_10); | |
_DAT_01a02018 = local_14; | |
iVar1 = FUN_8f61bd2c(); | |
*(undefined4 *)(iVar1 + 0x1a12b00) = 1; | |
if (local_c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,1,local_c); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61d484(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined4 extraout_r1; | |
undefined4 uVar3; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
uVar4 = FUN_8f60106c(param_1,param_2); | |
uVar3 = (undefined4)((ulonglong)uVar4 >> 0x20); | |
if ((int)uVar4 == 0) { | |
iVar2 = FUN_8f61bd2c(); | |
*(undefined4 *)(iVar2 + 0x1a12b00) = 0; | |
FUN_8f6104a8(0x3c); | |
_DAT_01a01018 = 0xff777713; | |
uVar3 = extraout_r1; | |
} | |
_DAT_01a01010 = 0; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,uVar3,piVar1); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f61d504(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined4 extraout_r1; | |
undefined4 uVar3; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
uVar4 = FUN_8f60106c(param_1,param_2); | |
uVar3 = (undefined4)((ulonglong)uVar4 >> 0x20); | |
if ((int)uVar4 == 0) { | |
iVar2 = FUN_8f61bd2c(); | |
*(undefined4 *)(iVar2 + 0x1a12500) = 0; | |
FUN_8f6104a8(0x3c); | |
_DAT_01a01018 = 0xff777713; | |
uVar3 = extraout_r1; | |
} | |
_DAT_01a01010 = 0; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,uVar3,piVar1); | |
} | |
void FUN_8f61d588(undefined4 param_1,undefined4 param_2) | |
{ | |
uint *puVar1; | |
int *piVar2; | |
uint uVar3; | |
undefined4 extraout_r1; | |
undefined4 uVar4; | |
int *piVar5; | |
code *pcVar6; | |
bool bVar7; | |
undefined8 uVar8; | |
piVar2 = DAT_8f69d118; | |
puVar1 = DAT_8f68a204; | |
if (DAT_8f68a204 == (uint *)0x0) { | |
switchD_8f61d5c8_caseD_4: | |
uVar8 = CONCAT44(param_2,0xfffffff8); | |
goto LAB_8f61d614; | |
} | |
FUN_8f61bcac(DAT_8f68a204[0x14f]); | |
param_2 = extraout_r1; | |
switch(puVar1[3]) { | |
case 3: | |
case 0xb: | |
uVar8 = FUN_8f6269cc(puVar1,DAT_8f68a204 + 0x147); | |
break; | |
default: | |
goto switchD_8f61d5c8_caseD_4; | |
case 6: | |
uVar8 = FUN_8f61cb04(puVar1,DAT_8f68a204 + 0x147); | |
goto joined_r0x8f61d718; | |
case 8: | |
uVar8 = FUN_8f61bcec(); | |
piVar5 = (int *)((ulonglong)uVar8 >> 0x20); | |
uVar3 = (uint)uVar8; | |
bVar7 = 0xc < uVar3; | |
if (uVar3 != 0xd) { | |
bVar7 = uVar3 != 5; | |
} | |
if (!bVar7 || (uVar3 == 0xd || uVar3 == 6)) { | |
uVar8 = FUN_8f61e73c((int)DAT_8f68a204,piVar5); | |
} | |
else { | |
uVar8 = FUN_8f61ec68(DAT_8f68a204,piVar5); | |
} | |
if ((int)uVar8 != 0) goto LAB_8f61d614; | |
if ((code *)puVar1[0x142] != (code *)0x0) { | |
(*(code *)puVar1[0x142])(puVar1); | |
} | |
uVar8 = FUN_8f61c5fc(puVar1,DAT_8f68a204 + 0x147); | |
joined_r0x8f61d718: | |
uVar4 = (undefined4)((ulonglong)uVar8 >> 0x20); | |
if ((int)uVar8 != 0) goto LAB_8f61d614; | |
goto LAB_8f61d648; | |
case 9: | |
uVar8 = FUN_8f61bcec(); | |
piVar5 = (int *)((ulonglong)uVar8 >> 0x20); | |
uVar3 = (uint)uVar8; | |
bVar7 = 0xc < uVar3; | |
if (uVar3 != 0xd) { | |
bVar7 = uVar3 != 5; | |
} | |
if (!bVar7 || (uVar3 == 0xd || uVar3 == 6)) { | |
uVar8 = FUN_8f61e73c((int)DAT_8f68a204,piVar5); | |
} | |
else { | |
uVar8 = FUN_8f61ec68(DAT_8f68a204,piVar5); | |
} | |
if ((int)uVar8 != 0) goto LAB_8f61d614; | |
uVar8 = FUN_8f61cc8c(puVar1,DAT_8f68a204 + 0x147); | |
break; | |
case 0xc: | |
uVar8 = FUN_8f61c9b4(puVar1,DAT_8f68a204 + 0x147); | |
} | |
uVar4 = (undefined4)((ulonglong)uVar8 >> 0x20); | |
if ((int)uVar8 == 0) { | |
LAB_8f61d648: | |
pcVar6 = (code *)puVar1[0x143]; | |
uVar8 = CONCAT44(uVar4,pcVar6); | |
if (pcVar6 != (code *)0x0) { | |
uVar8 = (*pcVar6)(puVar1); | |
} | |
} | |
LAB_8f61d614: | |
if (piVar2 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar8,(int)((ulonglong)uVar8 >> 0x20),piVar2); | |
} | |
return; | |
} | |
void FUN_8f61d73c(undefined4 param_1,undefined4 param_2) | |
{ | |
uint uVar1; | |
int *piVar2; | |
code *pcVar3; | |
uint uVar4; | |
undefined4 uVar5; | |
int *piVar6; | |
bool bVar7; | |
undefined8 uVar8; | |
piVar2 = DAT_8f69d118; | |
if (DAT_8f68a204 == 0) { | |
switchD_8f61d7b0_caseD_4: | |
uVar8 = CONCAT44(param_2,0xfffffff8); | |
goto LAB_8f61d78c; | |
} | |
uVar8 = FUN_8f607f64((int *)0x2,param_2); | |
uVar1 = DAT_8f68a204; | |
if ((*(code **)(DAT_8f68a204 + 0x4fc) != (code *)0x0) && | |
(uVar8 = (**(code **)(DAT_8f68a204 + 0x4fc))(), (int)uVar8 != 0)) goto LAB_8f61d78c; | |
param_2 = (undefined4)((ulonglong)uVar8 >> 0x20); | |
switch(*(undefined4 *)(uVar1 + 0xc)) { | |
case 3: | |
uVar8 = FUN_8f626a3c(DAT_8f68a204,param_2); | |
goto joined_r0x8f61d830; | |
default: | |
goto switchD_8f61d7b0_caseD_4; | |
case 6: | |
uVar8 = FUN_8f626ca0((int)uVar8,param_2); | |
if ((int)uVar8 != 0) goto LAB_8f61d78c; | |
uVar8 = FUN_8f61d418(uVar1); | |
joined_r0x8f61d830: | |
uVar5 = (undefined4)((ulonglong)uVar8 >> 0x20); | |
if ((int)uVar8 != 0) goto LAB_8f61d78c; | |
goto LAB_8f61d7f0; | |
case 8: | |
uVar8 = FUN_8f61d080(uVar1); | |
if (((int)uVar8 != 0) || | |
(uVar8 = FUN_8f61e900(DAT_8f68a204,(int *)((ulonglong)uVar8 >> 0x20)), (int)uVar8 != 0)) | |
goto LAB_8f61d78c; | |
uVar8 = FUN_8f61eb14(uVar1); | |
break; | |
case 9: | |
uVar8 = FUN_8f61d218(uVar1); | |
if ((int)uVar8 != 0) goto LAB_8f61d78c; | |
uVar8 = FUN_8f61bcec(); | |
piVar6 = (int *)((ulonglong)uVar8 >> 0x20); | |
uVar4 = (uint)uVar8; | |
bVar7 = 0xc < uVar4; | |
if (uVar4 != 0xd) { | |
bVar7 = uVar4 != 5; | |
} | |
if (bVar7 && (uVar4 != 0xd && uVar4 != 6)) { | |
uVar8 = FUN_8f61ec30(uVar4,piVar6); | |
piVar6 = (int *)((ulonglong)uVar8 >> 0x20); | |
if ((int)uVar8 != 0) goto LAB_8f61d78c; | |
} | |
uVar8 = FUN_8f61e900(DAT_8f68a204,piVar6); | |
break; | |
case 0xb: | |
uVar8 = FUN_8f626a3c(DAT_8f68a204,param_2); | |
if ((int)uVar8 != 0) goto LAB_8f61d78c; | |
uVar8 = FUN_8f626a04(DAT_8f68a204,(int)((ulonglong)uVar8 >> 0x20)); | |
break; | |
case 0xc: | |
uVar8 = FUN_8f61d3ac(uVar1); | |
} | |
uVar5 = (undefined4)((ulonglong)uVar8 >> 0x20); | |
if ((int)uVar8 == 0) { | |
LAB_8f61d7f0: | |
pcVar3 = *(code **)(uVar1 + 0x4f4); | |
uVar8 = CONCAT44(uVar5,pcVar3); | |
if (pcVar3 != (code *)0x0) { | |
uVar8 = (*pcVar3)(); | |
} | |
} | |
LAB_8f61d78c: | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar8,(int)((ulonglong)uVar8 >> 0x20),piVar2); | |
} | |
void FUN_8f61d8e8(char **param_1,int *param_2,char *param_3) | |
{ | |
int *piVar1; | |
int iVar2; | |
char **ppcVar3; | |
int iVar4; | |
undefined4 extraout_r1; | |
code *pcVar5; | |
char **ppcVar6; | |
undefined8 uVar7; | |
piVar1 = DAT_8f69d118; | |
DAT_8f68a204 = param_1; | |
if (param_1 == (char **)0x0) { | |
iVar2 = -8; | |
goto LAB_8f61d938; | |
} | |
if ((code *)param_1[0x151] != (code *)0x0) { | |
uVar7 = (*(code *)param_1[0x151])(1,param_1); | |
param_2 = (int *)((ulonglong)uVar7 >> 0x20); | |
iVar2 = (int)uVar7; | |
if ((int)uVar7 != 0) goto LAB_8f61d938; | |
} | |
pcVar5 = (code *)param_1[0x155]; | |
uVar7 = CONCAT44(param_2,pcVar5); | |
if (pcVar5 != (code *)0x0) { | |
uVar7 = (*pcVar5)(DAT_8f68a204); | |
} | |
if ((code *)param_1[0x152] != (code *)0x0) { | |
uVar7 = (*(code *)param_1[0x152])(1,DAT_8f68a204); | |
} | |
param_2 = (int *)((ulonglong)uVar7 >> 0x20); | |
iVar2 = (int)uVar7; | |
if ((int)uVar7 != 0) goto LAB_8f61d938; | |
if ((code *)param_1[0x158] != (code *)0x0) { | |
uVar7 = (*(code *)param_1[0x158])(); | |
param_2 = (int *)((ulonglong)uVar7 >> 0x20); | |
iVar2 = (int)uVar7; | |
if ((int)uVar7 != 0) goto LAB_8f61d938; | |
} | |
if ((code *)param_1[0x154] != (code *)0x0) { | |
uVar7 = (*(code *)param_1[0x154])(1,DAT_8f68a204); | |
param_2 = (int *)((ulonglong)uVar7 >> 0x20); | |
iVar2 = (int)uVar7; | |
if ((int)uVar7 != 0) goto LAB_8f61d938; | |
} | |
ppcVar6 = DAT_8f68a204; | |
if ((code *)param_1[0x141] != (code *)0x0) { | |
iVar2 = (*(code *)param_1[0x141])(); | |
ppcVar6 = DAT_8f68a204; | |
param_3 = *DAT_8f68a204; | |
ppcVar3 = DAT_8f68a204 + 1; | |
param_2 = (int *)DAT_8f68a204[2]; | |
DAT_8f68a204[0x148] = param_3; | |
ppcVar6[0x149] = *ppcVar3; | |
ppcVar6[0x14b] = (char *)param_2; | |
ppcVar6[0x14a] = param_3; | |
if (iVar2 != 0) goto LAB_8f61d938; | |
} | |
ppcVar3 = ppcVar6 + 0x147; | |
if (ppcVar3 == (char **)0x0) { | |
LAB_8f61daf8: | |
iVar2 = -1; | |
} | |
else { | |
if (ppcVar6[0x147] == (char *)0x0) { | |
param_3 = ppcVar6[0x148]; | |
uVar7 = FUN_8f6366a8((int *)0x1000, | |
((uint)ppcVar6[0x14b] >> 3) * (int)param_3 * (int)ppcVar6[0x149]); | |
param_2 = (int *)((ulonglong)uVar7 >> 0x20); | |
ppcVar6[0x147] = (char *)uVar7; | |
if ((char *)uVar7 == (char *)0x0) goto LAB_8f61daf8; | |
ppcVar3 = DAT_8f68a204 + 0x147; | |
} | |
uVar7 = FUN_8f62fa08((int)ppcVar3,param_2,param_3); | |
FUN_8f62fe14((int)uVar7,(int)((ulonglong)uVar7 >> 0x20)); | |
uVar7 = CONCAT44(extraout_r1,DAT_8f68a204); | |
if (((code *)DAT_8f68a204[0x159] != (code *)0x0) && | |
(uVar7 = CONCAT44(extraout_r1,DAT_8f68a204), DAT_8f68a204[0xbf] != (char *)0x0)) { | |
uVar7 = (*(code *)DAT_8f68a204[0x159])(); | |
param_2 = (int *)((ulonglong)uVar7 >> 0x20); | |
iVar2 = (int)uVar7; | |
if (iVar2 != 0) goto LAB_8f61d938; | |
} | |
uVar7 = FUN_8f61d588((int)uVar7,(int)((ulonglong)uVar7 >> 0x20)); | |
param_2 = (int *)((ulonglong)uVar7 >> 0x20); | |
iVar2 = (int)uVar7; | |
if ((int)uVar7 == 0) { | |
uVar7 = FUN_8f61d73c(0,param_2); | |
param_2 = (int *)((ulonglong)uVar7 >> 0x20); | |
iVar4 = (int)uVar7; | |
iVar2 = iVar4; | |
if (iVar4 == 0) { | |
if ((code *)param_1[0x156] != (code *)0x0) { | |
uVar7 = (*(code *)param_1[0x156])(1); | |
param_2 = (int *)((ulonglong)uVar7 >> 0x20); | |
iVar2 = (int)uVar7; | |
if (iVar2 != 0) goto LAB_8f61d938; | |
} | |
iVar2 = iVar4; | |
if ((code *)param_1[0x153] != (code *)0x0) { | |
uVar7 = (*(code *)param_1[0x153])(1); | |
param_2 = (int *)((ulonglong)uVar7 >> 0x20); | |
iVar2 = (int)uVar7; | |
} | |
} | |
} | |
} | |
LAB_8f61d938: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar2,param_2,piVar1); | |
} | |
void FUN_8f61db00(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
int *piVar2; | |
undefined4 uVar3; | |
int iVar4; | |
uint uVar5; | |
uint uVar6; | |
ulonglong uVar7; | |
ulonglong uVar8; | |
piVar2 = DAT_8f69d118; | |
piVar1 = DAT_8f68a204; | |
uVar7 = CONCAT44(param_2,param_1); | |
if (DAT_8f68a204 == (int *)0x0) { | |
switchD_8f61db68_caseD_4: | |
uVar7 = CONCAT44(param_2,0xfffffff8); | |
goto LAB_8f61db44; | |
} | |
if (((code *)DAT_8f68a204[0x140] != (code *)0x0) && | |
(uVar7 = (*(code *)DAT_8f68a204[0x140])(), (int)uVar7 != 0)) goto LAB_8f61db44; | |
param_2 = (undefined4)(uVar7 >> 0x20); | |
uVar3 = (undefined4)uVar7; | |
switch(piVar1[3]) { | |
case 3: | |
case 0xb: | |
uVar7 = FUN_8f626a74(uVar3,param_2); | |
goto LAB_8f61db9c; | |
default: | |
goto switchD_8f61db68_caseD_4; | |
case 6: | |
uVar7 = FUN_8f61d484(piVar1,param_2); | |
uVar6 = (uint)uVar7; | |
goto LAB_8f61dba0; | |
case 8: | |
uVar7 = FUN_8f61d124((int)piVar1); | |
break; | |
case 9: | |
uVar7 = FUN_8f61d1b8(uVar3,param_2); | |
break; | |
case 0xc: | |
uVar7 = FUN_8f61d504(uVar3,param_2); | |
iVar4 = (int)uVar7; | |
goto joined_r0x8f61dca4; | |
} | |
if ((int)uVar7 == 0) { | |
uVar7 = FUN_8f61ebac(piVar1,(int)(uVar7 >> 0x20)); | |
iVar4 = (int)uVar7; | |
joined_r0x8f61dca4: | |
if (iVar4 == 0) { | |
LAB_8f61db9c: | |
uVar6 = 0; | |
LAB_8f61dba0: | |
uVar8 = FUN_8f60106c((int)uVar7,(int)(uVar7 >> 0x20)); | |
uVar5 = (uint)(uVar8 >> 0x20); | |
uVar7 = uVar8 & 0xffffffff00000000 | (ulonglong)uVar6; | |
if ((int)uVar8 == 0) { | |
if ((code *)DAT_8f68a204[0x156] != (code *)0x0) { | |
uVar7 = (*(code *)DAT_8f68a204[0x156])(); | |
} | |
if ((int)uVar7 != 0) goto LAB_8f61db44; | |
if ((code *)DAT_8f68a204[0x153] != (code *)0x0) { | |
uVar7 = (*(code *)DAT_8f68a204[0x153])(0); | |
} | |
if ((code *)piVar1[0x13e] != (code *)0x0) { | |
uVar7 = (*(code *)piVar1[0x13e])(); | |
} | |
if ((code *)DAT_8f68a204[0x152] != (code *)0x0) { | |
uVar7 = (*(code *)DAT_8f68a204[0x152])(0,piVar1); | |
} | |
if ((code *)DAT_8f68a204[0x154] != (code *)0x0) { | |
uVar7 = (*(code *)DAT_8f68a204[0x154])(0,piVar1); | |
} | |
uVar5 = (uint)(uVar7 >> 0x20); | |
if ((int)uVar7 != 0) goto LAB_8f61db44; | |
if ((code *)DAT_8f68a204[0x151] != (code *)0x0) { | |
uVar7 = (*(code *)DAT_8f68a204[0x151])(0,piVar1); | |
goto LAB_8f61db44; | |
} | |
} | |
uVar7 = (ulonglong)uVar5 << 0x20; | |
} | |
} | |
LAB_8f61db44: | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar7,(int)(uVar7 >> 0x20),piVar2); | |
} | |
void FUN_8f61dcdc(uint *param_1,int param_2,int param_3,int param_4) | |
{ | |
int *piVar1; | |
int extraout_r1; | |
int extraout_r1_00; | |
int extraout_r1_01; | |
int iVar2; | |
uint *puVar3; | |
uint *puVar4; | |
int iVar5; | |
uint uVar6; | |
undefined4 *puVar7; | |
uint unaff_r6; | |
int iVar8; | |
uint *puVar9; | |
uint *puVar10; | |
undefined4 uVar11; | |
bool bVar12; | |
uint *local_144; | |
undefined4 auStack_12c [64]; | |
int *local_2c; | |
bVar12 = param_1 != (uint *)0x0; | |
if (bVar12) { | |
unaff_r6 = param_1[0x18]; | |
param_1 = (uint *)param_1[0x1a]; | |
} | |
if (!bVar12) { | |
unaff_r6 = 0x1a94000; | |
} | |
local_2c = DAT_8f69d118; | |
local_144 = param_1; | |
if (!bVar12) { | |
local_144 = (uint *)0x1a96000; | |
} | |
uVar6 = (uint)auStack_12c & 7; | |
if (uVar6 != 0) { | |
uVar6 = 8 - uVar6; | |
} | |
puVar7 = (undefined4 *)((int)auStack_12c + uVar6); | |
if (param_3 < 1) { | |
uVar11 = 0; | |
} | |
else { | |
puVar9 = (uint *)(unaff_r6 + 0x110); | |
iVar5 = param_2 + 0xc; | |
iVar8 = 0; | |
puVar3 = (uint *)(unaff_r6 + 4); | |
puVar4 = puVar3; | |
puVar10 = local_144 + 0x44; | |
if (param_4 == 0) { | |
puVar10 = puVar9; | |
} | |
do { | |
if ((*puVar3 & 2) != 0) { | |
*puVar9 = *puVar9 | 0x30000; | |
DataSynchronizationBarrier(0xf); | |
iVar2 = 0xffff; | |
piVar1 = (int *)(*puVar9 & 0x10000); | |
while (piVar1 == (int *)0x0) { | |
iVar2 = iVar2 + -1; | |
piVar1 = (int *)(*puVar9 & 0x10000); | |
if (iVar2 == 0) { | |
dprintf((byte *)s_Panel_CMD__Did_not_recieve_video_8f660ba0,piVar1,0,puVar4); | |
uVar11 = 1; | |
param_2 = extraout_r1_01; | |
goto LAB_8f61def8; | |
} | |
} | |
*puVar9 = *puVar9 | 0x1000001; | |
FUN_8f6104a8(4); | |
} | |
uVar6 = *(uint *)(iVar5 + -0xc) & 3; | |
if (uVar6 != 0) { | |
uVar6 = 4 - uVar6; | |
} | |
uVar6 = uVar6 + *(uint *)(iVar5 + -0xc); | |
FUN_8f63685c(puVar7,*(undefined4 **)(iVar5 + -8),uVar6); | |
FUN_8f625b24((uint)puVar7,uVar6); | |
*(undefined4 **)(unaff_r6 + 0x48) = puVar7; | |
if (param_4 != 0) { | |
puVar4 = local_144; | |
} | |
*(uint *)(unaff_r6 + 0x4c) = uVar6; | |
if (param_4 != 0) { | |
puVar4[0x12] = (uint)puVar7; | |
puVar4[0x13] = uVar6; | |
} | |
DataSynchronizationBarrier(0xf); | |
*puVar9 = 0x3030303; | |
*(undefined4 *)(unaff_r6 + 0x90) = 1; | |
DataSynchronizationBarrier(0xf); | |
if (param_4 != 0) { | |
local_144[0x44] = 0x3030303; | |
local_144[0x24] = 1; | |
DataSynchronizationBarrier(0xf); | |
puVar4 = local_144; | |
} | |
if ((*puVar10 & 1) == 0) { | |
iVar2 = 0xffff; | |
piVar1 = (int *)(*puVar10 & 1); | |
do { | |
if (piVar1 == (int *)0x1) goto LAB_8f61de88; | |
iVar2 = iVar2 + -1; | |
piVar1 = (int *)(*puVar10 & 1); | |
} while (iVar2 != 0); | |
dprintf((byte *)s_Panel_CMD__command_mode_dma_test_8f660bd8,piVar1,0,puVar4); | |
uVar11 = 1; | |
} | |
else { | |
LAB_8f61de88: | |
uVar11 = 0; | |
*puVar10 = *puVar10 | 0x1000001; | |
} | |
if (*(uint *)(iVar5 + -4) == 0) { | |
FUN_8f6104fc(0x50); | |
param_2 = extraout_r1_00; | |
} | |
else { | |
FUN_8f6104a8(*(uint *)(iVar5 + -4)); | |
param_2 = extraout_r1; | |
} | |
iVar8 = iVar8 + 1; | |
iVar5 = iVar5 + 0xc; | |
} while (iVar8 != param_3); | |
} | |
LAB_8f61def8: | |
if (local_2c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar11,param_2,local_2c); | |
} | |
return; | |
} | |
void FUN_8f61df24(int param_1,uint **param_2,int param_3,int param_4) | |
{ | |
int *piVar1; | |
int iVar2; | |
int iVar3; | |
uint **ppuVar4; | |
int iVar5; | |
uint uVar6; | |
int iVar7; | |
uint **ppuVar8; | |
int iVar9; | |
uint *puVar10; | |
piVar1 = DAT_8f69d118; | |
if (param_1 == 0) { | |
iVar2 = 0x1a94000; | |
} | |
else { | |
iVar2 = *(int *)(param_1 + 0x60); | |
} | |
if (param_3 < param_4) { | |
param_4 = 0; | |
} | |
else { | |
ppuVar8 = (uint **)*param_2; | |
iVar5 = 0; | |
if (param_4 < 3) { | |
iVar9 = 0x6c; | |
iVar7 = 1; | |
} | |
else { | |
iVar9 = 0x74; | |
iVar7 = 3; | |
} | |
puVar10 = (uint *)(iVar9 + iVar2); | |
if (param_4 < 3) { | |
iVar3 = 0; | |
ppuVar4 = ppuVar8; | |
} | |
else { | |
iVar3 = 2; | |
ppuVar4 = ppuVar8; | |
} | |
do { | |
iVar5 = iVar5 + 1; | |
uVar6 = *puVar10; | |
param_2 = ppuVar4 + 1; | |
*ppuVar4 = (uint *)(uVar6 << 0x18 | (uVar6 >> 8 & 0xff) << 0x10 | (uVar6 >> 0x10 & 0xff) << 8 | |
| uVar6 >> 0x18); | |
ppuVar4 = param_2; | |
puVar10 = puVar10 + -1; | |
} while (iVar5 < iVar7); | |
if (2 < param_4) { | |
param_2 = ppuVar8 + -1; | |
iVar2 = param_4 + iVar3; | |
do { | |
iVar5 = iVar3 >> 2; | |
iVar3 = iVar3 + 1; | |
param_2 = param_2 + 1; | |
*param_2 = ppuVar8[iVar5]; | |
} while (iVar3 != iVar2); | |
} | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_4,param_2,piVar1); | |
} | |
void FUN_8f61dfec(char *param_1,int param_2,int param_3) | |
{ | |
char cVar1; | |
char cVar2; | |
byte bVar3; | |
int *piVar4; | |
uint uVar5; | |
uint *puVar6; | |
uint uVar7; | |
uint uVar8; | |
uint uVar9; | |
piVar4 = DAT_8f69d118; | |
uVar5 = (byte)param_1[0xf] - 2 & 0xff; | |
cVar1 = param_1[0x1b]; | |
cVar2 = param_1[0x1c]; | |
if (uVar5 < 3) { | |
uVar9 = (uint)*(byte *)(uVar5 + 0x8f660c7c); | |
} | |
else { | |
uVar9 = 0x10; | |
} | |
uVar8 = 0x103; | |
if (uVar5 < 3) { | |
uVar9 = uVar9 << 4; | |
} | |
if (*param_1 == '\0') { | |
uVar8 = 0x105; | |
} | |
bVar3 = param_1[0x52]; | |
if (param_2 == 0) { | |
uVar7 = param_3 << 0x1f | 0x14000000; | |
} | |
else { | |
*(undefined4 *)(*(int *)(param_1 + 0x68) + 0x118) = 1; | |
uVar7 = param_3 << 0x1f | 0x14000000; | |
*(undefined4 *)(*(int *)(param_1 + 0x68) + 0x118) = 0; | |
*(undefined4 *)(*(int *)(param_1 + 0x68) + 0x11c) = 0x3f; | |
*(undefined4 *)(*(int *)(param_1 + 0x68) + 0x84) = 4; | |
*(uint *)(*(int *)(param_1 + 0x68) + 4) = uVar8 | uVar9; | |
*(uint *)(*(int *)(param_1 + 0x68) + 0x3c) = uVar7; | |
uVar5 = (uint)bVar3; | |
if (**(int **)(param_1 + 0x60) == 0x10030001) { | |
uVar5 = 7; | |
} | |
*(uint *)(*(int *)(param_1 + 0x68) + 0xb0) = uVar5; | |
*(uint *)(*(int *)(param_1 + 0x68) + 0xc4) = (uint)CONCAT11(cVar1,cVar2); | |
puVar6 = *(uint **)(param_1 + 0x68); | |
if ((param_1[1] == '\x01') && (0x1002ffff < *puVar6)) { | |
puVar6[0x6e] = puVar6[0x6e] | 0x10000; | |
puVar6 = *(uint **)(param_1 + 0x68); | |
} | |
puVar6[0x33] = (byte)param_1[0x1a] & 1 | ((byte)param_1[0x19] & 1) << 4; | |
} | |
*(undefined4 *)(*(int *)(param_1 + 0x60) + 0x118) = 1; | |
*(undefined4 *)(*(int *)(param_1 + 0x60) + 0x118) = 0; | |
*(undefined4 *)(*(int *)(param_1 + 0x60) + 0x11c) = 0x3f; | |
*(undefined4 *)(*(int *)(param_1 + 0x60) + 0x84) = 4; | |
*(uint *)(*(int *)(param_1 + 0x60) + 4) = uVar8 | uVar9; | |
*(uint *)(*(int *)(param_1 + 0x60) + 0x3c) = uVar7; | |
*(uint *)(*(int *)(param_1 + 0x60) + 0xb0) = (uint)bVar3; | |
*(uint *)(*(int *)(param_1 + 0x60) + 0xc4) = (uint)CONCAT11(cVar1,cVar2); | |
puVar6 = *(uint **)(param_1 + 0x60); | |
if ((param_1[1] == '\x01') && (0x1002ffff < *puVar6)) { | |
puVar6[0x6e] = puVar6[0x6e] | 0x10000; | |
puVar6 = *(uint **)(param_1 + 0x60); | |
} | |
puVar6[0x33] = (byte)param_1[0x1a] & 1 | ((byte)param_1[0x19] & 1) << 4; | |
if (piVar4 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,puVar6,piVar4); | |
} | |
void FUN_8f61e1e4(int *param_1) | |
{ | |
int iVar1; | |
int iVar2; | |
uint uVar3; | |
int iVar4; | |
iVar1 = DAT_8f69d118; | |
iVar2 = param_1[0xa6]; | |
iVar4 = param_1[0xa8]; | |
if (param_1[0x9b] == 0) { | |
return; | |
} | |
if (param_1[3] == 8) { | |
uVar3 = *(uint *)(iVar2 + 4); | |
*(uint *)(iVar2 + 4) = uVar3 & 0xfffffffe; | |
*(undefined4 *)(iVar2 + 0x118) = 1; | |
DataSynchronizationBarrier(0xf); | |
*(undefined4 *)(iVar2 + 0x118) = 0; | |
DataSynchronizationBarrier(0xf); | |
*(uint *)(iVar2 + 4) = uVar3 & 0xfffffff9 | 4; | |
} | |
uVar3 = (uint)*(byte *)((int)param_1 + 0x28d); | |
if ((uVar3 != 0) && (param_1[3] == 8)) { | |
uVar3 = *(uint *)(iVar4 + 4); | |
*(uint *)(iVar4 + 4) = uVar3 & 0xfffffffe; | |
*(undefined4 *)(iVar4 + 0x118) = 1; | |
DataSynchronizationBarrier(0xf); | |
*(undefined4 *)(iVar4 + 0x118) = 0; | |
DataSynchronizationBarrier(0xf); | |
*(uint *)(iVar4 + 4) = uVar3 & 0xfffffff9 | 4; | |
uVar3 = (uint)*(byte *)((int)param_1 + 0x28d); | |
} | |
if (iVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar1,DAT_8f69d118,param_1); | |
} | |
FUN_8f61dcdc((uint *)(param_1 + 0x8e),param_1[0x9b],param_1[0x9c],uVar3); | |
return; | |
} | |
void FUN_8f61e2e8(uint *param_1,uint param_2) | |
{ | |
int *piVar1; | |
uint uVar2; | |
uint uVar3; | |
ulonglong uVar4; | |
ulonglong uVar5; | |
uint *local_24; | |
uint uStack_20; | |
int *local_1c; | |
uVar2 = param_1[0xb]; | |
local_1c = DAT_8f69d118; | |
piVar1 = DAT_8f69d118; | |
if (uVar2 != 0) { | |
uVar3 = *(uint *)(param_1[0x18] + 4); | |
*(uint *)(param_1[0x18] + 4) = uVar3 | 4; | |
if (param_2 != 0) { | |
*(uint *)(param_1[0x1a] + 4) = uVar3 | 4; | |
uVar4 = FUN_8f61dcdc(param_1,uVar2,param_1[0xc],param_2 & 0xff); | |
*(uint *)(param_1[0x18] + 4) = uVar3; | |
*(uint *)(param_1[0x1a] + 4) = uVar3; | |
goto LAB_8f61e358; | |
} | |
uVar4 = FUN_8f61dcdc(param_1,uVar2,param_1[0xc],0); | |
*(uint *)(param_1[0x18] + 4) = uVar3; | |
if ((int)uVar4 != 0) goto LAB_8f61e358; | |
uVar5 = FUN_8f626570(0,(int)(uVar4 >> 0x20)); | |
piVar1 = (int *)(uVar5 >> 0x20); | |
uVar4 = uVar5 & 0xffffffff00000000 | (ulonglong)DAT_8f68a208; | |
if ((int)uVar5 != 0) { | |
uVar2 = param_1[0x16]; | |
local_24 = &uStack_20; | |
if ((DAT_8f68a208 == uVar2 || DAT_8f68a208 == 0) && | |
(uVar4 = FUN_8f61dcdc(param_1,(int)&DAT_8f67f10c,1,0), (int)uVar4 == 0)) { | |
uVar5 = FUN_8f61df24((int)param_1,&local_24,1,1); | |
uVar4 = uVar5 & 0xffffffff00000000 | uVar4 & 0xffffffff; | |
if ((int)uVar5 != 0) { | |
uVar3 = *local_24; | |
DAT_8f68a208 = (uVar3 << 0x18 | (uVar3 >> 8 & 0xff) << 0x10 | (uVar3 >> 0x10 & 0xff) << 8) | |
>> 8; | |
uVar4 = uVar5 & 0xffffffff00000000 | (ulonglong)DAT_8f68a208; | |
if (uVar2 == DAT_8f68a208) { | |
uVar4 = uVar5 & 0xffffffff00000000; | |
} | |
} | |
} | |
if (uVar2 == 0 || uVar2 == 0xffff) { | |
uVar4 = uVar4 & 0xffffffff00000000; | |
} | |
goto LAB_8f61e358; | |
} | |
} | |
uVar4 = ZEXT48(piVar1) << 0x20; | |
LAB_8f61e358: | |
if (local_1c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)(uVar4 >> 0x20),local_1c); | |
} | |
return; | |
} | |
void FUN_8f61e43c(int param_1,int param_2,int param_3,undefined4 param_4,undefined4 param_5, | |
ushort param_6,ushort param_7,ushort param_8,ushort param_9,ushort param_10, | |
ushort param_11,ushort param_12,ushort param_13,byte param_14,byte param_15, | |
int param_16,byte param_17,byte param_18,uint *param_19) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined4 uVar3; | |
undefined4 extraout_r1; | |
uint uVar4; | |
int unaff_r5; | |
uint uVar5; | |
uint uVar6; | |
bool bVar7; | |
piVar1 = DAT_8f69d118; | |
bVar7 = *(int *)(param_1 + 0x20) == 1; | |
if (bVar7) { | |
unaff_r5 = param_1 + 0xe0; | |
} | |
if (!bVar7) { | |
unaff_r5 = 0; | |
} | |
param_19[0x47] = 0; | |
param_19[0x47] = 2; | |
param_19[0x47] = 6; | |
param_19[0x47] = 0xe; | |
uVar6 = (uint)param_7; | |
uVar5 = (uint)param_9; | |
uVar4 = (uint)param_17; | |
param_19[0x47] = 0x1e; | |
param_19[0x47] = 0x23f; | |
param_19[0x43] = 0x3f03fe0; | |
param_19[0x44] = 0x2020202; | |
if ((0x1002ffff < *param_19) && (iVar2 = FUN_8f61bcec(), iVar2 != 6)) { | |
param_19[0x7a] = 1; | |
} | |
param_19[9] = uVar6 | (param_2 + uVar6) * 0x10000; | |
param_19[10] = uVar5 | (param_3 + uVar5) * 0x10000; | |
iVar2 = FUN_8f61bcec(); | |
if (((iVar2 < 9) && (iVar2 = FUN_8f61bcec(), iVar2 != 5)) && (iVar2 = FUN_8f61bcec(), iVar2 != 6)) | |
{ | |
param_19[0xb] = uVar6 + param_2 + (uint)param_6 | (uVar5 + param_3 + (uint)param_8) * 0x10000; | |
} | |
else { | |
param_19[0xb] = | |
(uVar6 + param_2 + (uint)param_6) - 1 | (uVar5 + param_3 + (uint)param_8 + -1) * 0x10000; | |
} | |
param_19[0xc] = (uint)param_10 << 0x10; | |
param_19[0xd] = 0; | |
param_19[0xe] = (uint)param_11 << 0x10; | |
if ((0x1002ffff < *param_19) && (iVar2 = FUN_8f61bcec(), iVar2 != 6)) { | |
param_19[0x79] = 1; | |
} | |
param_19[0x29] = 0x100; | |
iVar2 = FUN_8f61bcec(); | |
if ((iVar2 < 9) && (iVar2 = FUN_8f61bcec(), iVar2 != 6)) { | |
param_19[4] = (uint)param_12 << 4 | param_16 << 0x10 | 0x11100000 | (uint)param_13 << 8 | | |
uVar4 << 0xc; | |
} | |
else { | |
param_19[4] = param_16 << 0x10 | (uint)param_12 << 4 | (uint)param_13 << 8 | uVar4 << 0xc | | |
((uint)param_15 | uVar4 & 8) << 0x1c; | |
} | |
param_19[0x2f] = 0x3fd08; | |
uVar3 = 0x2030303; | |
param_19[0x29] = 0x10100; | |
param_19[0x44] = 0x10100; | |
param_19[0x44] = 0x2010202; | |
param_19[0x44] = 0x2030303; | |
param_19[1] = (uint)param_14 << 4 | 0x103 | (uint)param_18 << 0x1e; | |
if ((unaff_r5 != 0) && (*(code **)(unaff_r5 + 0x150) != (code *)0x0)) { | |
(**(code **)(unaff_r5 + 0x150))(*(undefined4 *)(param_1 + 0x298),0,unaff_r5); | |
uVar3 = extraout_r1; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,uVar3,piVar1); | |
} | |
void FUN_8f61e73c(int param_1,int *param_2) | |
{ | |
byte bVar1; | |
int *extraout_r1; | |
int *extraout_r1_00; | |
int *extraout_r1_01; | |
int *extraout_r1_02; | |
int *extraout_r1_03; | |
int *extraout_r1_04; | |
int *extraout_r1_05; | |
uint uVar2; | |
code *pcVar3; | |
code *pcVar4; | |
uint uVar5; | |
uint *puVar6; | |
int iVar7; | |
undefined8 uVar8; | |
undefined4 local_28; | |
int local_24; | |
undefined4 local_20; | |
int *local_1c; | |
local_1c = DAT_8f69d118; | |
if (param_1 == 0) { | |
pcVar3 = (code *)0xfffffff8; | |
} | |
else { | |
pcVar3 = *(code **)(param_1 + 0x20); | |
puVar6 = (uint *)(param_1 + 0x238); | |
if (pcVar3 == (code *)0x1) { | |
pcVar3 = *(code **)(param_1 + 0x22c); | |
iVar7 = param_1 + 0xe0; | |
if (pcVar3 != (code *)0x0) { | |
(*pcVar3)(); | |
} | |
} | |
else { | |
iVar7 = 0; | |
} | |
FUN_8f61f258((int)puVar6); | |
uVar2 = (uint)*(byte *)(param_1 + 0x28d); | |
uVar8 = FUN_8f61dfec((char *)puVar6,(uint)*(byte *)(param_1 + 0x28b),uVar2); | |
if ((code *)uVar8 == (code *)0x0) { | |
FUN_8f61f1f0((int)puVar6,*(int *)(param_1 + 0x29c)); | |
param_2 = extraout_r1; | |
if (*(char *)(param_1 + 0x28b) != '\0') { | |
FUN_8f61f1f0((int)puVar6,*(int *)(param_1 + 0x2a4)); | |
param_2 = extraout_r1_04; | |
} | |
pcVar3 = *(code **)(param_1 + 0x55c); | |
if (pcVar3 != (code *)0x0) { | |
uVar8 = (*pcVar3)(); | |
param_2 = (int *)((ulonglong)uVar8 >> 0x20); | |
if ((code *)uVar8 != (code *)0x0) { | |
dprintf((byte *)s_pre_init_func_error_8f660c1c,param_2,uVar2,pcVar3); | |
pcVar3 = (code *)uVar8; | |
param_2 = extraout_r1_05; | |
goto LAB_8f61e844; | |
} | |
} | |
if (*(char *)(param_1 + 0x289) == '\0') { | |
bVar1 = *(byte *)(param_1 + 0x238); | |
} | |
else { | |
if (*(char *)(param_1 + 0x28b) != '\0') { | |
*(uint *)(*(int *)(param_1 + 0x2a0) + 0xac) = | |
*(uint *)(*(int *)(param_1 + 0x2a0) + 0xac) | 0x10000000; | |
} | |
uVar2 = *(uint *)(*(int *)(param_1 + 0x298) + 0xac) | 0x10000000; | |
*(uint *)(*(int *)(param_1 + 0x298) + 0xac) = uVar2; | |
bVar1 = *(byte *)(param_1 + 0x238); | |
} | |
uVar5 = (uint)bVar1; | |
if (uVar5 == 0) { | |
uVar8 = FUN_8f61e2e8(puVar6,(uint)*(byte *)(param_1 + 0x28d)); | |
param_2 = (int *)((ulonglong)uVar8 >> 0x20); | |
if ((code *)uVar8 != (code *)0x0) { | |
dprintf((byte *)s_dsi_panel_init_error_8f660c34,param_2,uVar2,uVar5); | |
pcVar3 = (code *)uVar8; | |
param_2 = extraout_r1_03; | |
goto LAB_8f61e844; | |
} | |
} | |
if (iVar7 != 0) { | |
local_24 = iVar7 + 0xc4; | |
local_28 = 0x84; | |
local_20 = 0x10; | |
FUN_8f61dcdc(puVar6,(int)&local_28,1,(uint)*(byte *)(param_1 + 0x28d)); | |
param_2 = extraout_r1_00; | |
} | |
pcVar4 = *(code **)(param_1 + 0x510); | |
pcVar3 = pcVar4; | |
if ((pcVar4 != (code *)0x0) && | |
(pcVar3 = *(code **)(param_1 + 0x540), *(code **)(param_1 + 0x540) != (code *)0x0)) { | |
(*pcVar4)(); | |
pcVar3 = (code *)0x0; | |
param_2 = extraout_r1_01; | |
} | |
} | |
else { | |
dprintf((byte *)s_dsi_host_init_error_8f660c04,(int *)((ulonglong)uVar8 >> 0x20),uVar2,pcVar3) | |
; | |
pcVar3 = (code *)uVar8; | |
param_2 = extraout_r1_02; | |
} | |
} | |
LAB_8f61e844: | |
if (local_1c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(pcVar3,param_2,local_1c); | |
} | |
return; | |
} | |
void FUN_8f61e900(int param_1,int *param_2) | |
{ | |
int *piVar1; | |
uint uVar2; | |
int *extraout_r1; | |
int *piVar3; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
uVar2 = (uint)*(byte *)(param_1 + 0x238); | |
if (uVar2 != 0) { | |
piVar3 = DAT_8f69d118; | |
uVar4 = FUN_8f61e2e8((uint *)(param_1 + 0x238),(uint)*(byte *)(param_1 + 0x28d)); | |
param_2 = (int *)((ulonglong)uVar4 >> 0x20); | |
uVar2 = (uint)uVar4; | |
if (uVar2 != 0) { | |
dprintf((byte *)s_dsi_panel_init_error_8f660c34,param_2,piVar3,param_1); | |
param_2 = extraout_r1; | |
} | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,param_2,piVar1); | |
} | |
void FUN_8f61e970(int param_1,undefined4 param_2,undefined4 param_3,uint param_4,ushort param_5, | |
ushort param_6,byte param_7,byte param_8,byte param_9,int param_10) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
int iVar3; | |
int extraout_r1; | |
int extraout_r1_00; | |
uint uVar4; | |
uint uVar5; | |
code *pcVar6; | |
piVar1 = DAT_8f69d118; | |
switch((uint)param_6) { | |
case 0: | |
iVar3 = 6; | |
break; | |
case 1: | |
case 2: | |
iVar3 = 7; | |
break; | |
case 3: | |
iVar3 = 8; | |
break; | |
default: | |
dprintf((byte *)s_unsupported_dst_format_8f660c4c,DAT_8f69d118,(uint)param_6,param_4); | |
uVar2 = 0xffffffff; | |
iVar3 = extraout_r1; | |
goto LAB_8f61ea80; | |
} | |
*(undefined4 *)(param_10 + 0x11c) = 0; | |
*(undefined4 *)(param_10 + 0x11c) = 0; | |
*(undefined4 *)(param_10 + 0x11c) = 0; | |
*(undefined4 *)(param_10 + 0x11c) = 0; | |
*(undefined4 *)(param_10 + 0x11c) = 2; | |
*(undefined4 *)(param_10 + 0x11c) = 6; | |
*(undefined4 *)(param_10 + 0x11c) = 0xe; | |
*(undefined4 *)(param_10 + 0x11c) = 0x1e; | |
*(undefined4 *)(param_10 + 0x11c) = 0x23f; | |
*(undefined4 *)(param_10 + 4) = 0; | |
*(undefined4 *)(param_10 + 0x10c) = 0x3f03fe0; | |
*(undefined4 *)(param_10 + 0x110) = 0x2020202; | |
*(int *)(param_10 + 0x40) = iVar3; | |
if (*(int *)(param_1 + 0x20) == 1) { | |
iVar3 = *(int *)(param_1 + 0x13c); | |
pcVar6 = *(code **)(param_1 + 0x230); | |
if (*(char *)(param_1 + 0x27d) != '\0') { | |
iVar3 = iVar3 + 1; | |
} | |
uVar4 = iVar3 << 0x10 | 0x39; | |
*(uint *)(param_10 + 0x58) = uVar4; | |
*(uint *)(param_10 + 0x60) = uVar4; | |
iVar3 = *(int *)(param_1 + 0x120); | |
uVar4 = *(uint *)(param_1 + 0x144) | iVar3 << 0x10; | |
*(uint *)(param_10 + 0x5c) = uVar4; | |
*(uint *)(param_10 + 100) = uVar4; | |
if (pcVar6 != (code *)0x0) { | |
(*pcVar6)(*(undefined4 *)(param_1 + 0x298),1,param_1 + 0xe0); | |
iVar3 = extraout_r1_00; | |
} | |
} | |
else { | |
uVar4 = param_4 | (uint)param_5 << 0x10; | |
uVar5 = (param_7 * param_4 + 1) * 0x10000 | 0x39; | |
*(uint *)(param_10 + 0x58) = uVar5; | |
*(uint *)(param_10 + 0x60) = uVar5; | |
*(uint *)(param_10 + 0x5c) = uVar4; | |
*(uint *)(param_10 + 100) = uVar4; | |
} | |
uVar2 = 0; | |
*(undefined4 *)(param_10 + 0x44) = 0x13c2c; | |
*(uint *)(param_10 + 4) = (uint)param_8 << 4 | 0x105 | (uint)param_9 << 0x1e; | |
*(undefined4 *)(param_10 + 0x3c) = 0x14000000; | |
*(undefined4 *)(param_10 + 0xa0) = 0x10000000; | |
LAB_8f61ea80: | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,iVar3,piVar1); | |
} | |
return; | |
} | |
void FUN_8f61eb14(int param_1) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
uint *extraout_r1; | |
uint *puVar3; | |
uint *extraout_r1_00; | |
int iVar4; | |
uint uVar5; | |
piVar1 = DAT_8f69d118; | |
uVar5 = *(uint *)(*(int *)(param_1 + 0x298) + 0x110); | |
FUN_8f6104a8(10); | |
puVar3 = extraout_r1; | |
if ((uVar5 & 0x10000) == 0) { | |
iVar4 = 0xffff; | |
puVar3 = (uint *)(*(int *)(param_1 + 0x298) + 0x110); | |
uVar5 = *(uint *)(*(int *)(param_1 + 0x298) + 0x110) & 0x10000; | |
do { | |
if (uVar5 == 0x10000) goto LAB_8f61eb78; | |
iVar4 = iVar4 + -1; | |
uVar5 = *puVar3 & 0x10000; | |
} while (iVar4 != 0); | |
dprintf((byte *)s_Video_lane_test_failed_8f660c64,(int *)puVar3,uVar5,0); | |
uVar2 = 0xffffffff; | |
puVar3 = extraout_r1_00; | |
} | |
else { | |
LAB_8f61eb78: | |
uVar2 = 0; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,puVar3,piVar1); | |
} | |
void FUN_8f61ebac(int *param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
undefined4 extraout_r1; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
uVar3 = FUN_8f60106c(param_1,param_2); | |
uVar2 = (undefined4)((ulonglong)uVar3 >> 0x20); | |
if ((int)uVar3 == 0) { | |
FUN_8f61e1e4(param_1); | |
*(undefined4 *)(param_1[0xa6] + 0x11c) = 0; | |
*(undefined4 *)(param_1[0xa6] + 4) = 0; | |
uVar2 = extraout_r1; | |
} | |
*(undefined4 *)(param_1[0xa6] + 0x110) = 0x1115501; | |
if (*(char *)((int)param_1 + 0x28b) != '\0') { | |
*(undefined4 *)(param_1[0xa8] + 0x110) = 0x1115501; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,uVar2,piVar1); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f61ec64) | |
void FUN_8f61ec30(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f61ec9c) | |
void FUN_8f61ec68(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
void FUN_8f61eca0(undefined4 *param_1,uint *param_2,undefined4 *param_3) | |
{ | |
int *piVar1; | |
byte *pbVar2; | |
uint *puVar3; | |
uint *puVar4; | |
uint *puVar5; | |
int iVar6; | |
byte *pbVar7; | |
piVar1 = DAT_8f69d118; | |
if (*(char *)((int)param_1 + 0x127) == '\x01') { | |
param_2[0x77] = 0x1d; | |
} | |
else { | |
param_3[1] = param_1[1]; | |
param_3[2] = param_1[2]; | |
param_3[3] = param_1[3]; | |
param_3[4] = param_1[4]; | |
param_3[6] = param_1[6]; | |
param_2[0x77] = 0; | |
*param_3 = *param_1; | |
DataMemoryBarrier(0xf); | |
} | |
pbVar7 = (byte *)((int)param_1 + 0xf9); | |
iVar6 = 0; | |
param_2[0x61] = param_1[0x33]; | |
param_2[0x75] = 0; | |
puVar5 = param_2; | |
do { | |
pbVar2 = pbVar7; | |
puVar3 = puVar5; | |
do { | |
pbVar2 = pbVar2 + 1; | |
puVar4 = puVar3 + 1; | |
*puVar3 = (uint)*pbVar2; | |
DataMemoryBarrier(0xf); | |
puVar3 = puVar4; | |
} while (puVar4 != puVar5 + 9); | |
iVar6 = iVar6 + 1; | |
pbVar7 = pbVar7 + 9; | |
puVar5 = puVar5 + 0x10; | |
} while (iVar6 != 5); | |
iVar6 = 0x140; | |
do { | |
*(undefined4 *)(iVar6 + (int)param_2) = param_1[7]; | |
DataMemoryBarrier(0xf); | |
iVar6 = iVar6 + 4; | |
param_1 = param_1 + 1; | |
} while (iVar6 != 0x170); | |
param_2[0x5d] = 0; | |
DataMemoryBarrier(0xf); | |
param_2[0x5c] = 0x7f; | |
DataMemoryBarrier(0xf); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,param_2,piVar1); | |
} | |
void FUN_8f61edb0(int param_1) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
*(undefined4 *)(param_1 + 300) = 1; | |
FUN_8f6104fc(1000); | |
DataMemoryBarrier(0xf); | |
*(undefined4 *)(param_1 + 300) = 0; | |
uVar2 = FUN_8f6104fc(100); | |
DataMemoryBarrier(0xf); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
void FUN_8f61ef94(int param_1,int *param_2,uint *param_3,undefined4 *param_4) | |
{ | |
int *piVar1; | |
char cVar2; | |
int *piVar3; | |
uint *puVar4; | |
byte *pbVar5; | |
uint uVar6; | |
int *piVar7; | |
int *piVar8; | |
uint *puVar9; | |
uint *puVar10; | |
int iVar11; | |
int iVar12; | |
undefined4 *puVar13; | |
undefined4 *puVar14; | |
byte *pbVar15; | |
longlong lVar16; | |
undefined8 uVar17; | |
piVar7 = DAT_8f69d118; | |
lVar16 = FUN_8f61bcec(); | |
piVar3 = DAT_8f69d118; | |
if ((int)lVar16 == 5) { | |
if (piVar7 == DAT_8f69d118) { | |
iVar12 = *(int *)(param_1 + 0x24); | |
iVar11 = 0; | |
param_2[0x120] = *(int *)(iVar12 + 0xcc); | |
param_2[0x122] = *(int *)(iVar12 + 0xd0); | |
param_2[0x11f] = 0x10; | |
param_2[0x11c] = 0x5f; | |
param_2[300] = 0x25; | |
do { | |
*(undefined4 *)((int)param_2 + iVar11 + 0x500) = *(undefined4 *)(iVar12 + iVar11); | |
iVar11 = iVar11 + 4; | |
} while (iVar11 != 0x14); | |
param_2[0x146] = 1; | |
param_2[0x14d] = 0; | |
param_2[0x14f] = 0x5a; | |
param_2[0x151] = 0x10; | |
param_2[0x152] = 1; | |
param_2[0x14e] = 1; | |
param_2[0x14a] = 1; | |
param_2[0x14a] = 0; | |
if ((param_2[0x154] & 0x10U) != 0) { | |
iVar11 = 5000; | |
do { | |
if ((param_2[0x154] & 0x10U) == 0) goto LAB_8f61eee0; | |
iVar11 = iVar11 + -1; | |
} while (iVar11 != 0); | |
dprintf((byte *)s_DSI1_PHY_REGULATOR_NOT_READY_exc_8f660c80,param_2,param_2[0x154],0); | |
} | |
LAB_8f61eee0: | |
pbVar5 = (byte *)(iVar12 + 0xf9); | |
puVar4 = (uint *)(param_2 + 0xc0); | |
iVar11 = 5; | |
do { | |
pbVar15 = pbVar5; | |
puVar9 = puVar4; | |
do { | |
pbVar15 = pbVar15 + 1; | |
puVar10 = puVar9 + 1; | |
*puVar9 = (uint)*pbVar15; | |
DataMemoryBarrier(0xf); | |
puVar9 = puVar10; | |
} while (puVar10 != puVar4 + 9); | |
iVar11 = iVar11 + -1; | |
pbVar5 = pbVar5 + 9; | |
puVar4 = puVar4 + 0x10; | |
} while (iVar11 != 0); | |
piVar7 = param_2 + 0x110; | |
do { | |
piVar1 = (int *)(iVar12 + 0x1c); | |
iVar12 = iVar12 + 4; | |
piVar8 = piVar7 + 1; | |
*piVar7 = *piVar1; | |
piVar7 = piVar8; | |
} while (param_2 + 0x11c != piVar8); | |
if (*(char *)(param_1 + 0xf) == '\x01') { | |
param_2[0x8b] = 8; | |
} | |
if (*(byte *)(param_1 + 0x52) != 0) { | |
param_2[0x2b] = (uint)*(byte *)(param_1 + 0x52); | |
} | |
param_2[0x30] = 0x41b; | |
if (piVar3 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,param_2,piVar3); | |
} | |
goto LAB_8f61f1ec; | |
} | |
puVar13 = *(undefined4 **)(param_1 + 0x24); | |
param_3[0x5c] = 0x5b; | |
cVar2 = *(char *)((int)puVar13 + 0x127); | |
param_3[0x61] = puVar13[0x33]; | |
if (cVar2 == '\x01') { | |
*param_4 = 0; | |
param_4[6] = puVar13[6]; | |
FUN_8f6104fc(1000); | |
param_4[5] = puVar13[5]; | |
param_4[3] = puVar13[3]; | |
param_4[2] = puVar13[2]; | |
param_4[1] = puVar13[1]; | |
param_4[4] = puVar13[4]; | |
if ((*param_2 == 0x10030001) || (*param_2 == 0x10040002)) { | |
param_3[0x77] = 5; | |
} | |
else { | |
param_3[0x77] = 0xd; | |
} | |
} | |
else { | |
*param_4 = 0; | |
param_4[6] = puVar13[6]; | |
FUN_8f6104fc(1000); | |
param_4[1] = puVar13[1]; | |
param_4[2] = puVar13[2]; | |
param_4[3] = puVar13[3]; | |
param_4[4] = puVar13[4]; | |
param_3[0x77] = 0; | |
*param_4 = *puVar13; | |
} | |
DataMemoryBarrier(0xf); | |
iVar11 = 0x140; | |
puVar14 = puVar13; | |
do { | |
*(undefined4 *)(iVar11 + (int)param_3) = puVar14[7]; | |
DataMemoryBarrier(0xf); | |
iVar11 = iVar11 + 4; | |
puVar14 = puVar14 + 1; | |
} while (iVar11 != 0x170); | |
pbVar5 = (byte *)((int)puVar13 + 0xf9); | |
uVar6 = 0; | |
puVar4 = param_3; | |
do { | |
puVar9 = puVar4; | |
pbVar15 = pbVar5; | |
do { | |
pbVar15 = pbVar15 + 1; | |
puVar10 = puVar9 + 1; | |
*puVar9 = (uint)*pbVar15; | |
DataMemoryBarrier(0xf); | |
puVar9 = puVar10; | |
} while (puVar10 != puVar4 + 9); | |
uVar6 = uVar6 + 1; | |
pbVar5 = pbVar5 + 9; | |
puVar4 = puVar4 + 0x10; | |
} while (uVar6 != 5); | |
param_3[0x60] = 10; | |
DataMemoryBarrier(0xf); | |
if (*(char *)(param_1 + 0x53) == '\0') { | |
LAB_8f61f0ac: | |
param_3[0x75] = 1; | |
} | |
else { | |
uVar17 = FUN_8f601760(0x1a94400,5); | |
uVar6 = (uint)((ulonglong)uVar17 >> 0x20); | |
if ((param_3 == (uint *)((int)uVar17 + 0x1a94400)) || (**(int **)(param_1 + 0x60) == 0x10030001) | |
) goto LAB_8f61f0ac; | |
param_3[0x75] = 0; | |
} | |
DataMemoryBarrier(0xf); | |
param_3[0x5c] = 0x5f; | |
DataMemoryBarrier(0xf); | |
iVar11 = 0x1b4; | |
do { | |
puVar14 = puVar13 + 0x3d; | |
puVar13 = (undefined4 *)((int)puVar13 + 1); | |
*(uint *)(iVar11 + (int)param_3) = (uint)*(byte *)puVar14; | |
iVar11 = iVar11 + 4; | |
} while (iVar11 != 0x1cc); | |
DataMemoryBarrier(0xf); | |
param_2[0x31] = 0x41b; | |
DataMemoryBarrier(0xf); | |
lVar16 = (ulonglong)uVar6 << 0x20; | |
if (piVar7 == DAT_8f69d118) { | |
return; | |
} | |
LAB_8f61f1ec: | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)lVar16,(int)((ulonglong)lVar16 >> 0x20),piVar7); | |
} | |
void FUN_8f61f1f0(int param_1,int param_2) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = CONCAT44(param_2,param_1); | |
if ((*(int *)(*(int *)(param_1 + 0x24) + 0x128) != 2) && (uVar2 = FUN_8f61bcec(), (int)uVar2 != 5) | |
) { | |
*(undefined4 *)(param_2 + 0x188) = *(undefined4 *)(*(int *)(param_1 + 0x24) + 0xd0); | |
DataMemoryBarrier(0xf); | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
void FUN_8f61f258(int param_1) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
int *piVar3; | |
int iVar4; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
iVar4 = (*(undefined4 **)(param_1 + 0x24))[0x4a]; | |
if (iVar4 == 1) { | |
uVar5 = FUN_8f61eca0(*(undefined4 **)(param_1 + 0x24),*(uint **)(param_1 + 100), | |
*(undefined4 **)(param_1 + 0x70)); | |
piVar3 = (int *)((ulonglong)uVar5 >> 0x20); | |
uVar2 = (undefined4)uVar5; | |
if (*(char *)(param_1 + 0x53) != '\0') { | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f61eca0(*(undefined4 **)(param_1 + 0x24),*(uint **)(param_1 + 0x6c), | |
*(undefined4 **)(param_1 + 0x70)); | |
return; | |
} | |
goto LAB_8f61f334; | |
} | |
} | |
else if (iVar4 == 2) { | |
uVar2 = 0; | |
piVar3 = DAT_8f69d118; | |
} | |
else { | |
uVar5 = FUN_8f61ef94(param_1,*(int **)(param_1 + 0x60),*(uint **)(param_1 + 100), | |
*(undefined4 **)(param_1 + 0x70)); | |
uVar2 = (undefined4)uVar5; | |
piVar3 = (int *)((ulonglong)uVar5 >> 0x20); | |
if (*(char *)(param_1 + 0x53) != '\0') { | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f61ef94(param_1,*(int **)(param_1 + 0x68),*(uint **)(param_1 + 0x6c), | |
*(undefined4 **)(param_1 + 0x70)); | |
return; | |
} | |
goto LAB_8f61f334; | |
} | |
} | |
uVar5 = CONCAT44(piVar3,uVar2); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
LAB_8f61f334: | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),piVar1); | |
} | |
void FUN_8f61f338(int param_1,int param_2) | |
{ | |
int *piVar1; | |
piVar1 = DAT_8f69d118; | |
*(undefined4 *)(param_1 + 0x4c) = *(undefined4 *)(param_2 + 0xcc); | |
*(undefined4 *)(param_1 + 0x428) = 0; | |
*(undefined4 *)(param_1 + 0x4c0) = *(undefined4 *)(param_2 + 0x84); | |
*(undefined4 *)(param_1 + 0x42c) = *(undefined4 *)(param_2 + 0xb4); | |
*(undefined4 *)(param_1 + 0x430) = *(undefined4 *)(param_2 + 0xb8); | |
*(undefined4 *)(param_1 + 0x43c) = *(undefined4 *)(param_2 + 0xbc); | |
*(uint *)(param_1 + 0x46c) = (uint)*(byte *)(param_2 + 0x9c); | |
*(uint *)(param_1 + 0x470) = (uint)(*(int *)(param_2 + 0x9c) << 0x16) >> 0x1e; | |
*(uint *)(param_1 + 0x440) = (uint)*(byte *)(param_2 + 0xa4); | |
*(uint *)(param_1 + 0x444) = (uint)(*(int *)(param_2 + 0xa4) << 0x16) >> 0x1e; | |
*(undefined4 *)(param_1 + 0x4e8) = *(undefined4 *)(param_2 + 0xac); | |
*(undefined4 *)(param_1 + 0x400) = *(undefined4 *)(param_2 + 0x44); | |
*(undefined4 *)(param_1 + 0x404) = *(undefined4 *)(param_2 + 0x48); | |
*(uint *)(param_1 + 0x4f0) = *(uint *)(param_2 + 0x50) | *(int *)(param_2 + 0x54) << 3; | |
*(uint *)(param_1 + 0x4f8) = *(uint *)(param_2 + 0x6c) | *(int *)(param_2 + 0x68) << 3; | |
*(uint *)(param_1 + 0x4f4) = *(uint *)(param_2 + 0x6c) | *(int *)(param_2 + 0x60) << 3; | |
*(uint *)(param_1 + 0x4fc) = *(uint *)(param_2 + 0x5c) | *(int *)(param_2 + 0x58) << 3; | |
*(uint *)(param_1 + 0x500) = *(uint *)(param_2 + 0x74) | *(int *)(param_2 + 0x78) << 4; | |
*(undefined4 *)(param_1 + 0x410) = *(undefined4 *)(param_2 + 0x4c); | |
*(uint *)(param_1 + 0x4c4) = *(uint *)(param_2 + 0x7c) | *(int *)(param_2 + 0x80) << 4; | |
DataMemoryBarrier(0xf); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,param_2,piVar1); | |
} | |
void FUN_8f61f450(int param_1,int param_2) | |
{ | |
int *piVar1; | |
piVar1 = DAT_8f69d118; | |
*(uint *)(param_1 + 0x498) = (uint)*(byte *)(param_2 + 0x38); | |
*(uint *)(param_1 + 0x49c) = (uint)(*(int *)(param_2 + 0x38) << 0x16) >> 0x1e; | |
*(uint *)(param_1 + 0x4a0) = (uint)*(byte *)(param_2 + 0x90); | |
*(uint *)(param_1 + 0x4a4) = (uint)*(byte *)(param_2 + 0x91); | |
*(uint *)(param_1 + 0x4a8) = (uint)*(byte *)(param_2 + 0x94); | |
*(uint *)(param_1 + 0x4ac) = (uint)*(byte *)(param_2 + 0x95); | |
*(uint *)(param_1 + 0x494) = (*(uint *)(param_2 + 0x34) & 1) << 1 | 1; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,param_2,piVar1); | |
} | |
void FUN_8f61f4cc(int param_1,int param_2) | |
{ | |
int *piVar1; | |
undefined4 extraout_r1; | |
uint *puVar2; | |
byte *pbVar3; | |
int iVar4; | |
byte *pbVar5; | |
int iVar6; | |
int iVar7; | |
int iVar8; | |
uint *puVar9; | |
piVar1 = DAT_8f69d118; | |
iVar7 = *(int *)(param_1 + 0x25c); | |
*(undefined4 *)(param_2 + 0x4c) = 0x1c; | |
*(undefined4 *)(param_2 + 0x18) = 1; | |
pbVar3 = (byte *)(iVar7 + 0xf9); | |
iVar6 = iVar7; | |
iVar8 = iVar7; | |
puVar9 = (uint *)(param_2 + 0x100); | |
do { | |
pbVar5 = pbVar3 + 4; | |
puVar2 = puVar9; | |
do { | |
pbVar3 = pbVar3 + 1; | |
*puVar2 = (uint)*pbVar3; | |
puVar2 = puVar2 + 1; | |
} while (pbVar3 != pbVar5); | |
iVar4 = 0; | |
puVar9[5] = 0x88; | |
do { | |
*(undefined4 *)((int)puVar9 + iVar4 + 0x18) = *(undefined4 *)(iVar8 + iVar4 + 0x1c); | |
iVar4 = iVar4 + 4; | |
} while (iVar4 != 0x20); | |
iVar4 = iVar6 + 8; | |
iVar8 = iVar8 + 0x20; | |
puVar9[0xe] = *(uint *)(iVar6 + 0xcc); | |
puVar9[0xf] = *(uint *)(iVar6 + 0xd0); | |
puVar9[0x19] = *(uint *)(iVar7 + 8); | |
pbVar3 = pbVar5; | |
iVar6 = iVar4; | |
puVar9 = puVar9 + 0x20; | |
} while (iVar4 != iVar7 + 0x28); | |
DataMemoryBarrier(0xf); | |
*(undefined4 *)(param_2 + 0x20) = 0x80; | |
DataMemoryBarrier(0xf); | |
FUN_8f6104fc(100); | |
*(undefined4 *)(param_2 + 0x20) = 0; | |
if (*(char *)(param_1 + 0x95) == '\0') { | |
*(undefined4 *)(param_2 + 0x41c) = 1; | |
*(uint *)(param_2 + 0x18) = *(uint *)(param_2 + 0x18) & 0xfffffffb; | |
} | |
else if (*(int *)(param_1 + 0x29c) == param_2) { | |
*(undefined4 *)(param_2 + 0x41c) = 3; | |
*(uint *)(param_2 + 0x18) = *(uint *)(param_2 + 0x18) & 0xfffffffb; | |
} | |
else { | |
*(undefined4 *)(param_2 + 0x41c) = 0; | |
*(uint *)(param_2 + 0x18) = *(uint *)(param_2 + 0x18) | 4; | |
*(undefined4 *)(param_2 + 0x508) = 3; | |
} | |
DataMemoryBarrier(0xf); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,extraout_r1,piVar1); | |
} | |
void FUN_8f61f628(int param_1,int param_2) | |
{ | |
int *piVar1; | |
uint uVar2; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
*(undefined4 *)(param_1 + 0x48) = 0; | |
*(undefined4 *)(param_1 + 0x20) = 0x20; | |
DataMemoryBarrier(0xf); | |
uVar3 = FUN_8f6104fc(10); | |
*(undefined4 *)(param_1 + 0x20) = 0; | |
DataMemoryBarrier(0xf); | |
*(undefined4 *)(param_1 + 0x14) = *(undefined4 *)(param_2 + 8); | |
*(undefined4 *)(param_1 + 0x1c) = 0xff; | |
*(undefined4 *)(param_1 + 0x490) = *(undefined4 *)(param_2 + 0x88); | |
*(uint *)(param_1 + 0x4b4) = (uint)*(byte *)(param_2 + 0x8c); | |
*(uint *)(param_1 + 0x4b8) = (uint)*(byte *)(param_2 + 0x8d); | |
*(uint *)(param_1 + 0x4bc) = *(ushort *)(param_2 + 0x8e) & 0xf; | |
*(uint *)(param_1 + 0x47c) = (uint)*(byte *)(param_2 + 0x98); | |
*(uint *)(param_1 + 0x480) = (uint)*(byte *)(param_2 + 0x99); | |
*(uint *)(param_1 + 0x484) = *(ushort *)(param_2 + 0x9a) & 3; | |
*(int *)(param_1 + 0x488) = *(int *)(param_2 + 0x2c) << 1 | *(int *)(param_2 + 0x30) << 3; | |
*(uint *)(param_1 + 0x474) = (uint)*(byte *)(param_2 + 0xa0); | |
*(uint *)(param_1 + 0x478) = (uint)*(byte *)(param_2 + 0xa1); | |
*(uint *)(param_1 + 0x448) = (uint)*(byte *)(param_2 + 0xa8); | |
*(uint *)(param_1 + 0x44c) = (uint)(*(int *)(param_2 + 0xa8) << 0x16) >> 0x1e; | |
*(undefined4 *)(param_1 + 0x458) = *(undefined4 *)(param_2 + 0xc0); | |
if (*(int *)(param_2 + 0xd0) == 0) { | |
uVar2 = *(uint *)(param_2 + 0x70); | |
} | |
else { | |
uVar2 = *(uint *)(param_2 + 0x70) | (*(int *)(param_2 + 0xd0) + -1) * 0x10; | |
} | |
*(uint *)(param_1 + 0x504) = uVar2; | |
*(uint *)(param_1 + 0x10) = *(uint *)(param_2 + 0xd4) | *(int *)(param_2 + 0xd8) << 4; | |
DataMemoryBarrier(0xf); | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,(int)((ulonglong)uVar3 >> 0x20),piVar1); | |
} | |
return; | |
} | |
void FUN_8f61f74c(int param_1) | |
{ | |
uint uVar1; | |
undefined4 uVar2; | |
int iVar3; | |
int iVar4; | |
uint uVar5; | |
int iVar6; | |
int iVar7; | |
longlong lVar8; | |
undefined8 uVar9; | |
ulonglong uVar10; | |
undefined4 local_10c; | |
undefined4 local_108; | |
undefined4 local_104; | |
int local_fc; | |
undefined4 local_f8; | |
undefined4 local_f4; | |
undefined4 local_f0; | |
undefined4 local_ec; | |
undefined4 local_e8; | |
undefined4 local_e4; | |
undefined4 local_e0; | |
undefined4 local_dc; | |
undefined4 local_d8; | |
undefined4 local_d4; | |
undefined4 local_d0; | |
undefined4 local_cc; | |
undefined4 local_c8; | |
undefined4 local_c4; | |
undefined4 local_c0; | |
undefined4 local_bc; | |
undefined4 local_b8; | |
undefined4 local_b4; | |
undefined4 local_b0; | |
undefined4 local_ac; | |
undefined4 local_a8; | |
undefined4 local_a4; | |
undefined4 local_a0; | |
undefined4 local_9c; | |
undefined4 local_98; | |
undefined4 local_94; | |
undefined4 local_90; | |
undefined4 local_8c; | |
undefined4 local_88; | |
uint local_84; | |
uint local_80; | |
undefined4 local_7c; | |
uint local_78; | |
undefined4 local_74; | |
undefined4 local_70; | |
undefined4 local_6c; | |
undefined4 local_68; | |
undefined4 local_64; | |
undefined4 local_60; | |
undefined4 local_58; | |
undefined4 local_54; | |
undefined4 local_50; | |
undefined4 local_4c; | |
undefined4 local_40; | |
uint local_3c; | |
undefined4 local_38; | |
int local_34; | |
int *local_2c; | |
iVar3 = *(int *)(param_1 + 0x2a4); | |
local_2c = DAT_8f69d118; | |
iVar4 = *(int *)(param_1 + 0x260); | |
iVar7 = *(int *)(param_1 + 0x29c); | |
FUN_8f61edb0(*(int *)(param_1 + 0x298)); | |
if (*(char *)(param_1 + 0x28b) != '\0') { | |
FUN_8f61edb0(*(int *)(param_1 + 0x2a0)); | |
} | |
FUN_8f61f4cc(param_1,iVar7); | |
if (*(char *)(param_1 + 0x28b) != '\0') { | |
FUN_8f61f4cc(param_1,iVar3); | |
} | |
local_ac = 0; | |
local_b4 = 4; | |
local_b0 = 4; | |
local_9c = 3; | |
local_a8 = 0; | |
local_c0 = 7; | |
local_90 = 2; | |
local_a4 = 0; | |
local_a0 = 0; | |
local_bc = 1; | |
local_b8 = 1; | |
local_94 = 1; | |
local_8c = 1; | |
local_98 = 0xb; | |
local_3c = (uint)*(byte *)(iVar4 + 0x4f); | |
local_e8 = 4; | |
local_c8 = 4; | |
local_c4 = 4; | |
local_10c = 19200000; | |
local_f0 = 5; | |
local_ec = 5; | |
local_e4 = 5; | |
local_d0 = 5; | |
local_d4 = 0x25; | |
local_cc = 0x7b0c; | |
local_108 = 0; | |
local_f8 = 0; | |
local_f4 = 0; | |
local_dc = 0; | |
local_d8 = 0; | |
local_104 = 1; | |
local_fc = 1; | |
local_e0 = 1; | |
uVar5 = *(uint *)(iVar4 + 0x14); | |
local_38 = *(undefined4 *)(iVar4 + 0x54); | |
iVar6 = *(int *)(iVar4 + 0x58); | |
local_34 = iVar6; | |
lVar8 = FUN_8f658e24(uVar5 << 0x14,uVar5 >> 0xc,19200000,0); | |
local_80 = (uint)lVar8 & 0xfffff; | |
local_84 = (uint)lVar8 >> 0x14 | (int)((ulonglong)lVar8 >> 0x20) << 0xc; | |
uVar9 = FUN_8f658e24((uint)(lVar8 << 8),(uint)((ulonglong)lVar8 >> 0x18),0xa00000,0); | |
local_74 = (undefined4)uVar9; | |
local_40 = 0x3c; | |
local_7c = 0x130; | |
local_88 = 1; | |
lVar8 = FUN_8f658e24(uVar5,0,0x4b00,0); | |
lVar8 = FUN_8f658e24((uint)(lVar8 << 0x14),(uint)((ulonglong)(lVar8 << 0x14) >> 0x20),1000,0); | |
uVar10 = FUN_8f658e24((uint)(lVar8 * 5),(uint)((ulonglong)(lVar8 * 5) >> 0x20),1000,0); | |
iVar4 = 0x131; | |
lVar8 = (uVar10 & 0xffffffff) * 0x26; | |
local_78 = (uint)lVar8; | |
FUN_8f658e24(local_78,(int)(uVar10 >> 0x20) * 0x26 + (int)((ulonglong)lVar8 >> 0x20),0x131,0); | |
if (iVar4 != 0) { | |
local_78 = local_78 + 1; | |
} | |
local_70 = 0x5e; | |
local_78 = local_78 & 0xffff; | |
uVar1 = uVar5 / 1000000; | |
uVar9 = FUN_8f658e24(uVar1 * 5,(uint)CARRY4(uVar1 * 4,uVar1),10,0); | |
local_6c = (undefined4)uVar9; | |
local_68 = 0x5f; | |
if (uVar5 + 0xb28392ff < 500000000) { | |
local_64 = 0x3c; | |
} | |
else if (uVar5 + 0x94b62dff < 499999999) { | |
local_64 = 0x28; | |
} | |
else if (uVar5 + 0x76e8c8ff < 299999999) { | |
local_64 = 0x19; | |
} | |
else { | |
local_64 = 0; | |
} | |
local_60 = 0x10; | |
local_58 = 0x30; | |
local_54 = 0x20; | |
local_50 = 5; | |
if (uVar5 + 0x76e8c900 < 0x11e1a301) { | |
local_4c = 0x2f; | |
} | |
else if (uVar5 + 0x94b62e00 < 500000000) { | |
local_4c = 0x2c; | |
} | |
else { | |
local_4c = 0x28; | |
} | |
*(uint *)(iVar7 + 0x10) = *(uint *)(iVar7 + 0x10) & 0xffffff0f | iVar6 << 4; | |
DataMemoryBarrier(0xf); | |
*(undefined4 *)(iVar7 + 0x14) = local_104; | |
if (*(char *)(param_1 + 0x95) != '\0') { | |
*(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) & 0xffffff0f | local_34 << 4; | |
DataMemoryBarrier(0xf); | |
} | |
FUN_8f61f338(iVar7,(int)&local_10c); | |
uVar2 = FUN_8f61f628(iVar7,(int)&local_10c); | |
if (local_fc != 0) { | |
uVar2 = FUN_8f61f450(iVar7,(int)&local_10c); | |
} | |
if (*(char *)(param_1 + 0x95) != '\0') { | |
FUN_8f61f338(iVar3,(int)&local_10c); | |
uVar2 = FUN_8f61f628(iVar3,(int)&local_10c); | |
if (local_fc != 0) { | |
uVar2 = FUN_8f61f450(iVar3,(int)&local_10c); | |
} | |
} | |
if (local_2c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,&DAT_8f69d118,local_2c); | |
} | |
return; | |
} | |
void FUN_8f61fb60(int param_1,uint param_2) | |
{ | |
int iVar1; | |
int iVar2; | |
int iVar3; | |
int *in_lr; | |
iVar1 = DAT_8f69d118; | |
if (7 < param_2) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x60a); | |
} | |
iVar3 = param_2 * 0x238 + param_1; | |
if (iVar3 == -8) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x60c); | |
} | |
iVar2 = DAT_8f69d118; | |
*(undefined4 *)(iVar3 + 0x228) = 0; | |
*(undefined4 *)(iVar3 + 0x22c) = 0; | |
*(undefined *)(iVar3 + 0x230) = 0; | |
*(undefined4 *)(iVar3 + 0x238) = 0; | |
*(undefined4 *)(iVar3 + 0x234) = 0; | |
*(undefined *)(iVar3 + 0x216) = 0; | |
*(undefined4 *)(iVar3 + 0x220) = 0; | |
*(undefined4 *)(iVar3 + 0x224) = 0; | |
*(undefined *)(iVar3 + 0x23c) = 1; | |
if (iVar1 == iVar2) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar1,iVar2,(int *)0x1); | |
} | |
void FUN_8f61fc3c(int param_1,int *param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
int *extraout_r1; | |
int *piVar2; | |
int *extraout_r1_00; | |
uint uVar3; | |
undefined4 *puVar4; | |
int *piVar5; | |
undefined8 uVar6; | |
piVar1 = DAT_8f69d118; | |
piVar5 = (int *)0x0; | |
piVar2 = DAT_8f69d118; | |
dprintf((byte *)(s__Press_volume_key_to_select__and_8f65e8a0 + 0x3c),param_2,param_3,DAT_8f69d118) | |
; | |
dprintf((byte *)s_dwc_core___0x_x_8f660d18,*(int **)(param_1 + 4),param_3,piVar2); | |
puVar4 = &DAT_8f69db74; | |
uVar3 = (&DAT_8f69db74)[(int)(int *)(uint)*(byte *)(param_1 + 0x11d4)]; | |
dprintf((byte *)s_ctrl_state____d___s_8f660d2c,(int *)(uint)*(byte *)(param_1 + 0x11d4),uVar3, | |
&DAT_8f69db74); | |
piVar2 = extraout_r1; | |
do { | |
dprintf((byte *)(s__Press_volume_key_to_select__and_8f65e8a0 + 0x3c),piVar2,uVar3,puVar4); | |
dprintf((byte *)s_EP___index____d__status__8f660d44,piVar5,uVar3,puVar4); | |
dprintf((byte *)s_phy_num____d_8f660d60,(int *)(uint)*(byte *)(param_1 + 0x14),uVar3,puVar4); | |
dprintf((byte *)s_usb_ep_num____d_8f660d74,(int *)(uint)*(byte *)(param_1 + 8),uVar3,puVar4); | |
dprintf((byte *)s_dir____d_8f660d88,(int *)(uint)*(byte *)(param_1 + 9),uVar3,puVar4); | |
dprintf((byte *)s_type____d_8f660d9c,(int *)(uint)*(byte *)(param_1 + 10),uVar3,puVar4); | |
dprintf((byte *)s_resource_idx____d_8f660db0,(int *)(uint)*(byte *)(param_1 + 0x216),uVar3, | |
puVar4); | |
dprintf((byte *)s_trb_queued____d_8f660dc4,*(int **)(param_1 + 0x220),uVar3,puVar4); | |
dprintf((byte *)s_bytes_queued____d_8f660dd8,*(int **)(param_1 + 0x224),uVar3,puVar4); | |
piVar5 = (int *)((int)piVar5 + 1); | |
dprintf((byte *)s_state____d___s_8f660dec,(int *)(uint)*(byte *)(param_1 + 0x23c), | |
(&DAT_8f69dad4)[(int)(int *)(uint)*(byte *)(param_1 + 0x23c)],puVar4); | |
uVar3 = (uint)*(byte *)(param_1 + 0x230); | |
dprintf((byte *)s_ep_req_len____d_trbctl____d_8f660e04,*(int **)(param_1 + 0x22c),uVar3,puVar4); | |
uVar6 = dprintf((byte *)(s__Press_volume_key_to_select__and_8f65e8a0 + 0x3c),extraout_r1_00, | |
uVar3,puVar4); | |
piVar2 = (int *)((ulonglong)uVar6 >> 0x20); | |
param_1 = param_1 + 0x238; | |
} while (piVar5 != (int *)0x8); | |
if (piVar1 == DAT_8f69d118) { | |
dprintf((byte *)(s__Press_volume_key_to_select__and_8f65e8a0 + 0x3c),piVar2,piVar1,DAT_8f69d118) | |
; | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar6,piVar2,piVar1); | |
} | |
void FUN_8f61fd9c(int *param_1,int *param_2,uint **param_3) | |
{ | |
char cVar1; | |
int *piVar2; | |
uint *puVar3; | |
uint *puVar4; | |
int *extraout_r1; | |
int *extraout_r1_00; | |
int *extraout_r1_01; | |
int *piVar5; | |
int *extraout_r1_02; | |
int *extraout_r1_03; | |
int *extraout_r1_04; | |
uint **ppuVar6; | |
uint *puVar7; | |
undefined uVar8; | |
uint *puVar9; | |
int iVar10; | |
int *piVar11; | |
int iVar12; | |
uint *puVar13; | |
uint uVar14; | |
uint *puVar15; | |
uint **ppuVar16; | |
uint *puVar17; | |
uint uVar18; | |
int *in_lr; | |
ulonglong uVar19; | |
undefined8 uVar20; | |
piVar2 = DAT_8f69d118; | |
piVar5 = param_2; | |
if ((int *)0x7 < param_2) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x6b5); | |
piVar5 = extraout_r1_04; | |
} | |
piVar11 = param_1 + (int)param_2 * 0x8e; | |
if (piVar11 == (int *)0xfffffff8) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x6b7); | |
piVar5 = extraout_r1_03; | |
} | |
uVar18 = (uint)*(byte *)(param_3 + 2); | |
ppuVar16 = (uint **)piVar11[0x86]; | |
puVar15 = *param_3; | |
puVar13 = param_3[1]; | |
if (*(char *)(piVar11 + 0x8f) != '\x01') { | |
iVar12 = -1; | |
goto LAB_8f61ff10; | |
} | |
if (piVar11[0x88] != 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x6c8); | |
} | |
puVar4 = param_3[1]; | |
ppuVar6 = (uint **)param_3[2]; | |
puVar9 = param_3[3]; | |
cVar1 = *(char *)((int)piVar11 + 10); | |
piVar11[0x8a] = (int)*param_3; | |
piVar11[0x8b] = (int)puVar4; | |
piVar11[0x8c] = (int)ppuVar6; | |
piVar11[0x8d] = (int)puVar9; | |
piVar11[0x8e] = (int)param_3[4]; | |
piVar11[0x89] = 0; | |
if (cVar1 == '\0' || cVar1 == '\x03') { | |
FUN_8f636968((uint *)ppuVar16,0,0x10); | |
iVar10 = piVar11[0x88] + 1; | |
iVar12 = piVar11[0x89]; | |
*ppuVar16 = puVar15; | |
ppuVar16[1] = (uint *)0x0; | |
ppuVar16[3] = (uint *)((uint)ppuVar16[3] & 0xfffffc03 | 0x803 | uVar18 << 4); | |
ppuVar16[2] = (uint *)((uint)ppuVar16[2] & 0xff000000 | (uint)puVar13); | |
piVar11[0x88] = iVar10; | |
piVar11[0x89] = iVar12 + (int)puVar13; | |
} | |
else if (cVar1 == '\x02') { | |
iVar12 = piVar11[0x87]; | |
if (iVar12 != 1 && puVar13 != (uint *)0x0) { | |
puVar17 = (uint *)(iVar12 - 2); | |
puVar9 = puVar13; | |
do { | |
ppuVar6 = ppuVar16 + 4; | |
FUN_8f636968((uint *)ppuVar16,0,0x10); | |
puVar7 = (uint *)piVar11[0x88]; | |
if (puVar7 == (uint *)0x0) { | |
puVar3 = puVar7; | |
puVar13 = puVar7; | |
if ((uint *)0xfffff8 < puVar9) { | |
puVar4 = (uint *)(0xfffff8 - ((uint)puVar15 & 7)); | |
puVar13 = (uint *)((int)puVar9 - (int)puVar4); | |
puVar3 = puVar17; | |
puVar9 = puVar4; | |
if (puVar17 != (uint *)0x0) { | |
puVar3 = (uint *)0x1; | |
} | |
} | |
} | |
else { | |
puVar4 = puVar9; | |
if ((uint *)0xfffff7 < puVar9) { | |
puVar4 = (uint *)0xfffff8; | |
} | |
puVar13 = (uint *)((int)puVar9 - (int)puVar4); | |
puVar3 = (uint *)(uint)(puVar9 != puVar4 && puVar17 != (uint *)0x0); | |
puVar9 = puVar4; | |
} | |
*ppuVar16 = puVar15; | |
ppuVar16[1] = (uint *)0x0; | |
ppuVar16[3] = (uint *)((uVar18 << 4 | 4 | (uint)ppuVar16[3] & 0xfffffc05) & 0xfffff7ff | 1); | |
ppuVar16[2] = (uint *)((uint)puVar9 | (uint)ppuVar16[2] & 0xff000000); | |
puVar4 = (uint *)piVar11[0x89]; | |
puVar15 = (uint *)((int)puVar15 + (int)puVar9); | |
piVar11[0x88] = (int)puVar7 + 1; | |
iVar12 = (int)puVar4 + (int)puVar9; | |
puVar17 = (uint *)((int)puVar17 - 1); | |
piVar11[0x89] = iVar12; | |
puVar9 = puVar13; | |
ppuVar16 = ppuVar6; | |
} while (puVar3 != (uint *)0x0); | |
} | |
if (puVar13 != (uint *)0x0) { | |
dprintf((byte *)s__ERROR__Enough_TRBs_are_not_avai_8f660e38,(int *)puVar4,ppuVar6,iVar12); | |
dprintf((byte *)s__ERROR__Increase_TRB_chain_for_t_8f660e74,extraout_r1_02,ppuVar6,iVar12); | |
dprintf((byte *)s__ERROR__phy_ep_num____d_xfer_len_8f660ea0,param_2,param_3[1],iVar12); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x729); | |
} | |
uVar14 = (uint)*(ushort *)(piVar11 + 3); | |
if (*(char *)((int)piVar11 + 9) == '\0') { | |
uVar19 = FUN_8f658354((uint)param_3[1],uVar14); | |
iVar12 = (int)(uVar19 >> 0x20); | |
if (iVar12 == 0) { | |
if (*(char *)((int)piVar11 + 0xe) == '\0') goto LAB_8f620184; | |
} | |
else { | |
uVar14 = uVar14 - iVar12; | |
} | |
FUN_8f636968((uint *)ppuVar16,0,0x10); | |
FUN_8f636968((uint *)((int)piVar11 + 0x16),0,0x200); | |
iVar10 = piVar11[0x88] + 1; | |
iVar12 = piVar11[0x89]; | |
*ppuVar16 = (uint *)((int)piVar11 + 0x16); | |
ppuVar16[3] = (uint *)((uint)ppuVar16[3] & 0xfffffc03 | 0x803 | uVar18 << 4); | |
ppuVar16[2] = (uint *)(uVar14 | (uint)ppuVar16[2] & 0xff000000); | |
ppuVar16[1] = (uint *)0x0; | |
piVar11[0x88] = iVar10; | |
piVar11[0x89] = iVar12 + uVar14; | |
} | |
else { | |
LAB_8f620184: | |
iVar10 = piVar11[0x88]; | |
ppuVar16[-1] = (uint *)((uint)ppuVar16[-1] & 0xfffffffb | 0x802); | |
} | |
} | |
else { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x769); | |
iVar10 = piVar11[0x88]; | |
} | |
FUN_8f625b24(piVar11[0x86],iVar10 << 4); | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
if (DAT_8f67f324 == 1) { | |
FUN_8f625b9c(); | |
} | |
uVar18 = (uint)*(byte *)(piVar11 + 0x8f); | |
if (uVar18 == 1) { | |
FUN_8f621ed8(param_1,(int)param_2); | |
uVar20 = FUN_8f6223bc(param_1); | |
piVar5 = (int *)((ulonglong)uVar20 >> 0x20); | |
if ((int)uVar20 == 0) { | |
uVar8 = 3; | |
} | |
else { | |
uVar8 = 2; | |
} | |
*(undefined *)(piVar11 + 0x8f) = uVar8; | |
} | |
else { | |
dprintf((byte *)s__Attempting_START_TRANSFER_in_in_8f660ec8,(int *)(&DAT_8f69dad4)[uVar18], | |
uVar18,&DAT_8f69dad4); | |
FUN_8f61fc3c((int)param_1,extraout_r1,uVar18); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x78e); | |
piVar5 = extraout_r1_00; | |
} | |
iVar12 = DAT_8f67f324 + -1; | |
DAT_8f67f324 = iVar12; | |
if (iVar12 == 0) { | |
FUN_8f625b8c(); | |
piVar5 = extraout_r1_01; | |
} | |
else { | |
iVar12 = 0; | |
} | |
LAB_8f61ff10: | |
if (piVar2 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar12,piVar5,piVar2); | |
} | |
return; | |
} | |
void FUN_8f620290(int *param_1) | |
{ | |
int *piVar1; | |
uint *local_28; | |
undefined4 local_24; | |
undefined local_20; | |
undefined4 local_1c; | |
undefined4 local_18; | |
int *local_14; | |
local_14 = DAT_8f69d118; | |
FUN_8f636968((uint *)param_1[0x476],0,8); | |
FUN_8f625b24(param_1[0x476],8); | |
local_28 = (uint *)param_1[0x476]; | |
local_18 = 0; | |
local_1c = 0; | |
local_24 = 8; | |
local_20 = 2; | |
FUN_8f61fd9c(param_1,(int *)0x0,&local_28); | |
piVar1 = DAT_8f69d118; | |
*(undefined *)(param_1 + 0x475) = 1; | |
if (local_14 == piVar1) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(1,0x11d4,local_14); | |
} | |
void FUN_8f620328(int *param_1,uint param_2) | |
{ | |
byte bVar1; | |
int *piVar2; | |
int *piVar3; | |
int iVar4; | |
uint uVar5; | |
int *in_lr; | |
undefined8 uVar6; | |
piVar2 = DAT_8f69d118; | |
if (7 < param_2) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x5ac); | |
} | |
bVar1 = *(byte *)(param_1 + param_2 * 0x8e + 5); | |
FUN_8f622038(param_1,param_2,0); | |
*(undefined *)(param_1 + param_2 * 0x8e + 0x8f) = 1; | |
uVar6 = FUN_8f621fe0(param_1,(uint)bVar1); | |
piVar3 = DAT_8f69d118; | |
if (piVar2 == DAT_8f69d118) { | |
iVar4 = *param_1; | |
uVar5 = *(uint *)(iVar4 + 0xc720) | 1 << (uint)bVar1; | |
*(uint *)(iVar4 + 0xc720) = uVar5; | |
if (piVar3 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar4,uVar5,piVar3); | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar6,(int)((ulonglong)uVar6 >> 0x20),piVar2); | |
} | |
void FUN_8f6203dc(int **param_1,int *param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
int *piVar2; | |
undefined4 uVar3; | |
undefined *puVar4; | |
undefined4 *puVar5; | |
int *piVar6; | |
uint uVar7; | |
undefined8 uVar8; | |
piVar1 = DAT_8f69d118; | |
piVar6 = *param_1; | |
piVar2 = DAT_8f69d118; | |
dprintf((byte *)(s_ERROR__JUN____USB_connect____8f663b3c + 0x1c),param_2,param_3,DAT_8f69d118); | |
uVar7 = (uint)((int)piVar6 << 0xc) >> 0x18; | |
dprintf((byte *)s_EP_event__0x_x__details_8f660f20,*param_1,param_3,piVar2); | |
piVar2 = (int *)((uint)((int)piVar6 << 0x16) >> 0x1c); | |
puVar4 = &DAT_8f69dbc4; | |
uVar3 = *(undefined4 *)(&DAT_8f69dbc4 + (int)piVar2 * 4); | |
dprintf((byte *)s_event_id____d___s_8f660f3c,piVar2,uVar3,&DAT_8f69dbc4); | |
dprintf((byte *)s_ep_phy_num____d_8f660f58,(int *)((uint)((int)piVar6 << 0x1a) >> 0x1b),uVar3, | |
puVar4); | |
piVar2 = (int *)(uVar7 & 3); | |
puVar5 = &DAT_8f69db74; | |
uVar3 = (&DAT_8f69db74)[(int)piVar2]; | |
dprintf((byte *)s_event_ctrl_stage____d___s_8f660f70,piVar2,uVar3,&DAT_8f69db74); | |
dprintf((byte *)s_event_status____d_8f660f8c,(int *)(uVar7 & 0xf),uVar3,puVar5); | |
dprintf((byte *)s_xfer_res_idx____d_8f660fa4,(int *)((uint)(int *)((uint)piVar6 >> 0x10) & 0x7f), | |
uVar3,puVar5); | |
dprintf((byte *)s_event_param____d_8f660fbc,(int *)((uint)piVar6 >> 0x10),uVar3,puVar5); | |
piVar2 = (int *)((uint)((int)piVar6 << 4) >> 0x1c); | |
uVar8 = dprintf((byte *)s_event_cmd_type____d___s_8f660fd4,piVar2, | |
*(undefined4 *)(&DAT_8f69d994 + (int)piVar2 * 4),&DAT_8f69d994); | |
piVar2 = (int *)((ulonglong)uVar8 >> 0x20); | |
if (piVar1 == DAT_8f69d118) { | |
dprintf((byte *)(s__Press_volume_key_to_select__and_8f65e8a0 + 0x3c),piVar2,piVar1,DAT_8f69d118) | |
; | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar8,piVar2,piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f62082c) | |
void FUN_8f6204dc(void) | |
{ | |
DAT_8f69dbe0 = s_DWC_EVENT_EP_CMD_COMPLETE_8f660ff0; | |
DAT_8f69dbd0 = s_DWC_EVENT_EP_XFER_NOT_READY_8f661010; | |
DAT_8f69dbcc = s_DWC_EVENT_EP_XFER_IN_PROGRESS_8f661030; | |
DAT_8f69dbc8 = s_DWC_EVENT_EP_XFER_COMPLETE_8f661050; | |
DAT_8f69da14 = s_DWC_EVENT_DEVICE_EVENT_ID_VENDOR_8f661070; | |
DAT_8f69da10 = s_DWC_EVENT_DEVICE_EVENT_ID_BUFFER_8f6610a4; | |
DAT_8f69da0c = s_DWC_EVENT_DEVICE_EVENT_ID_GENERI_8f6610d8; | |
DAT_8f69da08 = s_DWC_EVENT_DEVICE_EVENT_ID_ERRATI_8f66110c; | |
DAT_8f69da00 = s_DWC_EVENT_DEVICE_EVENT_ID_SOF_8f661140; | |
DAT_8f69d9fc = s_DWC_EVENT_DEVICE_EVENT_ID_SUSPEN_8f661174; | |
DAT_8f69d9f8 = s_DWC_EVENT_DEVICE_EVENT_ID_HIBER_8f6611a8; | |
DAT_8f69d9f4 = s_DWC_EVENT_DEVICE_EVENT_ID_WAKEUP_8f6611dc; | |
DAT_8f69d9f0 = s_DWC_EVENT_DEVICE_EVENT_ID_USB_LI_8f661210; | |
DAT_8f69d9ec = s_DWC_EVENT_DEVICE_EVENT_ID_CONNEC_8f661244; | |
DAT_8f69d9e8 = s_DWC_EVENT_DEVICE_EVENT_ID_USB_RE_8f661278; | |
DAT_8f69d9e4 = s_DWC_EVENT_DEVICE_EVENT_ID_DISCON_8f6612ac; | |
DAT_8f69db74 = s_EP_FSM_INIT_8f6612e0; | |
DAT_8f69db78 = s_EP_FSM_SETUP_8f6612f8; | |
DAT_8f69db7c = s_EP_FSM_CTRL_DATA_8f661310; | |
DAT_8f69db80 = s_EP_FSM_WAIT_FOR_HOST_2_8f661328; | |
DAT_8f69db84 = s_EP_FSM_WAIT_FOR_HOST_3_8f661340; | |
DAT_8f69db88 = s_EP_FSM_STATUS_2_8f661358; | |
DAT_8f69db8c = s_EP_FSM_STATUS_3_8f661370; | |
DAT_8f69db90 = s_EP_FSM_STALL_8f661388; | |
DAT_8f69dad4 = s_EP_STATE_INIT_8f6613a0; | |
DAT_8f69dad8 = s_EP_STATE_INACTIVE_8f6613b0; | |
DAT_8f69dadc = s_EP_STATE_START_TRANSFER_8f6613c4; | |
DAT_8f69dae0 = s_EP_STATE_XFER_IN_PROG_8f6613dc; | |
DAT_8f69da34 = s_ON_8f6613f4; | |
DAT_8f69da3c = &DAT_8f661404; | |
DAT_8f69da40 = s_L2_8f661414; | |
DAT_8f69da44 = s_DISCONNECTED_8f661424; | |
DAT_8f69da48 = s_EARLY_SUSPEND_8f661434; | |
DAT_8f69da6c = s_RESET_8f661444; | |
DAT_8f69da70 = s_RESUME_8f661454; | |
DAT_8f69da84 = s_U0_8f661464; | |
DAT_8f69da8c = s_U2_8f661484; | |
DAT_8f69da88 = s_U1_8f661474; | |
DAT_8f69da94 = s_SS_DIS_8f6614a4; | |
DAT_8f69da90 = s_U3_8f661494; | |
DAT_8f69da9c = s_SS_INACT_8f6614c4; | |
DAT_8f69da98 = s_RX_DET_8f6614b4; | |
DAT_8f69daa4 = s_RECOV_8f6614e4; | |
DAT_8f69daa0 = s_POLL_8f6614d4; | |
DAT_8f69daac = s_CMPLY_8f661504; | |
DAT_8f69daa8 = s_HRESET_8f6614f4; | |
DAT_8f69dac0 = s_RESUME_RESET_8f661524; | |
DAT_8f69dab0 = s_LPBK_8f661514; | |
DAT_8f69db24 = s_DSTS_CONNECTSPD_HS_8f661534; | |
DAT_8f69db2c = s_DSTS_CONNECTSPD_LS_8f66155c; | |
DAT_8f69db34 = s_DSTS_CONNECTSPD_SS_8f661570; | |
DAT_8f69db28 = s_DSTS_CONNECTSPD_FS1_8f661548; | |
DAT_8f69db30 = s_DSTS_CONNECTSPD_FS1_8f661548; | |
DAT_8f69d99c = s_DEPCMD_CMD_SET_TR_CONF_8f6615a0; | |
DAT_8f69d9a0 = s_DEPCMD_CMD_GET_EP_STATE_8f6615bc; | |
DAT_8f69d9a4 = s_DEPCMD_CMD_SET_STALL_8f6615d8; | |
DAT_8f69d9a8 = s_DEPCMD_CMD_CLEAR_STALL_8f6615f4; | |
DAT_8f69d9ac = s_DEPCMD_CMD_START_TRANSFER_8f661610; | |
DAT_8f69d9b0 = s_DEPCMD_CMD_UPDATE_TRANSFER_8f66162c; | |
DAT_8f69d998 = s_DEPCMD_CMD_SET_EP_CONF_8f661584; | |
DAT_8f69d9b4 = s_DEPCMD_CMD_END_TRANSFER_8f661648; | |
DAT_8f69d9b8 = s_DEPCMD_CMD_START_NEW_CONF_8f661664; | |
return; | |
} | |
void FUN_8f620830(uint *param_1,undefined4 param_2) | |
{ | |
ushort uVar1; | |
int *piVar2; | |
uint *puVar3; | |
undefined4 extraout_r1; | |
uint uVar4; | |
uint uVar5; | |
int *in_lr; | |
uint uVar6; | |
piVar2 = DAT_8f69d118; | |
puVar3 = (uint *)FUN_8f63666c(0x11f4,param_2); | |
if (puVar3 == (uint *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0xd4); | |
} | |
FUN_8f636968(puVar3,0,0x11f4); | |
uVar1 = *(ushort *)(param_1 + 2); | |
uVar4 = param_1[1]; | |
uVar6 = param_1[3]; | |
uVar5 = param_1[4]; | |
*puVar3 = *param_1; | |
*(ushort *)(puVar3 + 0x473) = uVar1; | |
puVar3[0x472] = uVar4; | |
*(ushort *)((int)puVar3 + 0x11ce) = (uVar1 >> 2) - 1; | |
puVar3[0x477] = uVar6; | |
puVar3[0x478] = uVar5; | |
*(undefined2 *)(puVar3 + 0x474) = 0; | |
uVar4 = FUN_8f6366a8((int *)0x40,0x40); | |
puVar3[0x476] = uVar4; | |
if (uVar4 == 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0xe4); | |
} | |
uVar4 = param_1[6]; | |
puVar3[0x479] = param_1[5]; | |
puVar3[0x47a] = uVar4; | |
uVar4 = FUN_8f6229cc((int *)puVar3); | |
puVar3[1] = uVar4; | |
FUN_8f61097c(0xac,FUN_8f620b24,(int *)puVar3); | |
FUN_8f6204dc(); | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(puVar3,extraout_r1,piVar2); | |
} | |
void FUN_8f620994(int param_1,int *param_2,uint param_3,uint *param_4) | |
{ | |
bool bVar1; | |
int *piVar2; | |
int *piVar3; | |
uint uVar4; | |
uint uVar5; | |
int iVar6; | |
uint uVar7; | |
uint uVar8; | |
int iVar9; | |
int *in_lr; | |
piVar2 = DAT_8f69d118; | |
iVar6 = *param_2; | |
if (7 < param_3) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x242); | |
} | |
iVar9 = param_3 * 0x238 + param_1; | |
if (iVar9 == -8) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x244); | |
} | |
uVar5 = *(uint *)(iVar9 + 0x220); | |
uVar4 = *(uint *)(iVar9 + 0x218); | |
if (uVar5 == 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x24b); | |
FUN_8f625b4c(uVar4,0); | |
uVar8 = uVar5; | |
} | |
else { | |
FUN_8f625b4c(uVar4,uVar5 << 4); | |
uVar7 = 0; | |
bVar1 = false; | |
uVar8 = 0; | |
do { | |
if (uVar8 == 0) { | |
uVar8 = *(uint *)(uVar4 + 8) >> 0x1c; | |
} | |
uVar7 = uVar7 + (*(uint *)(uVar4 + 8) & 0xffffff); | |
if ((((uint)(iVar6 << 0xc) >> 0x18 & 2) != 0) && ((*(uint *)(uVar4 + 0xc) & 1) != 0)) { | |
*(uint *)(uVar4 + 0xc) = *(uint *)(uVar4 + 0xc) & 0xfffffffe; | |
bVar1 = true; | |
} | |
uVar5 = uVar5 - 1; | |
uVar4 = uVar4 + 0x10; | |
} while (uVar5 != 0); | |
uVar5 = uVar7; | |
if (bVar1) { | |
FUN_8f625b24(*(uint *)(iVar9 + 0x218),*(int *)(iVar9 + 0x220) << 4); | |
} | |
} | |
piVar3 = DAT_8f69d118; | |
*(undefined4 *)(iVar9 + 0x220) = 0; | |
*param_4 = uVar5; | |
if (piVar2 != piVar3) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar8,0,piVar2); | |
} | |
return; | |
} | |
void FUN_8f620b24(int **param_1) | |
{ | |
int *piVar1; | |
int *extraout_r1; | |
int *extraout_r1_00; | |
int *extraout_r1_01; | |
int *piVar2; | |
int *extraout_r1_02; | |
int *extraout_r1_03; | |
int *extraout_r1_04; | |
int *extraout_r1_05; | |
int *extraout_r1_06; | |
int *extraout_r1_07; | |
char *pcVar3; | |
undefined4 uVar4; | |
char *pcVar5; | |
int iVar6; | |
int **ppiVar7; | |
uint uVar8; | |
int **ppiVar9; | |
uint uVar10; | |
int **ppiVar11; | |
int *in_lr; | |
undefined8 uVar12; | |
uint *local_4c; | |
undefined4 local_48; | |
undefined local_44; | |
undefined4 local_40; | |
undefined4 local_3c; | |
undefined4 local_38; | |
undefined4 local_34; | |
undefined4 local_30; | |
int *local_2c; | |
local_38 = (int *)0x0; | |
local_34 = 0; | |
local_2c = DAT_8f69d118; | |
local_30 = 0; | |
pcVar3 = s_ep____NULL_8f660d0c; | |
do { | |
uVar12 = FUN_8f622634(param_1,&local_38); | |
piVar2 = local_38; | |
piVar1 = (int *)((ulonglong)uVar12 >> 0x20); | |
if ((int)uVar12 == 0) { | |
if (local_2c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,piVar1,local_2c); | |
} | |
return; | |
} | |
if (((uint)local_38 & 1) == 0) { | |
ppiVar9 = (int **)((uint)((int)local_38 << 0x1a) >> 0x1b); | |
if (ppiVar9 < (int **)0x2) { | |
iVar6 = (int)(int *)(uint)*(byte *)(param_1 + 0x475) + -1; | |
switch(iVar6) { | |
case 0: | |
ppiVar7 = (int **)((uint)((int)local_38 << 0x16) >> 0x1c); | |
pcVar3 = (char *)(param_1 + (int)ppiVar9 * 0x8e); | |
ppiVar11 = (int **)((int)pcVar3 + 8); | |
if (ppiVar7 == (int **)0x3) { | |
LAB_8f621334: | |
FUN_8f6220d8((int *)param_1,(int)ppiVar9); | |
*(undefined *)(param_1 + 0x475) = 7; | |
pcVar3 = (char *)(int **)0x7; | |
} | |
else if (ppiVar7 == (int **)0x7) { | |
if ((uint)((int)local_38 << 4) >> 0x1c == 6) { | |
if (*(char *)((int)pcVar3 + 0x23c) != '\x02') { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x295); | |
} | |
if (((uint)piVar2 & 0xf000) != 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x297); | |
} | |
LAB_8f621114: | |
*(undefined *)(ppiVar11 + 0x8d) = 3; | |
*(byte *)((int)ppiVar11 + 0x20e) = (byte)((uint)local_38 >> 0x10) & 0x7f; | |
pcVar3 = (char *)(int **)0x3; | |
} | |
} | |
else { | |
if (ppiVar7 != (int **)0x1) goto LAB_8f620e3c; | |
local_4c = (uint *)0x0; | |
if (ppiVar9 != (int **)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x2b6); | |
} | |
if (*(char *)((int)pcVar3 + 0x23c) != '\x03') { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x2b9); | |
} | |
*(undefined *)((int)pcVar3 + 0x23c) = 1; | |
pcVar3 = (char *)ppiVar9; | |
iVar6 = FUN_8f620994((int)param_1,&local_38,(uint)ppiVar9,(uint *)&local_4c); | |
if ((iVar6 != 0) || (local_4c != (uint *)0x0)) goto LAB_8f6213c4; | |
piVar2 = param_1[0x476]; | |
FUN_8f625b4c((uint)piVar2,8); | |
iVar6 = (*(code *)param_1[0x47a])(param_1[0x479],piVar2); | |
if (iVar6 != 2) { | |
if (iVar6 == 3) goto LAB_8f6210c4; | |
goto LAB_8f621334; | |
} | |
pcVar3 = (char *)0x3; | |
*(undefined *)(param_1 + 0x475) = 3; | |
} | |
break; | |
case 1: | |
ppiVar7 = (int **)((uint)((int)local_38 << 0x16) >> 0x1c); | |
uVar8 = (uint)((int)local_38 << 0xc) >> 0x18; | |
ppiVar11 = param_1 + (int)ppiVar9 * 0x8e + 2; | |
if (ppiVar7 == (int **)0x3) { | |
if ((uVar8 & 3) != 1) { | |
pcVar3 = s_platform_msm_shared_usb30_dwc_c_8f660cb8; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x31e); | |
} | |
if (1 < (byte)(*(char *)(param_1 + (int)ppiVar9 * 0x8e + 0x8f) - 2U)) { | |
FUN_8f621f7c((int *)param_1,(uint)ppiVar9 ^ 1); | |
FUN_8f6220d8((int *)param_1,(uint)ppiVar9 ^ 1); | |
pcVar3 = (char *)0x7; | |
*(undefined *)(param_1 + 0x475) = 7; | |
} | |
} | |
else if (ppiVar7 == (int **)0x7) { | |
if ((uint)((int)local_38 << 4) >> 0x1c == 6) { | |
if (*(char *)(param_1 + (int)ppiVar9 * 0x8e + 0x8f) != '\x02') { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x308); | |
} | |
if ((uVar8 & 0xf) != 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x30a); | |
} | |
goto LAB_8f621114; | |
} | |
} | |
else { | |
if (ppiVar7 != (int **)0x1) goto LAB_8f620e3c; | |
if (*(char *)(param_1 + (int)ppiVar9 * 0x8e + 0x8f) != '\x03') { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x347); | |
} | |
*(undefined *)(param_1 + (int)ppiVar9 * 0x8e + 0x8f) = 1; | |
FUN_8f620994((int)param_1,&local_38,(uint)ppiVar9,(uint *)&local_4c); | |
pcVar3 = &DAT_00000004; | |
*(undefined *)(param_1 + 0x475) = 4; | |
} | |
break; | |
case 2: | |
ppiVar7 = (int **)((uint)((int)local_38 << 0x16) >> 0x1c); | |
if (ppiVar7 == (int **)0x3) { | |
uVar8 = (uint)((int)local_38 << 0x12) >> 0x1e; | |
if (uVar8 == 1) goto LAB_8f621334; | |
if (uVar8 == 2) { | |
if (ppiVar9 != (int **)0x1) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x385); | |
} | |
local_3c = 0; | |
local_40 = 0; | |
local_4c = (uint *)0x0; | |
local_48 = 0; | |
local_44 = 3; | |
FUN_8f61fd9c((int *)param_1,(int *)ppiVar9,&local_4c); | |
pcVar3 = &DAT_00000005; | |
*(undefined *)(param_1 + 0x475) = 5; | |
} | |
else { | |
pcVar3 = s_platform_msm_shared_usb30_dwc_c_8f660cb8; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x395); | |
} | |
} | |
else { | |
LAB_8f620e34: | |
if (ppiVar7 != (int **)0x7) { | |
LAB_8f620e3c: | |
piVar2 = *(int **)(&DAT_8f69dbc4 + (int)ppiVar7 * 4); | |
goto LAB_8f620e40; | |
} | |
} | |
break; | |
case 3: | |
ppiVar7 = (int **)((uint)((int)local_38 << 0x16) >> 0x1c); | |
if (ppiVar7 != (int **)0x3) goto LAB_8f620e34; | |
uVar8 = (uint)((int)local_38 << 0x12) >> 0x1e; | |
if (uVar8 == 1) { | |
if (1 < (byte)(*(char *)(param_1 + (int)ppiVar9 * 0x8e + 0x8f) - 2U)) goto LAB_8f621334; | |
local_3c = 0; | |
local_40 = 0; | |
local_4c = (uint *)0x0; | |
local_48 = 0; | |
local_44 = 5; | |
FUN_8f61fd9c((int *)param_1,(int *)ppiVar9,&local_4c); | |
LAB_8f6210c4: | |
pcVar3 = (char *)0x2; | |
*(undefined *)(param_1 + 0x475) = 2; | |
} | |
else if (uVar8 == 2) { | |
local_3c = 0; | |
local_40 = 0; | |
local_4c = (uint *)0x0; | |
local_48 = 0; | |
local_44 = 4; | |
FUN_8f61fd9c((int *)param_1,(int *)ppiVar9,&local_4c); | |
pcVar3 = &DAT_00000006; | |
*(undefined *)(param_1 + 0x475) = 6; | |
} | |
else { | |
pcVar3 = s_platform_msm_shared_usb30_dwc_c_8f660cb8; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x3e6); | |
} | |
break; | |
case 4: | |
ppiVar7 = (int **)((uint)((int)local_38 << 0x16) >> 0x1c); | |
pcVar3 = (char *)(param_1 + (int)ppiVar9 * 0x8e); | |
ppiVar11 = (int **)((int)pcVar3 + 8); | |
if (ppiVar7 == (int **)0x1) { | |
pcVar5 = pcVar3; | |
if (ppiVar9 != (int **)0x1) { | |
pcVar5 = s_platform_msm_shared_usb30_dwc_c_8f660cb8; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x41d); | |
} | |
if (*(char *)((int)pcVar3 + 0x23c) != '\x03') { | |
pcVar5 = s_platform_msm_shared_usb30_dwc_c_8f660cb8; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x422); | |
} | |
if (param_1[0x47b] == (int *)0x0) { | |
*(undefined *)((int)pcVar3 + 0x23c) = 1; | |
FUN_8f620994((int)param_1,&local_38,(uint)ppiVar9,(uint *)&local_4c); | |
FUN_8f620290((int *)param_1); | |
pcVar3 = (char *)ppiVar9; | |
} | |
else { | |
FUN_8f622400((int *)param_1); | |
pcVar3 = pcVar5; | |
} | |
} | |
else { | |
if (ppiVar7 != (int **)0x7) goto LAB_8f620e3c; | |
if ((uint)((int)local_38 << 4) >> 0x1c == 6) { | |
if (*(char *)((int)pcVar3 + 0x23c) != '\x02') { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x409); | |
} | |
if (((uint)piVar2 & 0xf000) != 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x40b); | |
} | |
goto LAB_8f621114; | |
} | |
} | |
break; | |
case 5: | |
ppiVar7 = (int **)((uint)((int)local_38 << 0x16) >> 0x1c); | |
pcVar3 = (char *)(param_1 + (int)ppiVar9 * 0x8e); | |
ppiVar11 = (int **)((int)pcVar3 + 8); | |
if (ppiVar7 == (int **)0x1) { | |
if (*(char *)((int)pcVar3 + 0x23c) != '\x03') { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x471); | |
} | |
*(undefined *)((int)pcVar3 + 0x23c) = 1; | |
pcVar3 = (char *)ppiVar9; | |
iVar6 = FUN_8f620994((int)param_1,&local_38,(uint)ppiVar9,(uint *)&local_4c); | |
if ((iVar6 != 0) || (local_4c != (uint *)0x0)) goto LAB_8f621334; | |
LAB_8f6213c4: | |
FUN_8f620290((int *)param_1); | |
} | |
else { | |
if (ppiVar7 != (int **)0x7) goto LAB_8f620e3c; | |
if ((uint)((int)local_38 << 4) >> 0x1c == 6) { | |
if (*(char *)((int)pcVar3 + 0x23c) != '\x02') { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x45b); | |
} | |
if (((uint)piVar2 & 0xf000) != 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x45d); | |
} | |
goto LAB_8f621114; | |
} | |
} | |
break; | |
case 6: | |
if ((uint)((int)local_38 << 0x16) >> 0x1c == 7) { | |
uVar8 = (uint)((int)local_38 << 4) >> 0x1c; | |
if (uVar8 == 4) goto LAB_8f6213c4; | |
if (uVar8 == 8) { | |
*(undefined *)(param_1 + (int)ppiVar9 * 0x8e + 0x8f) = 1; | |
*(undefined *)((int)param_1 + (int)ppiVar9 * 0x238 + 0x216) = 0; | |
pcVar3 = (char *)(int **)0x0; | |
} | |
} | |
break; | |
default: | |
dprintf((byte *)s_Invalid_ctrl_state____d_8f661794,(int *)(uint)*(byte *)(param_1 + 0x475) | |
,pcVar3,iVar6); | |
FUN_8f6203dc((int **)&local_38,extraout_r1_04,pcVar3); | |
FUN_8f61fc3c((int)param_1,extraout_r1_05,pcVar3); | |
pcVar3 = s_platform_msm_shared_usb30_dwc_c_8f660cb8; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x227); | |
} | |
} | |
else { | |
if ((int **)0x7 < ppiVar9) { | |
pcVar3 = s_platform_msm_shared_usb30_dwc_c_8f660cb8; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x570); | |
piVar1 = extraout_r1_06; | |
} | |
if (param_1 + (int)ppiVar9 * 0x8e == (int **)0xfffffff8) { | |
pcVar3 = s_platform_msm_shared_usb30_dwc_c_8f660cb8; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x572); | |
piVar1 = extraout_r1_07; | |
} | |
piVar2 = local_38; | |
uVar8 = (uint)*(byte *)(param_1 + (int)ppiVar9 * 0x8e + 0x8f); | |
if (uVar8 == 2) { | |
uVar8 = (uint)((int)local_38 << 0x1a) >> 0x1b; | |
uVar10 = (uint)((int)local_38 << 0x16) >> 0x1c; | |
if (7 < uVar8) { | |
pcVar3 = s_platform_msm_shared_usb30_dwc_c_8f660cb8; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x4ea); | |
} | |
ppiVar9 = param_1 + uVar8 * 0x8e; | |
ppiVar7 = ppiVar9; | |
if (ppiVar9 == (int **)0xfffffff8) { | |
ppiVar7 = (int **)0x4ec; | |
pcVar3 = s_platform_msm_shared_usb30_dwc_c_8f660cb8; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x4ec); | |
} | |
if (uVar10 == 7) { | |
pcVar3 = (char *)((uint)((int)local_38 << 4) >> 0x1c); | |
if (pcVar3 == &DAT_00000006) { | |
if (((uint)piVar2 & 0xf000) == 0) { | |
*(byte *)((int)ppiVar9 + 0x216) = (byte)((uint)((int)local_38 << 9) >> 0x19); | |
*(undefined *)(ppiVar9 + 0x8f) = 3; | |
pcVar3 = (char *)(int **)0x3; | |
} | |
else { | |
if (ppiVar9[0x8e] != (int *)0x0) { | |
pcVar3 = (char *)0xffffffff; | |
(*(code *)ppiVar9[0x8e])(ppiVar9[0x8d],0); | |
} | |
FUN_8f61fb60((int)param_1,uVar8); | |
} | |
} | |
} | |
else { | |
piVar2 = *(int **)(&DAT_8f69dbc4 + uVar10 * 4); | |
LAB_8f620e40: | |
dprintf((byte *)s__Ignore_the_unexpected_EP_event__8f661730,piVar2,pcVar3,ppiVar7); | |
FUN_8f6203dc((int **)&local_38,extraout_r1_02,pcVar3); | |
FUN_8f61fc3c((int)param_1,extraout_r1_03,pcVar3); | |
} | |
} | |
else if (uVar8 == 3) { | |
ppiVar9 = (int **)((uint)((int)local_38 << 0x1a) >> 0x1b); | |
uVar8 = (uint)((int)local_38 << 0x16) >> 0x1c; | |
if ((int **)0x7 < ppiVar9) { | |
pcVar3 = s_platform_msm_shared_usb30_dwc_c_8f660cb8; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x51c); | |
} | |
ppiVar11 = param_1 + (int)ppiVar9 * 0x8e; | |
ppiVar7 = ppiVar11; | |
if (ppiVar11 == (int **)0xfffffff8) { | |
ppiVar7 = (int **)0x51e; | |
pcVar3 = s_platform_msm_shared_usb30_dwc_c_8f660cb8; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x51e); | |
} | |
if (uVar8 != 3) { | |
if (uVar8 == 7) { | |
if ((local_38._3_1_ & 0xf) != 8) goto LAB_8f620bfc; | |
if (ppiVar11[0x8e] != (int *)0x0) { | |
pcVar3 = (char *)0xffffffff; | |
(*(code *)ppiVar11[0x8e])(ppiVar11[0x8d],0); | |
} | |
} | |
else { | |
if (uVar8 != 1) { | |
piVar2 = *(int **)(&DAT_8f69dbc4 + uVar8 * 4); | |
goto LAB_8f620e40; | |
} | |
pcVar3 = (char *)ppiVar9; | |
ppiVar7 = (int **)FUN_8f620994((int)param_1,&local_38,(uint)ppiVar9,(uint *)&local_4c) | |
; | |
if (ppiVar11[0x8e] != (int *)0x0) { | |
pcVar3 = (char *)ppiVar7; | |
if (ppiVar7 != (int **)0x0) { | |
pcVar3 = (char *)0xffffffff; | |
} | |
(*(code *)ppiVar11[0x8e])(ppiVar11[0x8d],(int)ppiVar11[0x89] - (int)local_4c); | |
} | |
} | |
FUN_8f61fb60((int)param_1,(uint)ppiVar9); | |
} | |
} | |
else if (uVar8 == 1) { | |
ppiVar7 = (int **)((uint)((int)local_38 << 0x16) >> 0x1c); | |
if (ppiVar7 != (int **)0x3) goto LAB_8f620e34; | |
} | |
else { | |
dprintf((byte *)s__EP_state_is_invalid__Asserting__8f6617b0,piVar1,pcVar3,uVar8); | |
FUN_8f6203dc((int **)&local_38,extraout_r1,pcVar3); | |
FUN_8f61fc3c((int)param_1,extraout_r1_00,pcVar3); | |
pcVar3 = s_platform_msm_shared_usb30_dwc_c_8f660cb8; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x594); | |
} | |
} | |
} | |
else { | |
uVar8 = (uint)((int)local_38 << 0x14) >> 0x1c; | |
// WARNING: Could not recover jumptable at 0x8f620c30. Too many branches | |
// WARNING: Treating indirect jump as call | |
if (uVar8 < 0xd) { | |
(*(code *)(&PTR_LAB_8f620c38)[uVar8])(); | |
return; | |
} | |
uVar4 = (&DAT_8f69db74)[*(byte *)(param_1 + 0x475)]; | |
dprintf((byte *)s__Unhandled_DEVICE_EVENT___s_in___8f66169c,(int *)(&DAT_8f69d9e4)[uVar8], | |
uVar4,&DAT_8f69d9e4); | |
FUN_8f61fc3c((int)param_1,extraout_r1_01,uVar4); | |
pcVar3 = s_platform_msm_shared_usb30_dwc_c_8f660cb8; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x151); | |
} | |
LAB_8f620bfc: | |
FUN_8f6227e8((int *)param_1,(int)uVar12); | |
} while( true ); | |
} | |
void FUN_8f6218f4(int *param_1) | |
{ | |
int *piVar1; | |
int *piVar2; | |
int iVar3; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
int *in_lr; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
FUN_8f622318(param_1); | |
FUN_8f622b38(param_1); | |
FUN_8f622970(param_1,extraout_r1); | |
FUN_8f6225c8(param_1); | |
FUN_8f622828(param_1,0x47); | |
FUN_8f622180(param_1,0,0); | |
*(undefined2 *)(param_1 + 3) = 0x200; | |
param_1[0x87] = 1; | |
*(undefined *)(param_1 + 2) = 0; | |
*(undefined *)((int)param_1 + 9) = 0; | |
*(undefined *)(param_1 + 5) = 0; | |
*(undefined *)((int)param_1 + 10) = 0; | |
*(undefined *)(param_1 + 0x8f) = 0; | |
param_1[4] = 0; | |
*(undefined *)((int)param_1 + 0x15) = 0; | |
*(undefined *)((int)param_1 + 0xe) = 0; | |
piVar2 = (int *)FUN_8f635d28(0x40,0x10); | |
iVar3 = FUN_8f6366a8(piVar2,param_1[0x87] * 0x10 + 0x3fU & 0xffffffc0); | |
param_1[0x86] = iVar3; | |
if (iVar3 == 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x5d2); | |
} | |
*(undefined2 *)(param_1 + 0x91) = 0x200; | |
param_1[0x88] = 0; | |
param_1[0x89] = 0; | |
*(undefined *)(param_1 + 0x90) = 0; | |
*(undefined *)((int)param_1 + 0x242) = 0; | |
*(undefined *)(param_1 + 0x11d) = 0; | |
param_1[0x92] = 0; | |
*(undefined *)((int)param_1 + 0x24d) = 0; | |
*(undefined *)((int)param_1 + 0x246) = 0; | |
*(undefined *)((int)param_1 + 0x241) = 1; | |
*(undefined *)(param_1 + 0x93) = 1; | |
param_1[0x115] = 1; | |
piVar2 = (int *)FUN_8f635d28(0x40,0x10); | |
iVar3 = FUN_8f6366a8(piVar2,param_1[0x115] * 0x10 + 0x3fU & 0xffffffc0); | |
param_1[0x114] = iVar3; | |
if (iVar3 == 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x5e6); | |
} | |
param_1[0x116] = 0; | |
param_1[0x117] = 0; | |
FUN_8f620328(param_1,0); | |
FUN_8f620328(param_1,1); | |
uVar4 = FUN_8f610944(0xac,extraout_r1_00); | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f620290(param_1); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),piVar1); | |
} | |
void FUN_8f621ac0(int param_1,byte *param_2) | |
{ | |
byte bVar1; | |
byte bVar2; | |
byte bVar3; | |
byte bVar4; | |
undefined2 uVar5; | |
int *piVar6; | |
int *piVar7; | |
uint uVar8; | |
undefined4 uVar9; | |
uint uVar10; | |
char cVar11; | |
uint *puVar12; | |
uint *puVar13; | |
uint uVar14; | |
uint uVar15; | |
int iVar16; | |
int *in_lr; | |
piVar6 = DAT_8f69d118; | |
uVar15 = (uint)param_2[1] | (*param_2 & 0x7f) << 1; | |
if (7 < uVar15) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x65d); | |
} | |
iVar16 = uVar15 * 0x238 + 8; | |
puVar13 = (uint *)(param_1 + iVar16); | |
if (puVar13 == (uint *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x65f); | |
} | |
FUN_8f636968(puVar13,0,4); | |
puVar12 = *(uint **)(param_2 + 0x210); | |
bVar1 = *param_2; | |
bVar2 = param_2[1]; | |
bVar3 = param_2[2]; | |
uVar5 = *(undefined2 *)(param_2 + 4); | |
uVar8 = *(uint *)(param_2 + 8); | |
bVar4 = param_2[6]; | |
uVar14 = *(uint *)(param_2 + 0x214); | |
*(byte *)(param_1 + iVar16) = bVar1; | |
*(byte *)((int)puVar13 + 1) = bVar2; | |
*(byte *)((int)puVar13 + 2) = bVar3; | |
uVar10 = (uint)bVar1; | |
if (puVar12 != (uint *)0x0) { | |
uVar10 = uVar14; | |
} | |
*(undefined2 *)(puVar13 + 1) = uVar5; | |
puVar13[2] = uVar8; | |
puVar13[0x84] = (uint)puVar12; | |
*(byte *)((int)puVar13 + 6) = bVar4; | |
puVar13[0x85] = uVar14; | |
if (puVar12 == (uint *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_c_8f660cb8,0x66e); | |
puVar12 = (uint *)puVar13[0x84]; | |
uVar10 = puVar13[0x85]; | |
} | |
FUN_8f636968(puVar12,0,uVar10 << 2); | |
uVar9 = FUN_8f625b24(puVar13[0x84],puVar13[0x85] << 2); | |
piVar7 = DAT_8f69d118; | |
cVar11 = *(char *)((int)puVar13 + 1); | |
*(char *)(puVar13 + 3) = (char)uVar15; | |
if (cVar11 != '\x01') { | |
cVar11 = '\0'; | |
} | |
*(char *)((int)puVar13 + 0xd) = cVar11; | |
puVar13[0x86] = 0; | |
puVar13[0x87] = 0; | |
*(undefined *)((int)puVar13 + 0x20e) = 0; | |
*(undefined *)(puVar13 + 0x8d) = 0; | |
if (piVar6 == piVar7) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar9,piVar6,piVar7); | |
} | |
void FUN_8f621c5c(int *param_1) | |
{ | |
int *piVar1; | |
uint uVar2; | |
int *piVar3; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
uVar2 = 2; | |
FUN_8f622a50(param_1); | |
FUN_8f622038(param_1,1,2); | |
uVar4 = FUN_8f622180(param_1,0,2); | |
piVar3 = param_1; | |
do { | |
if (*(char *)(piVar3 + 0x121) != '\0') { | |
uVar4 = FUN_8f620328(param_1,uVar2); | |
} | |
piVar3 = piVar3 + 0x8e; | |
uVar2 = uVar2 + 1 & 0xff; | |
} while (uVar2 != 8); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),piVar1); | |
} | |
void FUN_8f621cf4(int *param_1,int param_2,uint param_3,uint *param_4,undefined4 param_5, | |
undefined4 param_6,undefined4 param_7) | |
{ | |
uint *puVar1; | |
undefined8 uVar2; | |
uint *local_28; | |
undefined4 local_24; | |
undefined local_20; | |
undefined4 local_1c; | |
undefined4 local_18; | |
int *local_14; | |
puVar1 = param_4; | |
if (param_2 == 0) { | |
puVar1 = (uint *)&DAT_00000005; | |
} | |
local_20 = SUB41(puVar1,0); | |
if (param_2 != 0) { | |
local_20 = 1; | |
} | |
local_14 = DAT_8f69d118; | |
local_24 = param_5; | |
local_18 = param_6; | |
local_1c = param_7; | |
local_28 = param_4; | |
uVar2 = FUN_8f61fd9c(param_1,(int *)((param_3 | param_2 << 1) & 0xff),&local_28); | |
if (local_14 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),local_14); | |
} | |
void FUN_8f621d64(int *param_1,int param_2,uint *param_3) | |
{ | |
short sVar1; | |
int *piVar2; | |
int iVar3; | |
uint uVar4; | |
uint *puVar5; | |
int iVar6; | |
int *in_lr; | |
piVar2 = DAT_8f69d118; | |
iVar6 = *param_1; | |
if ((*(uint *)(iVar6 + 0xc200) & 0x40) != 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_hw_8f6617f4,0x51); | |
iVar6 = *param_1; | |
} | |
puVar5 = (uint *)(param_2 * 0x10 + iVar6 + 0xc80c); | |
do { | |
} while ((*puVar5 & 0x400) != 0); | |
sVar1 = (short)param_2; | |
iVar3 = sVar1 * 0x10 + 0xc800; | |
*puVar5 = 0; | |
*(uint *)(iVar6 + iVar3) = param_3[2]; | |
*(uint *)(iVar6 + sVar1 * 0x10 + 0xc804) = param_3[3]; | |
*(uint *)(iVar6 + sVar1 * 0x10 + 0xc808) = param_3[4]; | |
uVar4 = *param_3; | |
*puVar5 = *puVar5 & 0xfffffff0 | uVar4; | |
if (*param_3 - 7 < 3) { | |
uVar4 = (uint)*(byte *)(param_3 + 1); | |
*puVar5 = *puVar5 & 0xffff | uVar4 << 0x10; | |
} | |
if (*(int *)(iVar6 + 0xc704) < 0) { | |
*puVar5 = *puVar5 | 0x100; | |
} | |
*puVar5 = *puVar5 | 0x400; | |
do { | |
} while ((*puVar5 & 0x400) != 0); | |
if (piVar2 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar3,uVar4,piVar2); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f621ed4) | |
void FUN_8f621ea0(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
void FUN_8f621ed8(int *param_1,int param_2) | |
{ | |
int *in_lr; | |
undefined8 uVar1; | |
uint local_30 [2]; | |
undefined4 local_28; | |
uint local_24; | |
undefined4 local_20; | |
int *local_1c; | |
local_24 = param_1[param_2 * 0x8e + 0x86]; | |
local_1c = DAT_8f69d118; | |
if ((local_24 & 0xf) != 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_hw_8f6617f4,0x93); | |
} | |
local_28 = 0; | |
local_20 = 0; | |
local_30[0] = 6; | |
uVar1 = FUN_8f621d64(param_1,param_2,local_30); | |
if (local_1c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar1,(int)((ulonglong)uVar1 >> 0x20),local_1c); | |
} | |
void FUN_8f621f7c(int *param_1,int param_2) | |
{ | |
undefined8 uVar1; | |
uint local_28; | |
undefined local_24; | |
undefined4 local_20; | |
undefined4 local_1c; | |
undefined4 local_18; | |
int *local_14; | |
local_24 = *(undefined *)((int)param_1 + param_2 * 0x238 + 0x216); | |
local_20 = 0; | |
local_1c = 0; | |
local_18 = 0; | |
local_28 = 8; | |
local_14 = DAT_8f69d118; | |
uVar1 = FUN_8f621d64(param_1,param_2,&local_28); | |
if (local_14 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar1,(int)((ulonglong)uVar1 >> 0x20),local_14); | |
} | |
void FUN_8f621fe0(int *param_1,int param_2) | |
{ | |
undefined8 uVar1; | |
uint local_20 [2]; | |
undefined4 local_18; | |
undefined4 local_14; | |
undefined4 local_10; | |
int *local_c; | |
local_20[0] = 2; | |
local_18 = 0; | |
local_14 = 0; | |
local_c = DAT_8f69d118; | |
local_10 = 1; | |
uVar1 = FUN_8f621d64(param_1,param_2,local_20); | |
if (local_c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar1,(int)((ulonglong)uVar1 >> 0x20),local_c); | |
} | |
void FUN_8f622038(int *param_1,int param_2,int param_3) | |
{ | |
int iVar1; | |
undefined8 uVar2; | |
uint local_30 [2]; | |
undefined4 local_28; | |
uint local_24; | |
uint local_20; | |
int *local_1c; | |
iVar1 = param_2 * 0x238; | |
local_30[0] = 1; | |
local_28 = 0; | |
local_20 = (uint)*(byte *)((int)param_1 + iVar1 + 10) << 1 | | |
(uint)*(byte *)((int)param_1 + iVar1 + 0x15) << 0x11 | | |
param_1[param_2 * 0x8e + 4] << 0x16 | | |
(uint)*(ushort *)(param_1 + param_2 * 0x8e + 3) << 3 | param_3 << 0x1e; | |
local_24 = (uint)*(byte *)((int)param_1 + iVar1 + 9) << 0x19 | | |
(uint)*(byte *)(param_1 + param_2 * 0x8e + 2) << 0x1a | 0x500; | |
local_1c = DAT_8f69d118; | |
uVar2 = FUN_8f621d64(param_1,(uint)*(byte *)(param_1 + param_2 * 0x8e + 5),local_30); | |
if (local_1c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),local_1c); | |
} | |
void FUN_8f6220d8(int *param_1,int param_2) | |
{ | |
undefined8 uVar1; | |
uint local_20 [2]; | |
undefined4 local_18; | |
undefined4 local_14; | |
undefined4 local_10; | |
int *local_c; | |
local_18 = 0; | |
local_14 = 0; | |
local_10 = 0; | |
local_20[0] = 4; | |
local_c = DAT_8f69d118; | |
uVar1 = FUN_8f621d64(param_1,param_2,local_20); | |
if (local_c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar1,(int)((ulonglong)uVar1 >> 0x20),local_c); | |
} | |
void FUN_8f62212c(int *param_1,int param_2) | |
{ | |
undefined8 uVar1; | |
uint local_20 [2]; | |
undefined4 local_18; | |
undefined4 local_14; | |
undefined4 local_10; | |
int *local_c; | |
local_18 = 0; | |
local_14 = 0; | |
local_10 = 0; | |
local_20[0] = 5; | |
local_c = DAT_8f69d118; | |
uVar1 = FUN_8f621d64(param_1,param_2,local_20); | |
if (local_c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar1,(int)((ulonglong)uVar1 >> 0x20),local_c); | |
} | |
void FUN_8f622180(int *param_1,int param_2,undefined param_3) | |
{ | |
undefined8 uVar1; | |
uint local_20; | |
undefined local_1c; | |
undefined4 local_18; | |
undefined4 local_14; | |
undefined4 local_10; | |
int *local_c; | |
local_18 = 0; | |
local_14 = 0; | |
local_10 = 0; | |
local_20 = 9; | |
local_c = DAT_8f69d118; | |
local_1c = param_3; | |
uVar1 = FUN_8f621d64(param_1,param_2,&local_20); | |
if (local_c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar1,(int)((ulonglong)uVar1 >> 0x20),local_c); | |
} | |
void FUN_8f6221d8(int *param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
int *piVar2; | |
int iVar3; | |
int *in_lr; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
iVar3 = *param_1; | |
piVar2 = DAT_8f69d118; | |
if ((*(uint *)(iVar3 + 0xc714) & 0x400) == 0) { | |
piVar2 = (int *)FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_hw_8f6617f4,0x14b); | |
iVar3 = *param_1; | |
} | |
*(undefined4 *)(iVar3 + 0xc710) = param_2; | |
*(uint *)(iVar3 + 0xc714) = *(uint *)(iVar3 + 0xc714) & 0xffffff00 | 2; | |
do { | |
uVar4 = CONCAT44(0xc714,piVar2); | |
} while ((*(uint *)(iVar3 + 0xc714) & 0x400) == 0); | |
if ((*(uint *)(iVar3 + 0xc714) & 0xf000) != 0) { | |
dprintf((byte *)s__device_command_failed__8f66183c,(int *)0xc714,iVar3,*(uint *)(iVar3 + 0xc714) | |
); | |
uVar4 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_hw_8f6617f4,0x156); | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),piVar1); | |
} | |
void FUN_8f6222cc(int *param_1,int param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
uint uVar3; | |
piVar1 = DAT_8f69d118; | |
iVar2 = *param_1; | |
uVar3 = *(uint *)(iVar2 + 0xc700) & 0xfffffc07 | param_2 << 3; | |
*(uint *)(iVar2 + 0xc700) = uVar3; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar2,uVar3,piVar1); | |
} | |
void FUN_8f622318(int *param_1) | |
{ | |
int *piVar1; | |
uint uVar2; | |
int iVar3; | |
piVar1 = DAT_8f69d118; | |
iVar3 = *param_1; | |
uVar2 = *(uint *)(iVar3 + 0xc704) | 0x40000000; | |
*(uint *)(iVar3 + 0xc704) = uVar2; | |
do { | |
} while ((*(uint *)(iVar3 + 0xc704) & 0x40000000) != 0); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,0xc704,piVar1); | |
} | |
void FUN_8f622370(int *param_1,int param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
uint uVar3; | |
piVar1 = DAT_8f69d118; | |
iVar2 = *param_1; | |
uVar3 = *(uint *)(iVar2 + 0xc704) & 0x7fffffff | param_2 << 0x1f; | |
*(uint *)(iVar2 + 0xc704) = uVar3; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar2,uVar3,piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6223fc) | |
void FUN_8f6223bc(int *param_1) | |
{ | |
return; | |
} | |
void FUN_8f622400(int *param_1) | |
{ | |
int *piVar1; | |
uint uVar2; | |
int iVar3; | |
piVar1 = DAT_8f69d118; | |
iVar3 = *param_1; | |
uVar2 = *(uint *)(iVar3 + 0xc704) & 0xffffffe1 | (uint)*(ushort *)(param_1 + 0x47c) << 1; | |
*(uint *)(iVar3 + 0xc704) = uVar2; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,iVar3,piVar1); | |
} | |
void FUN_8f622454(int *param_1,int param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
uint uVar3; | |
piVar1 = DAT_8f69d118; | |
iVar2 = *param_1; | |
uVar3 = *(uint *)(iVar2 + 0xc704) & 0xfffffbff | param_2 << 10; | |
*(uint *)(iVar2 + 0xc704) = uVar3; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar2,uVar3,piVar1); | |
} | |
void FUN_8f6224a0(int *param_1,int param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
uint uVar3; | |
piVar1 = DAT_8f69d118; | |
iVar2 = *param_1; | |
uVar3 = *(uint *)(iVar2 + 0xc704) & 0xffffefff | param_2 << 0xc; | |
*(uint *)(iVar2 + 0xc704) = uVar3; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar2,uVar3,piVar1); | |
} | |
void FUN_8f6224ec(int *param_1) | |
{ | |
int *piVar1; | |
uint uVar2; | |
int iVar3; | |
piVar1 = DAT_8f69d118; | |
iVar3 = *param_1; | |
*(uint *)(iVar3 + 0xc704) = *(uint *)(iVar3 + 0xc704) | 0x200; | |
uVar2 = *(uint *)(iVar3 + 0xc704) | 0x800; | |
*(uint *)(iVar3 + 0xc704) = uVar2; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,iVar3,piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f622580) | |
void FUN_8f622540(int *param_1) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6225c4) | |
void FUN_8f622584(int *param_1) | |
{ | |
return; | |
} | |
void FUN_8f6225c8(int *param_1) | |
{ | |
ushort uVar1; | |
int *piVar2; | |
int iVar3; | |
piVar2 = DAT_8f69d118; | |
iVar3 = *param_1; | |
uVar1 = *(ushort *)(param_1 + 0x473); | |
*(int *)(iVar3 + 0xc400) = param_1[0x472]; | |
*(undefined4 *)(iVar3 + 0xc404) = 0; | |
*(uint *)(iVar3 + 0xc408) = (uint)uVar1; | |
*(undefined4 *)(iVar3 + 0xc40c) = 0; | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0xc40c,0,piVar2); | |
} | |
void FUN_8f622634(int **param_1,uint *param_2) | |
{ | |
uint *puVar1; | |
int *piVar2; | |
int iVar3; | |
int *piVar4; | |
int *extraout_r1; | |
short sVar5; | |
uint uVar6; | |
ushort uVar7; | |
uint uVar8; | |
int *piVar9; | |
int *in_lr; | |
bool bVar10; | |
piVar2 = DAT_8f69d118; | |
piVar4 = *param_1; | |
uVar8 = piVar4[0x3103] & 0xffff; | |
if (uVar8 != 0) { | |
if (uVar8 < 4) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_hw_8f6617f4,0x1e8); | |
} | |
piVar9 = param_1[0x472]; | |
FUN_8f625b4c((uint)(piVar9 + *(ushort *)(param_1 + 0x474)),4); | |
uVar7 = *(ushort *)(param_1 + 0x474); | |
piVar4 = (int *)(uint)*(ushort *)((int)param_1 + 0x11ce); | |
uVar8 = piVar9[(int)(int *)(uint)uVar7]; | |
if (piVar4 == (int *)(uint)uVar7) { | |
sVar5 = 0; | |
} | |
else { | |
sVar5 = uVar7 + 1; | |
} | |
*param_2 = uVar8; | |
*(short *)(param_1 + 0x474) = sVar5; | |
uVar6 = (uVar8 << 0x14) >> 0x1c; | |
if (uVar6 == 0xb) { | |
dprintf((byte *)s__Event_buffer_is_full__Need_to_i_8f661868,piVar4,0xb,uVar8); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_dwc_hw_8f6617f4,0x1fb); | |
uVar8 = *param_2; | |
uVar6 = (uVar8 << 0x14) >> 0x1c; | |
piVar4 = extraout_r1; | |
} | |
if (uVar6 == 0xc) { | |
uVar8 = uVar8 & 1; | |
} | |
else { | |
uVar8 = 0; | |
} | |
if (uVar8 == 0) { | |
uVar8 = 4; | |
} | |
else { | |
iVar3 = FUN_8f625b4c((uint)(piVar9 + *(ushort *)(param_1 + 0x474)),4); | |
uVar8 = (uint)*(ushort *)(param_1 + 0x474); | |
bVar10 = *(ushort *)(param_1 + 0x473) != uVar8; | |
puVar1 = (uint *)(piVar9 + uVar8); | |
if (bVar10) { | |
uVar8 = uVar8 + 1 & 0xffff; | |
} | |
else { | |
iVar3 = 0; | |
} | |
param_2[1] = *puVar1; | |
if (bVar10) { | |
*(short *)(param_1 + 0x474) = (short)uVar8; | |
iVar3 = uVar8 << 2; | |
} | |
else { | |
*(short *)(param_1 + 0x474) = (short)iVar3; | |
} | |
FUN_8f625b4c((int)piVar9 + iVar3,4); | |
uVar7 = *(ushort *)(param_1 + 0x474); | |
uVar6 = (uint)uVar7; | |
piVar4 = (int *)piVar9[uVar6]; | |
if (*(ushort *)(param_1 + 0x473) != uVar6) { | |
uVar7 = uVar7 + 1; | |
} | |
uVar8 = 0xc; | |
if (*(ushort *)(param_1 + 0x473) == uVar6) { | |
uVar7 = 0; | |
} | |
param_2[1] = (uint)piVar4; | |
*(ushort *)(param_1 + 0x474) = uVar7; | |
} | |
} | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar8,piVar4,piVar2); | |
} | |
void FUN_8f6227e8(int *param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
piVar1 = DAT_8f69d118; | |
iVar2 = *param_1; | |
*(undefined4 *)(iVar2 + 0xc40c) = param_2; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar2,param_2,piVar1); | |
} | |
void FUN_8f622828(int *param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
piVar1 = DAT_8f69d118; | |
iVar2 = *param_1; | |
*(undefined4 *)(iVar2 + 0xc708) = param_2; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar2,param_2,piVar1); | |
} | |
void FUN_8f622868(int *param_1) | |
{ | |
int *piVar1; | |
int iVar2; | |
uint uVar3; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
*(uint *)(*param_1 + 0xc200) = *(uint *)(*param_1 + 0xc200) | 0x80000000; | |
iVar2 = FUN_8f61ac70(); | |
if (iVar2 == 0) { | |
*(uint *)(*param_1 + 0xc2c0) = *(uint *)(*param_1 + 0xc2c0) | 0x80000000; | |
} | |
FUN_8f6104fc(100); | |
*(uint *)(*param_1 + 0xc200) = *(uint *)(*param_1 + 0xc200) & 0x7fffffff; | |
uVar4 = FUN_8f61ac70(); | |
uVar3 = (uint)((ulonglong)uVar4 >> 0x20); | |
if ((int)uVar4 == 0) { | |
uVar3 = *(uint *)(*param_1 + 0xc2c0) & 0x7fffffff; | |
*(uint *)(*param_1 + 0xc2c0) = uVar3; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,uVar3,piVar1); | |
} | |
FUN_8f6104fc(100); | |
return; | |
} | |
void FUN_8f622910(uint *param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
ulonglong uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f621ea0(param_1,param_2); | |
if (((int)uVar2 != 0) && (uVar2 = FUN_8f611aac(), (uint)uVar2 < 0x20000)) { | |
uVar2 = uVar2 & 0xffffffff | (ulonglong)*param_1 << 0x20; | |
*(undefined4 *)(*param_1 + 0xc2c0) = 0x30c0003; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)(uVar2 >> 0x20),piVar1); | |
} | |
return; | |
} | |
void FUN_8f622970(int *param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f621ea0(param_1,param_2); | |
if (((int)uVar2 != 0) && (uVar2 = FUN_8f611aac(), (uint)uVar2 < 0x20000)) { | |
uVar2 = CONCAT44(0xe,(uint)uVar2); | |
*(undefined4 *)(*param_1 + 0xc100) = 0xe; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f622a08) | |
void FUN_8f6229cc(int *param_1) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f622a4c) | |
void FUN_8f622a0c(int *param_1) | |
{ | |
return; | |
} | |
void FUN_8f622a50(int *param_1) | |
{ | |
int *piVar1; | |
uint uVar2; | |
int iVar3; | |
piVar1 = DAT_8f69d118; | |
iVar3 = *param_1; | |
uVar2 = *(uint *)(iVar3 + 0xc720) & 3; | |
*(uint *)(iVar3 + 0xc720) = uVar2; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,iVar3,piVar1); | |
} | |
void FUN_8f622ae4(int *param_1,int param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
uint uVar3; | |
piVar1 = DAT_8f69d118; | |
iVar2 = *param_1; | |
uVar3 = *(uint *)(iVar2 + 0xc110) & 0xfffff7ff | param_2 << 0xb; | |
*(uint *)(iVar2 + 0xc110) = uVar3; | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f6104fc(100); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar2,uVar3,piVar1); | |
} | |
void FUN_8f622b38(int *param_1) | |
{ | |
int *piVar1; | |
uint uVar2; | |
int iVar3; | |
piVar1 = DAT_8f69d118; | |
iVar3 = *param_1; | |
*(uint *)(iVar3 + 0xc110) = *(uint *)(iVar3 + 0xc110) & 0xfffffeff; | |
*(uint *)(iVar3 + 0xc110) = *(uint *)(iVar3 + 0xc110) & 0xfffff7ff; | |
*(uint *)(iVar3 + 0xc110) = *(uint *)(iVar3 + 0xc110) & 0xffffcfff | 0x2000; | |
*(uint *)(iVar3 + 0xc110) = *(uint *)(iVar3 + 0xc110) & 0xffff3fff; | |
*(uint *)(iVar3 + 0xc110) = *(uint *)(iVar3 + 0xc110) | 0x10000; | |
*(uint *)(iVar3 + 0xc110) = *(uint *)(iVar3 + 0xc110) & 0x7ffff | 0x100000; | |
uVar2 = *(uint *)(iVar3 + 0xc110) & 0xfffffbff; | |
*(uint *)(iVar3 + 0xc110) = uVar2; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,&DAT_8f69d118,piVar1); | |
} | |
void FUN_8f622c24(uint param_1,int *param_2,int param_3,undefined4 param_4) | |
{ | |
int *piVar1; | |
undefined4 *puVar2; | |
int *piVar3; | |
int *extraout_r1; | |
int *in_lr; | |
bool bVar4; | |
bool bVar5; | |
piVar1 = DAT_8f69d118; | |
if (param_3 - 2U < 0xfe) { | |
bVar5 = 0xfe < param_1; | |
bVar4 = param_1 == 0xff; | |
if (param_1 < 0x100) { | |
bVar5 = (int *)0xfe < param_2; | |
bVar4 = param_2 == (int *)0xff; | |
} | |
piVar3 = param_2; | |
if (!bVar5 || bVar4) goto LAB_8f622c68; | |
} | |
dprintf((byte *)s_Invalid_parameters_for_descripto_8f65b6c0,param_2,DAT_8f69d118,param_4); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_udc_c_8f661898,0x569); | |
piVar3 = extraout_r1; | |
LAB_8f622c68: | |
puVar2 = (undefined4 *)FUN_8f63666c(param_3 + 0xc,piVar3); | |
if (puVar2 == (undefined4 *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_udc_c_8f661898,0x56d); | |
} | |
piVar3 = DAT_8f69d118; | |
*(ushort *)(puVar2 + 1) = (ushort)param_2 | (ushort)(param_1 << 8); | |
*(short *)((int)puVar2 + 6) = (short)param_3; | |
*(char *)(puVar2 + 2) = (char)param_4; | |
*(char *)((int)puVar2 + 9) = (char)param_3; | |
*(char *)((int)puVar2 + 10) = (char)param_1; | |
*puVar2 = 0; | |
if (piVar1 == piVar3) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(puVar2,piVar1,piVar3); | |
} | |
void FUN_8f622d1c(int param_1,byte *param_2) | |
{ | |
byte bVar1; | |
int *piVar2; | |
int iVar3; | |
undefined4 *puVar4; | |
uint uVar5; | |
byte *pbVar6; | |
byte *pbVar7; | |
byte *pbVar8; | |
int *piVar9; | |
byte *in_r12; | |
bool bVar10; | |
undefined8 uVar11; | |
piVar2 = DAT_8f69d118; | |
piVar9 = *(int **)(param_1 + 0x18); | |
pbVar6 = param_2; | |
if ((piVar9 < (int *)0x100) && (param_2 != (byte *)0x0)) { | |
iVar3 = FUN_8f636de0(param_2); | |
uVar11 = FUN_8f622c24(3,piVar9,(iVar3 + 1) * 2,3); | |
pbVar6 = (byte *)((ulonglong)uVar11 >> 0x20); | |
puVar4 = (undefined4 *)uVar11; | |
if (puVar4 != (undefined4 *)0x0) { | |
bVar10 = iVar3 != 0; | |
if (bVar10) { | |
in_r12 = param_2 + iVar3; | |
} | |
if (bVar10) { | |
pbVar6 = (byte *)0x0; | |
} | |
*(int *)(param_1 + 0x18) = *(int *)(param_1 + 0x18) + 1; | |
pbVar7 = (byte *)((int)puVar4 + 0xb); | |
if (bVar10) { | |
do { | |
pbVar8 = param_2 + 1; | |
bVar1 = *param_2; | |
pbVar7[1] = (byte)pbVar6; | |
*pbVar7 = bVar1; | |
pbVar7 = pbVar7 + 2; | |
param_2 = pbVar8; | |
} while (pbVar8 != in_r12); | |
} | |
uVar5 = (uint)*(byte *)(puVar4 + 1); | |
*puVar4 = *(undefined4 *)(param_1 + 0xc); | |
*(undefined4 **)(param_1 + 0xc) = puVar4; | |
goto LAB_8f622dcc; | |
} | |
} | |
uVar5 = 0; | |
LAB_8f622dcc: | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar5,pbVar6,piVar2); | |
} | |
void FUN_8f622de8(int param_1,int param_2,uint param_3) | |
{ | |
byte bVar1; | |
char cVar2; | |
int *piVar3; | |
int *piVar4; | |
undefined4 *puVar5; | |
undefined4 uVar6; | |
int iVar7; | |
undefined *puVar8; | |
byte bVar9; | |
undefined uVar10; | |
int iVar11; | |
int iVar12; | |
undefined uVar13; | |
uint uVar14; | |
int *in_lr; | |
bool bVar15; | |
piVar3 = DAT_8f69d118; | |
if (param_1 == 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_udc_c_8f661898,0x440); | |
} | |
if (param_2 == 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_udc_c_8f661898,0x441); | |
} | |
iVar11 = (uint)*(byte *)(param_2 + 0xb) * 7 + 0x12; | |
puVar5 = (undefined4 *)FUN_8f622c24(param_3,(int *)0x0,iVar11,1); | |
*(char *)((int)puVar5 + 0xb) = (char)iVar11; | |
*(undefined *)(puVar5 + 4) = 0xc0; | |
*(undefined *)((int)puVar5 + 0x13) = 4; | |
*(char *)((int)puVar5 + 10) = (char)param_3; | |
*(undefined *)((int)puVar5 + 9) = 9; | |
*(char *)(puVar5 + 3) = (char)((uint)iVar11 >> 8); | |
*(undefined *)((int)puVar5 + 0x12) = 9; | |
*(undefined *)((int)puVar5 + 0xd) = 1; | |
*(undefined *)((int)puVar5 + 0xe) = 1; | |
*(undefined *)((int)puVar5 + 0xf) = 0; | |
*(undefined *)((int)puVar5 + 0x11) = 0; | |
*(undefined *)(puVar5 + 5) = 0; | |
*(undefined *)((int)puVar5 + 0x15) = 0; | |
*(undefined *)((int)puVar5 + 0x16) = *(undefined *)(param_2 + 0xb); | |
*(undefined *)((int)puVar5 + 0x17) = *(undefined *)(param_2 + 8); | |
*(undefined *)(puVar5 + 6) = *(undefined *)(param_2 + 9); | |
*(undefined *)((int)puVar5 + 0x19) = *(undefined *)(param_2 + 10); | |
uVar6 = FUN_8f622d1c(param_1,*(byte **)(param_2 + 0xc)); | |
*(char *)((int)puVar5 + 0x1a) = (char)uVar6; | |
iVar11 = DAT_8f68a20c; | |
if (*(char *)(param_2 + 0xb) != '\0') { | |
uVar14 = 0; | |
uVar6 = 5; | |
puVar8 = (undefined *)((int)puVar5 + 0x1b); | |
do { | |
iVar7 = *(int *)(*(int *)(param_2 + 0x14) + uVar14 * 4); | |
if ((param_3 == 7) && (cVar2 = *(char *)(iVar11 + 0x24), cVar2 != '\x03')) { | |
iVar12 = iVar11; | |
if (cVar2 != '\x01') { | |
iVar12 = 0; | |
} | |
uVar10 = (undefined)iVar12; | |
if (cVar2 != '\x01') { | |
uVar13 = 0x40; | |
} | |
else { | |
uVar10 = 2; | |
uVar13 = 0; | |
} | |
} | |
else { | |
uVar13 = (undefined)*(undefined2 *)(iVar7 + 8); | |
uVar10 = (undefined)((ushort)*(undefined2 *)(iVar7 + 8) >> 8); | |
} | |
*puVar8 = 7; | |
puVar8[1] = 5; | |
cVar2 = *(char *)(iVar7 + 6); | |
uVar14 = uVar14 + 1 & 0xff; | |
bVar1 = *(byte *)(iVar7 + 4); | |
puVar8[3] = 2; | |
puVar8[4] = uVar13; | |
if (cVar2 == '\0') { | |
bVar9 = 0; | |
} | |
else { | |
bVar9 = 0x80; | |
} | |
puVar8[5] = uVar10; | |
puVar8[6] = 0; | |
puVar8[2] = bVar9 | bVar1; | |
puVar8 = puVar8 + 7; | |
} while (uVar14 < *(byte *)(param_2 + 0xb)); | |
} | |
piVar4 = DAT_8f69d118; | |
bVar15 = piVar3 == DAT_8f69d118; | |
*puVar5 = *(undefined4 *)(param_1 + 0xc); | |
*(undefined4 **)(param_1 + 0xc) = puVar5; | |
if (bVar15) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar6,piVar3,piVar4); | |
} | |
void FUN_8f623018(int param_1,byte *param_2) | |
{ | |
byte bVar1; | |
ushort uVar2; | |
ushort uVar3; | |
undefined2 uVar4; | |
ushort uVar5; | |
byte *pbVar6; | |
int iVar7; | |
undefined4 uVar8; | |
char *pcVar9; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
undefined4 extraout_r1_03; | |
undefined4 extraout_r1_04; | |
undefined4 extraout_r1_05; | |
undefined4 extraout_r1_06; | |
undefined4 extraout_r1_07; | |
undefined4 extraout_r1_08; | |
undefined4 extraout_r1_09; | |
undefined4 extraout_r1_10; | |
undefined4 extraout_r1_11; | |
undefined4 extraout_r1_12; | |
undefined4 extraout_r1_13; | |
uint uVar10; | |
undefined uVar11; | |
uint uVar12; | |
int *piVar13; | |
int *piVar14; | |
uint uVar15; | |
uint uVar16; | |
uint uVar17; | |
int *in_lr; | |
undefined8 uVar18; | |
ushort local_38; | |
undefined2 local_36; | |
undefined4 local_34; | |
undefined2 local_30; | |
int *local_2c; | |
local_2c = DAT_8f69d118; | |
if (param_1 == 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_udc_c_8f661898,0x1ac); | |
} | |
piVar14 = *(int **)(param_1 + 4); | |
if (piVar14 == (int *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_udc_c_8f661898,0x1af); | |
} | |
uVar16 = (uint)*param_2; | |
uVar8 = 0x103; | |
uVar15 = (uint)param_2[1]; | |
uVar2 = *(ushort *)(param_2 + 4); | |
uVar10 = (uint)uVar2; | |
uVar5 = CONCAT11(*param_2,param_2[1]); | |
uVar3 = *(ushort *)(param_2 + 2); | |
uVar12 = (uint)uVar3; | |
uVar17 = (uint)*(ushort *)(param_2 + 6); | |
if (uVar5 == 0x103) { | |
if ((uVar12 == 0) && (*(char *)(param_1 + 0x24) == '\x03')) { | |
LAB_8f623284: | |
uVar10 = 2; | |
goto LAB_8f623134; | |
} | |
} | |
else if (uVar5 < 0x104) { | |
if (uVar5 == 5) { | |
FUN_8f6222cc(piVar14,uVar12); | |
uVar10 = 2; | |
*(undefined *)(param_1 + 0x2c) = 1; | |
uVar8 = extraout_r1_02; | |
goto LAB_8f623134; | |
} | |
if (uVar5 < 6) { | |
if (uVar5 == 1) { | |
uVar10 = (uint)*(byte *)(param_1 + 0x2c); | |
if ((uVar10 == 2) && (*(char *)(param_1 + 0x24) == '\x03')) { | |
if (uVar12 == 0x30) { | |
FUN_8f622454(piVar14,0); | |
uVar8 = extraout_r1_11; | |
goto LAB_8f623134; | |
} | |
if (uVar12 == 0x31) { | |
FUN_8f6224a0(piVar14,0); | |
uVar8 = extraout_r1_10; | |
goto LAB_8f623134; | |
} | |
} | |
} | |
else if (uVar5 == 3) { | |
if (uVar12 == 2) { | |
if (uVar10 == 0x300) { | |
LAB_8f623730: | |
uVar8 = 0x11f0; | |
*(ushort *)(piVar14 + 0x47c) = uVar2 >> 8; | |
uVar10 = 2; | |
piVar14[0x47b] = 1; | |
} | |
else { | |
if (uVar10 < 0x301) { | |
if ((uVar10 == 0x100) || (uVar10 == 0x200)) goto LAB_8f623730; | |
} | |
else if ((uVar10 == 0x400) || (uVar10 == 0x500)) goto LAB_8f623730; | |
uVar10 = 2; | |
*(ushort *)(piVar14 + 0x47c) = uVar2; | |
} | |
goto LAB_8f623134; | |
} | |
if ((*(char *)(param_1 + 0x2c) == '\x02') && (*(char *)(param_1 + 0x24) == '\x03')) { | |
if (uVar12 == 0x30) { | |
FUN_8f622454(piVar14,1); | |
uVar10 = 2; | |
uVar8 = extraout_r1_13; | |
goto LAB_8f623134; | |
} | |
if (uVar12 == 0x31) { | |
FUN_8f6224a0(piVar14,1); | |
uVar10 = 2; | |
uVar8 = extraout_r1_04; | |
goto LAB_8f623134; | |
} | |
} | |
} | |
} | |
else if (uVar5 == 0x30) { | |
if (uVar17 != 0) { | |
FUN_8f621cf4(*(int **)(param_1 + 4),0,0,*(uint **)(param_1 + 0x1c),0x200,FUN_8f623810, | |
param_1); | |
uVar10 = 3; | |
uVar8 = extraout_r1_03; | |
goto LAB_8f623134; | |
} | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_udc_c_8f661898,0x339); | |
} | |
else { | |
if (uVar5 == 0x31) goto LAB_8f623284; | |
if (uVar5 == 9) { | |
if (uVar12 == 0) { | |
*(char *)(param_1 + 0x25) = (char)uVar3; | |
uVar10 = 2; | |
*(undefined *)(param_1 + 0x2c) = 1; | |
} | |
else { | |
for (piVar13 = *(int **)(param_1 + 0x10); piVar13 != (int *)0x0; piVar13 = (int *)*piVar13 | |
) { | |
uVar12 = (uint)*(byte *)(piVar13 + 1); | |
if (uVar12 != 0) { | |
uVar18 = FUN_8f63666c(0x238,uVar8); | |
pbVar6 = (byte *)uVar18; | |
if (pbVar6 == (byte *)0x0) { | |
dprintf((byte *)s_udc_handle_setup__DEVICE_WRITE___8f6618d0, | |
(int *)((ulonglong)uVar18 >> 0x20),uVar10,uVar12); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_udc_c_8f661898,0x269); | |
} | |
*pbVar6 = *(byte *)(piVar13 + 1); | |
uVar4 = *(undefined2 *)(piVar13 + 2); | |
uVar10 = piVar13[3]; | |
pbVar6[1] = *(byte *)((int)piVar13 + 6); | |
bVar1 = *(byte *)((int)piVar13 + 5); | |
pbVar6[6] = 0; | |
*(int *)(pbVar6 + 0x214) = piVar13[5]; | |
uVar8 = piVar13[4]; | |
pbVar6[2] = bVar1; | |
*(undefined2 *)(pbVar6 + 4) = uVar4; | |
*(undefined4 *)(pbVar6 + 0x210) = uVar8; | |
*(uint *)(pbVar6 + 8) = uVar10; | |
FUN_8f621ac0((int)piVar14,pbVar6); | |
FUN_8f636758((int)pbVar6); | |
uVar8 = extraout_r1_09; | |
} | |
} | |
FUN_8f621c5c(piVar14); | |
if (*(char *)(param_1 + 0x24) == '\x03') { | |
FUN_8f6224ec(piVar14); | |
} | |
(***(code ***)(param_1 + 8))(*(undefined4 *)(DAT_8f68a20c + 8),1); | |
uVar10 = 2; | |
*(undefined *)(param_1 + 0x2c) = 2; | |
*(undefined *)(param_1 + 0x25) = 1; | |
uVar8 = extraout_r1_08; | |
} | |
goto LAB_8f623134; | |
} | |
} | |
} | |
else if (uVar5 == 0x8006) { | |
if (uVar3 >> 8 == 6) { | |
if (*(char *)(param_1 + 0x24) != '\x03') { | |
local_38 = CONCAT11((char)(uVar3 >> 8),10); | |
if (9 < uVar17) { | |
uVar17 = 10; | |
} | |
local_36 = 0x200; | |
local_30 = 1; | |
if (*(char *)(DAT_8f68a20c + 0x24) == '\x02') { | |
uVar11 = 0x40; | |
} | |
else { | |
uVar11 = 0; | |
} | |
local_34 = CONCAT13(uVar11,*(undefined3 *)(*(int *)(DAT_8f68a20c + 8) + 8)); | |
FUN_8f63685c(*(undefined4 **)(param_1 + 0x20),(undefined4 *)&local_38,uVar17); | |
FUN_8f625b24(*(uint *)(param_1 + 0x20),uVar17); | |
FUN_8f621cf4(*(int **)(param_1 + 4),0,1,*(uint **)(param_1 + 0x20),uVar17,0,0); | |
uVar10 = 3; | |
uVar8 = extraout_r1_12; | |
goto LAB_8f623134; | |
} | |
} | |
else if (((uVar3 >> 8 == 7) && (*(char *)(param_1 + 0x24) != '\x03')) && (DAT_8f68a214 == 0)) { | |
FUN_8f622de8(param_1,*(int *)(param_1 + 8),7); | |
DAT_8f68a214 = 1; | |
} | |
for (piVar14 = *(int **)(param_1 + 0xc); piVar14 != (int *)0x0; piVar14 = (int *)*piVar14) { | |
if (*(ushort *)(piVar14 + 1) == uVar12) { | |
if (*(char *)(param_1 + 0x24) == '\x03') { | |
bVar1 = *(byte *)(piVar14 + 2) & 2; | |
} | |
else { | |
bVar1 = *(byte *)(piVar14 + 2) & 1; | |
} | |
if (bVar1 != 0) { | |
uVar10 = (uint)*(ushort *)((int)piVar14 + 6); | |
if (uVar17 <= *(ushort *)((int)piVar14 + 6)) { | |
uVar10 = uVar17; | |
} | |
FUN_8f63685c(*(undefined4 **)(param_1 + 0x20),(undefined4 *)((int)piVar14 + 9),uVar10); | |
FUN_8f625b24(*(uint *)(param_1 + 0x20),uVar10); | |
FUN_8f621cf4(*(int **)(param_1 + 4),0,1,*(uint **)(param_1 + 0x20),uVar10,0,0); | |
uVar10 = 3; | |
uVar8 = extraout_r1_05; | |
goto LAB_8f623134; | |
} | |
} | |
} | |
} | |
else if (uVar5 < 0x8007) { | |
if (uVar5 == 0x203) { | |
if (uVar12 == 0) { | |
FUN_8f6220d8(piVar14,(uVar10 << 0x18) >> 0x1f | (uVar10 & 0xf) << 1); | |
uVar10 = 2; | |
DAT_8f68a218 = 1; | |
uVar8 = extraout_r1_07; | |
goto LAB_8f623134; | |
} | |
} | |
else { | |
if (uVar5 == 0x8000) goto LAB_8f623340; | |
if (uVar5 == 0x201) { | |
FUN_8f62212c(piVar14,(uVar10 << 0x18) >> 0x1f | (uVar10 & 0xf) << 1); | |
uVar10 = 2; | |
DAT_8f68a218 = 0; | |
uVar8 = extraout_r1_00; | |
goto LAB_8f623134; | |
} | |
} | |
} | |
else if ((uVar5 == 0x8100) || (uVar5 == 0x8200)) { | |
LAB_8f623340: | |
if (uVar17 == 2) { | |
local_38 = 0; | |
if ((uVar16 == 0x80) || ((uVar16 == 0x82 && (DAT_8f68a218 == 1)))) { | |
local_38 = 1; | |
} | |
if (((*(char *)(param_1 + 0x2c) == '\x02') && (*(char *)(param_1 + 0x24) == '\x03')) && | |
(uVar16 == 0x80)) { | |
iVar7 = FUN_8f622540(piVar14); | |
if (iVar7 != 0) { | |
local_38 = local_38 | 4; | |
} | |
iVar7 = FUN_8f622584(piVar14); | |
if (iVar7 != 0) { | |
local_38 = local_38 | 8; | |
} | |
} | |
FUN_8f63685c(*(undefined4 **)(param_1 + 0x20),(undefined4 *)&local_38,2); | |
FUN_8f625b24(*(uint *)(param_1 + 0x20),2); | |
FUN_8f621cf4(*(int **)(param_1 + 4),0,1,*(uint **)(param_1 + 0x20),2,0,0); | |
uVar10 = 3; | |
uVar8 = extraout_r1_06; | |
goto LAB_8f623134; | |
} | |
} | |
else if (uVar5 == 0x8008) { | |
if (((uVar12 == 0) && (uVar10 == 0)) && (uVar17 == 1)) { | |
FUN_8f63685c(*(undefined4 **)(param_1 + 0x20),(undefined4 *)(param_1 + 0x25),1); | |
FUN_8f625b24(*(uint *)(param_1 + 0x20),1); | |
FUN_8f621cf4(*(int **)(param_1 + 4),0,1,*(uint **)(param_1 + 0x20),1,0,0); | |
uVar10 = 3; | |
uVar8 = extraout_r1_01; | |
goto LAB_8f623134; | |
} | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_udc_c_8f661898,0x24f); | |
} | |
if (uVar15 < 0x31) { | |
pcVar9 = (&PTR_s_GET_STATUS_8f661a7c)[uVar15]; | |
} | |
else { | |
pcVar9 = s__UNKNOWN__8f6618c4; | |
} | |
dprintf((byte *)s__STALL__Unsupported_setup_req____8f66191c,(int *)pcVar9,uVar16,uVar15); | |
uVar10 = 0xffffffff; | |
uVar8 = extraout_r1; | |
LAB_8f623134: | |
if (local_2c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar10,uVar8,local_2c); | |
} | |
void FUN_8f623810(int param_1,int param_2) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
undefined4 extraout_r1; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f625b4c(*(uint *)(param_1 + 0x1c),param_2); | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f6221d8(*(int **)(param_1 + 4),0x65); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,extraout_r1,piVar1); | |
} | |
void FUN_8f6238c8(int *param_1,int *param_2,undefined4 param_3) | |
{ | |
undefined uVar1; | |
int *piVar2; | |
int *piVar3; | |
piVar2 = DAT_8f69d118; | |
if (param_1 != (int *)0x0) { | |
uVar1 = (undefined)((uint)param_3 >> 8); | |
do { | |
if (*(char *)((int)param_1 + 0x1e) == '\x02') { | |
*(char *)((int)param_1 + 0x1f) = (char)param_3; | |
*(undefined *)((int **)param_1 + 8) = uVar1; | |
} | |
if (*(char *)((int)param_1 + 0x2b) == '\x02') { | |
*(char *)((int **)param_1 + 0xb) = (char)param_3; | |
*(undefined *)((int)param_1 + 0x2d) = uVar1; | |
} | |
param_1 = (int *)*param_1; | |
} while ((int **)param_1 != (int **)0x0); | |
} | |
for (piVar3 = (int *)*param_2; piVar3 != (int *)0x0; piVar3 = (int *)*piVar3) { | |
*(short *)(piVar3 + 2) = (short)param_3; | |
} | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,param_2,piVar2); | |
} | |
void FUN_8f623950(int param_1,uint param_2) | |
{ | |
int **ppiVar1; | |
int *piVar2; | |
undefined4 uVar3; | |
int *piVar4; | |
code **in_lr; | |
undefined8 uVar5; | |
piVar4 = DAT_8f69d118; | |
switch(param_2) { | |
case 0: | |
case 5: | |
in_lr = *(code ***)(param_1 + 8); | |
*(undefined *)(param_1 + 0x25) = 0; | |
if ((in_lr != (code **)0x0) && (*in_lr != (code *)0x0)) { | |
uVar5 = (**in_lr)(in_lr,2); | |
param_2 = (uint)((ulonglong)uVar5 >> 0x20); | |
in_lr = (code **)uVar5; | |
} | |
break; | |
case 1: | |
*(undefined *)(param_1 + 0x24) = 0; | |
break; | |
case 2: | |
piVar2 = *(int **)(param_1 + 0xc); | |
uVar3 = 0x40; | |
*(undefined *)(param_1 + 0x24) = 1; | |
goto LAB_8f623a34; | |
case 3: | |
piVar2 = *(int **)(param_1 + 0xc); | |
*(undefined *)(param_1 + 0x24) = 2; | |
uVar3 = 0x200; | |
LAB_8f623a34: | |
uVar5 = FUN_8f6238c8(piVar2,(int *)(param_1 + 0x10),uVar3); | |
piVar2 = DAT_8f69d118; | |
param_2 = (uint)((ulonglong)uVar5 >> 0x20); | |
in_lr = (code **)uVar5; | |
if (DAT_8f68a210 == 0) { | |
if (piVar4 == DAT_8f69d118) { | |
ppiVar1 = (int **)(param_1 + 0xc); | |
piVar4 = *ppiVar1; | |
if (piVar4 != (int *)0x0) { | |
ppiVar1 = (int **)0x0; | |
do { | |
param_2 = piVar4[2] & 0xff00ff; | |
if (param_2 == 0x10001) { | |
*(undefined *)((int)piVar4 + 0xb) = 0; | |
} | |
piVar4 = (int *)*piVar4; | |
} while (piVar4 != (int *)0x0); | |
} | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(ppiVar1,param_2,piVar2); | |
} | |
goto LAB_8f623aac; | |
} | |
break; | |
case 4: | |
DAT_8f68a210 = 1; | |
*(undefined *)(param_1 + 0x24) = 3; | |
FUN_8f6238c8(*(int **)(param_1 + 0xc),(int *)(param_1 + 0x10),0x400); | |
return; | |
default: | |
uVar5 = FUN_8f6353a0((int *)in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_udc_c_8f661898,0x3f1); | |
param_2 = (uint)((ulonglong)uVar5 >> 0x20); | |
in_lr = (code **)uVar5; | |
} | |
uVar5 = CONCAT44(param_2,in_lr); | |
if (piVar4 == DAT_8f69d118) { | |
return; | |
} | |
LAB_8f623aac: | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),piVar4); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f623ae4) | |
void FUN_8f623ab0(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
void FUN_8f623ae8(undefined4 *param_1,undefined4 param_2) | |
{ | |
undefined uVar1; | |
int *piVar2; | |
int *piVar3; | |
uint *puVar4; | |
int **ppiVar5; | |
int **ppiVar6; | |
undefined4 uVar7; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
code *pcVar8; | |
int **ppiVar9; | |
int iVar10; | |
int *in_lr; | |
undefined8 uVar11; | |
int local_4c; | |
uint local_48; | |
int local_44; | |
undefined2 local_40; | |
int **local_3c; | |
code *local_38; | |
int **local_34; | |
code *local_30; | |
int local_2c; | |
local_2c = DAT_8f69d118; | |
DAT_8f68a20c = (int **)FUN_8f63666c(0x30,param_2); | |
if (DAT_8f68a20c == (int **)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_udc_c_8f661898,0x12e); | |
} | |
FUN_8f636968((uint *)DAT_8f68a20c,0,0x30); | |
ppiVar6 = DAT_8f68a20c; | |
piVar2 = (int *)FUN_8f6366a8((int *)0x40,0x200); | |
ppiVar9 = DAT_8f68a20c; | |
ppiVar6[7] = piVar2; | |
if (ppiVar9[7] == (int *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_udc_c_8f661898,0x135); | |
ppiVar9 = DAT_8f68a20c; | |
} | |
piVar2 = (int *)FUN_8f6366a8((int *)0x40,0x200); | |
ppiVar6 = DAT_8f68a20c; | |
ppiVar9[8] = piVar2; | |
if (ppiVar6[8] == (int *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_udc_c_8f661898,0x138); | |
ppiVar6 = DAT_8f68a20c; | |
} | |
iVar10 = param_1[5]; | |
ppiVar6[6] = (int *)0x1; | |
uVar7 = 0x10001; | |
pcVar8 = *(code **)(iVar10 + 0xc); | |
ppiVar6[5] = (int *)0x10001; | |
ppiVar6[4] = (int *)0x0; | |
if (pcVar8 != (code *)0x0) { | |
(*pcVar8)(); | |
uVar7 = extraout_r1; | |
} | |
local_4c = 0x70f8800; | |
piVar2 = (int *)FUN_8f624b1c(&local_4c,uVar7); | |
if (piVar2 == (int *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_udc_c_8f661898,0xc1); | |
} | |
*DAT_8f68a20c = piVar2; | |
local_48 = 0x7000000; | |
piVar3 = (int *)FUN_8f635d28(0x40,0x1000); | |
local_44 = FUN_8f6366a8(piVar3,0x1000); | |
if (local_44 == 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_udc_c_8f661898,0xcc); | |
} | |
local_38 = FUN_8f623950; | |
local_30 = FUN_8f623018; | |
local_3c = DAT_8f68a20c; | |
local_34 = DAT_8f68a20c; | |
local_40 = 0x1000; | |
puVar4 = (uint *)FUN_8f620830(&local_48,DAT_8f68a20c); | |
if (puVar4 == (uint *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_udc_c_8f661898,0xd9); | |
} | |
DAT_8f68a20c[1] = (int *)puVar4; | |
FUN_8f624778(piVar2,0); | |
FUN_8f6247c4(piVar2); | |
if (*(code **)param_1[5] != (code *)0x0) { | |
(**(code **)param_1[5])(); | |
} | |
uVar11 = FUN_8f622ae4((int *)puVar4,1); | |
uVar11 = FUN_8f621ea0((int)uVar11,(int)((ulonglong)uVar11 >> 0x20)); | |
if (((int)uVar11 == 0) && (iVar10 = FUN_8f623ab0(0,(int)((ulonglong)uVar11 >> 0x20)), iVar10 == 0) | |
) { | |
if (*(code **)(param_1[5] + 4) != (code *)0x0) { | |
(**(code **)(param_1[5] + 4))(); | |
} | |
iVar10 = FUN_8f611778(); | |
if (iVar10 == 0xb2) { | |
FUN_8f624bb4(piVar2); | |
} | |
} | |
else { | |
FUN_8f624804(piVar2); | |
} | |
iVar10 = FUN_8f61ac70(); | |
if (iVar10 == 0) { | |
FUN_8f624864(piVar2); | |
} | |
FUN_8f62492c(piVar2); | |
FUN_8f62497c(piVar2); | |
FUN_8f622868((int *)puVar4); | |
FUN_8f622ae4((int *)puVar4,0); | |
FUN_8f6248f8(piVar2,extraout_r1_00); | |
if (*(code **)(param_1[5] + 8) != (code *)0x0) { | |
(**(code **)(param_1[5] + 8))(); | |
} | |
iVar10 = FUN_8f61ac70(); | |
if (iVar10 != 0) { | |
FUN_8f624bf4(piVar2); | |
} | |
FUN_8f6249c0(piVar2); | |
FUN_8f624a1c(piVar2,extraout_r1_01); | |
FUN_8f622910(puVar4,extraout_r1_02); | |
FUN_8f624a50(piVar2); | |
if (*(char *)(param_1[5] + 0x10) != '\0') { | |
FUN_8f624a98(*DAT_8f68a20c); | |
} | |
FUN_8f6218f4((int *)puVar4); | |
ppiVar6 = DAT_8f68a20c; | |
ppiVar5 = (int **)FUN_8f622c24(3,(int *)0x0,4,3); | |
ppiVar9 = DAT_8f68a20c; | |
*(undefined *)((int)ppiVar5 + 0xb) = 9; | |
*(undefined *)(ppiVar5 + 3) = 4; | |
*ppiVar5 = ppiVar6[3]; | |
ppiVar6[3] = (int *)ppiVar5; | |
ppiVar5 = (int **)FUN_8f622c24(1,(int *)0x0,0x12,1); | |
*(undefined *)((int)ppiVar5 + 0xb) = 0x10; | |
*(undefined *)(ppiVar5 + 4) = 0x40; | |
*(undefined *)(ppiVar5 + 3) = 2; | |
*(undefined *)((int)ppiVar5 + 0xd) = 0; | |
*(undefined *)((int)ppiVar5 + 0xe) = 0; | |
*(undefined *)((int)ppiVar5 + 0xf) = 0; | |
FUN_8f63685c((undefined4 *)((int)ppiVar5 + 0x11),param_1,2); | |
FUN_8f63685c((undefined4 *)((int)ppiVar5 + 0x13),(undefined4 *)((int)param_1 + 2),2); | |
FUN_8f63685c((undefined4 *)((int)ppiVar5 + 0x15),param_1 + 1,2); | |
uVar1 = FUN_8f622d1c((int)ppiVar9,(byte *)param_1[2]); | |
*(undefined *)((int)ppiVar5 + 0x17) = uVar1; | |
uVar1 = FUN_8f622d1c((int)ppiVar9,(byte *)param_1[3]); | |
*(undefined *)(ppiVar5 + 6) = uVar1; | |
uVar1 = FUN_8f622d1c((int)ppiVar9,(byte *)param_1[4]); | |
*(undefined *)((int)ppiVar5 + 0x1a) = 1; | |
ppiVar6 = DAT_8f68a20c; | |
*(undefined *)((int)ppiVar5 + 0x19) = uVar1; | |
*ppiVar5 = ppiVar9[3]; | |
ppiVar9[3] = (int *)ppiVar5; | |
ppiVar5 = (int **)FUN_8f622c24(1,(int *)0x0,0x12,2); | |
*(undefined *)((int)ppiVar5 + 0xb) = 0; | |
*(undefined *)(ppiVar5 + 4) = 9; | |
*(undefined *)(ppiVar5 + 3) = 3; | |
*(undefined *)((int)ppiVar5 + 0xd) = 0; | |
*(undefined *)((int)ppiVar5 + 0xe) = 0; | |
*(undefined *)((int)ppiVar5 + 0xf) = 0; | |
FUN_8f63685c((undefined4 *)((int)ppiVar5 + 0x11),param_1,2); | |
FUN_8f63685c((undefined4 *)((int)ppiVar5 + 0x13),(undefined4 *)((int)param_1 + 2),2); | |
FUN_8f63685c((undefined4 *)((int)ppiVar5 + 0x15),param_1 + 1,2); | |
uVar1 = FUN_8f622d1c((int)ppiVar6,(byte *)param_1[2]); | |
*(undefined *)((int)ppiVar5 + 0x17) = uVar1; | |
uVar1 = FUN_8f622d1c((int)ppiVar6,(byte *)param_1[3]); | |
*(undefined *)(ppiVar5 + 6) = uVar1; | |
uVar1 = FUN_8f622d1c((int)ppiVar6,(byte *)param_1[4]); | |
*(undefined *)((int)ppiVar5 + 0x1a) = 1; | |
ppiVar9 = DAT_8f68a20c; | |
*(undefined *)((int)ppiVar5 + 0x19) = uVar1; | |
*ppiVar5 = ppiVar6[3]; | |
ppiVar6[3] = (int *)ppiVar5; | |
ppiVar6 = (int **)FUN_8f622c24(0xf,(int *)0x0,0x16,2); | |
iVar10 = DAT_8f69d118; | |
*(undefined *)((int)ppiVar6 + 0xd) = 2; | |
*(undefined *)((int)ppiVar6 + 0xf) = 0x10; | |
*(undefined *)(ppiVar6 + 4) = 2; | |
*(undefined *)((int)ppiVar6 + 0x11) = 2; | |
*(undefined *)(ppiVar6 + 3) = 0; | |
*(undefined *)((int)ppiVar6 + 0x16) = 0x10; | |
*(undefined *)((int)ppiVar6 + 0x12) = 0; | |
*(undefined *)((int)ppiVar6 + 0x17) = 3; | |
*(undefined *)((int)ppiVar6 + 0x13) = 0; | |
*(undefined *)(ppiVar6 + 5) = 0; | |
*(undefined *)(ppiVar6 + 6) = 0; | |
*(undefined *)((int)ppiVar6 + 0x1a) = 0; | |
*(undefined *)((int)ppiVar6 + 0x1b) = 1; | |
*(undefined *)(ppiVar6 + 7) = 0; | |
*(undefined *)((int)ppiVar6 + 0x1d) = 0; | |
*(undefined *)((int)ppiVar6 + 0x1e) = 0; | |
*(undefined *)((int)ppiVar6 + 9) = 5; | |
*(undefined *)((int)ppiVar6 + 0xb) = 0x16; | |
*(undefined *)((int)ppiVar6 + 0xe) = 7; | |
*(undefined *)((int)ppiVar6 + 0x15) = 10; | |
*(undefined *)((int)ppiVar6 + 10) = 0xf; | |
*(undefined *)((int)ppiVar6 + 0x19) = 0xf; | |
piVar2 = ppiVar9[3]; | |
*ppiVar6 = piVar2; | |
ppiVar9[3] = (int *)ppiVar6; | |
if (local_2c == iVar10) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,10,piVar2); | |
} | |
void FUN_8f6243ec(int param_1,uint **param_2) | |
{ | |
int iVar1; | |
int *piVar2; | |
uint **ppuVar3; | |
uint **extraout_r1; | |
uint uVar4; | |
int *piVar5; | |
int *in_lr; | |
undefined8 uVar6; | |
piVar2 = DAT_8f69d118; | |
piVar5 = *(int **)(DAT_8f68a20c + 4); | |
ppuVar3 = param_2; | |
if (piVar5 == (int *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_udc_c_8f661898,0x36e); | |
ppuVar3 = extraout_r1; | |
} | |
iVar1 = DAT_8f68a20c; | |
if ((*(char *)(DAT_8f68a20c + 0x25) == '\0') || (*(int *)(DAT_8f68a20c + 0x28) != 0)) { | |
uVar6 = CONCAT44(ppuVar3,0xffffffff); | |
} | |
else { | |
*(uint ***)(DAT_8f68a20c + 0x28) = param_2; | |
uVar4 = (uint)*(byte *)(param_1 + 6); | |
if (uVar4 != 0) { | |
uVar4 = 1; | |
} | |
uVar6 = FUN_8f621cf4(piVar5,(uint)*(byte *)(param_1 + 4),uVar4,*param_2,param_2[1],&LAB_8f622bd0 | |
,iVar1); | |
} | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar6,(int)((ulonglong)uVar6 >> 0x20),piVar2); | |
} | |
void FUN_8f6244c4(int param_1,undefined4 param_2) | |
{ | |
int iVar1; | |
int *piVar2; | |
undefined4 *puVar3; | |
int *piVar4; | |
undefined4 extraout_r1; | |
uint uVar5; | |
uint uVar6; | |
int iVar7; | |
int iVar8; | |
int *in_lr; | |
undefined8 uVar9; | |
piVar2 = DAT_8f69d118; | |
iVar1 = DAT_8f68a20c; | |
if (param_1 == 1) { | |
iVar8 = 2; | |
iVar7 = param_1; | |
} | |
else { | |
iVar8 = param_1; | |
if (param_1 == 2) { | |
iVar7 = 0; | |
} | |
else if (param_1 == 3) { | |
iVar7 = 1; | |
} | |
else { | |
if (param_1 != 4) goto LAB_8f62454c; | |
iVar7 = 0; | |
iVar8 = 3; | |
} | |
} | |
uVar5 = 1; | |
do { | |
uVar6 = uVar5; | |
if (iVar7 != 0) { | |
uVar6 = uVar5 + 0x10; | |
} | |
uVar6 = 1 << (uVar6 & 0xff); | |
if ((uVar6 & *(uint *)(DAT_8f68a20c + 0x14)) == 0) { | |
puVar3 = (undefined4 *)FUN_8f63666c(0x18,param_2); | |
if (puVar3 == (undefined4 *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_udc_c_8f661898,0x401); | |
} | |
puVar3[3] = 4; | |
puVar3[5] = 0x42; | |
*(short *)(puVar3 + 2) = (short)param_2; | |
*(char *)(puVar3 + 1) = (char)uVar5; | |
*(char *)((int)puVar3 + 5) = (char)iVar8; | |
*(char *)((int)puVar3 + 6) = (char)iVar7; | |
piVar4 = (int *)FUN_8f635d28(0x40,0x10); | |
uVar9 = FUN_8f6366a8(piVar4,puVar3[5] * 0x10 + 0x3fU & 0xffffffc0); | |
param_2 = (undefined4)((ulonglong)uVar9 >> 0x20); | |
puVar3[4] = (int)uVar9; | |
if ((int)uVar9 == 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_udc_c_8f661898,0x40a); | |
param_2 = extraout_r1; | |
} | |
uVar5 = *(uint *)(iVar1 + 0x14); | |
*puVar3 = *(undefined4 *)(iVar1 + 0x10); | |
*(undefined4 **)(iVar1 + 0x10) = puVar3; | |
*(uint *)(iVar1 + 0x14) = uVar5 | uVar6; | |
goto LAB_8f624550; | |
} | |
uVar5 = uVar5 + 1; | |
} while (uVar5 != 0x10); | |
LAB_8f62454c: | |
puVar3 = (undefined4 *)0x0; | |
LAB_8f624550: | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(puVar3,param_2,piVar2); | |
} | |
void FUN_8f624664(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
int *piVar2; | |
undefined4 *puVar3; | |
int *in_lr; | |
piVar1 = DAT_8f69d118; | |
puVar3 = (undefined4 *)FUN_8f63666c(0x10,param_2); | |
if (puVar3 == (undefined4 *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_udc_c_8f661898,0x587); | |
} | |
piVar2 = DAT_8f69d118; | |
*puVar3 = 0; | |
puVar3[1] = 0; | |
puVar3[2] = 0; | |
puVar3[3] = 0; | |
if (piVar1 == piVar2) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(puVar3,piVar1,piVar2); | |
} | |
void FUN_8f624778(int *param_1,int param_2) | |
{ | |
int *piVar1; | |
uint uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = *(uint *)(*param_1 + 8); | |
if (param_2 == 0) { | |
uVar2 = uVar2 & 0xfffffffd; | |
} | |
else { | |
uVar2 = uVar2 | 2; | |
} | |
*(uint *)(*param_1 + 8) = uVar2; | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,uVar2,piVar1); | |
} | |
return; | |
} | |
void FUN_8f6247c4(int *param_1) | |
{ | |
int iVar1; | |
iVar1 = DAT_8f69d118; | |
*(undefined4 *)(*param_1 + 0xc) = 0; | |
if (iVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar1,0,(int *)iVar1); | |
} | |
void FUN_8f624804(int *param_1) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
*(uint *)(*param_1 + 0x30) = *(uint *)(*param_1 + 0x30) | 0x80; | |
uVar2 = FUN_8f6104fc(10); | |
*(uint *)(*param_1 + 0x30) = *(uint *)(*param_1 + 0x30) & 0xffffff7f; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
void FUN_8f624864(int *param_1) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
iVar2 = *param_1; | |
*(uint *)(iVar2 + 0x30) = *(uint *)(iVar2 + 0x30) | 0x10000000; | |
*(uint *)(iVar2 + 0x30) = *(uint *)(iVar2 + 0x30) | 0x1000000; | |
*(uint *)(iVar2 + 0x30) = *(uint *)(iVar2 + 0x30) | 0x100; | |
uVar3 = FUN_8f611778(); | |
if (((int)uVar3 == 0x7e) && (uVar3 = FUN_8f611aac(), (uint)uVar3 < 0x20000)) { | |
*(uint *)(*param_1 + 0x30) = *(uint *)(*param_1 + 0x30) & 0xffc01fff | 0x210000; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,(int)((ulonglong)uVar3 >> 0x20),piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f624928) | |
void FUN_8f6248f8(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
void FUN_8f62492c(int *param_1) | |
{ | |
int *piVar1; | |
uint uVar2; | |
int iVar3; | |
piVar1 = DAT_8f69d118; | |
iVar3 = *param_1; | |
*(uint *)(iVar3 + 0x10) = *(uint *)(iVar3 + 0x10) & 0xfdffffff; | |
uVar2 = *(uint *)(iVar3 + 0x10) | 0x800; | |
*(uint *)(iVar3 + 0x10) = uVar2; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,uVar2,piVar1); | |
} | |
void FUN_8f62497c(int *param_1) | |
{ | |
int iVar1; | |
int iVar2; | |
iVar1 = DAT_8f69d118; | |
iVar2 = *param_1; | |
*(undefined4 *)(iVar2 + 0x14) = 0xd190e4; | |
if (iVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar1,iVar2,(int *)iVar1); | |
} | |
void FUN_8f6249c0(int *param_1) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f611778(); | |
if (((int)uVar2 == 0x7e) && (uVar2 = FUN_8f611aac(), (uint)uVar2 < 0x20000)) { | |
*(undefined4 *)(*param_1 + 8) = 0x78; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f624a4c) | |
void FUN_8f624a1c(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
void FUN_8f624a50(int *param_1) | |
{ | |
int *piVar1; | |
uint uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = *(uint *)(*param_1 + 0x34) & 0xfffffff8 | 5; | |
*(uint *)(*param_1 + 0x34) = uVar2; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,uVar2,piVar1); | |
} | |
void FUN_8f624a98(int *param_1) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
iVar2 = *param_1; | |
*(uint *)(iVar2 + 0xec) = *(uint *)(iVar2 + 0xec) | 0x1000; | |
*(uint *)(iVar2 + 0x10) = *(uint *)(iVar2 + 0x10) | 0x2000; | |
*(uint *)(iVar2 + 0x10) = *(uint *)(iVar2 + 0x10) | 0x100000; | |
*(uint *)(iVar2 + 0x10) = *(uint *)(iVar2 + 0x10) | 0x10000000; | |
uVar3 = FUN_8f61ac70(); | |
if ((int)uVar3 == 0) { | |
*(uint *)(*param_1 + 0x30) = *(uint *)(*param_1 + 0x30) | 0x1000000; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,(int)((ulonglong)uVar3 >> 0x20),piVar1); | |
} | |
return; | |
} | |
void FUN_8f624b1c(int *param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
int *piVar2; | |
uint uVar3; | |
int iVar4; | |
int *in_lr; | |
piVar1 = DAT_8f69d118; | |
piVar2 = (int *)FUN_8f63666c(4,param_2); | |
if (piVar2 == (int *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_usb30_wrappe_8f661b40,0xef); | |
} | |
iVar4 = *param_1; | |
uVar3 = *(uint *)(iVar4 + 8); | |
*piVar2 = iVar4; | |
uVar3 = uVar3 & 0xfffffffd; | |
*(uint *)(iVar4 + 8) = uVar3; | |
*(undefined4 *)(iVar4 + 0xc) = 0; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(piVar2,uVar3,piVar1); | |
} | |
void FUN_8f624bb4(int *param_1) | |
{ | |
int iVar1; | |
iVar1 = DAT_8f69d118; | |
*(undefined4 *)(*param_1 + 0xec) = 0x1cb8; | |
if (iVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar1,0x1cb8,(int *)iVar1); | |
} | |
void FUN_8f624bf4(int *param_1) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
*(uint *)(*param_1 + 8) = *(uint *)(*param_1 + 8) | 0x100; | |
FUN_8f6104fc(1); | |
iVar2 = *param_1; | |
*(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) | 1; | |
*(uint *)(iVar2 + 8) = *(uint *)(iVar2 + 8) | 8; | |
uVar3 = FUN_8f6104fc(1); | |
*(uint *)(*param_1 + 8) = *(uint *)(*param_1 + 8) & 0xfffffeff; | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,(int)((ulonglong)uVar3 >> 0x20),piVar1); | |
} | |
void FUN_8f624c78(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
int iVar3; | |
undefined8 uVar4; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
uVar4 = FUN_8f633350(param_1,param_2); | |
iVar2 = FUN_8f63338c((int)uVar4,(int)((ulonglong)uVar4 >> 0x20)); | |
uVar5 = FUN_8f6334fc(); | |
iVar3 = (int)uVar5; | |
if (iVar3 != 0) { | |
if ((int)uVar4 == 0x20 || iVar2 == 0x80) { | |
iVar3 = 1; | |
} | |
else { | |
iVar3 = 0; | |
} | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar3,(int)((ulonglong)uVar5 >> 0x20),piVar1); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f624d18) | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f624cd8(void) | |
{ | |
_DAT_0860065c = 0; | |
return; | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f624d1c(uint param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
undefined uVar2; | |
int iVar3; | |
int *piVar4; | |
char *pcVar5; | |
uint uVar6; | |
bool bVar7; | |
undefined8 uVar8; | |
piVar1 = DAT_8f69d118; | |
uVar8 = FUN_8f600724(param_1,param_2,param_3); | |
piVar4 = (int *)((ulonglong)uVar8 >> 0x20); | |
iVar3 = (int)uVar8; | |
if (iVar3 != 0) { | |
if (piVar1 == DAT_8f69d118) { | |
pcVar5 = s_HALT__set_download_mode_not_supp_8f661b64; | |
goto LAB_8f624dc4; | |
} | |
goto LAB_8f624df0; | |
} | |
uVar6 = param_1 + 0xfffffff; | |
if (uVar6 < 2) { | |
LAB_8f624dd0: | |
uVar2 = 1; | |
} | |
else { | |
uVar6 = 0x77665500; | |
param_3 = 0x8600000; | |
bVar7 = (param_1 & 0xfffffffd) == 0x77665500; | |
if (!bVar7) { | |
iVar3 = 7; | |
} | |
uVar2 = (undefined)iVar3; | |
_DAT_0860065c = param_1; | |
if (bVar7) goto LAB_8f624dd0; | |
} | |
FUN_8f600f88(uVar2); | |
iVar3 = FUN_8f6151bc(9,1); | |
if ((0 < iVar3) && (piVar4 = (int *)FUN_8f6157b4(), piVar4 != (int *)0x0)) { | |
dprintf((byte *)s_Failed_to_halt_pmic_arbiter___d_8f661b8c,piVar4,param_3,uVar6); | |
} | |
_DAT_004ab000 = 0; | |
uVar8 = FUN_8f6104a8(5000); | |
piVar4 = (int *)((ulonglong)uVar8 >> 0x20); | |
if (piVar1 == DAT_8f69d118) { | |
pcVar5 = s_Rebooting_failed_8f661bb0; | |
LAB_8f624dc4: | |
dprintf((byte *)pcVar5,piVar4,piVar1,DAT_8f69d118); | |
return; | |
} | |
LAB_8f624df0: | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar8,(int)((ulonglong)uVar8 >> 0x20),piVar1); | |
} | |
// WARNING: Globals starting with '_' overlap smaller symbols at the same address | |
void FUN_8f624e04(undefined4 param_1,int *param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
int *extraout_r1; | |
undefined4 uVar2; | |
undefined *puVar3; | |
int *in_lr; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
dprintf((byte *)s_Going_down_for_shutdown__8f661bc4,param_2,param_3,DAT_8f69d118); | |
FUN_8f600f88(4); | |
puVar3 = &DAT_004ab000; | |
uVar2 = 0; | |
_DAT_004ab000 = 0; | |
FUN_8f6104a8(5000); | |
dprintf((byte *)s_Shutdown_failed_8f661be0,extraout_r1,uVar2,puVar3); | |
uVar4 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_reboot_c_8f661bf4,0xad); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),piVar1); | |
} | |
void FUN_8f624e9c(undefined4 param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
int iVar2; | |
int *piVar3; | |
int *extraout_r1; | |
int *piVar4; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
piVar4 = DAT_8f69d118; | |
uVar5 = FUN_8f600364(); | |
DAT_8f68a21c = (int)uVar5; | |
iVar2 = FUN_8f6263b8(DAT_8f68a21c,(int)((ulonglong)uVar5 >> 0x20)); | |
if (iVar2 == 0) goto LAB_8f624f2c; | |
piVar4 = (int *)&DAT_8f69dc14; | |
iVar2 = *(int *)(DAT_8f68a21c + 0x58); | |
DAT_8f69dc14 = *(uint *)(DAT_8f68a21c + 0x74) >> 9; | |
if (iVar2 == 0) { | |
LAB_8f624f1c: | |
DAT_8f69dc18 = 0x20; | |
} | |
else if (*(byte *)(iVar2 + 0xc0) < 8) { | |
DAT_8f69dc18 = 1; | |
} | |
else { | |
if ((*(byte *)(iVar2 + 0xa6) & 0x10) != 0) goto LAB_8f624f1c; | |
DAT_8f69dc18 = 2; | |
} | |
param_3 = 3; | |
DAT_8f69dc1c = 3; | |
LAB_8f624f2c: | |
uVar5 = FUN_8f625408(); | |
piVar3 = (int *)((ulonglong)uVar5 >> 0x20); | |
if ((int)uVar5 < 0) { | |
dprintf((byte *)s_Error_registering_the_handler_8f661c14,piVar3,param_3,piVar4); | |
piVar3 = extraout_r1; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,piVar3,piVar1); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f624fa0) | |
void FUN_8f624f68(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
void FUN_8f624fa4(undefined4 param_1,int param_2,int param_3,int *param_4) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f6263b8(param_1,param_2); | |
if ((int)uVar2 != 0) { | |
uVar2 = FUN_8f6256d0(DAT_8f68a21c,param_1,param_2,param_3,param_4); | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
void FUN_8f625014(int param_1,uint param_2,int param_3,int param_4,undefined4 *param_5) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f6263b8(param_1,param_2); | |
if ((int)uVar2 != 0) { | |
uVar2 = FUN_8f6254dc(DAT_8f68a21c,param_1,param_2,param_3,param_4,param_5); | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
void FUN_8f62508c(uint param_1,int param_2) | |
{ | |
int iVar1; | |
int *piVar2; | |
int *extraout_r1; | |
undefined4 uVar3; | |
undefined4 *puVar4; | |
undefined4 local_34; | |
uint local_30; | |
int local_2c; | |
undefined4 local_28; | |
undefined4 local_24; | |
int *local_20; | |
int *local_1c; | |
local_34 = 0x202; | |
local_1c = DAT_8f69d118; | |
local_28 = 0; | |
local_24 = 0; | |
local_20 = (int *)0x0; | |
local_30 = param_1; | |
local_2c = param_2; | |
FUN_8f625b24(param_1,param_2); | |
iVar1 = FUN_8f608478(); | |
uVar3 = 0xc; | |
puVar4 = &local_28; | |
iVar1 = FUN_8f617098(iVar1,&local_34,(int *)0xc,puVar4,(int *)0xc); | |
FUN_8f625b4c(param_1,param_2); | |
if ((iVar1 < 0) || ((int)local_20 < 0)) { | |
dprintf((byte *)s_Reading_device_info_failed__Erro_8f661c34,local_20,uVar3,puVar4); | |
uVar3 = 0xffffffff; | |
piVar2 = extraout_r1; | |
} | |
else { | |
uVar3 = 0; | |
piVar2 = local_20; | |
} | |
if (local_1c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar3,piVar2,local_1c); | |
} | |
return; | |
} | |
void FUN_8f625144(uint param_1,int param_2) | |
{ | |
int iVar1; | |
int *piVar2; | |
int *extraout_r1; | |
undefined4 uVar3; | |
undefined4 *puVar4; | |
undefined4 local_34; | |
uint local_30; | |
int local_2c; | |
undefined4 local_28; | |
undefined4 local_24; | |
int *local_20; | |
int *local_1c; | |
local_34 = 0x203; | |
local_1c = DAT_8f69d118; | |
local_28 = 0; | |
local_24 = 0; | |
local_20 = (int *)0x0; | |
local_30 = param_1; | |
local_2c = param_2; | |
FUN_8f625b24(param_1,param_2); | |
iVar1 = FUN_8f608478(); | |
uVar3 = 0xc; | |
puVar4 = &local_28; | |
iVar1 = FUN_8f617098(iVar1,&local_34,(int *)0xc,puVar4,(int *)0xc); | |
FUN_8f625b4c(param_1,param_2); | |
if ((iVar1 < 0) || ((int)local_20 < 0)) { | |
dprintf((byte *)s_Writing_device_info_failed__Erro_8f661c5c,local_20,uVar3,puVar4); | |
uVar3 = 0xffffffff; | |
piVar2 = extraout_r1; | |
} | |
else { | |
uVar3 = 0; | |
piVar2 = local_20; | |
} | |
if (local_1c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar3,piVar2,local_1c); | |
} | |
return; | |
} | |
void FUN_8f6251fc(undefined4 param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
int *piVar2; | |
uint extraout_r1; | |
uint extraout_r1_00; | |
int *piVar3; | |
ulonglong uVar4; | |
piVar1 = DAT_8f69d118; | |
piVar3 = DAT_8f69d118; | |
uVar4 = FUN_8f625488((undefined4 *)0x2000,param_2,param_3); | |
piVar2 = (int *)(uVar4 >> 0x20); | |
if ((int)uVar4 < 0) { | |
dprintf((byte *)s_Failed_to_stop_Qseecom_Listener_8f661cd8,piVar2,param_3,piVar3); | |
uVar4 = uVar4 & 0xffffffff | (ulonglong)extraout_r1 << 0x20; | |
} | |
else { | |
uVar4 = FUN_8f617904((int)uVar4,piVar2,param_3); | |
if ((int)uVar4 < 0) { | |
dprintf((byte *)s_Failed_to_exit_qseecom_8f661cfc,(int *)(uVar4 >> 0x20),param_3,piVar3); | |
uVar4 = uVar4 & 0xffffffff | (ulonglong)extraout_r1_00 << 0x20; | |
} | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)(uVar4 >> 0x20),piVar1); | |
} | |
void FUN_8f625278(int **param_1,undefined4 param_2,char *param_3) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
int **ppiVar3; | |
int *piVar4; | |
int *extraout_r1; | |
undefined uVar5; | |
int iVar6; | |
int *piVar7; | |
int *piVar8; | |
int *in_lr; | |
undefined8 uVar9; | |
piVar1 = DAT_8f69d118; | |
ppiVar3 = param_1; | |
if (param_1 == (int **)0x0) { | |
param_3 = s_platform_msm_shared_rpmb_rpmb_li_8f661d18; | |
ppiVar3 = (int **)FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_rpmb_rpmb_li_8f661d18,0x90); | |
} | |
piVar4 = *param_1; | |
iVar6 = (int)piVar4 + -0x101; | |
switch(iVar6) { | |
case 0: | |
ppiVar3 = (int **)FUN_8f624f68(ppiVar3,piVar4); | |
uVar5 = (undefined)iVar6; | |
piVar7 = *ppiVar3; | |
if (ppiVar3 != (int **)0x0) { | |
uVar5 = 0; | |
} | |
piVar8 = ppiVar3[1]; | |
piVar4 = ppiVar3[2]; | |
if (ppiVar3 != (int **)0x0) { | |
*(undefined *)(param_1 + 2) = uVar5; | |
*(undefined *)((int)param_1 + 9) = uVar5; | |
*(undefined *)((int)param_1 + 10) = uVar5; | |
*(undefined *)((int)param_1 + 0xb) = uVar5; | |
} | |
uVar2 = 0; | |
param_1[3] = piVar7; | |
param_1[4] = piVar8; | |
param_1[5] = piVar4; | |
*(undefined *)((int)param_1 + 5) = 0; | |
*(undefined *)((int)param_1 + 6) = 0; | |
*(undefined *)((int)param_1 + 7) = 0; | |
*(undefined *)(param_1 + 1) = 2; | |
break; | |
case 1: | |
case 2: | |
if (piVar4 == (int *)0x103) { | |
uVar9 = FUN_8f625014((int)param_1 + (int)param_1[3],(uint)param_1[1],(int)param_1[5], | |
(int)(param_1 + 5),param_1 + 2); | |
piVar4 = (int *)((ulonglong)uVar9 >> 0x20); | |
param_1[1] = (int *)uVar9; | |
} | |
else { | |
uVar9 = FUN_8f624fa4((int)param_1 + (int)param_1[3],(int)param_1[1],(int)(param_1 + 5), | |
(int *)(param_1 + 2)); | |
piVar4 = (int *)((ulonglong)uVar9 >> 0x20); | |
param_1[1] = (int *)uVar9; | |
} | |
uVar2 = 0; | |
*(undefined *)((int)param_1 + 0xd) = 0; | |
*(undefined *)((int)param_1 + 0xe) = 0; | |
*(undefined *)((int)param_1 + 0xf) = 0; | |
*(undefined *)(param_1 + 3) = 0x14; | |
break; | |
case 3: | |
uVar2 = 0xffffffff; | |
break; | |
default: | |
dprintf((byte *)s_Unsupported_Request_from_qseecom_8f661d44,piVar4,param_3,iVar6); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_platform_msm_shared_rpmb_rpmb_li_8f661d18,0xa9); | |
uVar2 = 0; | |
piVar4 = extraout_r1; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,piVar4,piVar1); | |
} | |
void FUN_8f625408(void) | |
{ | |
int *piVar1; | |
int *extraout_r1; | |
undefined4 uVar2; | |
code *pcVar3; | |
undefined8 uVar4; | |
char *local_24; | |
undefined4 local_20; | |
undefined4 local_1c; | |
code *local_18; | |
int *local_14; | |
pcVar3 = FUN_8f625278; | |
local_24 = s_RPMB_system_services_8f661d6c; | |
local_14 = DAT_8f69d118; | |
uVar2 = 0x6400; | |
local_18 = FUN_8f625278; | |
local_20 = 0x2000; | |
local_1c = 0x6400; | |
uVar4 = FUN_8f6172f4((int)&local_24,0x2000,0x6400); | |
piVar1 = (int *)((ulonglong)uVar4 >> 0x20); | |
if ((int)uVar4 < 0) { | |
dprintf((byte *)s_Failed_to_register_rpmb_listener_8f661d84,piVar1,uVar2,pcVar3); | |
piVar1 = extraout_r1; | |
} | |
if (local_14 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,piVar1,local_14); | |
} | |
void FUN_8f625488(undefined4 *param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
int *piVar2; | |
int *extraout_r1; | |
int *piVar3; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
piVar3 = DAT_8f69d118; | |
uVar4 = FUN_8f61756c(param_1,param_2,param_3); | |
piVar2 = (int *)((ulonglong)uVar4 >> 0x20); | |
if ((int)uVar4 < 0) { | |
dprintf((byte *)s_Failed_to_unregister_rpmb_listen_8f661da8,piVar2,param_3,piVar3); | |
piVar2 = extraout_r1; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,piVar2,piVar1); | |
} | |
void FUN_8f6254dc(uint **param_1,int param_2,uint param_3,int param_4,int param_5, | |
undefined4 *param_6) | |
{ | |
undefined4 uVar1; | |
int iVar2; | |
uint uVar3; | |
bool bVar4; | |
undefined8 uVar5; | |
uint local_11c; | |
undefined2 local_108; | |
undefined4 local_104; | |
undefined local_100; | |
undefined local_ff; | |
undefined2 local_fe; | |
undefined4 local_ec; | |
undefined4 local_d8; | |
int local_d4; | |
int iStack_cc; | |
undefined uStack_c8; | |
undefined2 local_c0; | |
undefined4 local_bc; | |
undefined local_b8; | |
undefined local_b7; | |
undefined2 local_b6; | |
undefined4 local_a4; | |
undefined4 local_90; | |
undefined *local_8c; | |
undefined4 local_84; | |
undefined2 local_78; | |
undefined4 local_74; | |
undefined local_70; | |
undefined local_6f; | |
undefined2 local_6e; | |
undefined4 local_5c; | |
undefined4 local_48; | |
int local_44; | |
undefined4 local_3c; | |
int *local_2c; | |
uVar1 = 0xd8; | |
local_2c = DAT_8f69d118; | |
FUN_8f636968((uint *)&local_108,0,0xd8); | |
if (param_4 == 2) { | |
local_11c = param_3 >> 1; | |
} | |
else { | |
local_11c = param_3; | |
if (param_4 != 1) { | |
if (param_4 != 0x20) goto LAB_8f62553c; | |
local_11c = param_3 >> 5; | |
} | |
} | |
if (local_11c != 0) { | |
uVar3 = 0; | |
iVar2 = param_2; | |
do { | |
local_d8 = 1; | |
local_108 = 0x19; | |
local_104 = 0; | |
local_ff = 0; | |
local_fe = 1; | |
local_ec = 0; | |
local_100 = 1; | |
if (param_4 == 1) { | |
uStack_c8 = 0; | |
iStack_cc = param_4; | |
} | |
else if (param_4 == 2 || param_4 == 0x20) { | |
uStack_c8 = 1; | |
iStack_cc = param_4; | |
} | |
local_90 = 0; | |
local_c0 = 0x19; | |
local_bc = 0; | |
local_b7 = 0; | |
local_b6 = 1; | |
local_a4 = 0; | |
local_b8 = 1; | |
local_8c = &DAT_8f67f11c; | |
local_84 = 1; | |
local_48 = 0; | |
local_78 = 0x12; | |
local_74 = 0; | |
local_6f = 0; | |
local_6e = 1; | |
local_5c = 1; | |
local_70 = 1; | |
local_44 = param_5; | |
local_3c = 1; | |
local_d4 = param_2; | |
uVar5 = FUN_8f60d238(param_1,(int *)&local_108); | |
if ((int)uVar5 != 0) { | |
dprintf((byte *)s_Failed_to_Send_the_RPMB_write_se_8f661dec, | |
(int *)((ulonglong)uVar5 >> 0x20),uVar1,iVar2); | |
break; | |
} | |
if (*(char *)(param_5 + 0x1fc) == -0x80) { | |
dprintf((byte *)s_Max_write_counter_reached__8f661e20,(int *)0x80,uVar1,iVar2); | |
break; | |
} | |
if (*(byte *)(param_5 + 0x1fd) != 0) { | |
dprintf((byte *)(s_SERIAL_NUMBER____s_8f65e864 + 0x10), | |
(int *)(&PTR_s_Operation_Ok_8f661dcc)[*(byte *)(param_5 + 0x1fd)],uVar1, | |
&PTR_s_Operation_Ok_8f661dcc); | |
break; | |
} | |
uVar3 = uVar3 + 1; | |
param_2 = param_2 + param_4 * 0x200; | |
iVar2 = param_4 * 0x200; | |
} while (uVar3 != local_11c); | |
} | |
LAB_8f62553c: | |
bVar4 = local_2c == DAT_8f69d118; | |
*param_6 = 0x200; | |
if (bVar4) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,0x200,local_2c); | |
} | |
void FUN_8f6256d0(uint **param_1,undefined4 param_2,int param_3,int param_4,int *param_5) | |
{ | |
int *piVar1; | |
int *extraout_r1; | |
int *extraout_r1_00; | |
undefined4 uVar2; | |
undefined4 uVar3; | |
uint uVar4; | |
undefined8 uVar5; | |
undefined2 local_100; | |
undefined4 local_fc; | |
undefined local_f8; | |
undefined local_f7; | |
undefined2 local_f6; | |
undefined4 local_e4; | |
undefined4 local_d0; | |
undefined4 local_cc; | |
undefined4 local_c4; | |
undefined2 local_b8; | |
undefined4 local_b4; | |
undefined local_b0; | |
undefined local_af; | |
undefined2 local_ae; | |
undefined4 local_9c; | |
undefined4 local_94; | |
undefined4 local_88; | |
int local_84; | |
int local_7c; | |
int *local_24; | |
local_24 = DAT_8f69d118; | |
FUN_8f636968((uint *)&local_100,0,0xd8); | |
uVar2 = 0x19; | |
uVar3 = 0x12; | |
local_d0 = 0; | |
local_fc = 0; | |
local_f7 = 0; | |
local_e4 = 0; | |
local_88 = 0; | |
local_b4 = 0; | |
local_af = 0; | |
local_100 = 0x19; | |
local_f6 = 1; | |
local_f8 = 1; | |
local_c4 = 1; | |
local_ae = 1; | |
local_9c = 1; | |
local_b0 = 1; | |
local_94 = 1; | |
local_b8 = 0x12; | |
local_cc = param_2; | |
local_84 = param_4; | |
local_7c = param_3; | |
uVar5 = FUN_8f60d238(param_1,(int *)&local_100); | |
piVar1 = (int *)((ulonglong)uVar5 >> 0x20); | |
if ((int)uVar5 == 0) { | |
uVar4 = (uint)*(byte *)(param_4 + 0x1fd); | |
if (uVar4 != 0) { | |
dprintf((byte *)(s_SERIAL_NUMBER____s_8f65e864 + 0x10), | |
(int *)(&PTR_s_Operation_Ok_8f661dcc)[uVar4],&PTR_s_Operation_Ok_8f661dcc,uVar4); | |
piVar1 = extraout_r1; | |
} | |
uVar2 = 0; | |
*param_5 = param_3 << 9; | |
} | |
else { | |
dprintf((byte *)s_Failed_to_Send_the_RPMB_read_seq_8f661e40,piVar1,uVar2,uVar3); | |
uVar2 = 0xffffffff; | |
piVar1 = extraout_r1_00; | |
} | |
if (local_24 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,piVar1,local_24); | |
} | |
void FUN_8f6257e0(undefined4 param_1,undefined4 param_2,char *param_3) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
uint uVar3; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
uint uVar4; | |
undefined4 in_cr0; | |
undefined4 in_cr8; | |
undefined4 in_cr9; | |
undefined4 in_cr12; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f62591c(3); | |
coprocessor_moveto(0xf,0,0,0x8f600000,in_cr12,in_cr0); | |
FUN_8f62625c(uVar2,extraout_r1,param_3); | |
uVar3 = FUN_8f625984(3); | |
uVar4 = coproc_movefrom_Coprocessor_Access_Control(); | |
coproc_moveto_Coprocessor_Access_Control(uVar4 | 0xf00000); | |
InstructionSynchronizationBarrier(0xf); | |
uVar4 = coprocessor_movefromRt(10,7,0,in_cr8,in_cr0); | |
coprocessor_moveto(10,7,0,uVar4 | 0x40000000,in_cr8,in_cr0); | |
uVar4 = coprocessor_movefromRt(0xf,0,0,in_cr9,in_cr12); | |
coprocessor_moveto(0xf,0,0,uVar4 & 0xfffffff7 | 1,in_cr9,in_cr12); | |
coprocessor_moveto(0xf,0,1,0x80000000,in_cr9,in_cr12); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar3,extraout_r1_00,piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6258a0) | |
void FUN_8f625870(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
undefined8 FUN_8f6258c8(int param_1) | |
{ | |
undefined4 in_lr; | |
char in_NG; | |
char in_ZR; | |
char in_CY; | |
char in_OV; | |
byte in_Q; | |
setFIQMode(); | |
*(BADSPACEBASE **)param_1 = register0x00000054; | |
*(undefined4 *)(param_1 + 4) = in_lr; | |
setIRQMode(); | |
*(BADSPACEBASE **)(param_1 + 8) = register0x00000054; | |
*(undefined4 *)(param_1 + 0xc) = in_lr; | |
setSupervisorMode(); | |
*(BADSPACEBASE **)(param_1 + 0x10) = register0x00000054; | |
*(undefined4 *)(param_1 + 0x14) = in_lr; | |
setAbortMode(); | |
*(BADSPACEBASE **)(param_1 + 0x18) = register0x00000054; | |
*(undefined4 *)(param_1 + 0x1c) = in_lr; | |
setUndefinedMode(); | |
*(BADSPACEBASE **)(param_1 + 0x20) = register0x00000054; | |
*(undefined4 *)(param_1 + 0x24) = in_lr; | |
setSystemMode(); | |
*(BADSPACEBASE **)(param_1 + 0x28) = register0x00000054; | |
*(undefined4 *)(param_1 + 0x2c) = in_lr; | |
return CONCAT44((uint)(byte)(in_NG << 4 | in_ZR << 3 | in_CY << 2 | in_OV << 1 | in_Q) << 0x1b, | |
param_1 + 0x30); | |
} | |
undefined4 FUN_8f62591c(uint param_1) | |
{ | |
uint uVar1; | |
disableFIQinterrupts(); | |
disableIRQinterrupts(); | |
disableDataAbortInterrupts(); | |
if ((param_1 & 2) != 0) { | |
uVar1 = coproc_movefrom_Control(); | |
if ((uVar1 & 4) != 0) { | |
DataSynchronizationBarrier(0xf); | |
coproc_moveto_Control(uVar1 & 0xfffffffb); | |
InstructionSynchronizationBarrier(0xf); | |
FUN_8f6259dc(); | |
} | |
FUN_8f625a70(); | |
} | |
if ((param_1 & 1) != 0) { | |
uVar1 = coproc_movefrom_Control(); | |
coproc_moveto_Control(uVar1 & 0xffffefff); | |
InstructionSynchronizationBarrier(0xf); | |
} | |
coproc_moveto_Invalidate_Entire_Instruction(0); | |
DataSynchronizationBarrier(0xf); | |
return 0; | |
} | |
uint FUN_8f625984(uint param_1) | |
{ | |
uint uVar1; | |
disableFIQinterrupts(); | |
disableIRQinterrupts(); | |
disableDataAbortInterrupts(); | |
uVar1 = param_1; | |
if (((param_1 & 2) != 0) && (uVar1 = coproc_movefrom_Control(), (uVar1 & 4) == 0)) { | |
FUN_8f625a70(); | |
uVar1 = coproc_movefrom_Control(); | |
uVar1 = uVar1 | 4; | |
coproc_moveto_Control(uVar1); | |
} | |
if ((param_1 & 1) != 0) { | |
coproc_moveto_Invalidate_Entire_Instruction(0); | |
uVar1 = coproc_movefrom_Control(); | |
uVar1 = uVar1 | 0x1000; | |
coproc_moveto_Control(uVar1); | |
} | |
return uVar1; | |
} | |
void FUN_8f6259dc(void) | |
{ | |
bool bVar1; | |
uint uVar2; | |
uint uVar3; | |
uint uVar4; | |
uint uVar5; | |
uint uVar6; | |
uint uVar7; | |
undefined4 in_cr0; | |
DataMemoryBarrier(0xf); | |
uVar2 = coprocessor_movefromRt(0xf,1,1,in_cr0,in_cr0); | |
if ((uVar2 & 0x7000000) != 0) { | |
uVar7 = 0; | |
do { | |
if (1 < (uVar2 >> (uVar7 + (uVar7 >> 1) & 0xff) & 7)) { | |
coprocessor_moveto(0xf,2,0,uVar7,in_cr0,in_cr0); | |
InstructionSynchronizationBarrier(0xf); | |
uVar3 = coprocessor_movefromRt(0xf,1,0,in_cr0,in_cr0); | |
uVar4 = DAT_8f625b84 & uVar3 >> 3; | |
uVar5 = count_leading_zeroes(uVar4); | |
do { | |
uVar6 = DAT_8f625b88 & uVar3 >> 0xd; | |
do { | |
coproc_moveto_Clean_Data_Cache_by_Index | |
(uVar7 | uVar4 << (uVar5 & 0xff) | uVar6 << (uVar3 & 7) + 4); | |
bVar1 = 0 < (int)uVar6; | |
uVar6 = uVar6 - 1; | |
} while (bVar1); | |
bVar1 = 0 < (int)uVar4; | |
uVar4 = uVar4 - 1; | |
} while (bVar1); | |
} | |
uVar7 = uVar7 + 2; | |
} while ((int)uVar7 < (int)((uVar2 & 0x7000000) >> 0x17)); | |
} | |
coprocessor_moveto(0xf,2,0,0,in_cr0,in_cr0); | |
DataSynchronizationBarrier(0xf); | |
InstructionSynchronizationBarrier(0xf); | |
return; | |
} | |
void FUN_8f625a70(void) | |
{ | |
bool bVar1; | |
uint uVar2; | |
uint uVar3; | |
uint uVar4; | |
uint uVar5; | |
uint uVar6; | |
uint uVar7; | |
undefined4 in_cr0; | |
undefined4 in_cr7; | |
undefined4 in_cr14; | |
uVar2 = coprocessor_movefromRt(0xf,1,1,in_cr0,in_cr0); | |
if ((uVar2 & 0x7000000) != 0) { | |
uVar7 = 0; | |
do { | |
if (1 < (uVar2 >> (uVar7 + (uVar7 >> 1) & 0xff) & 7)) { | |
coprocessor_moveto(0xf,2,0,uVar7,in_cr0,in_cr0); | |
InstructionSynchronizationBarrier(0xf); | |
uVar3 = coprocessor_movefromRt(0xf,1,0,in_cr0,in_cr0); | |
uVar4 = DAT_8f625b84 & uVar3 >> 3; | |
uVar5 = count_leading_zeroes(uVar4); | |
do { | |
uVar6 = DAT_8f625b88 & uVar3 >> 0xd; | |
do { | |
coprocessor_moveto(0xf,0,2,uVar7 | uVar4 << (uVar5 & 0xff) | uVar6 << (uVar3 & 7) + 4, | |
in_cr7,in_cr14); | |
bVar1 = 0 < (int)uVar6; | |
uVar6 = uVar6 - 1; | |
} while (bVar1); | |
bVar1 = 0 < (int)uVar4; | |
uVar4 = uVar4 - 1; | |
} while (bVar1); | |
} | |
uVar7 = uVar7 + 2; | |
} while ((int)uVar7 < (int)((uVar2 & 0x7000000) >> 0x17)); | |
} | |
coprocessor_moveto(0xf,2,0,0,in_cr0,in_cr0); | |
DataSynchronizationBarrier(0xf); | |
InstructionSynchronizationBarrier(0xf); | |
return; | |
} | |
undefined4 FUN_8f625b00(uint param_1,int param_2) | |
{ | |
uint uVar1; | |
uVar1 = param_1 & 0xffffffc0; | |
do { | |
coproc_moveto_Clean_Data_Cache_by_MVA(uVar1); | |
uVar1 = uVar1 + 0x40; | |
} while (uVar1 < param_1 + param_2); | |
DataSynchronizationBarrier(0xf); | |
return 0; | |
} | |
undefined4 FUN_8f625b24(uint param_1,int param_2) | |
{ | |
uint uVar1; | |
DataSynchronizationBarrier(0xf); | |
uVar1 = param_1 & 0xffffffc0; | |
do { | |
coproc_moveto_Invalidate_Data_Cache_by_MVA(uVar1); | |
uVar1 = uVar1 + 0x40; | |
} while (uVar1 < param_1 + param_2); | |
DataSynchronizationBarrier(0xf); | |
return 0; | |
} | |
undefined4 FUN_8f625b4c(uint param_1,int param_2) | |
{ | |
uint uVar1; | |
uVar1 = param_1 & 0xffffffc0; | |
do { | |
coproc_moveto_Invalidate_Entire_Data_by_MVA(uVar1); | |
uVar1 = uVar1 + 0x40; | |
} while (uVar1 < param_1 + param_2); | |
DataSynchronizationBarrier(0xf); | |
return 0; | |
} | |
int FUN_8f625b8c(void) | |
{ | |
char in_NG; | |
char in_ZR; | |
char in_CY; | |
char in_OV; | |
byte in_Q; | |
return (uint)(byte)(in_NG << 4 | in_ZR << 3 | in_CY << 2 | in_OV << 1 | in_Q) << 0x1b; | |
} | |
uint FUN_8f625b9c(void) | |
{ | |
char in_NG; | |
char in_ZR; | |
char in_CY; | |
char in_OV; | |
byte in_Q; | |
return (uint)(byte)(in_NG << 4 | in_ZR << 3 | in_CY << 2 | in_OV << 1 | in_Q) << 0x1b | 0x80; | |
} | |
void FUN_8f625c30(void) | |
{ | |
WaitForInterrupt(); | |
return; | |
} | |
undefined4 FUN_8f625c38(void) | |
{ | |
undefined4 uVar1; | |
uVar1 = coproc_movefrom_Control(); | |
return uVar1; | |
} | |
void FUN_8f625c40(undefined4 param_1) | |
{ | |
coproc_moveto_Control(param_1); | |
InstructionSynchronizationBarrier(0xf); | |
return; | |
} | |
void FUN_8f625c5c(undefined4 param_1) | |
{ | |
coproc_moveto_Translation_table_base_0(param_1); | |
return; | |
} | |
void FUN_8f625c64(undefined4 param_1) | |
{ | |
coproc_moveto_Domain_Access_Control(param_1); | |
return; | |
} | |
undefined4 FUN_8f625c6c(void) | |
{ | |
DataSynchronizationBarrier(0xf); | |
InstructionSynchronizationBarrier(0xf); | |
coproc_moveto_Invalidate_unified_TLB_unlocked(0); | |
DataSynchronizationBarrier(0xf); | |
InstructionSynchronizationBarrier(0xf); | |
return 0; | |
} | |
void FUN_8f625da0(int **param_1) | |
{ | |
int *piVar1; | |
undefined *puVar2; | |
int *piVar3; | |
int iVar4; | |
undefined8 uVar5; | |
int *local_44 [2]; | |
int *local_3c; | |
int *local_34; | |
int *local_24; | |
int *local_1c; | |
int *local_14; | |
local_14 = DAT_8f69d118; | |
dprintf((byte *)s_r0_0x_08x_r1_0x_08x_r2_0x_08x_r3_8f662000,param_1[3],param_1[4],param_1[5]); | |
dprintf((byte *)s_r4_0x_08x_r5_0x_08x_r6_0x_08x_r7_8f662030,param_1[7],param_1[8],param_1[9]); | |
dprintf((byte *)s_r8_0x_08x_r9_0x_08x_r10_0x_08x_r_8f662060,param_1[0xb],param_1[0xc],param_1[0xd] | |
); | |
piVar1 = param_1[1]; | |
piVar3 = param_1[2]; | |
dprintf((byte *)s_r12_0x_08x_usp_0x_08x_ulr_0x_08x_8f662090,param_1[0xf],piVar1,piVar3); | |
dprintf((byte *)s_spsr_0x_08x_8f6620c0,*param_1,piVar1,piVar3); | |
FUN_8f6258c8((int)local_44); | |
if (((uint)*param_1 & 0x1f) == 0x11) { | |
piVar1 = (int *)0x2a; | |
} | |
else { | |
piVar1 = (int *)0x20; | |
} | |
dprintf((byte *)s__c_s_r13_0x_08x_r14_0x_08x_8f6620d0,piVar1,&DAT_8f6620ec,local_44[0]); | |
if (((uint)*param_1 & 0x1f) == 0x12) { | |
piVar1 = (int *)0x2a; | |
} | |
else { | |
piVar1 = (int *)0x20; | |
} | |
dprintf((byte *)s__c_s_r13_0x_08x_r14_0x_08x_8f6620d0,piVar1,&DAT_8f6620f0,local_3c); | |
if (((uint)*param_1 & 0x1f) == 0x13) { | |
piVar1 = (int *)0x2a; | |
} | |
else { | |
piVar1 = (int *)0x20; | |
} | |
dprintf((byte *)s__c_s_r13_0x_08x_r14_0x_08x_8f6620d0,piVar1,&DAT_8f6620f4,local_34); | |
if (((uint)*param_1 & 0x1f) == 0x1b) { | |
piVar1 = (int *)0x2a; | |
} | |
else { | |
piVar1 = (int *)0x20; | |
} | |
dprintf((byte *)s__c_s_r13_0x_08x_r14_0x_08x_8f6620d0,piVar1,&DAT_8f6620f8,local_24); | |
if (((uint)*param_1 & 0x1f) == 0x1f) { | |
piVar1 = (int *)0x2a; | |
} | |
else { | |
piVar1 = (int *)0x20; | |
} | |
puVar2 = &DAT_8f6620fc; | |
uVar5 = dprintf((byte *)s__c_s_r13_0x_08x_r14_0x_08x_8f6620d0,piVar1,&DAT_8f6620fc,local_1c); | |
iVar4 = ((uint)*param_1 & 0x1f) - 0x11; | |
switch(iVar4) { | |
case 0: | |
local_1c = local_44[0]; | |
break; | |
case 1: | |
local_1c = local_3c; | |
break; | |
case 2: | |
local_1c = local_34; | |
break; | |
default: | |
goto switchD_8f625f68_caseD_14; | |
case 10: | |
local_1c = local_24; | |
break; | |
case 0xe: | |
} | |
if (local_1c != (int *)0x0) { | |
dprintf((byte *)s_bottom_of_stack_at_0x_08x__8f662100,local_1c,puVar2,iVar4); | |
uVar5 = FUN_8f635454(local_1c,0x80,(int)puVar2); | |
} | |
switchD_8f625f68_caseD_14: | |
if (local_14 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),local_14); | |
} | |
return; | |
} | |
void FUN_8f626010(int **param_1,int param_2,byte *param_3) | |
{ | |
int *piVar1; | |
piVar1 = param_1[0x10]; | |
param_1[0x10] = (int *)((int)piVar1 + param_2); | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
dprintf(param_3,(int *)((int)piVar1 + param_2),DAT_8f67f324,&DAT_8f67f324); | |
FUN_8f625da0(param_1); | |
FUN_8f635184(); | |
do { | |
// WARNING: Do nothing block with infinite loop | |
} while( true ); | |
} | |
void FUN_8f62615c(int param_1) | |
{ | |
int *piVar1; | |
int *piVar2; | |
uint *puVar3; | |
uint *puVar4; | |
uint uVar5; | |
piVar1 = DAT_8f69d118; | |
uVar5 = *(int *)(param_1 + 0x30) + *(int *)(param_1 + 0x34) & 0xfffffff8; | |
puVar4 = (uint *)(uVar5 - 0x2c); | |
puVar3 = FUN_8f636968(puVar4,0,0x2c); | |
piVar2 = DAT_8f69d118; | |
*(undefined **)(uVar5 - 0xc) = &LAB_8f626104; | |
*(uint **)(param_1 + 0x2c) = puVar4; | |
if (piVar1 == piVar2) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(puVar3,piVar1,piVar2); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f626258) | |
void FUN_8f626208(uint param_1,uint param_2,uint param_3) | |
{ | |
(&DAT_8f68c000)[param_2 >> 0x14] = param_3 | 2 | param_1 & 0xfff00000; | |
FUN_8f625c6c(); | |
return; | |
} | |
void FUN_8f62625c(undefined4 param_1,undefined4 param_2,char *param_3) | |
{ | |
int *piVar1; | |
uint uVar2; | |
undefined4 uVar3; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
uint uVar4; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f625c38(); | |
uVar5 = FUN_8f625c40(uVar2 & 0xcffffffe); | |
uVar5 = FUN_8f602dc8((int)uVar5,(int)((ulonglong)uVar5 >> 0x20)); | |
if ((int)uVar5 != 0) { | |
uVar2 = 0; | |
do { | |
param_3 = (char *)(uVar2 & 0xfff); | |
uVar4 = uVar2 + 1; | |
(&DAT_8f68c000)[(int)param_3] = uVar2 << 0x14 | 0xc02; | |
uVar3 = FUN_8f625c6c(); | |
uVar5 = CONCAT44(extraout_r1,uVar3); | |
uVar2 = uVar4; | |
} while (uVar4 != 0x1000); | |
} | |
FUN_8f602e00((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),param_3); | |
FUN_8f625c5c(&DAT_8f68c000); | |
FUN_8f625c64(1); | |
uVar2 = FUN_8f625c38(); | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f625c40(uVar2 | 1); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,extraout_r1_00,piVar1); | |
} | |
void FUN_8f6262fc(void) | |
{ | |
int *piVar1; | |
uint uVar2; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
DataSynchronizationBarrier(0xf); | |
uVar2 = FUN_8f625c38(); | |
uVar3 = FUN_8f625c40(uVar2 & 0xfffffffe); | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f625c6c(); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,(int)((ulonglong)uVar3 >> 0x20),piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f62637c) | |
void FUN_8f62634c(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6263b4) | |
void FUN_8f626380(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6263ec) | |
void FUN_8f6263b8(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f626424) | |
void FUN_8f6263f0(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f62645c) | |
void FUN_8f626428(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f626494) | |
void FUN_8f626460(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6264cc) | |
void FUN_8f626498(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f626504) | |
void FUN_8f6264d0(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f626538) | |
void FUN_8f626508(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f62656c) | |
void FUN_8f62653c(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6265a4) | |
void FUN_8f626570(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f6265dc) | |
void FUN_8f6265a8(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f626614) | |
void FUN_8f6265e0(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f62664c) | |
void FUN_8f626618(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f626688) | |
void FUN_8f626650(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
void FUN_8f62668c(void) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
uVar3 = FUN_8f611778(); | |
switch((int)uVar3) { | |
case 0x125: | |
case 0x126: | |
case 0x127: | |
case 0x12f: | |
case 0x130: | |
case 0x133: | |
case 0x134: | |
case 0x135: | |
case 0x139: | |
case 0x140: | |
case 0x152: | |
case 0x15f: | |
uVar2 = 0x1bc; | |
break; | |
default: | |
uVar2 = 0x1b8; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,(int)((ulonglong)uVar3 >> 0x20),piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f626804) | |
void FUN_8f6267d0(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
void FUN_8f626808(undefined4 param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
uint uVar2; | |
undefined4 extraout_r1; | |
undefined4 uVar3; | |
int *piVar4; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
piVar4 = DAT_8f69d118; | |
uVar5 = FUN_8f600fc0(param_1,param_2); | |
uVar2 = (int)uVar5 - 1; | |
if (uVar2 < 0x13) { | |
param_3 = 1; | |
uVar2 = 1 << (uVar2 & 0xff); | |
if ((uVar2 & 0x50200) != 0) { | |
uVar5 = FUN_8f632efc(0x21208); | |
uVar3 = (undefined4)((ulonglong)uVar5 >> 0x20); | |
uVar2 = (uint)((int)uVar5 << 0x11) >> 0x18; | |
goto LAB_8f62686c; | |
} | |
piVar4 = (int *)(uVar2 & 0x1401); | |
if (piVar4 != (int *)0x0) { | |
uVar5 = FUN_8f632efc(0x1208); | |
uVar3 = (undefined4)((ulonglong)uVar5 >> 0x20); | |
uVar2 = (uint)((int)uVar5 << 0x11) >> 0x18; | |
goto LAB_8f62686c; | |
} | |
} | |
dprintf((byte *)s_ERROR__Couldn_t_get_the_pmic_typ_8f662194,(int *)((ulonglong)uVar5 >> 0x20), | |
param_3,piVar4); | |
uVar2 = 0; | |
uVar3 = extraout_r1; | |
LAB_8f62686c: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,uVar3,piVar1); | |
} | |
void FUN_8f6268ac(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
uint uVar2; | |
uint uVar3; | |
int *piVar4; | |
undefined8 uVar5; | |
ulonglong uVar6; | |
uint local_10; | |
int *local_c; | |
local_10 = 0; | |
local_c = DAT_8f69d118; | |
piVar4 = DAT_8f69d118; | |
uVar5 = FUN_8f600fc0(param_1,param_2); | |
piVar1 = (int *)((ulonglong)uVar5 >> 0x20); | |
uVar2 = (int)uVar5 - 1; | |
if (uVar2 < 0x13) { | |
uVar2 = 1 << (uVar2 & 0xff); | |
uVar3 = uVar2 & 0x50200; | |
if (uVar3 != 0) { | |
uVar6 = FUN_8f634238(1,&local_10); | |
if ((int)uVar6 == 0) { | |
uVar6 = uVar6 & 0xffffffff00000000 | (ulonglong)(local_10 * 1000); | |
} | |
else { | |
dprintf((byte *)s_ERROR__Get_battery_voltage_faile_8f6621b8,(int *)(uVar6 >> 0x20),uVar2, | |
uVar3); | |
uVar6 = CONCAT44(extraout_r1_00,local_10); | |
} | |
goto LAB_8f626918; | |
} | |
piVar4 = (int *)(uVar2 & 0x1401); | |
if (piVar4 != (int *)0x0) { | |
uVar6 = FUN_8f633838(1,piVar1,uVar2); | |
goto LAB_8f626918; | |
} | |
} | |
dprintf((byte *)s_ERROR__Couldn_t_get_the_pmic_typ_8f662194,piVar1,uVar2,piVar4); | |
uVar6 = CONCAT44(extraout_r1,local_10); | |
LAB_8f626918: | |
if (local_c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar6,(int)(uVar6 >> 0x20),local_c); | |
} | |
void FUN_8f626970(undefined4 param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
undefined4 uVar3; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
uVar4 = FUN_8f626808(param_1,param_2,param_3); | |
uVar3 = (undefined4)((ulonglong)uVar4 >> 0x20); | |
if ((int)uVar4 == 0) { | |
uVar2 = 1; | |
} | |
else { | |
uVar4 = FUN_8f6268ac((int)uVar4,uVar3); | |
uVar3 = (undefined4)((ulonglong)uVar4 >> 0x20); | |
if ((uint)uVar4 < 3200000) { | |
uVar2 = 0; | |
} | |
else { | |
uVar2 = 1; | |
} | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,uVar3,piVar1); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f626a00) | |
void FUN_8f6269cc(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f626a38) | |
void FUN_8f626a04(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f626a70) | |
void FUN_8f626a3c(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f626aa8) | |
void FUN_8f626a74(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f626b18) | |
void FUN_8f626ae4(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f626b88) | |
void FUN_8f626b54(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f626bbc) | |
void FUN_8f626b8c(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f626c2c) | |
void FUN_8f626bf8(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f626c64) | |
void FUN_8f626c30(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f626c9c) | |
void FUN_8f626c68(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f626cd4) | |
void FUN_8f626ca0(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
void FUN_8f626de0(void) | |
{ | |
int *piVar1; | |
int iVar2; | |
int *piVar3; | |
undefined4 uVar4; | |
int *in_lr; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
FUN_8f626f38((undefined4 *)&DAT_8f690000,0,0); | |
piVar3 = (int *)0x0; | |
uVar4 = 0x1e; | |
uVar5 = FUN_8f627744(&DAT_8f6621e0,(uint)&LAB_8f626d10,0,0x1e,0x2000); | |
iVar2 = (int)uVar5; | |
if (iVar2 == 0) { | |
uVar5 = FUN_8f6353a0(in_lr,(byte *)s_failed_to_create_dpc_thread_8f6621e4,piVar3,uVar4); | |
} | |
uVar4 = (undefined4)((ulonglong)uVar5 >> 0x20); | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f6279f4(iVar2,uVar4); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,uVar4,piVar1); | |
} | |
void FUN_8f626e74(undefined4 param_1,undefined4 param_2,uint param_3) | |
{ | |
undefined *puVar1; | |
int *piVar2; | |
undefined4 *puVar3; | |
undefined4 *puVar4; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 uVar5; | |
bool bVar6; | |
piVar2 = DAT_8f69d118; | |
puVar4 = (undefined4 *)FUN_8f63666c(0x10,param_2); | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
bVar6 = DAT_8f67f324 == 1; | |
puVar4[2] = param_1; | |
puVar4[3] = param_2; | |
if (bVar6) { | |
FUN_8f625b9c(); | |
} | |
puVar4[1] = &PTR_LOOP_8f67f31c; | |
puVar1 = PTR_LOOP_8f67f31c; | |
puVar3 = puVar4; | |
*puVar4 = PTR_LOOP_8f67f31c; | |
PTR_LOOP_8f67f31c = (undefined *)puVar3; | |
*(undefined4 **)(puVar1 + 4) = puVar4; | |
FUN_8f627070((int)&DAT_8f690000,(int *)(param_3 & 1 ^ 1)); | |
DAT_8f67f324 = DAT_8f67f324 + -1; | |
uVar5 = extraout_r1; | |
if (DAT_8f67f324 == 0) { | |
FUN_8f625b8c(); | |
uVar5 = extraout_r1_00; | |
} | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,uVar5,piVar2); | |
} | |
void FUN_8f626f38(undefined4 *param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
int *piVar2; | |
int *piVar3; | |
piVar1 = DAT_8f69d118; | |
param_1[1] = param_2; | |
param_1[2] = param_3; | |
piVar3 = DAT_8f69d118; | |
*param_1 = 0x65766e74; | |
piVar2 = DAT_8f69d118; | |
if (piVar1 != piVar3) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,param_2,piVar1); | |
} | |
piVar3 = param_1 + 4; | |
param_1[3] = 0x77616974; | |
piVar1 = DAT_8f69d118; | |
param_1[5] = piVar3; | |
param_1[4] = piVar3; | |
param_1[6] = 0; | |
if (piVar2 == piVar1) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1 + 3,piVar2,piVar3); | |
} | |
void FUN_8f626f84(int param_1,int param_2) | |
{ | |
int *piVar1; | |
int extraout_r1; | |
uint uVar2; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
if (DAT_8f67f324 == 1) { | |
FUN_8f625b9c(); | |
} | |
if (*(int *)(param_1 + 4) == 0) { | |
uVar3 = FUN_8f627f60(param_1 + 0xc,param_2); | |
param_2 = (int)((ulonglong)uVar3 >> 0x20); | |
uVar2 = (uint)uVar3; | |
} | |
else { | |
uVar2 = *(uint *)(param_1 + 8) & 1; | |
if (uVar2 != 0) { | |
uVar2 = 0; | |
*(undefined4 *)(param_1 + 4) = 0; | |
} | |
} | |
DAT_8f67f324 = DAT_8f67f324 + -1; | |
if (DAT_8f67f324 == 0) { | |
FUN_8f625b8c(); | |
param_2 = extraout_r1; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,param_2,piVar1); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f62706c) | |
void FUN_8f627034(int param_1,undefined4 param_2) | |
{ | |
FUN_8f626f84(param_1,-1); | |
return; | |
} | |
void FUN_8f627070(int param_1,int *param_2) | |
{ | |
int *piVar1; | |
int *extraout_r1; | |
int *extraout_r1_00; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
if (DAT_8f67f324 == 1) { | |
FUN_8f625b9c(); | |
} | |
if (*(int *)(param_1 + 4) == 0) { | |
if ((*(uint *)(param_1 + 8) & 1) == 0) { | |
*(undefined4 *)(param_1 + 4) = 1; | |
FUN_8f628190(param_1 + 0xc,param_2,0); | |
param_2 = extraout_r1_00; | |
} | |
else { | |
uVar2 = FUN_8f628034(param_1 + 0xc,param_2,0); | |
param_2 = (int *)((ulonglong)uVar2 >> 0x20); | |
if ((int)uVar2 < 1) { | |
*(undefined4 *)(param_1 + 4) = 1; | |
} | |
} | |
} | |
DAT_8f67f324 = DAT_8f67f324 + -1; | |
if (DAT_8f67f324 == 0) { | |
FUN_8f625b8c(); | |
param_2 = extraout_r1; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,param_2,piVar1); | |
} | |
return; | |
} | |
void FUN_8f627134(int param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
bool bVar2; | |
piVar1 = DAT_8f69d118; | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
if (DAT_8f67f324 == 1) { | |
FUN_8f625b9c(); | |
param_2 = extraout_r1_00; | |
} | |
DAT_8f67f324 = DAT_8f67f324 + -1; | |
bVar2 = DAT_8f67f324 == 0; | |
*(undefined4 *)(param_1 + 4) = 0; | |
if (bVar2) { | |
FUN_8f625b8c(); | |
param_2 = extraout_r1; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,param_2,piVar1); | |
} | |
void FUN_8f6271b8(undefined4 param_1,undefined4 param_2,undefined4 *param_3) | |
{ | |
int *piVar1; | |
undefined4 extraout_r1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f625870(param_1,param_2); | |
FUN_8f602ce0((int)uVar2,(int)((ulonglong)uVar2 >> 0x20)); | |
uVar2 = FUN_8f600d30(); | |
FUN_8f62896c((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),param_3); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,extraout_r1,piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f62724c) | |
void FUN_8f627200(undefined4 param_1,undefined4 param_2,char *param_3) | |
{ | |
undefined4 uVar1; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
int *piVar2; | |
undefined4 uVar3; | |
int *in_lr; | |
undefined8 uVar4; | |
uVar4 = FUN_8f627da8(); | |
FUN_8f6257e0((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),param_3); | |
uVar4 = FUN_8f602c98(); | |
FUN_8f60017c((int)uVar4,(int)((ulonglong)uVar4 >> 0x20)); | |
FUN_8f607f64((int *)0x0,extraout_r1); | |
uVar4 = FUN_8f6359a4(); | |
uVar4 = FUN_8f615bd4((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),param_3); | |
DAT_8f69d118 = (undefined4)uVar4; | |
FUN_8f627e80(DAT_8f69d118,(int)((ulonglong)uVar4 >> 0x20)); | |
uVar1 = FUN_8f626de0(); | |
FUN_8f6288d0(uVar1); | |
piVar2 = (int *)0x0; | |
uVar3 = 0x10; | |
uVar4 = FUN_8f627744((byte *)s_bootstrap2_8f662204,(uint)FUN_8f6271b8,0,0x10,0x2000); | |
uVar1 = (undefined4)((ulonglong)uVar4 >> 0x20); | |
if ((int)uVar4 == 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_failed_to_create_thread_bootstra_8f662210,piVar2,uVar3); | |
uVar1 = extraout_r1_00; | |
} | |
FUN_8f6279f4((int)uVar4,uVar1); | |
DAT_8f67f324 = DAT_8f67f324 + -1; | |
if (DAT_8f67f324 == 0) goto LAB_8f6272c8; | |
do { | |
FUN_8f627eb4(); | |
LAB_8f6272c8: | |
FUN_8f625b8c(); | |
} while( true ); | |
} | |
void FUN_8f6272e4(undefined4 *param_1) | |
{ | |
int iVar1; | |
int iVar2; | |
int iVar3; | |
int *piVar4; | |
iVar1 = DAT_8f69d118; | |
*param_1 = 0x6d757478; | |
param_1[1] = 0; | |
iVar2 = DAT_8f69d118; | |
param_1[2] = 0; | |
iVar3 = DAT_8f69d118; | |
if (iVar1 != iVar2) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,iVar1,(int *)0x0); | |
} | |
piVar4 = param_1 + 4; | |
param_1[3] = 0x77616974; | |
iVar1 = DAT_8f69d118; | |
param_1[5] = piVar4; | |
param_1[4] = piVar4; | |
param_1[6] = 0; | |
if (iVar3 == iVar1) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1 + 3,iVar3,piVar4); | |
} | |
void FUN_8f627334(int param_1) | |
{ | |
int *piVar1; | |
int *piVar2; | |
undefined4 extraout_r1; | |
undefined4 uVar3; | |
int *extraout_r1_00; | |
int *extraout_r1_01; | |
int *piVar4; | |
int iVar5; | |
int iVar6; | |
undefined4 unaff_r8; | |
int *in_lr; | |
undefined8 uVar7; | |
piVar1 = DAT_8f69d118; | |
piVar4 = *(int **)(param_1 + 8); | |
piVar2 = DAT_8f69dc24; | |
if (piVar4 == DAT_8f69dc24) { | |
FUN_8f6353a0(in_lr,(byte *)s_mutex_acquire__thread__p___s__tr_8f662234,piVar4,piVar4 + 0x11); | |
piVar2 = extraout_r1_01; | |
} | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
if (DAT_8f67f324 == 1) { | |
FUN_8f625b9c(); | |
piVar2 = extraout_r1_00; | |
} | |
iVar5 = *(int *)(param_1 + 4); | |
iVar6 = iVar5 + 1; | |
*(int *)(param_1 + 4) = iVar6; | |
if (iVar6 < 2) { | |
unaff_r8 = 0; | |
} | |
uVar7 = CONCAT44(piVar2,unaff_r8); | |
if ((iVar6 == 1 || iVar5 < 0 != SBORROW4(iVar6,1)) || | |
(uVar7 = FUN_8f627f60(param_1 + 0xc,-1), -1 < (int)uVar7)) { | |
*(int **)(param_1 + 8) = DAT_8f69dc24; | |
} | |
uVar3 = (undefined4)((ulonglong)uVar7 >> 0x20); | |
DAT_8f67f324 = DAT_8f67f324 + -1; | |
if (DAT_8f67f324 == 0) { | |
FUN_8f625b8c(); | |
uVar3 = extraout_r1; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar7,uVar3,piVar1); | |
} | |
return; | |
} | |
void FUN_8f627418(int param_1) | |
{ | |
int *piVar1; | |
int *piVar2; | |
int *extraout_r1; | |
int *extraout_r1_00; | |
int *extraout_r1_01; | |
int *extraout_r1_02; | |
int iVar3; | |
int *in_lr; | |
piVar1 = DAT_8f69d118; | |
piVar2 = *(int **)(param_1 + 8); | |
if (piVar2 != DAT_8f69dc24) { | |
FUN_8f6353a0(in_lr,(byte *)s_mutex_release__thread__p___s__tr_8f6622d4,DAT_8f69dc24, | |
DAT_8f69dc24 + 0x11); | |
piVar2 = extraout_r1; | |
} | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
if (DAT_8f67f324 == 1) { | |
FUN_8f625b9c(); | |
piVar2 = extraout_r1_01; | |
} | |
*(undefined4 *)(param_1 + 8) = 0; | |
iVar3 = *(int *)(param_1 + 4) + -1; | |
*(int *)(param_1 + 4) = iVar3; | |
if (0 < iVar3) { | |
FUN_8f628034(param_1 + 0xc,(undefined4 *)0x1,0); | |
piVar2 = extraout_r1_02; | |
} | |
DAT_8f67f324 = DAT_8f67f324 + -1; | |
if (DAT_8f67f324 == 0) { | |
FUN_8f625b8c(); | |
piVar2 = extraout_r1_00; | |
} | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,piVar2,piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f62757c) | |
void FUN_8f627500(undefined4 param_1,undefined4 param_2,int *param_3) | |
{ | |
uint uVar1; | |
int **ppiVar2; | |
uVar1 = param_3[5]; | |
param_3[4] = (&DAT_8f690024)[uVar1 * 2]; | |
ppiVar2 = (int **)(&DAT_8f690024)[uVar1 * 2]; | |
param_3[3] = (int)(&DAT_8f690020 + uVar1 * 2); | |
*(undefined *)(param_3 + 6) = 1; | |
DAT_8f69001c = DAT_8f69001c | 1 << (uVar1 & 0xff); | |
*ppiVar2 = param_3 + 3; | |
(&DAT_8f690024)[uVar1 * 2] = param_3 + 3; | |
return; | |
} | |
void FUN_8f627580(int param_1) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined4 *puVar3; | |
undefined4 *extraout_r1; | |
bool bVar4; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
if (DAT_8f67f324 == 1) { | |
FUN_8f625b9c(); | |
} | |
DAT_8f67f324 = DAT_8f67f324 + -1; | |
puVar3 = *(undefined4 **)(param_1 + 8); | |
bVar4 = DAT_8f67f324 == 0; | |
*puVar3 = *(undefined4 *)(param_1 + 4); | |
*(undefined4 **)(*(int *)(param_1 + 4) + 4) = puVar3; | |
*(undefined4 *)(param_1 + 8) = 0; | |
*(undefined4 *)(param_1 + 4) = 0; | |
if (bVar4) { | |
FUN_8f625b8c(); | |
puVar3 = extraout_r1; | |
} | |
iVar2 = *(int *)(param_1 + 0x30); | |
uVar5 = CONCAT44(puVar3,iVar2); | |
if (iVar2 != 0) { | |
uVar5 = FUN_8f636758(iVar2); | |
} | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f636758(param_1); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f626204) | |
void FUN_8f627630(void) | |
{ | |
uint uVar1; | |
int *piVar2; | |
int *piVar3; | |
int *piVar4; | |
int *piVar5; | |
int *piVar6; | |
int *piVar7; | |
int iVar8; | |
uint uVar9; | |
bool bVar10; | |
undefined local_2c [8]; | |
int *local_24; | |
piVar2 = DAT_8f69dc24; | |
piVar3 = DAT_8f69d118; | |
uVar1 = DAT_8f69001c; | |
piVar4 = (int *)&DAT_8f69d118; | |
iVar8 = count_leading_zeroes(DAT_8f69001c); | |
uVar9 = 0x1f - iVar8; | |
local_24 = DAT_8f69d118; | |
piVar5 = (int *)(&DAT_8f690024)[uVar9 * 2]; | |
if (&DAT_8f690020 + uVar9 * 2 == piVar5) { | |
piVar7 = (int *)0x0; | |
} | |
else { | |
piVar7 = (int *)piVar5[1]; | |
*piVar7 = *piVar5; | |
*(int **)(*piVar5 + 4) = piVar7; | |
piVar5[1] = 0; | |
piVar6 = (int *)(&DAT_8f690024)[uVar9 * 2]; | |
piVar7 = piVar5 + -3; | |
*piVar5 = 0; | |
if (&DAT_8f690020 + uVar9 * 2 != piVar6) { | |
*(undefined *)(piVar5 + 3) = 2; | |
piVar5 = DAT_8f69d118; | |
goto joined_r0x8f627724; | |
} | |
} | |
DAT_8f69001c = uVar1 & ~(1 << (uVar9 & 0xff)); | |
*(undefined *)(piVar7 + 6) = 2; | |
piVar5 = DAT_8f69d118; | |
joined_r0x8f627724: | |
DAT_8f69d118 = piVar5; | |
if (piVar7 == piVar2) { | |
if (piVar3 == piVar5) { | |
return; | |
} | |
} | |
else { | |
DAT_8f69dc24 = piVar7; | |
if (piVar7[8] < 1) { | |
piVar7[8] = 5; | |
} | |
bVar10 = piVar3 == piVar5; | |
piVar2[7] = (int)DAT_8f67f324; | |
piVar4 = (int *)piVar7[7]; | |
piVar3 = piVar7; | |
DAT_8f67f324 = piVar4; | |
if (bVar10) { | |
piVar2[0xb] = (int)local_2c; | |
ClearExclusiveLocal(); | |
return; | |
} | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(piVar2,piVar3,piVar4); | |
} | |
void FUN_8f627744(byte *param_1,uint param_2,uint param_3,uint param_4,uint param_5) | |
{ | |
ulonglong uVar1; | |
int *piVar2; | |
uint *puVar3; | |
uint uVar4; | |
undefined4 extraout_r1; | |
uint extraout_r1_00; | |
uint extraout_r1_01; | |
uint **ppuVar5; | |
ulonglong uVar6; | |
piVar2 = DAT_8f69d118; | |
uVar6 = FUN_8f63666c(100,param_2); | |
puVar3 = (uint *)uVar6; | |
uVar1 = uVar6; | |
if (puVar3 != (uint *)0x0) { | |
FUN_8f636968(puVar3,0,100); | |
*puVar3 = 0x74687264; | |
FUN_8f636d18((int)(puVar3 + 0x11),param_1,0x20); | |
puVar3[5] = param_4; | |
puVar3[0xe] = param_2; | |
puVar3[0xf] = param_3; | |
puVar3[7] = 1; | |
*(undefined *)(puVar3 + 6) = 0; | |
puVar3[9] = 0; | |
puVar3[10] = 0; | |
uVar4 = FUN_8f63666c(param_5,extraout_r1); | |
puVar3[0xc] = uVar4; | |
if (uVar4 == 0) { | |
FUN_8f636758((int)puVar3); | |
uVar1 = (ulonglong)extraout_r1_01 << 0x20; | |
} | |
else { | |
puVar3[0xd] = param_5; | |
FUN_8f62615c((int)puVar3); | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
if (DAT_8f67f324 == 1) { | |
FUN_8f625b9c(); | |
} | |
DAT_8f67f324 = DAT_8f67f324 - 1; | |
uVar1 = uVar6 & 0xffffffff | (ulonglong)DAT_8f67f324 << 0x20; | |
ppuVar5 = (uint **)(puVar3 + 1); | |
puVar3[1] = (uint)&DAT_8f690120; | |
puVar3[2] = (uint)DAT_8f690124; | |
*DAT_8f690124 = (uint *)ppuVar5; | |
DAT_8f690124 = ppuVar5; | |
if (DAT_8f67f324 == 0) { | |
FUN_8f625b8c(); | |
uVar1 = uVar6 & 0xffffffff | (ulonglong)extraout_r1_00 << 0x20; | |
} | |
} | |
} | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar1,(int)(uVar1 >> 0x20),piVar2); | |
} | |
void FUN_8f62788c(undefined4 param_1) | |
{ | |
int *piVar1; | |
int iVar2; | |
int *in_lr; | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
if (DAT_8f67f324 == 1) { | |
FUN_8f625b9c(); | |
} | |
iVar2 = DAT_8f69dc24; | |
piVar1 = (int *)0x1; | |
*(undefined4 *)(DAT_8f69dc24 + 0x40) = param_1; | |
*(undefined *)(iVar2 + 0x18) = 5; | |
FUN_8f626e74(FUN_8f627580,iVar2,1); | |
FUN_8f627630(); | |
FUN_8f6353a0(in_lr,(byte *)s_somehow_fell_through_thread_exit_8f662330,piVar1,iVar2); | |
do { | |
// WARNING: Do nothing block with infinite loop | |
} while( true ); | |
} | |
void FUN_8f627914(void) | |
{ | |
int *piVar1; | |
int iVar2; | |
uint uVar3; | |
undefined4 uVar4; | |
int iVar5; | |
undefined8 uVar6; | |
piVar1 = DAT_8f69d118; | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
if (DAT_8f67f324 == 1) { | |
FUN_8f625b9c(); | |
} | |
iVar2 = DAT_8f69dc24; | |
iVar5 = DAT_8f69dc24 + 0xc; | |
uVar3 = *(uint *)(DAT_8f69dc24 + 0x14); | |
*(undefined4 *)(DAT_8f69dc24 + 0x20) = 0; | |
uVar4 = (&DAT_8f690020)[uVar3 * 2]; | |
*(undefined *)(iVar2 + 0x18) = 1; | |
DAT_8f69001c = DAT_8f69001c | 1 << (uVar3 & 0xff); | |
*(undefined4 **)(iVar2 + 0x10) = &DAT_8f690020 + uVar3 * 2; | |
*(undefined4 *)(iVar2 + 0xc) = uVar4; | |
*(int *)((&DAT_8f690020)[uVar3 * 2] + 4) = iVar5; | |
(&DAT_8f690020)[uVar3 * 2] = iVar5; | |
uVar6 = FUN_8f627630(); | |
DAT_8f67f324 = DAT_8f67f324 + -1; | |
if (DAT_8f67f324 == 0) { | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f625b8c(); | |
return; | |
} | |
} | |
else if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar6,(int)((ulonglong)uVar6 >> 0x20),piVar1); | |
} | |
void FUN_8f6279f4(int param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 uVar2; | |
int iVar3; | |
uint uVar4; | |
piVar1 = DAT_8f69d118; | |
if ((byte)(*(char *)(param_1 + 0x18) - 1U) < 2) { | |
iVar3 = -10; | |
} | |
else { | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
if (DAT_8f67f324 == 1) { | |
FUN_8f625b9c(); | |
} | |
uVar4 = *(uint *)(param_1 + 0x14); | |
*(undefined *)(param_1 + 0x18) = 1; | |
uVar2 = (&DAT_8f690024)[uVar4 * 2]; | |
DAT_8f69001c = DAT_8f69001c | 1 << (uVar4 & 0xff); | |
*(undefined4 **)(param_1 + 0xc) = &DAT_8f690020 + uVar4 * 2; | |
*(undefined4 *)(param_1 + 0x10) = uVar2; | |
*(int *)(&DAT_8f690024)[uVar4 * 2] = param_1 + 0xc; | |
(&DAT_8f690024)[uVar4 * 2] = param_1 + 0xc; | |
FUN_8f627914(); | |
iVar3 = DAT_8f67f324 + -1; | |
DAT_8f67f324 = iVar3; | |
if (iVar3 == 0) { | |
FUN_8f625b8c(); | |
param_2 = extraout_r1_00; | |
} | |
else { | |
iVar3 = 0; | |
param_2 = extraout_r1; | |
} | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar3,param_2,piVar1); | |
} | |
return; | |
} | |
void FUN_8f627adc(void) | |
{ | |
int *piVar1; | |
int *piVar2; | |
int iVar3; | |
undefined4 uVar4; | |
uint uVar5; | |
undefined8 uVar6; | |
piVar2 = DAT_8f69d118; | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
if (DAT_8f67f324 == 1) { | |
FUN_8f625b9c(); | |
} | |
iVar3 = DAT_8f69dc24; | |
piVar1 = (int *)(DAT_8f69dc24 + 0x20); | |
*(undefined *)(DAT_8f69dc24 + 0x18) = 1; | |
if (*piVar1 < 1) { | |
uVar5 = *(uint *)(iVar3 + 0x14); | |
uVar4 = (&DAT_8f690020)[uVar5 * 2]; | |
*(undefined4 **)(iVar3 + 0x10) = &DAT_8f690020 + uVar5 * 2; | |
*(undefined4 *)(iVar3 + 0xc) = uVar4; | |
DAT_8f69001c = DAT_8f69001c | 1 << (uVar5 & 0xff); | |
*(int *)((&DAT_8f690020)[uVar5 * 2] + 4) = iVar3 + 0xc; | |
(&DAT_8f690020)[uVar5 * 2] = iVar3 + 0xc; | |
} | |
else { | |
uVar5 = *(uint *)(iVar3 + 0x14); | |
uVar4 = (&DAT_8f690024)[uVar5 * 2]; | |
*(undefined4 **)(iVar3 + 0xc) = &DAT_8f690020 + uVar5 * 2; | |
DAT_8f69001c = DAT_8f69001c | 1 << (uVar5 & 0xff); | |
*(undefined4 *)(iVar3 + 0x10) = uVar4; | |
*(int *)(&DAT_8f690024)[uVar5 * 2] = iVar3 + 0xc; | |
(&DAT_8f690024)[uVar5 * 2] = iVar3 + 0xc; | |
} | |
uVar6 = FUN_8f627630(); | |
DAT_8f67f324 = DAT_8f67f324 + -1; | |
if (DAT_8f67f324 == 0) { | |
if (piVar2 == DAT_8f69d118) { | |
FUN_8f625b8c(); | |
return; | |
} | |
} | |
else if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar6,(int)((ulonglong)uVar6 >> 0x20),piVar2); | |
} | |
void FUN_8f627c04(void) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
if (DAT_8f67f324 == 1) { | |
FUN_8f625b9c(); | |
} | |
uVar2 = FUN_8f627630(); | |
DAT_8f67f324 = DAT_8f67f324 + -1; | |
if (DAT_8f67f324 == 0) { | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f625b8c(); | |
return; | |
} | |
} | |
else if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
void FUN_8f627c88(void) | |
{ | |
int *piVar1; | |
int iVar2; | |
int iVar3; | |
undefined4 uVar4; | |
iVar2 = DAT_8f69dc24; | |
piVar1 = DAT_8f69d118; | |
if (DAT_8f69dc24 == DAT_8f69dc20) { | |
uVar4 = 0; | |
} | |
else { | |
iVar3 = *(int *)(DAT_8f69dc24 + 0x20) + -1; | |
*(int *)(DAT_8f69dc24 + 0x20) = iVar3; | |
if (iVar3 < 1) { | |
uVar4 = 1; | |
} | |
else { | |
uVar4 = 0; | |
} | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar4,iVar2,piVar1); | |
} | |
return; | |
} | |
void FUN_8f627cfc(int param_1) | |
{ | |
int iVar1; | |
undefined4 extraout_r1; | |
undefined8 uVar2; | |
int aiStack_38 [7]; | |
int *local_1c; | |
local_1c = DAT_8f69d118; | |
FUN_8f628760(aiStack_38); | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
if (DAT_8f67f324 == 1) { | |
FUN_8f625b9c(); | |
} | |
FUN_8f6287bc(aiStack_38,param_1,(int)FUN_8f627500,DAT_8f69dc24); | |
*(undefined *)(DAT_8f69dc24 + 0x18) = 4; | |
uVar2 = FUN_8f627630(); | |
DAT_8f67f324 = DAT_8f67f324 + -1; | |
if (DAT_8f67f324 == 0) { | |
iVar1 = FUN_8f625b8c(); | |
uVar2 = CONCAT44(extraout_r1,iVar1); | |
} | |
if (local_1c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),local_1c); | |
} | |
void FUN_8f627da8(void) | |
{ | |
int iVar1; | |
undefined4 *puVar2; | |
bool bVar3; | |
iVar1 = DAT_8f69d118; | |
puVar2 = &DAT_8f690020; | |
do { | |
puVar2[1] = puVar2; | |
*puVar2 = puVar2; | |
puVar2 = puVar2 + 2; | |
} while ((undefined4 **)puVar2 != &DAT_8f690120); | |
DAT_8f690124 = &DAT_8f690120; | |
DAT_8f690120 = &DAT_8f690120; | |
FUN_8f636968(&DAT_8f690128,0,100); | |
DAT_8f690128 = 0x74687264; | |
FUN_8f636d18((int)&DAT_8f69016c,(byte *)s_bootstrap_8f662354,0x20); | |
puVar2 = DAT_8f690124; | |
bVar3 = iVar1 == DAT_8f69d118; | |
DAT_8f69012c = &DAT_8f690120; | |
DAT_8f69013c = 0x1f; | |
DAT_8f690140 = 2; | |
DAT_8f690144 = 1; | |
DAT_8f690130 = DAT_8f690124; | |
*DAT_8f690124 = &DAT_8f69012c; | |
DAT_8f690124 = &DAT_8f69012c; | |
DAT_8f69dc24 = &DAT_8f690128; | |
if (bVar3) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(1,puVar2,(int *)&DAT_8f69dc24); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f627eb0) | |
void FUN_8f627e80(undefined4 param_1,undefined4 param_2) | |
{ | |
return; | |
} | |
void FUN_8f627eb4(void) | |
{ | |
FUN_8f636d18(DAT_8f69dc24 + 0x44,&DAT_8f662360,0x20); | |
DAT_8f69dc20 = DAT_8f69dc24; | |
*(undefined4 *)(DAT_8f69dc24 + 0x14) = 0; | |
do { | |
FUN_8f625c30(); | |
} while( true ); | |
} | |
void FUN_8f627f60(int param_1,int param_2) | |
{ | |
int iVar1; | |
undefined4 uVar2; | |
int extraout_r1; | |
int extraout_r1_00; | |
int iVar3; | |
int iVar4; | |
int iVar5; | |
int aiStack_38 [7]; | |
int *local_1c; | |
iVar1 = DAT_8f69dc24; | |
local_1c = DAT_8f69d118; | |
if (param_2 == 0) { | |
uVar2 = 0xfffffff3; | |
} | |
else { | |
iVar3 = *(int *)(param_1 + 0xc); | |
iVar5 = DAT_8f69dc24 + 0xc; | |
*(undefined4 *)(DAT_8f69dc24 + 0xc) = *(undefined4 *)(param_1 + 4); | |
iVar4 = *(int *)(param_1 + 4); | |
*(undefined4 **)(iVar1 + 0x10) = (undefined4 *)(param_1 + 4); | |
*(int *)(iVar4 + 4) = iVar5; | |
*(int *)(param_1 + 4) = iVar5; | |
*(int *)(param_1 + 0xc) = iVar3 + 1; | |
*(int *)(iVar1 + 0x24) = param_1; | |
*(undefined *)(iVar1 + 0x18) = 3; | |
*(undefined4 *)(iVar1 + 0x28) = 0; | |
if (param_2 == -1) { | |
FUN_8f627c04(); | |
param_2 = extraout_r1_00; | |
} | |
else { | |
FUN_8f628760(aiStack_38); | |
FUN_8f6287bc(aiStack_38,param_2,(int)FUN_8f628488,DAT_8f69dc24); | |
FUN_8f627c04(); | |
FUN_8f628808((int)aiStack_38); | |
param_2 = extraout_r1; | |
} | |
uVar2 = *(undefined4 *)(DAT_8f69dc24 + 0x28); | |
} | |
if (local_1c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,param_2,local_1c); | |
} | |
void FUN_8f628034(int param_1,undefined4 *param_2,int param_3) | |
{ | |
int *piVar1; | |
undefined4 *extraout_r1; | |
int *piVar2; | |
undefined4 uVar3; | |
uint uVar4; | |
int iVar5; | |
int iVar6; | |
uint uVar7; | |
undefined4 uVar8; | |
int *piVar9; | |
piVar1 = DAT_8f69d118; | |
piVar9 = *(int **)(param_1 + 8); | |
if (piVar9 != (int *)(param_1 + 4)) { | |
piVar2 = (int *)piVar9[1]; | |
*piVar2 = *piVar9; | |
*(int **)(*piVar9 + 4) = piVar2; | |
piVar9[1] = 0; | |
*piVar9 = 0; | |
if (piVar9 != (int *)0xc) { | |
uVar3 = 1; | |
*(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + -1; | |
piVar9[7] = param_3; | |
piVar9[6] = 0; | |
*(undefined *)(piVar9 + 3) = 1; | |
iVar6 = DAT_8f69dc24; | |
if (param_2 == (undefined4 *)0x0) { | |
uVar4 = piVar9[2]; | |
param_2 = &DAT_8f69001c; | |
uVar3 = 1; | |
iVar6 = (&DAT_8f690024)[uVar4 * 2]; | |
*piVar9 = (int)(&DAT_8f690020 + uVar4 * 2); | |
DAT_8f69001c = DAT_8f69001c | 1 << (uVar4 & 0xff); | |
piVar9[1] = iVar6; | |
*(int **)(&DAT_8f690024)[uVar4 * 2] = piVar9; | |
(&DAT_8f690024)[uVar4 * 2] = piVar9; | |
} | |
else { | |
uVar4 = piVar9[2]; | |
uVar7 = *(uint *)(DAT_8f69dc24 + 0x14); | |
iVar5 = DAT_8f69dc24 + 0xc; | |
*(undefined *)(DAT_8f69dc24 + 0x18) = 1; | |
DAT_8f69001c = DAT_8f69001c | 1 << (uVar7 & 0xff) | 1 << (uVar4 & 0xff); | |
uVar8 = (&DAT_8f690024)[uVar7 * 2]; | |
*(undefined4 **)(iVar6 + 0xc) = &DAT_8f690020 + uVar7 * 2; | |
*(undefined4 *)(iVar6 + 0x10) = uVar8; | |
*(int *)(&DAT_8f690024)[uVar7 * 2] = iVar5; | |
(&DAT_8f690024)[uVar7 * 2] = iVar5; | |
iVar6 = (&DAT_8f690024)[uVar4 * 2]; | |
*piVar9 = (int)(&DAT_8f690020 + uVar4 * 2); | |
piVar9[1] = iVar6; | |
*(int **)(&DAT_8f690024)[uVar4 * 2] = piVar9; | |
(&DAT_8f690024)[uVar4 * 2] = piVar9; | |
FUN_8f627630(); | |
param_2 = extraout_r1; | |
} | |
goto LAB_8f6280ec; | |
} | |
} | |
uVar3 = 0; | |
LAB_8f6280ec: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar3,param_2,piVar1); | |
} | |
// WARNING: Restarted to delay deadcode elimination for space: ram | |
void FUN_8f628190(int param_1,int *param_2,int param_3) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
int *piVar3; | |
int iVar4; | |
int *extraout_r1; | |
uint uVar5; | |
int *piVar6; | |
int iVar7; | |
int *piVar8; | |
iVar4 = DAT_8f69dc24; | |
piVar1 = DAT_8f69d118; | |
if ((param_2 != (int *)0x0) && (0 < *(int *)(param_1 + 0xc))) { | |
iVar7 = DAT_8f69dc24 + 0xc; | |
uVar5 = *(uint *)(DAT_8f69dc24 + 0x14); | |
*(undefined *)(DAT_8f69dc24 + 0x18) = 1; | |
DAT_8f69001c = DAT_8f69001c | 1 << (uVar5 & 0xff); | |
uVar2 = (&DAT_8f690024)[uVar5 * 2]; | |
*(undefined4 **)(iVar4 + 0xc) = &DAT_8f690020 + uVar5 * 2; | |
*(undefined4 *)(iVar4 + 0x10) = uVar2; | |
*(int *)(&DAT_8f690024)[uVar5 * 2] = iVar7; | |
(&DAT_8f690024)[uVar5 * 2] = iVar7; | |
} | |
piVar3 = *(int **)(param_1 + 8); | |
if ((int *)(param_1 + 4) != piVar3) { | |
piVar8 = (int *)piVar3[1]; | |
piVar6 = (int *)0x0; | |
*piVar8 = *piVar3; | |
*(int **)(*piVar3 + 4) = piVar8; | |
piVar3[1] = 0; | |
piVar8 = piVar3 + -3; | |
*piVar3 = 0; | |
if (piVar8 != (int *)0x0) { | |
iVar4 = *(int *)(param_1 + 0xc); | |
do { | |
uVar5 = piVar8[5]; | |
DAT_8f69001c = DAT_8f69001c | 1 << (uVar5 & 0xff); | |
*(undefined *)(piVar8 + 6) = 1; | |
piVar8[9] = 0; | |
piVar8[10] = param_3; | |
iVar7 = (&DAT_8f690024)[uVar5 * 2]; | |
piVar8[3] = (int)(&DAT_8f690020 + uVar5 * 2); | |
piVar8[4] = iVar7; | |
iVar7 = (iVar4 + -1) - (int)piVar6; | |
piVar6 = (int *)((int)piVar6 + 1); | |
*(int **)(&DAT_8f690024)[uVar5 * 2] = piVar8 + 3; | |
(&DAT_8f690024)[uVar5 * 2] = piVar8 + 3; | |
piVar3 = *(int **)(param_1 + 8); | |
if (piVar3 == (int *)(param_1 + 4)) { | |
*(int *)(param_1 + 0xc) = iVar7; | |
goto LAB_8f628304; | |
} | |
piVar8 = (int *)piVar3[1]; | |
*piVar8 = *piVar3; | |
*(int **)(*piVar3 + 4) = piVar8; | |
piVar3[1] = 0; | |
piVar8 = piVar3 + -3; | |
*piVar3 = 0; | |
} while (piVar8 != (int *)0x0); | |
*(int *)(param_1 + 0xc) = iVar7; | |
LAB_8f628304: | |
piVar8 = param_2; | |
if (param_2 != (int *)0x0) { | |
piVar8 = piVar6; | |
} | |
piVar3 = param_2; | |
if ((param_2 != (int *)0x0 && piVar6 != (int *)0x0) && -1 < (int)piVar8) { | |
FUN_8f627630(); | |
piVar3 = extraout_r1; | |
} | |
goto LAB_8f628314; | |
} | |
} | |
piVar6 = (int *)0x0; | |
LAB_8f628314: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(piVar6,piVar3,piVar1); | |
} | |
void FUN_8f628358(int param_1,int param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
int extraout_r1; | |
int extraout_r1_00; | |
int iVar2; | |
int *piVar3; | |
uint uVar4; | |
undefined4 *puVar5; | |
undefined4 uVar6; | |
int iVar7; | |
bool bVar8; | |
piVar1 = DAT_8f69d118; | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
if (DAT_8f67f324 == 1) { | |
FUN_8f625b9c(); | |
} | |
if (*(char *)(param_1 + 0x18) == '\x03') { | |
puVar5 = *(undefined4 **)(param_1 + 0x10); | |
uVar4 = *(uint *)(param_1 + 0x14); | |
iVar2 = *(int *)(param_1 + 0x24); | |
*puVar5 = *(undefined4 *)(param_1 + 0xc); | |
iVar7 = *(int *)(iVar2 + 0xc); | |
bVar8 = param_2 != 0; | |
*(undefined4 **)(*(int *)(param_1 + 0xc) + 4) = puVar5; | |
*(undefined4 *)(param_1 + 0x10) = 0; | |
uVar6 = (&DAT_8f690024)[uVar4 * 2]; | |
DAT_8f69001c = DAT_8f69001c | 1 << (uVar4 & 0xff); | |
*(int *)(iVar2 + 0xc) = iVar7 + -1; | |
param_2 = param_1 + 0xc; | |
*(undefined4 **)(param_1 + 0xc) = &DAT_8f690020 + uVar4 * 2; | |
*(undefined4 *)(param_1 + 0x10) = uVar6; | |
piVar3 = (int *)(&DAT_8f690024)[uVar4 * 2]; | |
*(undefined4 *)(param_1 + 0x24) = 0; | |
*(undefined4 *)(param_1 + 0x28) = param_3; | |
*(undefined *)(param_1 + 0x18) = 1; | |
*piVar3 = param_2; | |
(&DAT_8f690024)[uVar4 * 2] = param_2; | |
if (bVar8) { | |
FUN_8f627630(); | |
param_2 = extraout_r1_00; | |
} | |
iVar2 = DAT_8f67f324 + -1; | |
DAT_8f67f324 = iVar2; | |
if (iVar2 == 0) { | |
FUN_8f625b8c(); | |
param_2 = extraout_r1; | |
} | |
else { | |
iVar2 = 0; | |
} | |
} | |
else { | |
iVar2 = -0xc; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar2,param_2,piVar1); | |
} | |
return; | |
} | |
void FUN_8f628488(undefined4 param_1,undefined4 param_2,int param_3) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
uVar2 = FUN_8f628358(param_3,0,0xfffffff3); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(~(uint)uVar2 >> 0x1f,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
void FUN_8f6284d4(int param_1) | |
{ | |
int iVar1; | |
int *piVar2; | |
int iVar3; | |
int *piVar4; | |
undefined4 *puVar5; | |
undefined4 *puVar6; | |
undefined4 uVar7; | |
piVar2 = DAT_8f69d118; | |
iVar1 = DAT_8f69018c; | |
puVar6 = DAT_8f690190 + -1; | |
piVar4 = DAT_8f69d118; | |
if (DAT_8f690190 == &DAT_8f69018c) { | |
LAB_8f62853c: | |
*(int **)(param_1 + 8) = &DAT_8f69018c; | |
iVar3 = param_1 + 4; | |
*(int *)(param_1 + 4) = DAT_8f69018c; | |
DAT_8f69018c = iVar3; | |
*(int *)(iVar1 + 4) = param_1 + 4; | |
} | |
else { | |
piVar4 = (int *)(DAT_8f690190[2] - *(int *)(param_1 + 0xc)); | |
puVar5 = DAT_8f690190; | |
while ((int)piVar4 < 1) { | |
puVar5 = (undefined4 *)puVar6[2]; | |
puVar6 = puVar5 + -1; | |
if (puVar5 == &DAT_8f69018c) goto LAB_8f62853c; | |
piVar4 = (int *)(puVar5[2] - *(int *)(param_1 + 0xc)); | |
} | |
uVar7 = puVar6[1]; | |
piVar4 = (int *)(param_1 + 4); | |
*(undefined4 **)(param_1 + 8) = puVar5; | |
*(undefined4 *)(param_1 + 4) = uVar7; | |
*(int **)(puVar6[1] + 4) = piVar4; | |
puVar6[1] = piVar4; | |
} | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,piVar4,piVar2); | |
} | |
void FUN_8f628590(int *param_1,int param_2,int param_3,int param_4,int param_5) | |
{ | |
int *piVar1; | |
int iVar2; | |
int *in_lr; | |
bool bVar3; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
iVar2 = param_4; | |
if ((param_1[1] != 0) || (iVar2 = param_1[2], iVar2 != 0)) { | |
FUN_8f6353a0(in_lr,(byte *)s_timer__p_already_in_list_8f662368,param_1,iVar2); | |
} | |
iVar2 = FUN_8f610438(); | |
param_1[4] = param_3; | |
param_1[5] = param_4; | |
param_1[6] = param_5; | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
bVar3 = DAT_8f67f324 == 1; | |
param_1[3] = iVar2 + param_2; | |
if (bVar3) { | |
FUN_8f625b9c(); | |
} | |
uVar4 = FUN_8f6284d4((int)param_1); | |
DAT_8f67f324 = DAT_8f67f324 + -1; | |
if (DAT_8f67f324 == 0) { | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f625b8c(); | |
return; | |
} | |
} | |
else if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),piVar1); | |
} | |
void FUN_8f628674(undefined4 param_1,int param_2) | |
{ | |
int *piVar1; | |
int *piVar2; | |
undefined4 extraout_r1; | |
int iVar3; | |
int iVar4; | |
code *pcVar5; | |
int *piVar6; | |
int *piVar7; | |
piVar2 = DAT_8f69d118; | |
while ((((piVar1 = DAT_8f690190, DAT_8f690190 != &DAT_8f69018c && (DAT_8f690190 != (int *)0x0)) && | |
(piVar6 = DAT_8f690190 + -1, piVar6 != (int *)0x0)) && (-1 < param_2 - DAT_8f690190[2]))) | |
{ | |
piVar7 = (int *)DAT_8f690190[1]; | |
iVar4 = DAT_8f690190[3]; | |
pcVar5 = (code *)DAT_8f690190[4]; | |
*piVar7 = *DAT_8f690190; | |
iVar3 = piVar1[5]; | |
*(int **)(*piVar1 + 4) = piVar7; | |
piVar1[1] = 0; | |
*piVar1 = 0; | |
(*pcVar5)(piVar6,param_2,iVar3); | |
if (((iVar4 != 0) && (*piVar1 == 0)) && ((piVar1[1] == 0 && (piVar1[3] != 0)))) { | |
piVar1[2] = param_2 + piVar1[3]; | |
FUN_8f6284d4((int)piVar6); | |
} | |
} | |
FUN_8f627c88(); | |
if (piVar2 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(1,extraout_r1,piVar2); | |
} | |
void FUN_8f628760(undefined4 *param_1) | |
{ | |
int *piVar1; | |
int *piVar2; | |
piVar1 = DAT_8f69d118; | |
*param_1 = 0x74696d72; | |
param_1[2] = 0; | |
piVar2 = DAT_8f69d118; | |
param_1[1] = 0; | |
param_1[3] = 0; | |
param_1[4] = 0; | |
param_1[5] = 0; | |
param_1[6] = 0; | |
if (piVar1 == piVar2) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,piVar1,piVar2); | |
} | |
void FUN_8f6287bc(int *param_1,int param_2,int param_3,int param_4) | |
{ | |
int *piVar1; | |
undefined8 uVar2; | |
piVar1 = DAT_8f69d118; | |
if (param_2 == 0) { | |
param_2 = 1; | |
} | |
uVar2 = FUN_8f628590(param_1,param_2,0,param_3,param_4); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar2,(int)((ulonglong)uVar2 >> 0x20),piVar1); | |
} | |
void FUN_8f628808(int param_1) | |
{ | |
int *piVar1; | |
int iVar2; | |
int *piVar3; | |
bool bVar4; | |
piVar1 = DAT_8f69d118; | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
if (DAT_8f67f324 == 1) { | |
FUN_8f625b9c(); | |
} | |
iVar2 = *(int *)(param_1 + 4); | |
piVar3 = *(int **)(param_1 + 8); | |
if ((iVar2 != 0) || (piVar3 != (int *)0x0)) { | |
*piVar3 = iVar2; | |
iVar2 = 0; | |
*(int **)(*(int *)(param_1 + 4) + 4) = piVar3; | |
*(undefined4 *)(param_1 + 8) = 0; | |
*(undefined4 *)(param_1 + 4) = 0; | |
} | |
DAT_8f67f324 = DAT_8f67f324 + -1; | |
bVar4 = DAT_8f67f324 == 0; | |
*(undefined4 *)(param_1 + 0x10) = 0; | |
*(undefined4 *)(param_1 + 0x14) = 0; | |
*(undefined4 *)(param_1 + 0x18) = 0; | |
if (bVar4) { | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f625b8c(); | |
return; | |
} | |
} | |
else if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(param_1,iVar2,piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f628924) | |
void FUN_8f6288d0(undefined4 param_1) | |
{ | |
int *piVar1; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 uVar2; | |
piVar1 = DAT_8f69d118; | |
DAT_8f690190 = &DAT_8f69018c; | |
DAT_8f69018c = &DAT_8f69018c; | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
if (DAT_8f67f324 == 1) { | |
FUN_8f625b9c(); | |
} | |
FUN_8f610678(10,FUN_8f628674,0); | |
DAT_8f67f324 = DAT_8f67f324 + -1; | |
uVar2 = extraout_r1; | |
if (DAT_8f67f324 == 0) { | |
FUN_8f625b8c(); | |
uVar2 = extraout_r1_00; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,uVar2,piVar1); | |
} | |
return; | |
} | |
void FUN_8f628928(int param_1) | |
{ | |
int *piVar1; | |
undefined4 extraout_r1; | |
piVar1 = DAT_8f69d118; | |
(**(code **)(param_1 + 8))(param_1,0); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(0,extraout_r1,piVar1); | |
} | |
void FUN_8f62896c(undefined4 param_1,undefined4 param_2,undefined4 *param_3) | |
{ | |
int *piVar1; | |
undefined **ppuVar2; | |
undefined *puVar3; | |
undefined4 *puVar4; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
uVar5 = CONCAT44(param_2,param_1); | |
ppuVar2 = &PTR_s_aboot_8f675088; | |
do { | |
if ((code *)ppuVar2[1] != (code *)0x0) { | |
uVar5 = (*(code *)ppuVar2[1])(ppuVar2); | |
} | |
ppuVar2 = ppuVar2 + 4; | |
} while (ppuVar2 != (undefined **)&DAT_8f675098); | |
puVar4 = (undefined4 *)(PTR_DAT_8f628a58 + -0x10); | |
puVar3 = PTR_DAT_8f628a58; | |
do { | |
while ((*(int *)(puVar3 + -8) == 0 || ((*(uint *)(puVar3 + -4) & 1) != 0))) { | |
LAB_8f6289cc: | |
puVar4 = puVar4 + 4; | |
puVar3 = puVar3 + 0x10; | |
if (puVar4 == &DAT_8f675098) goto LAB_8f628a3c; | |
} | |
FUN_8f635ec8((byte *)s_starting_app__s_8f662384,*(int **)(puVar3 + -0x10),param_3, | |
*(uint *)(puVar3 + -4)); | |
param_3 = puVar4; | |
uVar5 = FUN_8f627744(*(byte **)(puVar3 + -0x10),(uint)FUN_8f628928,(uint)puVar4,0x10,0x2000); | |
if ((int)uVar5 == 0) goto LAB_8f6289cc; | |
puVar4 = puVar4 + 4; | |
uVar5 = FUN_8f6279f4((int)uVar5,(int)((ulonglong)uVar5 >> 0x20)); | |
puVar3 = puVar3 + 0x10; | |
} while (puVar4 != &DAT_8f675098); | |
LAB_8f628a3c: | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),piVar1); | |
} | |
return; | |
} | |
void FUN_8f628a5c(int param_1,int param_2,char *param_3) | |
{ | |
int *piVar1; | |
int iVar2; | |
undefined4 uVar3; | |
bool bVar4; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
if (param_2 == 0) { | |
uVar5 = FUN_8f604c84(param_1,0,param_3); | |
uVar3 = (undefined4)((ulonglong)uVar5 >> 0x20); | |
iVar2 = (int)uVar5 + 0x8000; | |
*(int *)(param_1 + 0xc) = iVar2; | |
} | |
else { | |
uVar5 = FUN_8f604c84(param_1,param_2,param_3); | |
uVar3 = (undefined4)((ulonglong)uVar5 >> 0x20); | |
iVar2 = (int)uVar5 + 0x80000; | |
*(int *)(param_1 + 0xc) = iVar2; | |
} | |
uVar5 = FUN_8f604c84(iVar2,uVar3,param_3); | |
iVar2 = (int)uVar5 + 0x3600000; | |
*(int *)(param_1 + 0x14) = iVar2; | |
uVar5 = FUN_8f604c84(iVar2,(int)((ulonglong)uVar5 >> 0x20),param_3); | |
bVar4 = piVar1 == DAT_8f69d118; | |
iVar2 = (int)uVar5 + 0x3400000; | |
*(int *)(param_1 + 0x20) = iVar2; | |
if (bVar4) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar2,(int)((ulonglong)uVar5 >> 0x20),piVar1); | |
} | |
void FUN_8f628ad0(void) | |
{ | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 uVar1; | |
int *piVar2; | |
char *pcVar3; | |
undefined8 uVar4; | |
int aiStack_5c [16]; | |
int *local_1c; | |
pcVar3 = s_false_8f6623c0; | |
piVar2 = (int *)pcVar3; | |
if (DAT_8f6903f4 != 0) { | |
piVar2 = (int *)0x8f6623b8; | |
} | |
local_1c = DAT_8f69d118; | |
FUN_8f636618((byte *)aiStack_5c,0x40,(byte *)s__factory_info_valid___s_8f6623c8,piVar2); | |
FUN_8f62dfbc(aiStack_5c); | |
uVar1 = extraout_r1; | |
if (DAT_8f6903f4 != 0) { | |
if (DAT_8f6903f8 != 0) { | |
pcVar3 = (char *)(int *)0x8f6623b8; | |
} | |
FUN_8f636618((byte *)aiStack_5c,0x40,(byte *)s__factory_mode___s_8f6623e0,(int *)pcVar3); | |
FUN_8f62dfbc(aiStack_5c); | |
FUN_8f636618((byte *)aiStack_5c,0x40,(byte *)s__model_name___s_8f6623f4,(int *)&DAT_8f690194); | |
FUN_8f62dfbc(aiStack_5c); | |
FUN_8f636618((byte *)aiStack_5c,0x40,(byte *)s__serial_number___s_8f662404,(int *)&DAT_8f69dcac) | |
; | |
FUN_8f62dfbc(aiStack_5c); | |
FUN_8f636618((byte *)aiStack_5c,0x40,(byte *)s__Wi_Fi_MAC___s_8f662418,(int *)&DAT_8f6903c8); | |
FUN_8f62dfbc(aiStack_5c); | |
FUN_8f636618((byte *)aiStack_5c,0x40,(byte *)s__bluetooth_MAC___s_8f662428,(int *)&DAT_8f6903b4) | |
; | |
FUN_8f62dfbc(aiStack_5c); | |
FUN_8f636618((byte *)aiStack_5c,0x40,(byte *)s__battery_type___s_8f66243c,(int *)&DAT_8f691448); | |
FUN_8f62dfbc(aiStack_5c); | |
uVar1 = extraout_r1_00; | |
} | |
uVar4 = FUN_8f62e1b4(s__device_command_failed__8f66183c + 0x1c,uVar1); | |
if (local_1c == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),local_1c); | |
} | |
void FUN_8f628c48(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
uVar3 = FUN_8f62e1b4(s__device_command_failed__8f66183c + 0x1c,param_2); | |
uVar2 = (undefined4)((ulonglong)uVar3 >> 0x20); | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f624d1c(0,uVar2,piVar1); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar3,uVar2,piVar1); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f62e1b0) | |
void FUN_8f628c90(undefined4 param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
int *piVar2; | |
undefined4 extraout_r1; | |
int *extraout_r1_00; | |
int *piVar3; | |
undefined8 uVar4; | |
piVar1 = DAT_8f69d118; | |
piVar3 = DAT_8f69d118; | |
uVar4 = FUN_8f600724(-0xffffffe,param_2,param_3); | |
piVar2 = (int *)((ulonglong)uVar4 >> 0x20); | |
if ((int)uVar4 == 0) { | |
FUN_8f62e1b4(s__device_command_failed__8f66183c + 0x1c,piVar2); | |
FUN_8f624d1c(0xf0000002,extraout_r1,param_3); | |
uVar4 = dprintf((byte *)s_Failed_to_reboot_into_dload_mode_8f662474,extraout_r1_00,param_3, | |
piVar3); | |
} | |
else { | |
uVar4 = dprintf((byte *)s_dload_mode_not_supported_by_targ_8f662450,piVar2,param_3,piVar3); | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar4,(int)((ulonglong)uVar4 >> 0x20),piVar1); | |
} | |
FUN_8f62da38((int *)&DAT_8f663fa4,s_Failed_to_reboot_into_dload_mode_8f662498); | |
return; | |
} | |
void FUN_8f628d10(undefined4 param_1,undefined4 param_2) | |
{ | |
int iVar1; | |
int *piVar2; | |
int iVar3; | |
undefined *puVar4; | |
undefined8 uVar5; | |
iVar1 = DAT_8f69d118; | |
piVar2 = (int *)FUN_8f6268ac(param_1,param_2); | |
puVar4 = &DAT_8f6624c4; | |
uVar5 = FUN_8f636618(&DAT_8f69ddc0,0x40,&DAT_8f6624c4,piVar2); | |
iVar3 = FUN_8f626970((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),puVar4); | |
piVar2 = (int *)&DAT_8f6624bc; | |
if (iVar3 == 0) { | |
piVar2 = (int *)&DAT_8f6624c0; | |
} | |
if (iVar1 == DAT_8f69d118) { | |
FUN_8f636618(&DAT_8f69dc2c,0x40,(byte *)(s__bluetooth_MAC___s_8f662428 + 0x10),piVar2); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar3,DAT_8f69d118,(int *)&DAT_8f6624c0); | |
} | |
void FUN_8f628d98(byte *param_1,undefined4 param_2,int param_3) | |
{ | |
int *piVar1; | |
byte bVar2; | |
int *piVar3; | |
int iVar4; | |
int iVar5; | |
int iVar6; | |
int iVar7; | |
int iVar8; | |
int iVar9; | |
int iVar10; | |
int iVar11; | |
int iVar12; | |
int iVar13; | |
uint *puVar14; | |
uint *puVar15; | |
byte *pbVar16; | |
undefined4 uVar17; | |
char *pcVar18; | |
undefined4 extraout_r1; | |
byte *pbVar19; | |
undefined4 extraout_r1_00; | |
uint uVar20; | |
uint *puVar21; | |
byte *pbVar22; | |
byte *pbVar23; | |
byte *pbVar24; | |
byte *pbVar25; | |
uint *puVar26; | |
char *unaff_r10; | |
byte *pbVar27; | |
int *in_lr; | |
bool bVar28; | |
undefined8 uVar29; | |
undefined8 uVar30; | |
int local_4c; | |
int local_44; | |
byte *local_34; | |
piVar3 = DAT_8f69d118; | |
iVar4 = FUN_8f606984(); | |
uVar29 = FUN_8f60ed2c(); | |
iVar13 = (int)uVar29; | |
pbVar25 = param_1; | |
local_34 = param_1; | |
if ((param_1 != (byte *)0x0) && | |
(pbVar25 = (byte *)(uint)*param_1, local_34 = pbVar25, pbVar25 != (byte *)0x0)) { | |
local_34 = (byte *)0x1; | |
uVar29 = FUN_8f636de0(param_1); | |
pbVar25 = (byte *)uVar29; | |
} | |
iVar5 = FUN_8f626460((int)uVar29,(int)((ulonglong)uVar29 >> 0x20)); | |
if (iVar5 != 0) { | |
iVar5 = FUN_8f636de0((byte *)s__androidboot_emmc_true_8f6624d4); | |
pbVar25 = pbVar25 + iVar5; | |
} | |
iVar5 = FUN_8f636de0((byte *)s__androidboot_serialno__8f6624ec); | |
iVar6 = FUN_8f636de0(&DAT_8f69dcac); | |
if (DAT_8f6903f4 == 0) { | |
unaff_r10 = s_ANDROID_BOOT__8f67f340; | |
} | |
pbVar25 = pbVar25 + iVar6 + iVar5; | |
if (DAT_8f6903f4 != 0) { | |
iVar5 = FUN_8f636de0((byte *)s__androidboot_model__8f662504); | |
iVar6 = FUN_8f636de0(&DAT_8f690194); | |
iVar7 = FUN_8f636de0((byte *)s__androidboot_wifimacaddr__8f662518); | |
iVar8 = FUN_8f636de0(&DAT_8f6903c8); | |
iVar9 = FUN_8f636de0((byte *)s__androidboot_btmacaddr__8f662534); | |
iVar10 = FUN_8f636de0(&DAT_8f6903b4); | |
iVar11 = FUN_8f636de0((byte *)s__androidboot_battery_type__8f66254c); | |
iVar12 = FUN_8f636de0(&DAT_8f691448); | |
pbVar25 = pbVar25 + iVar12 + iVar11 + iVar10 + iVar9 + iVar8 + iVar7 + iVar5 + iVar6; | |
if (DAT_8f6903f8 == 0) { | |
unaff_r10 = s_ANDROID_BOOT__8f67f340; | |
if (DAT_8f6903fc != 0) { | |
DAT_8f67f35c = 1; | |
} | |
DAT_8f67f328 = 1; | |
param_3 = DAT_8f6903fc; | |
if (DAT_8f6903fc == 0) { | |
DAT_8f67f35c = DAT_8f6903fc; | |
} | |
} | |
else { | |
iVar5 = FUN_8f636de0(&DAT_8f690410); | |
unaff_r10 = s_ANDROID_BOOT__8f67f340; | |
DAT_8f67f35c = 0; | |
pbVar25 = pbVar25 + iVar5; | |
} | |
} | |
iVar5 = FUN_8f636de0((byte *)s__androidboot_board_rev__8f662568); | |
iVar6 = FUN_8f636de0(&DAT_8f6901a4); | |
iVar7 = FUN_8f636de0((byte *)s__androidboot_bootloader_ver_0_0__8f662580); | |
pbVar27 = boot_into_recovery; | |
pbVar25 = pbVar25 + iVar6 + iVar5 + iVar7; | |
if ((boot_into_recovery != (byte *)0x0) && (DAT_8f6903f0 != 0)) { | |
iVar5 = FUN_8f636de0((byte *)s__androidboot_need_factory_reset__8f6625a4); | |
pbVar25 = pbVar25 + iVar5; | |
} | |
iVar5 = FUN_8f636de0((byte *)s__androidboot_secure_boot__8f6625c8); | |
piVar1 = (int *)(iVar13 * 8); | |
iVar13 = FUN_8f636de0(&DAT_8f69040c); | |
iVar6 = FUN_8f636de0((byte *)s__androidboot_verifiedbootstate__8f6625e4); | |
uVar29 = FUN_8f636de0((byte *)piVar1[-0x1c2602f6]); | |
uVar20 = *(uint *)(unaff_r10 + 0xe0); | |
if (1 < uVar20) { | |
dprintf((byte *)s_Devinfo_paritition_possibly_corr_8f662604,(int *)((ulonglong)uVar29 >> 0x20), | |
param_3,uVar20); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_app_aboot_aboot_c_8f662664,0x20c); | |
uVar20 = DAT_8f67f420; | |
pbVar27 = boot_into_recovery; | |
} | |
iVar7 = FUN_8f636de0((byte *)s__androidboot_veritymode__8f662678); | |
iVar8 = FUN_8f636de0(*(byte **)(uVar20 * 8 + -0x70980bb8)); | |
uVar30 = FUN_8f636de0((byte *)s__androidboot_keymaster_1_8f662694); | |
pbVar25 = pbVar25 + (int)uVar30 + iVar8 + iVar7 + iVar13 + iVar5 + iVar6 + (int)uVar29; | |
if ((pbVar27 != (byte *)0x0) && (iVar4 != 0)) { | |
uVar30 = FUN_8f636de0(&DAT_8f6626b0); | |
pbVar25 = pbVar25 + (int)uVar30; | |
} | |
local_44 = DAT_8f69144c; | |
if (DAT_8f69144c == 0) { | |
if (DAT_8f690404 == 0) { | |
local_44 = *(int *)(unaff_r10 + 0x1c); | |
if (local_44 == 0) { | |
if (DAT_8f6903f8 == 0) { | |
uVar30 = FUN_8f600838((int)uVar30,(int)((ulonglong)uVar30 >> 0x20)); | |
local_44 = (int)uVar30; | |
if (local_44 != 0) goto LAB_8f62972c; | |
} | |
} | |
else { | |
LAB_8f62972c: | |
if (DAT_8f6903fc == 0) { | |
uVar30 = FUN_8f6007a0((int)uVar30,(int)((ulonglong)uVar30 >> 0x20)); | |
local_44 = (int)uVar30; | |
if (local_44 == 0) goto LAB_8f6290d8; | |
} | |
uVar30 = FUN_8f636de0((byte *)s__androidboot_mode_charger_8f6626f0); | |
local_44 = 1; | |
pbVar25 = pbVar25 + (int)uVar30; | |
} | |
} | |
else { | |
uVar30 = FUN_8f636de0((byte *)s__androidboot_alarmboot_true_8f6626d4); | |
pbVar25 = pbVar25 + (int)uVar30; | |
} | |
} | |
else { | |
iVar13 = FUN_8f636de0((byte *)s__androidboot_mode__8f6626b8); | |
iVar5 = FUN_8f636de0(&DAT_8f691440); | |
local_44 = 0; | |
uVar30 = FUN_8f636de0(&DAT_8f6626cc); | |
pbVar25 = pbVar25 + (int)uVar30 + iVar13 + iVar5; | |
} | |
LAB_8f6290d8: | |
iVar13 = FUN_8f626498((int)uVar30,(int)((ulonglong)uVar30 >> 0x20)); | |
if ((iVar13 != 0) && (DAT_8f690408 != 0)) { | |
iVar13 = FUN_8f636de0((byte *)s__androidboot_authorized_kernel_t_8f66270c); | |
pbVar25 = pbVar25 + iVar13; | |
} | |
pcVar18 = s_system_8f65b690; | |
if (boot_into_recovery != (byte *)0x0) { | |
pcVar18 = s_recoveryfs_8f6624c8; | |
} | |
uVar29 = FUN_8f626380(param_1,pcVar18); | |
bVar28 = (int)uVar29 == 0; | |
if (bVar28) { | |
uVar29 = FUN_8f636de0(DAT_8f690400); | |
pbVar25 = pbVar25 + (int)uVar29; | |
} | |
uVar29 = FUN_8f6006ec((int)uVar29,(int)((ulonglong)uVar29 >> 0x20)); | |
switch((int)uVar29) { | |
case 0: | |
uVar29 = FUN_8f636de0((byte *)s__androidboot_baseband_msm_8f66274c); | |
pbVar25 = pbVar25 + (int)uVar29; | |
break; | |
case 1: | |
uVar29 = FUN_8f636de0((byte *)s__androidboot_baseband_apq_8f662730); | |
pbVar25 = pbVar25 + (int)uVar29; | |
break; | |
case 2: | |
uVar29 = FUN_8f636de0((byte *)s__androidboot_baseband_csfb_8f662768); | |
pbVar25 = pbVar25 + (int)uVar29; | |
break; | |
case 4: | |
uVar29 = FUN_8f636de0((byte *)s__androidboot_baseband_svlte2a_8f662784); | |
pbVar25 = pbVar25 + (int)uVar29; | |
break; | |
case 5: | |
uVar29 = FUN_8f636de0((byte *)s__androidboot_baseband_mdm_8f6627a4); | |
pbVar25 = pbVar25 + (int)uVar29; | |
break; | |
case 6: | |
uVar29 = FUN_8f636de0((byte *)s__androidboot_baseband_sglte_8f6627dc); | |
pbVar25 = pbVar25 + (int)uVar29; | |
break; | |
case 7: | |
uVar29 = FUN_8f636de0((byte *)s__androidboot_baseband_dsda_8f662818); | |
pbVar25 = pbVar25 + (int)uVar29; | |
break; | |
case 8: | |
uVar29 = FUN_8f636de0((byte *)s__androidboot_baseband_dsda2_8f662834); | |
pbVar25 = pbVar25 + (int)uVar29; | |
break; | |
case 9: | |
uVar29 = FUN_8f636de0((byte *)s__androidboot_baseband_sglte2_8f6627f8); | |
pbVar25 = pbVar25 + (int)uVar29; | |
break; | |
case 10: | |
uVar29 = FUN_8f636de0((byte *)s__androidboot_baseband_mdm2_8f6627c0); | |
pbVar25 = pbVar25 + (int)uVar29; | |
break; | |
case 0xb: | |
uVar29 = FUN_8f636de0((byte *)s__androidboot_baseband_baseband_a_8f662850); | |
pbVar25 = pbVar25 + (int)uVar29; | |
} | |
if (((param_1 != (byte *)0x0) && | |
(uVar29 = FUN_8f63710c(param_1,(byte *)s_mdss_mdp_8f66287c), (int)uVar29 == 0)) && | |
(uVar29 = FUN_8f601a0c((int)&DAT_8f69dcfc,0xc4), (int)uVar29 != 0)) { | |
uVar29 = FUN_8f636de0(&DAT_8f69dcfc); | |
if ((int)uVar29 != 0) { | |
pbVar25 = pbVar25 + (int)uVar29; | |
} | |
} | |
uVar29 = FUN_8f6265a8((int)uVar29,(int)((ulonglong)uVar29 >> 0x20)); | |
if ((int)uVar29 != 0) { | |
uVar30 = FUN_8f636de0((byte *)s__qpnp_power_on_warm_boot_1_8f662888); | |
uVar29 = CONCAT44((int)((ulonglong)uVar30 >> 0x20),1); | |
pbVar25 = pbVar25 + (int)uVar30; | |
} | |
uVar17 = (undefined4)((ulonglong)uVar29 >> 0x20); | |
local_4c = (int)uVar29; | |
if ((int)pbVar25 < 1) { | |
puVar14 = (uint *)0x0; | |
goto LAB_8f6298d0; | |
} | |
puVar14 = (uint *)FUN_8f63666c((uint)(pbVar25 + 4) & 0xfffffffc,uVar17); | |
if (puVar14 == (uint *)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_app_aboot_aboot_c_8f662664,0x27b); | |
} | |
puVar15 = FUN_8f636968(puVar14,0,1); | |
puVar21 = puVar14; | |
if (local_34 == (byte *)0x0) { | |
iVar13 = FUN_8f626460(puVar15,extraout_r1); | |
pbVar25 = PTR_s__8f629b60; | |
if (iVar13 != 0) { | |
puVar26 = (uint *)((int)puVar14 + 1); | |
pbVar25 = PTR_DAT_8f629b5c; | |
goto LAB_8f629248; | |
} | |
} | |
else { | |
do { | |
bVar2 = *param_1; | |
puVar26 = (uint *)((int)puVar21 + 1); | |
*(byte *)puVar21 = bVar2; | |
param_1 = param_1 + 1; | |
puVar21 = puVar26; | |
} while (bVar2 != 0); | |
iVar13 = FUN_8f626460(puVar15,extraout_r1); | |
pbVar25 = PTR_DAT_8f629b5c; | |
if (iVar13 != 0) { | |
LAB_8f629248: | |
while( true ) { | |
bVar2 = pbVar25[1]; | |
*(byte *)((int)puVar26 + -1) = bVar2; | |
if (bVar2 == 0) break; | |
puVar26 = (uint *)((int)puVar26 + 1); | |
pbVar25 = pbVar25 + 1; | |
} | |
} | |
pbVar25 = PTR_s__8f629b60; | |
puVar21 = (uint *)((int)puVar26 + -1); | |
} | |
do { | |
puVar15 = puVar21; | |
pbVar25 = pbVar25 + 1; | |
bVar2 = *pbVar25; | |
*(byte *)puVar15 = bVar2; | |
puVar21 = (uint *)((int)puVar15 + 1); | |
} while (bVar2 != 0); | |
pbVar25 = (byte *)piVar1[-0x1c2602f6]; | |
while( true ) { | |
puVar26 = puVar21; | |
bVar2 = *pbVar25; | |
*(byte *)((int)puVar26 + -1) = bVar2; | |
if (bVar2 == 0) break; | |
pbVar25 = pbVar25 + 1; | |
puVar21 = (uint *)((int)puVar26 + 1); | |
puVar15 = puVar26; | |
} | |
uVar20 = *(uint *)(unaff_r10 + 0xe0); | |
pbVar27 = PTR_DAT_8f629b64; | |
if (1 < uVar20) { | |
dprintf((byte *)s_Devinfo_paritition_possibly_corr_8f662604,piVar1,pbVar25 + 1,uVar20); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_app_aboot_aboot_c_8f662664,0x29d); | |
pbVar27 = PTR_DAT_8f629b64; | |
uVar20 = DAT_8f67f420; | |
} | |
while( true ) { | |
puVar21 = puVar26; | |
bVar2 = pbVar27[1]; | |
*(byte *)((int)puVar21 + -1) = bVar2; | |
if (bVar2 == 0) break; | |
pbVar27 = pbVar27 + 1; | |
puVar26 = (uint *)((int)puVar21 + 1); | |
puVar15 = puVar21; | |
} | |
pbVar25 = *(byte **)(uVar20 * 8 + -0x70980bb8); | |
while( true ) { | |
puVar26 = puVar21; | |
bVar2 = *pbVar25; | |
*(byte *)((int)puVar26 + -1) = bVar2; | |
pbVar27 = PTR_s__8f629b68; | |
if (bVar2 == 0) break; | |
pbVar25 = pbVar25 + 1; | |
puVar21 = (uint *)((int)puVar26 + 1); | |
puVar15 = puVar26; | |
} | |
while( true ) { | |
puVar21 = puVar26; | |
bVar2 = pbVar27[1]; | |
*(byte *)((int)puVar21 + -1) = bVar2; | |
pbVar25 = PTR_s__8f629b6c; | |
if (bVar2 == 0) break; | |
pbVar27 = pbVar27 + 1; | |
puVar26 = (uint *)((int)puVar21 + 1); | |
puVar15 = puVar21; | |
} | |
while( true ) { | |
puVar26 = puVar21; | |
bVar2 = pbVar25[1]; | |
*(byte *)((int)puVar26 + -1) = bVar2; | |
pbVar27 = PTR_DAT_8f629b70; | |
if (bVar2 == 0) break; | |
pbVar25 = pbVar25 + 1; | |
puVar21 = (uint *)((int)puVar26 + 1); | |
puVar15 = puVar26; | |
} | |
while( true ) { | |
puVar21 = puVar26; | |
bVar2 = pbVar27[1]; | |
*(byte *)((int)puVar21 + -1) = bVar2; | |
if (bVar2 == 0) break; | |
pbVar27 = pbVar27 + 1; | |
puVar26 = (uint *)((int)puVar21 + 1); | |
puVar15 = puVar21; | |
} | |
pbVar25 = PTR_s__8f629b74; | |
if (DAT_8f6903f4 != 0) { | |
while( true ) { | |
puVar26 = puVar21; | |
bVar2 = pbVar25[1]; | |
*(byte *)((int)puVar26 + -1) = bVar2; | |
pbVar27 = DAT_8f629b78; | |
if (bVar2 == 0) break; | |
pbVar25 = pbVar25 + 1; | |
puVar21 = (uint *)((int)puVar26 + 1); | |
puVar15 = puVar26; | |
} | |
while( true ) { | |
puVar21 = puVar26; | |
bVar2 = pbVar27[1]; | |
*(byte *)((int)puVar21 + -1) = bVar2; | |
pbVar25 = DAT_8f629b7c; | |
if (bVar2 == 0) break; | |
pbVar27 = pbVar27 + 1; | |
puVar26 = (uint *)((int)puVar21 + 1); | |
puVar15 = puVar21; | |
} | |
while( true ) { | |
puVar26 = puVar21; | |
bVar2 = pbVar25[1]; | |
*(byte *)((int)puVar26 + -1) = bVar2; | |
pbVar27 = PTR_DAT_8f629b80; | |
if (bVar2 == 0) break; | |
pbVar25 = pbVar25 + 1; | |
puVar21 = (uint *)((int)puVar26 + 1); | |
puVar15 = puVar26; | |
} | |
while( true ) { | |
puVar21 = puVar26; | |
bVar2 = pbVar27[1]; | |
*(byte *)((int)puVar21 + -1) = bVar2; | |
pbVar25 = PTR_s__8f629b84; | |
if (bVar2 == 0) break; | |
pbVar27 = pbVar27 + 1; | |
puVar26 = (uint *)((int)puVar21 + 1); | |
puVar15 = puVar21; | |
} | |
while( true ) { | |
puVar26 = puVar21; | |
bVar2 = pbVar25[1]; | |
*(byte *)((int)puVar26 + -1) = bVar2; | |
pbVar27 = DAT_8f629b88; | |
if (bVar2 == 0) break; | |
pbVar25 = pbVar25 + 1; | |
puVar21 = (uint *)((int)puVar26 + 1); | |
puVar15 = puVar26; | |
} | |
while( true ) { | |
puVar21 = puVar26; | |
bVar2 = pbVar27[1]; | |
*(byte *)((int)puVar21 + -1) = bVar2; | |
pbVar25 = DAT_8f629b8c; | |
if (bVar2 == 0) break; | |
pbVar27 = pbVar27 + 1; | |
puVar26 = (uint *)((int)puVar21 + 1); | |
puVar15 = puVar21; | |
} | |
while( true ) { | |
puVar26 = puVar21; | |
bVar2 = pbVar25[1]; | |
*(byte *)((int)puVar26 + -1) = bVar2; | |
pbVar27 = PTR_DAT_8f629b90; | |
if (bVar2 == 0) break; | |
pbVar25 = pbVar25 + 1; | |
puVar21 = (uint *)((int)puVar26 + 1); | |
puVar15 = puVar26; | |
} | |
while( true ) { | |
puVar21 = puVar26; | |
bVar2 = pbVar27[1]; | |
*(byte *)((int)puVar21 + -1) = bVar2; | |
if (bVar2 == 0) break; | |
pbVar27 = pbVar27 + 1; | |
puVar26 = (uint *)((int)puVar21 + 1); | |
puVar15 = puVar21; | |
} | |
pbVar25 = PTR_DAT_8f629b94; | |
if (DAT_8f6903f8 != 0) { | |
do { | |
bVar2 = pbVar25[1]; | |
puVar21 = (uint *)((int)puVar15 + 1); | |
*(byte *)puVar15 = bVar2; | |
pbVar25 = pbVar25 + 1; | |
puVar15 = puVar21; | |
} while (bVar2 != 0); | |
} | |
} | |
pbVar25 = PTR_s__8f629b98; | |
pbVar27 = (byte *)((int)puVar21 + -1); | |
do { | |
pbVar25 = pbVar25 + 1; | |
bVar2 = *pbVar25; | |
*pbVar27 = bVar2; | |
pbVar16 = PTR_DAT_8f629b9c; | |
pbVar22 = pbVar27; | |
pbVar27 = pbVar27 + 1; | |
} while (bVar2 != 0); | |
do { | |
pbVar25 = pbVar22; | |
pbVar16 = pbVar16 + 1; | |
bVar2 = *pbVar16; | |
pbVar22 = pbVar25 + 1; | |
*pbVar25 = bVar2; | |
pbVar27 = DAT_8f629ba0; | |
} while (bVar2 != 0); | |
while( true ) { | |
bVar2 = pbVar27[1]; | |
pbVar22[-1] = bVar2; | |
pbVar16 = boot_into_recovery; | |
if (bVar2 == 0) break; | |
pbVar25 = pbVar22; | |
pbVar22 = pbVar22 + 1; | |
pbVar27 = pbVar27 + 1; | |
} | |
if ((boot_into_recovery != (byte *)0x0) && (pbVar27 = PTR_s__8f629ba4, DAT_8f6903f0 != 0)) { | |
do { | |
bVar2 = pbVar27[1]; | |
pbVar22 = pbVar25 + 1; | |
*pbVar25 = bVar2; | |
pbVar25 = pbVar22; | |
pbVar27 = pbVar27 + 1; | |
} while (bVar2 != 0); | |
} | |
pbVar25 = pbVar22 + -1; | |
pbVar27 = PTR_s__8f629ba8; | |
do { | |
pbVar27 = pbVar27 + 1; | |
bVar2 = *pbVar27; | |
*pbVar25 = bVar2; | |
pbVar22 = DAT_8f629bac; | |
pbVar24 = pbVar25; | |
pbVar25 = pbVar25 + 1; | |
} while (bVar2 != 0); | |
do { | |
pbVar25 = pbVar24; | |
pbVar22 = pbVar22 + 1; | |
bVar2 = *pbVar22; | |
pbVar24 = pbVar25 + 1; | |
*pbVar25 = bVar2; | |
} while (bVar2 != 0); | |
pbVar27 = PTR_DAT_8f629bb0; | |
if (local_4c != 0) { | |
do { | |
pbVar22 = pbVar27 + 1; | |
bVar2 = *pbVar22; | |
pbVar24 = pbVar25 + 1; | |
*pbVar25 = bVar2; | |
pbVar27 = pbVar22; | |
pbVar25 = pbVar24; | |
} while (bVar2 != 0); | |
} | |
if ((pbVar16 != (byte *)0x0) && (iVar4 != 0)) { | |
pbVar25 = PTR_s__8f629bb4; | |
pbVar27 = pbVar24 + -1; | |
do { | |
pbVar25 = pbVar25 + 1; | |
bVar2 = *pbVar25; | |
pbVar24 = pbVar27 + 1; | |
*pbVar27 = bVar2; | |
pbVar27 = pbVar24; | |
} while (bVar2 != 0); | |
} | |
if (DAT_8f69144c == 0) { | |
if (DAT_8f690404 == 0) { | |
if (local_44 != 0) { | |
pbVar25 = DAT_8f629bfc; | |
pbVar27 = pbVar24 + -1; | |
do { | |
pbVar25 = pbVar25 + 1; | |
bVar2 = *pbVar25; | |
pbVar24 = pbVar27 + 1; | |
*pbVar27 = bVar2; | |
pbVar27 = pbVar24; | |
} while (bVar2 != 0); | |
} | |
} | |
else { | |
pbVar25 = PTR_DAT_8f629bf8; | |
pbVar27 = pbVar24 + -1; | |
do { | |
pbVar25 = pbVar25 + 1; | |
bVar2 = *pbVar25; | |
pbVar24 = pbVar27 + 1; | |
*pbVar27 = bVar2; | |
pbVar27 = pbVar24; | |
} while (bVar2 != 0); | |
} | |
} | |
else { | |
pbVar25 = PTR_DAT_8f629bb8; | |
pbVar27 = pbVar24 + -1; | |
do { | |
pbVar23 = pbVar27; | |
pbVar25 = pbVar25 + 1; | |
bVar2 = *pbVar25; | |
*pbVar23 = bVar2; | |
pbVar19 = PTR_DAT_8f629bbc; | |
pbVar27 = pbVar23 + 1; | |
} while (bVar2 != 0); | |
do { | |
bVar2 = pbVar19[1]; | |
pbVar24 = pbVar23 + 1; | |
*pbVar23 = bVar2; | |
pbVar16 = PTR_s__8f629bc0; | |
pbVar19 = pbVar19 + 1; | |
pbVar23 = pbVar24; | |
} while (bVar2 != 0); | |
while( true ) { | |
pbVar16 = pbVar16 + 1; | |
bVar2 = *pbVar16; | |
pbVar24[-1] = bVar2; | |
if (bVar2 == 0) break; | |
pbVar24 = pbVar24 + 1; | |
} | |
} | |
uVar29 = FUN_8f626498(pbVar22,pbVar16); | |
if (((int)uVar29 != 0) && (DAT_8f690408 != 0)) { | |
pbVar25 = PTR_s__8f629bc4; | |
pbVar27 = pbVar24 + -1; | |
do { | |
pbVar25 = pbVar25 + 1; | |
bVar2 = *pbVar25; | |
pbVar24 = pbVar27 + 1; | |
*pbVar27 = bVar2; | |
pbVar27 = pbVar24; | |
} while (bVar2 != 0); | |
} | |
uVar17 = FUN_8f6006ec((int)uVar29,(int)((ulonglong)uVar29 >> 0x20)); | |
switch(uVar17) { | |
case 0: | |
pbVar25 = PTR_s__8f629be4; | |
pbVar27 = pbVar24 + -1; | |
do { | |
pbVar25 = pbVar25 + 1; | |
bVar2 = *pbVar25; | |
pbVar24 = pbVar27 + 1; | |
*pbVar27 = bVar2; | |
pbVar27 = pbVar24; | |
} while (bVar2 != 0); | |
break; | |
case 1: | |
pbVar25 = DAT_8f629bf4; | |
pbVar27 = pbVar24 + -1; | |
do { | |
pbVar25 = pbVar25 + 1; | |
bVar2 = *pbVar25; | |
pbVar24 = pbVar27 + 1; | |
*pbVar27 = bVar2; | |
pbVar27 = pbVar24; | |
} while (bVar2 != 0); | |
break; | |
case 2: | |
pbVar25 = PTR_s__8f629bf0; | |
pbVar27 = pbVar24 + -1; | |
do { | |
pbVar25 = pbVar25 + 1; | |
bVar2 = *pbVar25; | |
pbVar24 = pbVar27 + 1; | |
*pbVar27 = bVar2; | |
pbVar27 = pbVar24; | |
} while (bVar2 != 0); | |
break; | |
case 4: | |
pbVar25 = PTR_s__8f629bec; | |
pbVar27 = pbVar24 + -1; | |
do { | |
pbVar25 = pbVar25 + 1; | |
bVar2 = *pbVar25; | |
pbVar24 = pbVar27 + 1; | |
*pbVar27 = bVar2; | |
pbVar27 = pbVar24; | |
} while (bVar2 != 0); | |
break; | |
case 5: | |
pbVar25 = PTR_s__8f629be8; | |
pbVar27 = pbVar24 + -1; | |
do { | |
pbVar25 = pbVar25 + 1; | |
bVar2 = *pbVar25; | |
pbVar24 = pbVar27 + 1; | |
*pbVar27 = bVar2; | |
pbVar27 = pbVar24; | |
} while (bVar2 != 0); | |
break; | |
case 6: | |
pbVar25 = PTR_s__8f629be0; | |
pbVar27 = pbVar24 + -1; | |
do { | |
pbVar25 = pbVar25 + 1; | |
bVar2 = *pbVar25; | |
pbVar24 = pbVar27 + 1; | |
*pbVar27 = bVar2; | |
pbVar27 = pbVar24; | |
} while (bVar2 != 0); | |
break; | |
case 7: | |
pbVar25 = PTR_s__8f629bdc; | |
pbVar27 = pbVar24 + -1; | |
do { | |
pbVar25 = pbVar25 + 1; | |
bVar2 = *pbVar25; | |
pbVar24 = pbVar27 + 1; | |
*pbVar27 = bVar2; | |
pbVar27 = pbVar24; | |
} while (bVar2 != 0); | |
break; | |
case 8: | |
pbVar25 = PTR_s__8f629bd8; | |
pbVar27 = pbVar24 + -1; | |
do { | |
pbVar25 = pbVar25 + 1; | |
bVar2 = *pbVar25; | |
pbVar24 = pbVar27 + 1; | |
*pbVar27 = bVar2; | |
pbVar27 = pbVar24; | |
} while (bVar2 != 0); | |
break; | |
case 9: | |
pbVar25 = PTR_s__8f629bd4; | |
pbVar27 = pbVar24 + -1; | |
do { | |
pbVar25 = pbVar25 + 1; | |
bVar2 = *pbVar25; | |
pbVar24 = pbVar27 + 1; | |
*pbVar27 = bVar2; | |
pbVar27 = pbVar24; | |
} while (bVar2 != 0); | |
break; | |
case 10: | |
pbVar25 = PTR_s__8f629bd0; | |
pbVar27 = pbVar24 + -1; | |
do { | |
pbVar25 = pbVar25 + 1; | |
bVar2 = *pbVar25; | |
pbVar24 = pbVar27 + 1; | |
*pbVar27 = bVar2; | |
pbVar27 = pbVar24; | |
} while (bVar2 != 0); | |
break; | |
case 0xb: | |
pbVar25 = PTR_s__8f629bc8; | |
pbVar27 = pbVar24 + -1; | |
do { | |
pbVar25 = pbVar25 + 1; | |
bVar2 = *pbVar25; | |
pbVar24 = pbVar27 + 1; | |
*pbVar27 = bVar2; | |
pbVar27 = pbVar24; | |
} while (bVar2 != 0); | |
} | |
uVar29 = FUN_8f636de0(&DAT_8f69dcfc); | |
uVar17 = (undefined4)((ulonglong)uVar29 >> 0x20); | |
if ((int)uVar29 != 0) { | |
pbVar25 = PTR_DAT_8f629bcc; | |
pbVar27 = pbVar24 + -1; | |
do { | |
pbVar25 = pbVar25 + 1; | |
bVar2 = *pbVar25; | |
pbVar24 = pbVar27 + 1; | |
*pbVar27 = bVar2; | |
pbVar27 = pbVar24; | |
} while (bVar2 != 0); | |
} | |
pbVar25 = DAT_8f690400; | |
if (bVar28) { | |
pbVar27 = DAT_8f690400; | |
pbVar16 = pbVar24 + -1; | |
do { | |
bVar2 = *pbVar27; | |
*pbVar16 = bVar2; | |
pbVar27 = pbVar27 + 1; | |
pbVar16 = pbVar16 + 1; | |
} while (bVar2 != 0); | |
FUN_8f636758((int)pbVar25); | |
uVar17 = extraout_r1_00; | |
} | |
LAB_8f6298d0: | |
if (piVar3 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(puVar14,uVar17,piVar3); | |
} | |
return; | |
} | |
// WARNING: Removing unreachable block (ram,0x8f629c7c) | |
void FUN_8f629c00(undefined *param_1,uint param_2) | |
{ | |
return; | |
} | |
void FUN_8f629c80(uint param_1,uint param_2,char *param_3) | |
{ | |
int *piVar1; | |
uint uVar2; | |
uint uVar3; | |
undefined4 uVar4; | |
undefined4 uVar5; | |
uint uVar6; | |
int iVar7; | |
undefined8 uVar8; | |
longlong lVar9; | |
piVar1 = DAT_8f69d118; | |
uVar8 = FUN_8f604c84(param_1,param_2,param_3); | |
uVar2 = FUN_8f602f04((int)uVar8,(int)((ulonglong)uVar8 >> 0x20)); | |
lVar9 = FUN_8f604db0(); | |
uVar6 = (uint)(lVar9 + (ulonglong)uVar2); | |
iVar7 = (int)(lVar9 + (ulonglong)uVar2 >> 0x20); | |
uVar8 = FUN_8f602f04(param_1,(int)((ulonglong)lVar9 >> 0x20)); | |
uVar5 = (undefined4)((ulonglong)uVar8 >> 0x20); | |
uVar3 = (uint)uVar8; | |
if (((~param_1 < param_2) || (uVar3 < uVar2)) || | |
(iVar7 == 0 && uVar6 < uVar3 || iVar7 == 0 && uVar6 == uVar3)) { | |
uVar4 = 0xffffffff; | |
} | |
else { | |
uVar5 = 0; | |
if (iVar7 == 0 && uVar6 < uVar3 + param_2) { | |
uVar4 = 0xffffffff; | |
} | |
else { | |
uVar4 = 0; | |
} | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar4,uVar5,piVar1); | |
} | |
return; | |
} | |
void FUN_8f629d24(undefined4 param_1,uint param_2) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
char *pcVar3; | |
int *piVar4; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
if (DAT_8f67f350 == 0) { | |
uVar5 = FUN_8f60e804(0,param_2); | |
uVar5 = FUN_8f60e010((int)uVar5,(int)((ulonglong)uVar5 >> 0x20)); | |
if ((int)uVar5 == 2) { | |
uVar5 = FUN_8f60ed6c(2); | |
piVar4 = (int *)((ulonglong)uVar5 >> 0x20); | |
if (piVar1 == DAT_8f69d118) { | |
pcVar3 = s_Keystore_verification_failed__Co_8f662910; | |
goto LAB_8f629d9c; | |
} | |
} | |
else if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
} | |
else { | |
uVar2 = FUN_8f60e804(1,param_2); | |
uVar5 = FUN_8f60ed6c(uVar2); | |
piVar4 = (int *)((ulonglong)uVar5 >> 0x20); | |
if (piVar1 == DAT_8f69d118) { | |
pcVar3 = s_Device_is_unlocked__Skipping_ver_8f6628e0; | |
LAB_8f629d9c: | |
dprintf((byte *)pcVar3,piVar4,piVar1,DAT_8f69d118); | |
return; | |
} | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),piVar1); | |
} | |
void FUN_8f629dc8(void) | |
{ | |
int *piVar1; | |
undefined uVar2; | |
char *pcVar3; | |
int iVar4; | |
uint uVar5; | |
uint uVar6; | |
undefined4 extraout_r1; | |
uint uVar7; | |
int *in_lr; | |
undefined8 uVar8; | |
longlong lVar9; | |
longlong lVar10; | |
piVar1 = DAT_8f69d118; | |
if (DAT_8f67f33c == 0) { | |
pcVar3 = s_aboot_8f65b04c; | |
} | |
else { | |
pcVar3 = s_devinfo_8f65a2fc; | |
} | |
uVar8 = FUN_8f606760((byte *)pcVar3); | |
iVar4 = (int)uVar8; | |
lVar9 = FUN_8f60688c(iVar4,(int)((ulonglong)uVar8 >> 0x20)); | |
if (lVar9 != 0) { | |
uVar2 = FUN_8f606904(iVar4); | |
FUN_8f60db18(uVar2); | |
lVar10 = FUN_8f606814(iVar4,extraout_r1); | |
uVar5 = FUN_8f60d5cc((int)lVar10,(int)((ulonglong)lVar10 >> 0x20)); | |
uVar7 = DAT_8f69de40; | |
if (DAT_8f67f33c == 0) { | |
uVar6 = (uint)(lVar10 + lVar9); | |
lVar9 = FUN_8f60d620(uVar6 - uVar5, | |
(int)((ulonglong)(lVar10 + lVar9) >> 0x20) - (uint)(uVar6 < uVar5),uVar5, | |
DAT_8f69de40); | |
} | |
else { | |
lVar9 = FUN_8f60d620((uint)lVar9,(uint)((ulonglong)lVar9 >> 0x20),uVar5,DAT_8f69de40); | |
} | |
if ((int)lVar9 != 0) { | |
dprintf((byte *)s_ERROR__Cannot_write_device_info_8f662948,(int *)((ulonglong)lVar9 >> 0x20), | |
uVar5,uVar7); | |
lVar9 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_app_aboot_aboot_c_8f662664,0x854); | |
} | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)lVar9,(int)((ulonglong)lVar9 >> 0x20),piVar1); | |
} | |
return; | |
} | |
void FUN_8f629ee8(int param_1) | |
{ | |
int *piVar1; | |
int *piVar2; | |
undefined uVar3; | |
uint uVar4; | |
uint uVar5; | |
undefined4 extraout_r1; | |
uint uVar6; | |
int iVar7; | |
int *in_lr; | |
undefined8 uVar8; | |
ulonglong uVar9; | |
longlong lVar10; | |
piVar1 = DAT_8f69d118; | |
uVar8 = FUN_8f606760((byte *)s_devinfo_8f65a2fc); | |
if ((int)uVar8 < 0) { | |
DAT_8f67f33c = 0; | |
uVar8 = FUN_8f606760((byte *)s_aboot_8f65b04c); | |
} | |
iVar7 = (int)uVar8; | |
uVar9 = FUN_8f60688c(iVar7,(int)((ulonglong)uVar8 >> 0x20)); | |
if (uVar9 == 0) { | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
} | |
else { | |
uVar3 = FUN_8f606904(iVar7); | |
FUN_8f60db18(uVar3); | |
lVar10 = FUN_8f606814(iVar7,extraout_r1); | |
uVar4 = FUN_8f60d5cc((int)lVar10,(int)((ulonglong)lVar10 >> 0x20)); | |
uVar6 = DAT_8f69de40; | |
if (DAT_8f67f33c == 0) { | |
uVar5 = (uint)(lVar10 + uVar9); | |
uVar8 = FUN_8f60d85c(uVar5 - uVar4,(int)(lVar10 + uVar9 >> 0x20) - (uint)(uVar5 < uVar4), | |
DAT_8f69de40,uVar4); | |
} | |
else { | |
uVar8 = FUN_8f60d85c((uint)uVar9,(uint)(uVar9 >> 0x20),DAT_8f69de40,uVar4); | |
} | |
uVar5 = (uint)uVar8; | |
if (uVar5 != 0) { | |
dprintf((byte *)s_ERROR__Cannot_read_device_info_8f66296c,(int *)((ulonglong)uVar8 >> 0x20), | |
uVar6,uVar4); | |
uVar5 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_app_aboot_aboot_c_8f662664,0x879); | |
} | |
piVar2 = DAT_8f69d118; | |
uVar9 = (ulonglong)uVar5; | |
*(undefined4 *)(param_1 + 0x10) = 0; | |
if (piVar1 == piVar2) { | |
FUN_8f629dc8(); | |
return; | |
} | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar9,(int)(uVar9 >> 0x20),piVar1); | |
} | |
void FUN_8f62a054(undefined4 *param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
uint *puVar2; | |
char *pcVar3; | |
int *piVar4; | |
int *in_lr; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
piVar4 = DAT_8f69d118; | |
uVar5 = FUN_8f6366a8((int *)0x1000,0x1000); | |
puVar2 = (uint *)uVar5; | |
if (puVar2 == (uint *)0x0) { | |
dprintf((byte *)s_Failed_to_allocate_memory_for_de_8f66298c,(int *)((ulonglong)uVar5 >> 0x20), | |
param_3,piVar4); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_app_aboot_aboot_c_8f662664,0x88f); | |
} | |
DAT_8f69de40 = puVar2; | |
uVar5 = FUN_8f614524(); | |
piVar4 = (int *)((ulonglong)uVar5 >> 0x20); | |
if ((int)uVar5 == 0) { | |
if (piVar1 == DAT_8f69d118) { | |
pcVar3 = s_ERROR__Partition_table_not_found_8f6629c0; | |
LAB_8f62a128: | |
dprintf((byte *)pcVar3,piVar4,piVar1,DAT_8f69d118); | |
return; | |
} | |
} | |
else { | |
uVar5 = FUN_8f638f3c((int)uVar5,(byte *)s_devinfo_8f65a2fc); | |
piVar4 = (int *)((ulonglong)uVar5 >> 0x20); | |
if ((int)uVar5 == 0) { | |
if (piVar1 == DAT_8f69d118) { | |
pcVar3 = s_ERROR__No_devinfo_partition_foun_8f6629e4; | |
goto LAB_8f62a128; | |
} | |
} | |
else { | |
FUN_8f636968(puVar2,0,0x1000); | |
FUN_8f63685c(puVar2,param_1,0xe4); | |
uVar5 = FUN_8f614798((int)uVar5,0,DAT_8f69de40,DAT_8f6903e0); | |
piVar4 = (int *)((ulonglong)uVar5 >> 0x20); | |
if ((int)uVar5 == 0) { | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f636758((int)puVar2); | |
return; | |
} | |
} | |
else if (piVar1 == DAT_8f69d118) { | |
pcVar3 = s_ERROR__Cannot_write_device_info_8f662948; | |
goto LAB_8f62a128; | |
} | |
} | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),piVar1); | |
} | |
void FUN_8f62a334(undefined4 *param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
undefined4 *puVar2; | |
int iVar3; | |
int *piVar4; | |
int *in_lr; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
piVar4 = DAT_8f69d118; | |
uVar5 = FUN_8f626460(param_1,param_2); | |
if ((int)uVar5 == 0) { | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f62a054(param_1,(int)((ulonglong)uVar5 >> 0x20),piVar1); | |
return; | |
} | |
} | |
else { | |
uVar5 = FUN_8f6366a8((int *)0x1000,0x1000); | |
puVar2 = (undefined4 *)uVar5; | |
if (puVar2 == (undefined4 *)0x0) { | |
dprintf((byte *)s_Failed_to_allocate_memory_for_de_8f66298c,(int *)((ulonglong)uVar5 >> 0x20), | |
param_3,piVar4); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_app_aboot_aboot_c_8f662664,0x929); | |
} | |
DAT_8f69de40 = puVar2; | |
FUN_8f63685c(puVar2,param_1,0xe4); | |
iVar3 = FUN_8f615da0(); | |
if (iVar3 == 0) { | |
uVar5 = FUN_8f629dc8(); | |
} | |
else { | |
uVar5 = FUN_8f625144((uint)puVar2,0x1000); | |
if ((int)uVar5 < 0) { | |
uVar5 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_app_aboot_aboot_c_8f662664,0x931); | |
} | |
} | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f636758((int)puVar2); | |
return; | |
} | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),piVar1); | |
} | |
void FUN_8f62a45c(undefined4 *param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
undefined4 *puVar2; | |
char *pcVar3; | |
int iVar4; | |
undefined4 *puVar5; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
int *piVar6; | |
undefined4 extraout_r1_01; | |
undefined4 uVar7; | |
int *piVar8; | |
uint uVar9; | |
int *in_lr; | |
undefined8 uVar10; | |
piVar6 = DAT_8f69d118; | |
piVar8 = DAT_8f69d118; | |
uVar10 = FUN_8f626460(param_1,param_2); | |
piVar1 = DAT_8f69d118; | |
if ((int)uVar10 == 0) { | |
if (piVar6 == DAT_8f69d118) { | |
piVar8 = DAT_8f69d118; | |
uVar10 = FUN_8f6366a8((int *)0x1000,0x1000); | |
puVar2 = (undefined4 *)uVar10; | |
if (puVar2 == (undefined4 *)0x0) { | |
dprintf((byte *)s_Failed_to_allocate_memory_for_de_8f66298c, | |
(int *)((ulonglong)uVar10 >> 0x20),piVar6,piVar8); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_app_aboot_aboot_c_8f662664,0x8ff); | |
} | |
DAT_8f69de40 = puVar2; | |
uVar10 = FUN_8f614524(); | |
piVar6 = (int *)((ulonglong)uVar10 >> 0x20); | |
if ((int)uVar10 == 0) { | |
if (piVar1 == DAT_8f69d118) { | |
pcVar3 = s_ERROR__Partition_table_not_found_8f6629c0; | |
LAB_8f62a2b8: | |
dprintf((byte *)pcVar3,piVar6,piVar1,DAT_8f69d118); | |
return; | |
} | |
} | |
else { | |
uVar10 = FUN_8f638f3c((int)uVar10,(byte *)s_devinfo_8f65a2fc); | |
piVar6 = (int *)((ulonglong)uVar10 >> 0x20); | |
if ((int)uVar10 == 0) { | |
if (piVar1 == DAT_8f69d118) { | |
pcVar3 = s_ERROR__No_devinfo_partition_foun_8f6629e4; | |
goto LAB_8f62a2b8; | |
} | |
} | |
else { | |
uVar10 = FUN_8f614564((int)uVar10,(undefined4 *)0x0,(int *)0x0,DAT_8f69de40,DAT_8f6903e0); | |
piVar6 = (int *)((ulonglong)uVar10 >> 0x20); | |
if ((int)uVar10 == 0) { | |
iVar4 = FUN_8f636a7c((char *)puVar2,s_ANDROID_BOOT__8f662a08,0xd); | |
if (iVar4 != 0) { | |
uVar7 = 0xd; | |
FUN_8f63685c(puVar2,(undefined4 *)s_ANDROID_BOOT__8f662a08,0xd); | |
puVar2[4] = 0; | |
puVar2[5] = 0; | |
FUN_8f62a054(puVar2,extraout_r1_00,uVar7); | |
} | |
puVar5 = FUN_8f63685c(param_1,puVar2,0xe4); | |
uVar10 = CONCAT44(extraout_r1,puVar5); | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f636758((int)puVar2); | |
return; | |
} | |
} | |
else if (piVar1 == DAT_8f69d118) { | |
pcVar3 = s_ERROR__Cannot_write_device_info_8f662948; | |
goto LAB_8f62a2b8; | |
} | |
} | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar10,(int)((ulonglong)uVar10 >> 0x20),piVar1); | |
} | |
} | |
else { | |
uVar10 = FUN_8f6366a8((int *)0x1000,0x1000); | |
puVar2 = (undefined4 *)uVar10; | |
if (puVar2 == (undefined4 *)0x0) { | |
dprintf((byte *)s_Failed_to_allocate_memory_for_de_8f66298c,(int *)((ulonglong)uVar10 >> 0x20) | |
,param_3,piVar8); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_app_aboot_aboot_c_8f662664,0x948); | |
} | |
DAT_8f69de40 = puVar2; | |
iVar4 = FUN_8f615da0(); | |
if (iVar4 == 0) { | |
FUN_8f629ee8((int)puVar2); | |
} | |
else { | |
iVar4 = FUN_8f62508c((uint)puVar2,0x1000); | |
if (iVar4 < 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_app_aboot_aboot_c_8f662664,0x94f); | |
} | |
} | |
iVar4 = FUN_8f636a7c((char *)puVar2,s_ANDROID_BOOT__8f662a08,0xd); | |
if (iVar4 != 0) { | |
FUN_8f63685c(puVar2,(undefined4 *)s_ANDROID_BOOT__8f662a08,0xd); | |
uVar10 = FUN_8f615da0(); | |
puVar2[0x38] = 1; | |
uVar9 = (uint)((int)uVar10 == 0); | |
puVar2[4] = uVar9; | |
puVar2[6] = uVar9; | |
puVar2[5] = 0; | |
puVar2[7] = 0; | |
FUN_8f62a334(puVar2,(int)((ulonglong)uVar10 >> 0x20),1); | |
} | |
puVar5 = FUN_8f63685c(param_1,puVar2,0xe4); | |
uVar10 = CONCAT44(extraout_r1_01,puVar5); | |
if (piVar6 == DAT_8f69d118) { | |
FUN_8f636758((int)puVar2); | |
return; | |
} | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar10,(int)((ulonglong)uVar10 >> 0x20),piVar6); | |
} | |
void FUN_8f62a5e8(undefined4 param_1,int *param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
piVar1 = DAT_8f69d118; | |
dprintf((byte *)s_reset_device_info_called__8f662a90,param_2,param_3,DAT_8f69d118); | |
DAT_8f67f354 = 0; | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f62a334((undefined4 *)s_ANDROID_BOOT__8f67f340,piVar1,DAT_8f69d118); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(s_ANDROID_BOOT__8f67f340,piVar1,DAT_8f69d118); | |
} | |
void FUN_8f62a63c(undefined4 param_1,int *param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
piVar1 = DAT_8f69d118; | |
dprintf((byte *)s_set_device_root_called__8f662aac,param_2,param_3,DAT_8f69d118); | |
DAT_8f67f354 = 1; | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f62a334((undefined4 *)s_ANDROID_BOOT__8f67f340,piVar1,DAT_8f69d118); | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(s_ANDROID_BOOT__8f67f340,piVar1,DAT_8f69d118); | |
} | |
// WARNING: Removing unreachable block (ram,0x8f62a6f4) | |
void FUN_8f62a690(int param_1,undefined4 param_2) | |
{ | |
undefined4 uVar1; | |
uVar1 = param_2; | |
if ((param_1 != 0) && (uVar1 = DAT_8f67f350, param_1 == 1)) { | |
uRam8f67f358 = param_2; | |
} | |
DAT_8f67f350 = uVar1; | |
FUN_8f62a334((undefined4 *)s_ANDROID_BOOT__8f67f340,param_2,DAT_8f69d118); | |
return; | |
} | |
void FUN_8f62a6f8(char *param_1) | |
{ | |
int *piVar1; | |
undefined4 uVar2; | |
undefined8 uVar3; | |
piVar1 = DAT_8f69d118; | |
uVar3 = FUN_8f636a7c(param_1,s_SPLASH___8f6632b0,8); | |
if (((int)uVar3 == 0) && (*(int *)(param_1 + 8) != 0)) { | |
if (*(int *)(param_1 + 0xc) == 0) { | |
uVar2 = 0xffffffff; | |
} | |
else { | |
uVar2 = 0; | |
} | |
} | |
else { | |
uVar2 = 0xffffffff; | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar2,(int)((ulonglong)uVar3 >> 0x20),piVar1); | |
} | |
return; | |
} | |
void FUN_8f62a9bc(undefined4 param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
undefined uVar2; | |
uint uVar3; | |
undefined4 *puVar4; | |
int *extraout_r1; | |
int *piVar5; | |
undefined4 extraout_r1_00; | |
undefined4 uVar6; | |
int *extraout_r1_01; | |
undefined4 extraout_r1_02; | |
int *extraout_r1_03; | |
undefined4 extraout_r1_04; | |
undefined4 extraout_r1_05; | |
undefined4 extraout_r1_06; | |
undefined4 extraout_r1_07; | |
undefined4 extraout_r1_08; | |
undefined4 extraout_r1_09; | |
undefined4 extraout_r1_10; | |
undefined4 extraout_r1_11; | |
undefined4 extraout_r1_12; | |
undefined4 extraout_r1_13; | |
undefined4 *puVar7; | |
int *piVar8; | |
char *pcVar9; | |
int iVar10; | |
uint uVar11; | |
uint uVar12; | |
int *piVar13; | |
undefined4 *puVar14; | |
undefined4 *puVar15; | |
int iVar16; | |
undefined8 uVar17; | |
longlong lVar18; | |
ulonglong uVar19; | |
piVar1 = DAT_8f69d118; | |
piVar5 = DAT_8f69d118; | |
uVar17 = FUN_8f606760((byte *)s_splash_4_8f6633c4); | |
iVar16 = (int)uVar17; | |
dprintf((byte *)s_ERROR__JUN____USB_disconnect____8f6633d0,(int *)((ulonglong)uVar17 >> 0x20), | |
param_3,piVar5); | |
if (iVar16 == 0) { | |
dprintf((byte *)s_ERROR__splash_Partition_table_no_8f6633f4,extraout_r1,param_3,piVar5); | |
iVar16 = -1; | |
uVar6 = extraout_r1_05; | |
goto LAB_8f62aaf0; | |
} | |
lVar18 = FUN_8f60688c(iVar16,extraout_r1); | |
piVar5 = (int *)((ulonglong)lVar18 >> 0x20); | |
uVar12 = (uint)lVar18 | (uint)piVar5; | |
if (lVar18 == 0) { | |
dprintf((byte *)s_ERROR__splash_Partition_invalid_8f663420,piVar5,param_3,0); | |
iVar16 = -1; | |
uVar6 = extraout_r1_06; | |
goto LAB_8f62aaf0; | |
} | |
uVar2 = FUN_8f606904(iVar16); | |
uVar17 = FUN_8f60db18(uVar2); | |
uVar19 = FUN_8f60d5cc((int)uVar17,(int)((ulonglong)uVar17 >> 0x20)); | |
uVar3 = (uint)uVar19; | |
if (uVar3 == 0) { | |
dprintf((byte *)s_ERROR_splash_Partition_invalid_b_8f663444,(int *)(uVar19 >> 0x20),param_3, | |
uVar12); | |
iVar16 = -1; | |
uVar6 = extraout_r1_07; | |
goto LAB_8f62aaf0; | |
} | |
uVar17 = FUN_8f62fb78(); | |
puVar4 = (undefined4 *)uVar17; | |
if (puVar4 == (undefined4 *)0x0) { | |
dprintf((byte *)s_ERROR__fb_config_is_not_allocate_8f663470,(int *)((ulonglong)uVar17 >> 0x20), | |
param_3,uVar12); | |
iVar16 = -1; | |
uVar6 = extraout_r1_13; | |
goto LAB_8f62aaf0; | |
} | |
puVar15 = (undefined4 *)*puVar4; | |
puVar14 = puVar15 + 0x300000; | |
puVar7 = puVar14; | |
uVar12 = uVar3; | |
uVar17 = FUN_8f60d85c((uint)lVar18,(uint)piVar5,(uint)puVar14,uVar3); | |
if ((int)uVar17 != 0) { | |
dprintf((byte *)s_ERROR__Cannot_read_splash_image_h_8f663494,(int *)((ulonglong)uVar17 >> 0x20), | |
puVar7,uVar12); | |
iVar16 = -1; | |
uVar6 = extraout_r1_10; | |
goto LAB_8f62aaf0; | |
} | |
uVar17 = FUN_8f62a6f8((char *)puVar14); | |
piVar5 = (int *)((ulonglong)uVar17 >> 0x20); | |
iVar16 = (int)uVar17; | |
if (iVar16 != 0) { | |
dprintf((byte *)s_ERROR__Splash_image_header_inval_8f6634bc,piVar5,puVar7,uVar12); | |
iVar16 = -1; | |
uVar6 = extraout_r1_11; | |
goto LAB_8f62aaf0; | |
} | |
if ((puVar15[0x300004] == 0) || (puVar15[0x300005] == 0)) { | |
piVar13 = (int *)puVar15[0x300002]; | |
piVar8 = (int *)puVar4[1]; | |
if (piVar13 <= piVar8) { | |
piVar8 = (int *)puVar15[0x300003]; | |
piVar5 = (int *)puVar4[2]; | |
if (piVar8 <= piVar5) { | |
uVar11 = (uint)(puVar4[4] * (int)piVar13 * (int)piVar8) >> 3; | |
uVar12 = (-uVar3 & uVar11 + 0x1ff + uVar3) - uVar3; | |
if (uVar3 == 0x200) { | |
uVar17 = FUN_8f60d85c((uint)(lVar18 + 0x200),(uint)((ulonglong)(lVar18 + 0x200) >> 0x20), | |
(uint)puVar15,uVar12); | |
uVar6 = (undefined4)((ulonglong)uVar17 >> 0x20); | |
if ((int)uVar17 != 0) { | |
FUN_8f62f508(); | |
iVar16 = -1; | |
dprintf((byte *)s_ERROR__Cannot_read_splash_image_f_8f663334,extraout_r1_03,puVar15, | |
uVar12); | |
uVar6 = extraout_r1_04; | |
} | |
goto LAB_8f62aaf0; | |
} | |
lVar18 = lVar18 + (uVar19 & 0xffffffff); | |
pcVar9 = (char *)((int)puVar15 + uVar3 + 0xc00000); | |
uVar17 = FUN_8f60d85c((uint)lVar18,(uint)((ulonglong)lVar18 >> 0x20),(uint)pcVar9,uVar12); | |
piVar5 = (int *)((ulonglong)uVar17 >> 0x20); | |
if ((int)uVar17 == 0) { | |
FUN_8f63685c(puVar15,puVar15 + 0x300080,uVar11); | |
uVar6 = extraout_r1_00; | |
goto LAB_8f62aaf0; | |
} | |
goto LAB_8f62ac2c; | |
} | |
} | |
dprintf((byte *)s_Logo_config_greater_than_fb_conf_8f663364,piVar5,piVar8,piVar13); | |
iVar16 = -1; | |
uVar6 = extraout_r1_08; | |
} | |
else { | |
iVar10 = puVar15[0x300002]; | |
uVar12 = (-uVar3 & uVar3 + puVar15[0x300005] * 0x200 + 0x1ff) - uVar3; | |
if (iVar10 == puVar4[1]) { | |
piVar8 = (int *)puVar4[2]; | |
piVar5 = (int *)puVar15[0x300003]; | |
if (piVar5 != piVar8) goto LAB_8f62ab50; | |
} | |
else { | |
LAB_8f62ab50: | |
FUN_8f62f508(); | |
iVar10 = puVar4[1]; | |
piVar8 = (int *)puVar4[2]; | |
piVar5 = extraout_r1_01; | |
} | |
uVar11 = ((uint)puVar4[4] >> 3) * (int)piVar8 * iVar10 + 0xfff & 0xfffff000; | |
if (uVar11 < uVar12) { | |
dprintf((byte *)s_ERROR__Splash_image_size_invalid_8f6633a0,piVar5,uVar11,(int)piVar8 * iVar10 | |
); | |
iVar16 = -1; | |
uVar6 = extraout_r1_12; | |
goto LAB_8f62aaf0; | |
} | |
lVar18 = lVar18 + (uVar19 & 0xffffffff); | |
pcVar9 = (char *)((int)puVar14 + uVar3); | |
uVar17 = FUN_8f60d85c((uint)lVar18,(uint)((ulonglong)lVar18 >> 0x20),(uint)pcVar9,uVar12); | |
piVar5 = (int *)((ulonglong)uVar17 >> 0x20); | |
if ((int)uVar17 == 0) { | |
FUN_8f62fbb8((int)puVar14,(int)(puVar15 + 0x300080)); | |
uVar6 = extraout_r1_02; | |
goto LAB_8f62aaf0; | |
} | |
LAB_8f62ac2c: | |
dprintf((byte *)s_ERROR__Cannot_read_splash_image_f_8f663334,piVar5,pcVar9,uVar12); | |
iVar16 = -1; | |
uVar6 = extraout_r1_09; | |
} | |
LAB_8f62aaf0: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar16,uVar6,piVar1); | |
} | |
void FUN_8f62ac94(int *param_1,int *param_2) | |
{ | |
int *piVar1; | |
int iVar2; | |
int *extraout_r1; | |
char *pcVar3; | |
int *piVar4; | |
undefined8 uVar5; | |
piVar1 = DAT_8f69d118; | |
DAT_8f67f354 = 1; | |
if (boot_into_recovery == 0) { | |
pcVar3 = (char *)0x8f6634ec; | |
} | |
else { | |
pcVar3 = s__recovery_8f6634e0; | |
} | |
piVar4 = DAT_8f69d118; | |
iVar2 = FUN_8f60e8d8(param_1,param_2,(byte *)pcVar3); | |
FUN_8f60ed6c(iVar2); | |
if (iVar2 != 0) { | |
piVar4 = &DAT_8f690408; | |
pcVar3 = (char *)0x0; | |
DAT_8f690408 = 1; | |
DAT_8f67f354 = 0; | |
} | |
uVar5 = FUN_8f60ed2c(); | |
if ((int)uVar5 == 2) { | |
if (piVar1 == DAT_8f69d118) { | |
dprintf((byte *)s_Your_device_has_loaded_a_differe_8f663534,(int *)((ulonglong)uVar5 >> 0x20), | |
piVar1,DAT_8f69d118); | |
return; | |
} | |
} | |
else if ((int)uVar5 == 3) { | |
uVar5 = FUN_8f6100cc(2); | |
FUN_8f62a9bc((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),pcVar3); | |
dprintf((byte *)s_Your_device_has_failed_verificat_8f6634f4,extraout_r1,pcVar3,piVar4); | |
uVar5 = FUN_8f6104a8(30000); | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f624e04((int)uVar5,(int *)((ulonglong)uVar5 >> 0x20),piVar1); | |
return; | |
} | |
} | |
else if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar5,(int)((ulonglong)uVar5 >> 0x20),piVar1); | |
} | |
void FUN_8f62ad98(undefined4 param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
undefined uVar2; | |
uint uVar3; | |
undefined4 *puVar4; | |
int *extraout_r1; | |
int *piVar5; | |
undefined4 extraout_r1_00; | |
undefined4 uVar6; | |
int *extraout_r1_01; | |
undefined4 extraout_r1_02; | |
int *extraout_r1_03; | |
undefined4 extraout_r1_04; | |
undefined4 extraout_r1_05; | |
undefined4 extraout_r1_06; | |
undefined4 extraout_r1_07; | |
undefined4 extraout_r1_08; | |
undefined4 extraout_r1_09; | |
undefined4 extraout_r1_10; | |
undefined4 extraout_r1_11; | |
undefined4 extraout_r1_12; | |
undefined4 extraout_r1_13; | |
undefined4 *puVar7; | |
int *piVar8; | |
char *pcVar9; | |
int iVar10; | |
uint uVar11; | |
uint uVar12; | |
int *piVar13; | |
undefined4 *puVar14; | |
undefined4 *puVar15; | |
int iVar16; | |
undefined8 uVar17; | |
longlong lVar18; | |
ulonglong uVar19; | |
piVar1 = DAT_8f69d118; | |
piVar5 = DAT_8f69d118; | |
uVar17 = FUN_8f606760((byte *)s_splash_5_8f66356c); | |
iVar16 = (int)uVar17; | |
dprintf((byte *)s_ERROR__JUN____USB_disconnect____8f6633d0,(int *)((ulonglong)uVar17 >> 0x20), | |
param_3,piVar5); | |
if (iVar16 == 0) { | |
dprintf((byte *)s_ERROR__splash_Partition_table_no_8f6633f4,extraout_r1,param_3,piVar5); | |
iVar16 = -1; | |
uVar6 = extraout_r1_05; | |
goto LAB_8f62aecc; | |
} | |
lVar18 = FUN_8f60688c(iVar16,extraout_r1); | |
piVar5 = (int *)((ulonglong)lVar18 >> 0x20); | |
uVar12 = (uint)lVar18 | (uint)piVar5; | |
if (lVar18 == 0) { | |
dprintf((byte *)s_ERROR__splash_Partition_invalid_8f663420,piVar5,param_3,0); | |
iVar16 = -1; | |
uVar6 = extraout_r1_06; | |
goto LAB_8f62aecc; | |
} | |
uVar2 = FUN_8f606904(iVar16); | |
uVar17 = FUN_8f60db18(uVar2); | |
uVar19 = FUN_8f60d5cc((int)uVar17,(int)((ulonglong)uVar17 >> 0x20)); | |
uVar3 = (uint)uVar19; | |
if (uVar3 == 0) { | |
dprintf((byte *)s_ERROR_splash_Partition_invalid_b_8f663444,(int *)(uVar19 >> 0x20),param_3, | |
uVar12); | |
iVar16 = -1; | |
uVar6 = extraout_r1_07; | |
goto LAB_8f62aecc; | |
} | |
uVar17 = FUN_8f62fb78(); | |
puVar4 = (undefined4 *)uVar17; | |
if (puVar4 == (undefined4 *)0x0) { | |
dprintf((byte *)s_ERROR__fb_config_is_not_allocate_8f663470,(int *)((ulonglong)uVar17 >> 0x20), | |
param_3,uVar12); | |
iVar16 = -1; | |
uVar6 = extraout_r1_13; | |
goto LAB_8f62aecc; | |
} | |
puVar15 = (undefined4 *)*puVar4; | |
puVar14 = puVar15 + 0x300000; | |
puVar7 = puVar14; | |
uVar12 = uVar3; | |
uVar17 = FUN_8f60d85c((uint)lVar18,(uint)piVar5,(uint)puVar14,uVar3); | |
if ((int)uVar17 != 0) { | |
dprintf((byte *)s_ERROR__Cannot_read_splash_image_h_8f663494,(int *)((ulonglong)uVar17 >> 0x20), | |
puVar7,uVar12); | |
iVar16 = -1; | |
uVar6 = extraout_r1_10; | |
goto LAB_8f62aecc; | |
} | |
uVar17 = FUN_8f62a6f8((char *)puVar14); | |
piVar5 = (int *)((ulonglong)uVar17 >> 0x20); | |
iVar16 = (int)uVar17; | |
if (iVar16 != 0) { | |
dprintf((byte *)s_ERROR__Splash_image_header_inval_8f6634bc,piVar5,puVar7,uVar12); | |
iVar16 = -1; | |
uVar6 = extraout_r1_11; | |
goto LAB_8f62aecc; | |
} | |
if ((puVar15[0x300004] == 0) || (puVar15[0x300005] == 0)) { | |
piVar13 = (int *)puVar15[0x300002]; | |
piVar8 = (int *)puVar4[1]; | |
if (piVar13 <= piVar8) { | |
piVar8 = (int *)puVar15[0x300003]; | |
piVar5 = (int *)puVar4[2]; | |
if (piVar8 <= piVar5) { | |
uVar11 = (uint)(puVar4[4] * (int)piVar13 * (int)piVar8) >> 3; | |
uVar12 = (-uVar3 & uVar11 + 0x1ff + uVar3) - uVar3; | |
if (uVar3 == 0x200) { | |
uVar17 = FUN_8f60d85c((uint)(lVar18 + 0x200),(uint)((ulonglong)(lVar18 + 0x200) >> 0x20), | |
(uint)puVar15,uVar12); | |
uVar6 = (undefined4)((ulonglong)uVar17 >> 0x20); | |
if ((int)uVar17 != 0) { | |
FUN_8f62f508(); | |
iVar16 = -1; | |
dprintf((byte *)s_ERROR__Cannot_read_splash_image_f_8f663334,extraout_r1_03,puVar15, | |
uVar12); | |
uVar6 = extraout_r1_04; | |
} | |
goto LAB_8f62aecc; | |
} | |
lVar18 = lVar18 + (uVar19 & 0xffffffff); | |
pcVar9 = (char *)((int)puVar15 + uVar3 + 0xc00000); | |
uVar17 = FUN_8f60d85c((uint)lVar18,(uint)((ulonglong)lVar18 >> 0x20),(uint)pcVar9,uVar12); | |
piVar5 = (int *)((ulonglong)uVar17 >> 0x20); | |
if ((int)uVar17 == 0) { | |
FUN_8f63685c(puVar15,puVar15 + 0x300080,uVar11); | |
uVar6 = extraout_r1_00; | |
goto LAB_8f62aecc; | |
} | |
goto LAB_8f62b008; | |
} | |
} | |
dprintf((byte *)s_Logo_config_greater_than_fb_conf_8f663364,piVar5,piVar8,piVar13); | |
iVar16 = -1; | |
uVar6 = extraout_r1_08; | |
} | |
else { | |
iVar10 = puVar15[0x300002]; | |
uVar12 = (-uVar3 & uVar3 + puVar15[0x300005] * 0x200 + 0x1ff) - uVar3; | |
if (iVar10 == puVar4[1]) { | |
piVar8 = (int *)puVar4[2]; | |
piVar5 = (int *)puVar15[0x300003]; | |
if (piVar5 != piVar8) goto LAB_8f62af2c; | |
} | |
else { | |
LAB_8f62af2c: | |
FUN_8f62f508(); | |
iVar10 = puVar4[1]; | |
piVar8 = (int *)puVar4[2]; | |
piVar5 = extraout_r1_01; | |
} | |
uVar11 = ((uint)puVar4[4] >> 3) * (int)piVar8 * iVar10 + 0xfff & 0xfffff000; | |
if (uVar11 < uVar12) { | |
dprintf((byte *)s_ERROR__Splash_image_size_invalid_8f6633a0,piVar5,uVar11,(int)piVar8 * iVar10 | |
); | |
iVar16 = -1; | |
uVar6 = extraout_r1_12; | |
goto LAB_8f62aecc; | |
} | |
lVar18 = lVar18 + (uVar19 & 0xffffffff); | |
pcVar9 = (char *)((int)puVar14 + uVar3); | |
uVar17 = FUN_8f60d85c((uint)lVar18,(uint)((ulonglong)lVar18 >> 0x20),(uint)pcVar9,uVar12); | |
piVar5 = (int *)((ulonglong)uVar17 >> 0x20); | |
if ((int)uVar17 == 0) { | |
FUN_8f62fbb8((int)puVar14,(int)(puVar15 + 0x300080)); | |
uVar6 = extraout_r1_02; | |
goto LAB_8f62aecc; | |
} | |
LAB_8f62b008: | |
dprintf((byte *)s_ERROR__Cannot_read_splash_image_f_8f663334,piVar5,pcVar9,uVar12); | |
iVar16 = -1; | |
uVar6 = extraout_r1_09; | |
} | |
LAB_8f62aecc: | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar16,uVar6,piVar1); | |
} | |
void FUN_8f62b070(undefined4 param_1,uint *param_2,byte *param_3,undefined4 param_4, | |
undefined4 param_5,int param_6) | |
{ | |
int *piVar1; | |
undefined4 *puVar2; | |
uint uVar3; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
char *pcVar4; | |
int *in_lr; | |
undefined8 uVar5; | |
undefined8 uVar6; | |
undefined8 uVar7; | |
undefined8 uVar8; | |
piVar1 = DAT_8f69d118; | |
uVar5 = FUN_8f602f04(param_1,param_2); | |
uVar6 = FUN_8f602f04(param_2,(int)((ulonglong)uVar5 >> 0x20)); | |
uVar7 = FUN_8f602f04(param_1,(int)((ulonglong)uVar6 >> 0x20)); | |
uVar8 = FUN_8f602f04(param_5,(int)((ulonglong)uVar7 >> 0x20)); | |
pcVar4 = (char *)uVar8; | |
puVar2 = (undefined4 *)FUN_8f628d98(param_3,(int)((ulonglong)uVar8 >> 0x20),(int)pcVar4); | |
uVar8 = FUN_8f61953c(param_2,puVar2,(uint)pcVar4,param_6); | |
if ((int)uVar8 != 0) { | |
dprintf((byte *)s_ERROR__Updating_Device_Tree_Fail_8f663578,(int *)((ulonglong)uVar8 >> 0x20), | |
pcVar4,param_6); | |
pcVar4 = s_app_aboot_aboot_c_8f662664; | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_app_aboot_aboot_c_8f662664,0x41c); | |
} | |
uVar8 = FUN_8f636758((int)puVar2); | |
if (DAT_8f67f420 == 0) { | |
dprintf((byte *)s_The_dm_verity_is_not_started_in_e_8f6635a0,(int *)((ulonglong)uVar8 >> 0x20), | |
pcVar4,0); | |
uVar8 = FUN_8f610014(8); | |
FUN_8f62ad98((int)uVar8,(int)((ulonglong)uVar8 >> 0x20),pcVar4); | |
uVar8 = FUN_8f60f6d4(); | |
if (DAT_8f6903e4 == 0) { | |
uVar8 = FUN_8f624e04((int)uVar8,(int *)((ulonglong)uVar8 >> 0x20),pcVar4); | |
} | |
} | |
if ((((DAT_8f6903f4 == 0) || (DAT_8f6903f8 == 0)) && (boot_into_recovery == 0)) && | |
(((uVar8 = FUN_8f6267d0((int)uVar8,(int)((ulonglong)uVar8 >> 0x20)), (int)uVar8 != 0 && | |
(DAT_8f67f33c != 0)) && | |
(uVar8 = FUN_8f60dbb0((byte *)s_devinfo_8f65a2fc,'\x01'), (int)uVar8 != 0)))) { | |
pcVar4 = s_app_aboot_aboot_c_8f662664; | |
uVar8 = FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_app_aboot_aboot_c_8f662664,0x451); | |
} | |
uVar8 = FUN_8f601b80((int)uVar8,(int)((ulonglong)uVar8 >> 0x20)); | |
uVar8 = FUN_8f600884((int)uVar8,(int)((ulonglong)uVar8 >> 0x20),pcVar4); | |
DAT_8f67f324 = DAT_8f67f324 + 1; | |
if (DAT_8f67f324 == 1) { | |
uVar3 = FUN_8f625b9c(); | |
uVar8 = CONCAT44(extraout_r1_00,uVar3); | |
} | |
FUN_8f602d14((int)uVar8,(int)((ulonglong)uVar8 >> 0x20)); | |
FUN_8f62591c(3); | |
FUN_8f6262fc(); | |
uVar8 = FUN_8f607f64((int *)0x1,extraout_r1); | |
if (*(int *)((int)uVar7 + 0x38) == 0x644d5241) { | |
if (piVar1 == DAT_8f69d118) { | |
FUN_8f6158f0(param_1,(int)uVar6); | |
return; | |
} | |
} | |
else { | |
uVar8 = (*(code *)uVar5)(0,param_4,(int)uVar6); | |
if (piVar1 == DAT_8f69d118) { | |
return; | |
} | |
} | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar8,(int)((ulonglong)uVar8 >> 0x20),piVar1); | |
} | |
// WARNING: Restarted to delay deadcode elimination for space: ram | |
void FUN_8f62b2d8(void) | |
{ | |
undefined uVar1; | |
int *piVar2; | |
int **ppiVar3; | |
uint uVar4; | |
int *extraout_r1; | |
int *piVar5; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
undefined4 extraout_r1_03; | |
undefined4 extraout_r1_04; | |
undefined4 extraout_r1_05; | |
undefined4 extraout_r1_06; | |
undefined4 extraout_r1_07; | |
undefined4 extraout_r1_08; | |
undefined4 extraout_r1_09; | |
undefined4 extraout_r1_10; | |
undefined4 extraout_r1_11; | |
undefined4 extraout_r1_12; | |
undefined4 extraout_r1_13; | |
undefined4 extraout_r1_14; | |
undefined4 extraout_r1_15; | |
byte *pbVar6; | |
undefined4 uVar7; | |
code *pcVar8; | |
code *pcVar9; | |
undefined4 *puVar10; | |
int iVar11; | |
int *piVar12; | |
int iVar13; | |
undefined *puVar14; | |
uint *puVar15; | |
undefined4 uVar16; | |
int *piVar17; | |
undefined4 *puVar18; | |
int *in_lr; | |
undefined8 uVar19; | |
longlong lVar20; | |
uint local_68; | |
uint uStack_64; | |
int *local_50; | |
int *local_48; | |
uint local_40; | |
int *local_34; | |
uint *local_30; | |
int *local_2c; | |
local_34 = (int *)0x0; | |
local_30 = (uint *)0x0; | |
local_2c = DAT_8f69d118; | |
uVar19 = FUN_8f606760((byte *)s_bootselect_8f6635d4); | |
if ((int)uVar19 == -1) { | |
LAB_8f62b328: | |
iVar11 = boot_into_recovery; | |
if (boot_into_recovery != 0) goto LAB_8f62b3bc; | |
pbVar6 = (byte *)0x8; | |
FUN_8f636968((uint *)&DAT_8f691440,0,8); | |
uVar19 = FUN_8f62ef84((int)&DAT_8f691440,(byte *)0x8,pbVar6); | |
if ((int)uVar19 < 1) { | |
DAT_8f69144c = iVar11; | |
if ((int)uVar19 != 0) { | |
dprintf((byte *)s_failed_to_get_ffbm_cookie_8f663620,(int *)((ulonglong)uVar19 >> 0x20), | |
pbVar6,&DAT_8f69144c); | |
} | |
} | |
else { | |
DAT_8f69144c = 1; | |
} | |
} | |
else { | |
lVar20 = FUN_8f60688c((int)uVar19,(int)((ulonglong)uVar19 >> 0x20)); | |
if (lVar20 == 0) goto LAB_8f62b328; | |
ppiVar3 = (int **)FUN_8f6366a8((int *)0x40,(int)DAT_8f6903e0 + 0x3fU & 0xffffffc0); | |
if (ppiVar3 == (int **)0x0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_app_aboot_aboot_c_8f662664,0x545); | |
} | |
iVar11 = FUN_8f60d85c((uint)lVar20,(uint)((ulonglong)lVar20 >> 0x20),(uint)ppiVar3, | |
(uint)DAT_8f6903e0); | |
if (iVar11 != 0) { | |
LAB_8f62b9b4: | |
FUN_8f636758((int)ppiVar3); | |
goto LAB_8f62b328; | |
} | |
uVar7 = 0x6c655342; | |
if ((*ppiVar3 != (int *)0x6c655342) || (uVar7 = 0x10001, ppiVar3[1] != (int *)0x10001)) { | |
dprintf((byte *)s_Signature__0x_08x_or_version__0x_8f6635e0,*ppiVar3,ppiVar3[1],uVar7); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_app_aboot_aboot_c_8f662664,0x555); | |
goto LAB_8f62b9b4; | |
} | |
piVar2 = ppiVar3[3]; | |
if (-1 < (int)piVar2) goto LAB_8f62b9b4; | |
FUN_8f636758((int)ppiVar3); | |
if (((uint)piVar2 & 0x40000000) != 0) goto LAB_8f62b328; | |
boot_into_recovery = 1; | |
LAB_8f62b3bc: | |
DAT_8f69144c = 0; | |
} | |
uVar7 = 8; | |
uVar19 = FUN_8f636a7c((char *)0x8f6ff000,s_ANDROID__8f662c60,8); | |
if ((int)uVar19 == 0) { | |
puVar14 = (undefined *)0x8f6ff000; | |
LAB_8f62ba5c: | |
uVar16 = *(undefined4 *)(puVar14 + 0xc); | |
puVar15 = *(uint **)(puVar14 + 0x20); | |
uVar7 = FUN_8f6005c8((int)uVar19,(int)((ulonglong)uVar19 >> 0x20)); | |
FUN_8f62b070(uVar16,puVar15,puVar14 + 0x40,uVar7,*(undefined4 *)(puVar14 + 0x14), | |
*(int *)(puVar14 + 0x10)); | |
uVar16 = 0; | |
uVar7 = extraout_r1_03; | |
} | |
else { | |
if (boot_into_recovery == 0) { | |
iVar11 = boot_into_recovery; | |
uVar19 = FUN_8f606760((byte *)(s_fastboot_8f66403c + 4)); | |
iVar13 = (int)uVar19; | |
lVar20 = FUN_8f60688c(iVar13,(int)((ulonglong)uVar19 >> 0x20)); | |
if (lVar20 == 0) { | |
dprintf((byte *)s_ERROR__No_boot_partition_found_8f66363c,(int *)0x0,uVar7,iVar11); | |
uVar16 = 0xffffffff; | |
uVar7 = extraout_r1_01; | |
goto LAB_8f62b9e4; | |
} | |
} | |
else { | |
iVar11 = boot_into_recovery; | |
uVar19 = FUN_8f606760((byte *)s_recovery_8f65b074); | |
iVar13 = (int)uVar19; | |
lVar20 = FUN_8f60688c(iVar13,(int)((ulonglong)uVar19 >> 0x20)); | |
if (lVar20 == 0) { | |
dprintf((byte *)s_ERROR__No_recovery_partition_fou_8f66365c, | |
(int *)((ulonglong)lVar20 >> 0x20),0,iVar11); | |
uVar16 = 0xffffffff; | |
uVar7 = extraout_r1_12; | |
goto LAB_8f62b9e4; | |
} | |
} | |
uStack_64 = (uint)((ulonglong)lVar20 >> 0x20); | |
local_68 = (uint)lVar20; | |
puVar14 = &DAT_8f690440; | |
uVar1 = FUN_8f606904(iVar13); | |
FUN_8f60db18(uVar1); | |
piVar2 = DAT_8f6903e0; | |
uVar19 = FUN_8f60d85c(local_68,uStack_64,(uint)&DAT_8f690440,(uint)DAT_8f6903e0); | |
if ((int)uVar19 != 0) { | |
dprintf((byte *)s_ERROR__Cannot_read_boot_image_he_8f6632e8,(int *)((ulonglong)uVar19 >> 0x20) | |
,puVar14,piVar2); | |
uVar16 = 0xffffffff; | |
uVar7 = extraout_r1_10; | |
goto LAB_8f62b9e4; | |
} | |
uVar7 = 8; | |
uVar19 = FUN_8f636a7c(&DAT_8f690440,s_ANDROID__8f662c60,8); | |
piVar12 = (int *)((ulonglong)uVar19 >> 0x20); | |
if ((int)uVar19 != 0) { | |
dprintf((byte *)s_ERROR__Invalid_boot_image_header_8f663680,piVar12,uVar7,piVar2); | |
uVar16 = 0xffffffff; | |
uVar7 = extraout_r1_11; | |
goto LAB_8f62b9e4; | |
} | |
if ((DAT_8f690464 != (int *)0x0) && (DAT_8f690464 != DAT_8f6903e0)) { | |
if ((int *)0x1000 < DAT_8f690464) { | |
dprintf((byte *)s_ERROR__Invalid_page_size_8f6636a4,piVar12,DAT_8f6903e0,DAT_8f690464); | |
uVar16 = 0xffffffff; | |
uVar7 = extraout_r1_14; | |
goto LAB_8f62b9e4; | |
} | |
DAT_8f690430 = (int *)((int)DAT_8f690464 + -1); | |
DAT_8f6903e0 = DAT_8f690464; | |
} | |
local_40 = ~(uint)DAT_8f690430; | |
local_50 = (int *)(local_40 & (int)DAT_8f690430 + (int)DAT_8f690448); | |
if (local_50 < DAT_8f690448) { | |
local_50 = (int *)0xffffffff; | |
} | |
local_48 = (int *)((int)DAT_8f690430 + (int)DAT_8f690450 & local_40); | |
if (local_48 < DAT_8f690450) { | |
local_48 = (int *)0xffffffff; | |
} | |
local_40 = (int)DAT_8f690430 + DAT_8f690458 & local_40; | |
piVar2 = local_48; | |
uVar4 = DAT_8f690458; | |
if (local_40 < DAT_8f690458) { | |
local_40 = 0xffffffff; | |
piVar2 = (int *)0xffffffff; | |
uVar4 = 0; | |
} | |
piVar2 = (int *)FUN_8f601228(piVar2,uVar4); | |
FUN_8f63685c(piVar2,(undefined4 *)&DAT_8f690440,(int)DAT_8f6903e0); | |
DAT_8f69067f = 0; | |
pcVar8 = (code *)((int)local_50 + (int)DAT_8f6903e0 + (int)local_48); | |
pcVar9 = pcVar8 + local_40; | |
iVar11 = (uint)CARRY4((uint)local_50,(uint)DAT_8f6903e0) + | |
(uint)CARRY4((int)local_50 + (int)DAT_8f6903e0,(uint)local_48) + | |
(uint)CARRY4((uint)pcVar8,local_40); | |
if ((iVar11 != 0 || (code *)0xfffffffe < pcVar9) && | |
(iVar11 != 0 || pcVar9 != (code *)0xffffffff)) { | |
dprintf((byte *)s_Integer_overflow_detected_in_boo_8f6636c0,(int *)0x5e1, | |
s_app_aboot_aboot_c_8f662664,iVar11); | |
uVar16 = 0xffffffff; | |
uVar7 = extraout_r1_07; | |
goto LAB_8f62b9e4; | |
} | |
iVar11 = (int)local_50 + (int)DAT_8f6903e0; | |
piVar12 = local_48; | |
FUN_8f629d24(0xffffffff,(uint)local_50); | |
piVar17 = (int *)((int)local_48 + local_40 + iVar11); | |
pcVar8 = (code *)~(uint)piVar2; | |
if (pcVar8 < piVar17) { | |
LAB_8f62b9d4: | |
dprintf((byte *)s_Boot_image_buffer_address_overla_8f663874,extraout_r1,piVar12,pcVar8); | |
uVar16 = 0xffffffff; | |
uVar7 = extraout_r1_02; | |
goto LAB_8f62b9e4; | |
} | |
if (piVar2 < thunk_FUN_8f600020) { | |
piVar12 = (int *)((int)piVar2 + (int)piVar17); | |
pcVar8 = thunk_FUN_8f600020; | |
if (thunk_FUN_8f600020 < piVar12) goto LAB_8f62b9d4; | |
} | |
else { | |
pcVar8 = (code *)0x8f9fffff; | |
if (piVar2 < (int *)0x8fa00000) goto LAB_8f62b9d4; | |
} | |
uVar19 = FUN_8f607f64((int *)&DAT_00000004,extraout_r1); | |
uVar19 = FUN_8f601264((int)uVar19,(int)((ulonglong)uVar19 >> 0x20)); | |
if ((int *)((int)uVar19 - (int)DAT_8f6903e0) < piVar17) { | |
dprintf((byte *)s_booimage_size_is_greater_than_DD_8f663704,(int *)((ulonglong)uVar19 >> 0x20) | |
,piVar12,DAT_8f6903e0); | |
uVar16 = 0xffffffff; | |
uVar7 = extraout_r1_08; | |
goto LAB_8f62b9e4; | |
} | |
pcVar8 = (code *)((int)piVar2 + (int)DAT_8f6903e0); | |
piVar12 = (int *)((int)piVar17 - (int)DAT_8f6903e0); | |
uVar19 = FUN_8f60d85c((uint)(lVar20 + ZEXT48(DAT_8f6903e0)), | |
(uint)(lVar20 + ZEXT48(DAT_8f6903e0) >> 0x20),(uint)pcVar8,(uint)piVar12); | |
piVar5 = (int *)((ulonglong)uVar19 >> 0x20); | |
if ((int)uVar19 != 0) { | |
dprintf((byte *)s_ERROR__Cannot_read_boot_image_8f663734,piVar5,pcVar8,piVar12); | |
uVar16 = 0xffffffff; | |
uVar7 = extraout_r1_09; | |
goto LAB_8f62b9e4; | |
} | |
uVar19 = FUN_8f607f64((int *)&DAT_00000005,piVar5); | |
iVar11 = FUN_8f626498((int)uVar19,(int)((ulonglong)uVar19 >> 0x20)); | |
if ((iVar11 != 0) && (piVar12 = DAT_8f67f350, DAT_8f67f350 == (int *)0x0)) { | |
pcVar8 = (code *)((int)piVar2 + (int)piVar17); | |
pcVar9 = (code *)~(uint)pcVar8; | |
if (pcVar9 < DAT_8f6903e0) { | |
LAB_8f62bb90: | |
dprintf((byte *)s_Signature_read_buffer_address_ov_8f6638b0,(int *)pcVar9,pcVar8, | |
DAT_8f6903e0); | |
uVar16 = 0xffffffff; | |
uVar7 = extraout_r1_06; | |
goto LAB_8f62b9e4; | |
} | |
if (pcVar8 < thunk_FUN_8f600020) { | |
pcVar9 = thunk_FUN_8f600020; | |
if (thunk_FUN_8f600020 < pcVar8 + (int)DAT_8f6903e0) goto LAB_8f62bb90; | |
} | |
else { | |
pcVar9 = (code *)0x8f9fffff; | |
if (pcVar8 < (code *)0x8fa00000) goto LAB_8f62bb90; | |
} | |
piVar12 = DAT_8f6903e0; | |
uVar19 = FUN_8f60d85c((uint)(lVar20 + ZEXT48(piVar17)), | |
(uint)(lVar20 + ZEXT48(piVar17) >> 0x20),(uint)pcVar8,(uint)DAT_8f6903e0 | |
); | |
if ((int)uVar19 != 0) { | |
dprintf((byte *)s_ERROR__Cannot_read_boot_image_si_8f663754, | |
(int *)((ulonglong)uVar19 >> 0x20),pcVar8,piVar12); | |
uVar16 = 0xffffffff; | |
uVar7 = extraout_r1_13; | |
goto LAB_8f62b9e4; | |
} | |
FUN_8f62ac94(piVar2,piVar17); | |
} | |
uVar19 = FUN_8f60ed2c(); | |
if ((int)uVar19 == 1) { | |
dprintf((byte *)s_Your_device_has_been_unlocked_an_8f663780,(int *)((ulonglong)uVar19 >> 0x20) | |
,pcVar8,piVar12); | |
} | |
iVar11 = FUN_8f60e054((int)DAT_8f67f350); | |
if (iVar11 == 0) { | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_app_aboot_aboot_c_8f662664,0x666); | |
} | |
uVar19 = FUN_8f658230((char *)((int)piVar2 + (int)DAT_8f6903e0),(char *)DAT_8f690448); | |
piVar12 = DAT_8f6903e0; | |
local_68 = (uint)uVar19; | |
if (local_68 == 0) { | |
puVar18 = (undefined4 *)((int)piVar2 + (int)DAT_8f6903e0); | |
iVar11 = FUN_8f636e98((byte *)puVar18,(byte *)s_UNCOMPRESSED_IMG_8f6637e0,(int *)0x10); | |
piVar17 = DAT_8f690448; | |
if (iVar11 == 0) { | |
local_30 = (uint *)puVar18[4]; | |
puVar18 = (undefined4 *)((int)piVar2 + (int)(piVar12 + 5)); | |
local_68 = 0x14; | |
} | |
} | |
else { | |
iVar11 = FUN_8f601264(local_68,(int)((ulonglong)uVar19 >> 0x20)); | |
puVar18 = (undefined4 *)((int)piVar2 + (int)piVar17 + (int)piVar12); | |
pbVar6 = (byte *)((iVar11 - (int)piVar17) - (int)DAT_8f6903e0); | |
puVar10 = puVar18; | |
uVar19 = FUN_8f6580c8((int)piVar2 + (int)DAT_8f6903e0,(byte *)DAT_8f690448,(byte *)puVar18, | |
pbVar6,(byte **)&local_30,(byte **)&local_34); | |
if ((int)uVar19 != 0) { | |
dprintf((byte *)s_decompressing_kernel_image_faile_8f6637b8, | |
(int *)((ulonglong)uVar19 >> 0x20),puVar10,pbVar6); | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_app_aboot_aboot_c_8f662664,0x678); | |
} | |
local_68 = 0; | |
piVar17 = local_34; | |
} | |
FUN_8f628a5c((int)&DAT_8f690440,(uint)(puVar18[0xe] == 0x644d5241),(char *)piVar17); | |
uVar19 = FUN_8f602f38(DAT_8f69044c,extraout_r1_00); | |
DAT_8f69044c = (int *)uVar19; | |
uVar19 = FUN_8f602f38(DAT_8f690454,(int)((ulonglong)uVar19 >> 0x20)); | |
DAT_8f690454 = (undefined4 *)uVar19; | |
DAT_8f690460 = (int **)FUN_8f602f38(DAT_8f690460,(int)((ulonglong)uVar19 >> 0x20)); | |
piVar12 = (int *)((uint)((int)piVar17 + (int)DAT_8f690430) & ~(uint)DAT_8f690430); | |
pcVar8 = (code *)~(uint)DAT_8f69044c; | |
if (piVar12 < piVar17) { | |
piVar12 = (int *)0xffffffff; | |
} | |
piVar17 = DAT_8f690430; | |
pcVar9 = (code *)DAT_8f69044c; | |
if (piVar12 <= pcVar8) { | |
if (DAT_8f69044c < (int *)0x8f600000) { | |
pcVar8 = thunk_FUN_8f600020; | |
piVar17 = (int *)((int)piVar12 + (int)DAT_8f69044c); | |
if ((int *)((int)piVar12 + (int)DAT_8f69044c) < (int *)0x8f600001) { | |
LAB_8f62b7b0: | |
uVar19 = FUN_8f629c80((uint)DAT_8f69044c,(uint)piVar12,(char *)pcVar8); | |
piVar17 = (int *)((ulonglong)uVar19 >> 0x20); | |
if (((int)uVar19 == 0) && | |
(piVar17 = local_48, pcVar9 = (code *)(int *)~(uint)DAT_8f690454, | |
local_48 <= (int *)~(uint)DAT_8f690454)) { | |
if (DAT_8f690454 < (undefined4 *)0x8f600000) { | |
pcVar8 = (code *)((int)local_48 + (int)DAT_8f690454); | |
pcVar9 = thunk_FUN_8f600020; | |
piVar17 = local_48; | |
pcVar9 = pcVar9; | |
if (pcVar8 < (int *)0x8f600001) { | |
LAB_8f62b7fc: | |
uVar19 = FUN_8f629c80((uint)DAT_8f690454,(uint)local_48,(char *)pcVar8); | |
piVar17 = (int *)((ulonglong)uVar19 >> 0x20); | |
if ((int)uVar19 == 0) { | |
FUN_8f63685c(DAT_8f69044c,puVar18,(int)piVar12); | |
piVar12 = DAT_8f690450; | |
FUN_8f63685c(DAT_8f690454, | |
(undefined4 *)((int)piVar2 + (int)local_50 + (int)DAT_8f6903e0), | |
(int)DAT_8f690450); | |
pcVar8 = (code *)~(uint)DAT_8f690460; | |
if (local_50 <= pcVar8) { | |
if (DAT_8f690460 < (int **)0x8f600000) { | |
pcVar8 = thunk_FUN_8f600020; | |
piVar12 = (int *)((int)local_50 + (int)DAT_8f690460); | |
if (piVar12 < (int *)0x8f600001) { | |
LAB_8f62b874: | |
uVar19 = FUN_8f629c80((uint)DAT_8f690460,(uint)local_50,(char *)piVar12); | |
local_50 = (int *)((ulonglong)uVar19 >> 0x20); | |
if ((int)uVar19 == 0) { | |
puVar15 = local_30; | |
ppiVar3 = DAT_8f690460; | |
uVar19 = FUN_8f6184cc((int)piVar2 + local_68 + (int)DAT_8f6903e0, | |
(int)DAT_8f690448,local_30,DAT_8f690460); | |
piVar2 = (int *)((ulonglong)uVar19 >> 0x20); | |
if ((int)uVar19 == 0) { | |
dprintf((byte *)s_ERROR__Appended_Device_Tree_Blob_8f663848,piVar2, | |
puVar15,ppiVar3); | |
uVar16 = 0xffffffff; | |
uVar7 = extraout_r1_15; | |
goto LAB_8f62b9e4; | |
} | |
if (((boot_into_recovery == 0) || (DAT_8f67f350 != (int *)0x0)) || | |
(DAT_8f67f354 != 0)) { | |
puVar14 = &DAT_8f690440; | |
} | |
else { | |
uVar19 = FUN_8f600a9c((int)uVar19,piVar2); | |
puVar14 = &DAT_8f690440; | |
} | |
goto LAB_8f62ba5c; | |
} | |
} | |
} | |
else { | |
pcVar8 = (code *)0x8f9fffff; | |
if ((int **)0x8f9fffff < DAT_8f690460) goto LAB_8f62b874; | |
} | |
} | |
dprintf((byte *)s_Device_tree_addresses_are_not_va_8f663820,local_50,piVar12, | |
pcVar8); | |
uVar16 = 0xffffffff; | |
uVar7 = extraout_r1_04; | |
goto LAB_8f62b9e4; | |
} | |
} | |
} | |
else { | |
pcVar9 = (code *)0x8f9fffff; | |
piVar17 = local_48; | |
if ((undefined4 *)0x8f9fffff < DAT_8f690454) goto LAB_8f62b7fc; | |
} | |
} | |
} | |
} | |
else { | |
pcVar8 = (code *)0x8f9fffff; | |
if ((int *)0x8f9fffff < DAT_8f69044c) goto LAB_8f62b7b0; | |
} | |
} | |
dprintf((byte *)s_kernel_ramdisk_addresses_are_not_8f6637f4,piVar17,pcVar8,pcVar9); | |
uVar16 = 0xffffffff; | |
uVar7 = extraout_r1_05; | |
} | |
LAB_8f62b9e4: | |
if (local_2c != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar16,uVar7,local_2c); | |
} | |
return; | |
} | |
void FUN_8f62bcec(undefined4 param_1,undefined4 param_2,undefined4 param_3) | |
{ | |
int *piVar1; | |
int iVar2; | |
int *piVar3; | |
undefined4 *puVar4; | |
char *pcVar5; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
int *piVar6; | |
int *piVar7; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
undefined4 extraout_r1_03; | |
undefined4 extraout_r1_04; | |
undefined4 extraout_r1_05; | |
undefined4 extraout_r1_06; | |
undefined4 extraout_r1_07; | |
undefined4 extraout_r1_08; | |
undefined4 extraout_r1_09; | |
undefined4 extraout_r1_10; | |
undefined4 extraout_r1_11; | |
undefined4 extraout_r1_12; | |
undefined4 extraout_r1_13; | |
undefined4 extraout_r1_14; | |
undefined4 extraout_r1_15; | |
undefined4 uVar8; | |
uint uVar9; | |
code *pcVar10; | |
code *pcVar11; | |
int iVar12; | |
undefined *puVar13; | |
uint *puVar14; | |
code *pcVar15; | |
undefined4 uVar16; | |
undefined4 *puVar17; | |
int *piVar18; | |
int *piVar19; | |
int *in_lr; | |
ulonglong uVar20; | |
undefined8 uVar21; | |
ulonglong uVar22; | |
int local_3c; | |
piVar1 = DAT_8f69d118; | |
piVar19 = DAT_8f69d118; | |
iVar2 = FUN_8f626460(param_1,param_2); | |
if (iVar2 == 0) { | |
uVar21 = FUN_8f614524(); | |
iVar2 = (int)uVar21; | |
if (iVar2 == 0) { | |
dprintf((byte *)s_ERROR__Partition_table_not_found_8f6629c0,(int *)((ulonglong)uVar21 >> 0x20) | |
,param_3,piVar19); | |
uVar16 = 0xffffffff; | |
uVar8 = extraout_r1_13; | |
goto LAB_8f62bd70; | |
} | |
if (boot_into_recovery == 0) { | |
iVar12 = boot_into_recovery; | |
uVar21 = FUN_8f638f3c(iVar2,(byte *)(s_fastboot_8f66403c + 4)); | |
local_3c = (int)uVar21; | |
if (local_3c == 0) { | |
dprintf((byte *)s_ERROR__No_boot_partition_found_8f66363c,(int *)((ulonglong)uVar21 >> 0x20) | |
,param_3,iVar12); | |
uVar16 = 0xffffffff; | |
uVar8 = extraout_r1_02; | |
goto LAB_8f62bd70; | |
} | |
} | |
else { | |
iVar12 = boot_into_recovery; | |
uVar21 = FUN_8f638f3c(iVar2,(byte *)s_recovery_8f65b074); | |
local_3c = (int)uVar21; | |
if (local_3c == 0) { | |
dprintf((byte *)s_ERROR__No_recovery_partition_fou_8f66365c, | |
(int *)((ulonglong)uVar21 >> 0x20),param_3,iVar12); | |
uVar16 = 0xffffffff; | |
uVar8 = extraout_r1_15; | |
goto LAB_8f62bd70; | |
} | |
} | |
piVar19 = (int *)&DAT_8f690440; | |
uVar8 = 0; | |
uVar21 = FUN_8f614564(local_3c,(undefined4 *)0x0,(int *)0x0,(undefined4 *)&DAT_8f690440, | |
DAT_8f6903e0); | |
if ((int)uVar21 != 0) { | |
dprintf((byte *)s_ERROR__Cannot_read_boot_image_he_8f6632e8,(int *)((ulonglong)uVar21 >> 0x20) | |
,uVar8,piVar19); | |
uVar16 = 0xffffffff; | |
uVar8 = extraout_r1_10; | |
goto LAB_8f62bd70; | |
} | |
uVar8 = 8; | |
uVar21 = FUN_8f636a7c(&DAT_8f690440,s_ANDROID__8f662c60,8); | |
piVar3 = (int *)((ulonglong)uVar21 >> 0x20); | |
if ((int)uVar21 != 0) goto LAB_8f62c1b4; | |
if (DAT_8f690464 != DAT_8f6903e0) { | |
dprintf((byte *)s_ERROR__Invalid_boot_image_pagesi_8f6638f0,DAT_8f6903e0,DAT_8f690464,piVar19) | |
; | |
uVar16 = 0xffffffff; | |
uVar8 = extraout_r1_05; | |
goto LAB_8f62bd70; | |
} | |
piVar3 = (int *)FUN_8f601228(0,DAT_8f6903e0); | |
piVar19 = DAT_8f6903e0; | |
FUN_8f63685c(piVar3,(undefined4 *)&DAT_8f690440,(int)DAT_8f6903e0); | |
FUN_8f628a5c((int)&DAT_8f690440,0,(char *)piVar19); | |
uVar21 = FUN_8f602f38(DAT_8f69044c,extraout_r1_00); | |
DAT_8f69044c = (undefined4 *)uVar21; | |
uVar21 = FUN_8f602f38(DAT_8f690454,(int)((ulonglong)uVar21 >> 0x20)); | |
DAT_8f690454 = (undefined4 *)uVar21; | |
DAT_8f690460 = FUN_8f602f38(DAT_8f690460,(int)((ulonglong)uVar21 >> 0x20)); | |
uVar9 = ~DAT_8f690430; | |
pcVar15 = (code *)(uVar9 & (uint)(DAT_8f690448 + DAT_8f690430)); | |
puVar17 = (undefined4 *)((int)DAT_8f690450 + DAT_8f690430 & uVar9); | |
if (pcVar15 < DAT_8f690448) { | |
pcVar15 = (code *)0xffffffff; | |
} | |
piVar19 = (int *)((int)DAT_8f690458 + DAT_8f690430 & uVar9); | |
DAT_8f69067f = 0; | |
if (puVar17 < DAT_8f690450) { | |
puVar17 = (undefined4 *)0xffffffff; | |
} | |
pcVar10 = (code *)~(uint)DAT_8f69044c; | |
if (piVar19 < DAT_8f690458) { | |
piVar19 = (int *)0xffffffff; | |
} | |
piVar6 = DAT_8f690458; | |
pcVar11 = (code *)DAT_8f69044c; | |
if (pcVar15 <= pcVar10) { | |
if (DAT_8f69044c < (undefined4 *)0x8f600000) { | |
pcVar10 = thunk_FUN_8f600020; | |
piVar6 = (int *)(pcVar15 + (int)DAT_8f69044c); | |
if (pcVar15 + (int)DAT_8f69044c < (int *)0x8f600001) { | |
LAB_8f62bee8: | |
uVar21 = FUN_8f629c80((uint)DAT_8f69044c,(uint)pcVar15,(char *)pcVar10); | |
piVar6 = (int *)((ulonglong)uVar21 >> 0x20); | |
if (((int)uVar21 == 0) && | |
(pcVar11 = (code *)(undefined4 *)~(uint)DAT_8f690454, | |
puVar17 <= (undefined4 *)~(uint)DAT_8f690454)) { | |
if (DAT_8f690454 < (undefined4 *)0x8f600000) { | |
pcVar10 = (code *)((int)puVar17 + (int)DAT_8f690454); | |
pcVar11 = thunk_FUN_8f600020; | |
if (pcVar10 < thunk_FUN_8f600020) { | |
LAB_8f62bf30: | |
uVar21 = FUN_8f629c80((uint)DAT_8f690454,(uint)puVar17,(char *)pcVar10); | |
piVar6 = (int *)((ulonglong)uVar21 >> 0x20); | |
if ((int)uVar21 == 0) { | |
pcVar10 = (code *)((int)DAT_8f6903e0 + (int)pcVar15) + (int)puVar17; | |
pcVar11 = pcVar10 + (int)piVar19; | |
iVar2 = (uint)CARRY4((uint)DAT_8f6903e0,(uint)pcVar15) + | |
(uint)CARRY4((uint)(code *)((int)DAT_8f6903e0 + (int)pcVar15), | |
(uint)puVar17) + (uint)CARRY4((uint)pcVar10,(uint)piVar19); | |
if ((iVar2 != 0 || (code *)0xfffffffe < pcVar11) && | |
(iVar2 != 0 || pcVar11 != (code *)0xffffffff)) { | |
dprintf((byte *)s_Integer_overflow_detected_in_boo_8f663940,(int *)0x0,pcVar11, | |
iVar2); | |
uVar16 = 0xffffffff; | |
uVar8 = extraout_r1_12; | |
goto LAB_8f62bd70; | |
} | |
piVar6 = (int *)(pcVar15 + (int)DAT_8f6903e0); | |
piVar18 = (int *)((int)piVar6 + (int)puVar17 + (int)piVar19); | |
uVar9 = DAT_8f690460 + 0x70a00000; | |
if (0x3fffff < uVar9) { | |
uVar21 = FUN_8f629c80(DAT_8f690460,0,(char *)pcVar11); | |
piVar6 = (int *)((ulonglong)uVar21 >> 0x20); | |
if ((int)uVar21 == 0) { | |
uVar21 = FUN_8f607f64((int *)&DAT_00000004,piVar6); | |
if ((int *)~(uint)DAT_8f6903e0 < piVar18) { | |
dprintf((byte *)s_Integer_overflow_detected_in_boo_8f663978,(int *)0x7b5, | |
s_boot_linux_from_flash_8f663e20,(int *)~(uint)DAT_8f6903e0); | |
uVar16 = 0xffffffff; | |
uVar8 = extraout_r1_07; | |
goto LAB_8f62bd70; | |
} | |
uVar21 = FUN_8f601264((int)uVar21,(int)((ulonglong)uVar21 >> 0x20)); | |
if ((uint)uVar21 < (uint)((int)piVar18 + (int)DAT_8f6903e0)) { | |
dprintf((byte *)s_bootimage_size_is_greater_than_D_8f6639b4, | |
(int *)((ulonglong)uVar21 >> 0x20),DAT_8f6903e0, | |
(int)piVar18 + (int)DAT_8f6903e0); | |
uVar16 = 0xffffffff; | |
uVar8 = extraout_r1_08; | |
goto LAB_8f62bd70; | |
} | |
puVar17 = (undefined4 *)((int)piVar3 + (int)DAT_8f6903e0); | |
piVar6 = DAT_8f6903e0; | |
uVar21 = FUN_8f614564(local_3c,(undefined4 *)0x0,DAT_8f6903e0,puVar17, | |
(undefined4 *)((int)piVar18 - (int)DAT_8f6903e0)); | |
piVar7 = (int *)((ulonglong)uVar21 >> 0x20); | |
if ((int)uVar21 != 0) { | |
dprintf((byte *)s_ERROR__Cannot_read_boot_image_8f663734,piVar7,piVar6, | |
puVar17); | |
uVar16 = 0xffffffff; | |
uVar8 = extraout_r1_09; | |
goto LAB_8f62bd70; | |
} | |
uVar21 = FUN_8f607f64((int *)&DAT_00000005,piVar7); | |
iVar2 = FUN_8f626498((int)uVar21,(int)((ulonglong)uVar21 >> 0x20)); | |
if ((iVar2 != 0) && (DAT_8f67f350 == 0)) { | |
puVar17 = (undefined4 *)((int)piVar3 + (int)piVar18); | |
piVar6 = piVar18; | |
uVar21 = FUN_8f614564(local_3c,(undefined4 *)0x0,piVar18,puVar17, | |
DAT_8f6903e0); | |
if ((int)uVar21 != 0) { | |
dprintf((byte *)s_ERROR__Cannot_read_boot_image_si_8f663754, | |
(int *)((ulonglong)uVar21 >> 0x20),piVar6,puVar17); | |
uVar16 = 0xffffffff; | |
uVar8 = extraout_r1_14; | |
goto LAB_8f62bd70; | |
} | |
FUN_8f62ac94(piVar3,piVar18); | |
} | |
if (DAT_8f690458 != (int *)0x0) { | |
if ((int *)~(uint)DAT_8f6903e0 < piVar19) { | |
dprintf((byte *)s_ERROR__Integer_overflow_in_boot_i_8f6639e4, | |
(int *)s_boot_linux_from_flash_8f663e20,0x7de,DAT_8f690458); | |
uVar16 = 0xffffffff; | |
uVar8 = extraout_r1_11; | |
goto LAB_8f62bd70; | |
} | |
FUN_8f6353a0(in_lr,(byte *)s_ASSERT_FAILED_at___s__d____s_8f659820, | |
(int *)s_app_aboot_aboot_c_8f662664,0x7e3); | |
} | |
FUN_8f63685c(DAT_8f69044c,(undefined4 *)((int)piVar3 + (int)DAT_8f6903e0), | |
(int)DAT_8f690448); | |
puVar17 = DAT_8f690450; | |
puVar4 = FUN_8f63685c(DAT_8f690454, | |
(undefined4 *) | |
((int)piVar3 + (int)(pcVar15 + (int)DAT_8f6903e0)), | |
(int)DAT_8f690450); | |
uVar22 = FUN_8f626498(puVar4,extraout_r1_01); | |
uVar8 = (undefined4)(uVar22 >> 0x20); | |
pcVar5 = (char *)uVar22; | |
if (pcVar5 != (char *)0x0) { | |
pcVar5 = s_ANDROID_BOOT__8f67f340; | |
uVar20 = CONCAT44(uVar8,0x8f67f340); | |
if (DAT_8f67f350 == 0) { | |
if (DAT_8f67f354 == 0) { | |
puVar13 = &DAT_8f690440; | |
} | |
else { | |
uVar20 = FUN_8f62a054((undefined4 *)s_ANDROID_BOOT__8f67f340,uVar8, | |
puVar17); | |
puVar13 = &DAT_8f690440; | |
} | |
goto LAB_8f62bd3c; | |
} | |
} | |
uVar20 = uVar22 & 0xffffffff00000000 | ZEXT48(pcVar5); | |
puVar13 = &DAT_8f690440; | |
goto LAB_8f62bd3c; | |
} | |
} | |
dprintf((byte *)s_Device_tree_addresses_are_not_va_8f663820,piVar6,pcVar11,uVar9); | |
uVar16 = 0xffffffff; | |
uVar8 = extraout_r1_04; | |
goto LAB_8f62bd70; | |
} | |
} | |
} | |
else { | |
pcVar11 = (code *)0x8f9fffff; | |
if ((undefined4 *)0x8f9fffff < DAT_8f690454) goto LAB_8f62bf30; | |
} | |
} | |
} | |
} | |
else { | |
pcVar10 = (code *)0x8f9fffff; | |
if ((undefined4 *)0x8f9fffff < DAT_8f69044c) goto LAB_8f62bee8; | |
} | |
} | |
dprintf((byte *)s_kernel_ramdisk_addresses_are_not_8f6637f4,piVar6,pcVar10,pcVar11); | |
uVar16 = 0xffffffff; | |
uVar8 = extraout_r1_03; | |
} | |
else { | |
uVar8 = 8; | |
uVar20 = FUN_8f636a7c((char *)0x8f6ff000,s_ANDROID__8f662c60,8); | |
piVar3 = (int *)(uVar20 >> 0x20); | |
if ((int)uVar20 != 0) { | |
LAB_8f62c1b4: | |
dprintf((byte *)s_ERROR__Invalid_boot_image_header_8f663680,piVar3,uVar8,piVar19); | |
uVar16 = 0xffffffff; | |
uVar8 = extraout_r1_06; | |
goto LAB_8f62bd70; | |
} | |
puVar13 = (undefined *)0x8f6ff000; | |
LAB_8f62bd3c: | |
uVar16 = *(undefined4 *)(puVar13 + 0xc); | |
puVar14 = *(uint **)(puVar13 + 0x20); | |
uVar8 = FUN_8f6005c8((int)uVar20,(int)(uVar20 >> 0x20)); | |
FUN_8f62b070(uVar16,puVar14,puVar13 + 0x40,uVar8,*(undefined4 *)(puVar13 + 0x14), | |
*(int *)(puVar13 + 0x10)); | |
uVar16 = 0; | |
uVar8 = extraout_r1; | |
} | |
LAB_8f62bd70: | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(uVar16,uVar8,piVar1); | |
} | |
return; | |
} | |
void FUN_8f62c608(undefined4 param_1,undefined4 param_2) | |
{ | |
int *piVar1; | |
undefined uVar2; | |
uint uVar3; | |
int *piVar4; | |
undefined4 extraout_r1; | |
undefined4 extraout_r1_00; | |
undefined4 extraout_r1_01; | |
undefined4 extraout_r1_02; | |
undefined4 extraout_r1_03; | |
int *extraout_r1_04; | |
undefined4 extraout_r1_05; | |
undefined4 extraout_r1_06; | |
undefined4 extraout_r1_07; | |
undefined4 extraout_r1_08; | |
int *extraout_r1_09; | |
undefined4 extraout_r1_10; | |
int *extraout_r1_11; | |
undefined4 extraout_r1_12; | |
int *extraout_r1_13; | |
int *extraout_r1_14; | |
undefined4 extraout_r1_15; | |
int *extraout_r1_16; | |
undefined4 extraout_r1_17; | |
undefined4 extraout_r1_18; | |
undefined4 extraout_r1_19; | |
undefined4 extraout_r1_20; | |
undefined4 extraout_r1_21; | |
undefined4 extraout_r1_22; | |
undefined4 extraout_r1_23; | |
undefined4 extraout_r1_24; | |
undefined4 extraout_r1_25; | |
undefined4 uVar5; | |
int *piVar6; | |
undefined4 uVar7; | |
undefined4 *puVar8; | |
char *pcVar9; | |
int iVar10; | |
undefined4 *puVar11; | |
uint uVar12; | |
int *piVar13; | |
uint uVar14; | |
undefined *puVar15; | |
int iVar16; | |
undefined4 *puVar17; | |
undefined4 *puVar18; | |
longlong lVar19; | |
ulonglong uVar20; | |
undefined8 uVar21; | |
piVar6 = DAT_8f69d118; | |
uVar21 = FUN_8f626460(param_1,param_2); | |
piVar1 = DAT_8f69d118; | |
if ((int)uVar21 == 0) { | |
if (piVar6 == DAT_8f69d118) { | |
piVar4 = DAT_8f69d118; | |
uVar21 = FUN_8f614524(); | |
if ((int)uVar21 == 0) { | |
dprintf((byte *)s_ERROR__Partition_table_not_found_8f6629c0, | |
(int *)((ulonglong)uVar21 >> 0x20),piVar6,piVar4); | |
iVar16 = -1; | |
uVar5 = extraout_r1_07; | |
} | |
else { | |
uVar21 = FUN_8f638f3c((int)uVar21,(byte *)s_splash_8f6632bc); | |
iVar10 = (int)uVar21; | |
if (iVar10 == 0) { | |
dprintf((byte *)s_ERROR__splash_Partition_not_foun_8f6632c4, | |
(int *)((ulonglong)uVar21 >> 0x20),piVar6,piVar4); | |
iVar16 = -1; | |
uVar5 = extraout_r1_08; | |
} | |
else { | |
puVar15 = &DAT_8f6901ac; | |
uVar5 = 0; | |
uVar21 = FUN_8f614564(iVar10,(undefined4 *)0x0,(int *)0x0,(undefined4 *)&DAT_8f6901ac, | |
(undefined4 *)0x200); | |
if ((int)uVar21 == 0) { | |
uVar21 = FUN_8f62a6f8(&DAT_8f6901ac); | |
iVar16 = (int)uVar21; | |
if (iVar16 == 0) { | |
uVar21 = FUN_8f62fb78(); | |
uVar5 = (undefined4)((ulonglong)uVar21 >> 0x20); | |
piVar6 = (int *)uVar21; | |
if (piVar6 != (int *)0x0) { | |
if ((DAT_8f6901bc == 0) || (DAT_8f6901c0 == 0)) { | |
piVar4 = (int *)piVar6[1]; | |
puVar15 = &DAT_8f6901ac; | |
if ((piVar4 < DAT_8f6901b4) || | |
(puVar15 = (undefined *)piVar6[2], puVar15 < DAT_8f6901b8)) { | |
dprintf((byte *)s_Logo_config_greater_than_fb_conf_8f663364,piVar4,piVar6, | |
puVar15); | |
iVar16 = -1; | |
uVar5 = extraout_r1_01; | |
} | |
else { | |
puVar11 = (undefined4 *)*piVar6; | |
piVar4 = (int *)(((uint)piVar6[4] >> 3) * (int)piVar4 * (int)puVar15 + 0xfff & | |
0xfffff000); | |
piVar6 = (int *)(((uint)(piVar6[4] * (int)DAT_8f6901b4 * (int)DAT_8f6901b8) >> 3 | |
) + 0x1ff & 0xfffffe00); | |
if (piVar4 < piVar6) { | |
dprintf((byte *)s_ERROR__Splash_image_size_invalid_8f6633a0,piVar4,piVar6, | |
puVar11); | |
iVar16 = -1; | |
uVar5 = extraout_r1_02; | |
} | |
else { | |
uVar7 = 0; | |
uVar21 = FUN_8f614564(iVar10 + 0x4000,(undefined4 *)0x0,(int *)0x0,puVar11, | |
piVar6); | |
uVar5 = (undefined4)((ulonglong)uVar21 >> 0x20); | |
if ((int)uVar21 != 0) { | |
FUN_8f62f508(); | |
iVar16 = -1; | |
dprintf((byte *)s_ERROR__Cannot_read_splash_image_f_8f663334,extraout_r1_04, | |
uVar7,puVar11); | |
uVar5 = extraout_r1_05; | |
} | |
} | |
} | |
} | |
else { | |
puVar11 = (undefined4 *)(*piVar6 + 0xc00000); | |
if ((DAT_8f6901b4 != (int *)piVar6[1]) || (DAT_8f6901b8 != (undefined *)piVar6[2]) | |
) { | |
FUN_8f62f508(); | |
} | |
uVar5 = 0; | |
puVar8 = puVar11; | |
uVar21 = FUN_8f614564(iVar10 + 0x4000,(undefined4 *)0x0,(int *)0x0,puVar11, | |
(undefined4 *)(DAT_8f6901c0 << 9)); | |
iVar16 = (int)uVar21; | |
if (iVar16 == 0) { | |
FUN_8f62fbb8((int)&DAT_8f6901ac,(int)puVar11); | |
uVar5 = extraout_r1; | |
} | |
else { | |
dprintf((byte *)s_ERROR__Cannot_read_splash_image_f_8f663334, | |
(int *)((ulonglong)uVar21 >> 0x20),uVar5,puVar8); | |
iVar16 = -1; | |
uVar5 = extraout_r1_06; | |
} | |
} | |
} | |
} | |
else { | |
dprintf((byte *)s_ERROR__Boot_image_header_invalid_8f663310, | |
(int *)((ulonglong)uVar21 >> 0x20),uVar5,puVar15); | |
iVar16 = -1; | |
uVar5 = extraout_r1_00; | |
} | |
} | |
else { | |
dprintf((byte *)s_ERROR__Cannot_read_boot_image_he_8f6632e8, | |
(int *)((ulonglong)uVar21 >> 0x20),uVar5,puVar15); | |
iVar16 = -1; | |
uVar5 = extraout_r1_03; | |
} | |
} | |
} | |
if (piVar1 != DAT_8f69d118) { | |
// WARNING: Subroutine does not return | |
FUN_8f635428(iVar16,uVar5,piVar1); | |
} | |
return; | |
} | |
LAB_8f62c65c: | |
// WARNING: Subroutine does not return | |
FUN_8f635428((int)uVar21,(int)((ulonglong)uVar21 >> 0x20),piVar6); | |
} | |
if (piVar6 != DAT_8f69d118) goto LAB_8f62c65c; | |
puVar11 = &DAT_8f67f328; | |
puVar8 = (undefined4 *)(uint)(DAT_8f6903f8 == 0); | |
DAT_8f67f328 = puVar8; | |
if (DAT_8f6903ec == 0) { | |
iVar16 = DAT_8f6903fc; | |
if ((DAT_8f6903fc == 0) || (puVar11 = puVar8, puVar8 == (undefined4 *)0x0)) { | |
uVar21 = FUN_8f606760((byte *)s_splash_8f6632bc); | |
iVar10 = (int)uVar21; | |
dprintf((byte *)s_ERROR__JUN____USB_disconnect____8f6633d0,(int *)((ulonglong)uVar21 >> 0x20), | |
iVar16,puVar11); | |
piVar6 = extraout_r1_09; | |
} | |
else { | |
uVar21 = FUN_8f606760((byte *)s_splash_2_8f663b30); | |
iVar10 = (int)uVar21; | |
dprintf((byte *)s_ERROR__JUN____USB_connect____8f663b3c,(int *)((ulonglong)uVar21 >> 0x20), | |
iVar16,puVar8); | |
piVar6 = extraout_r1_16; | |
puVar11 = puVar8; | |
} | |
} | |
else { | |
iVar16 = DAT_8f6903ec; | |
uVar21 = FUN_8f606760((byte *)s_splash_3_8f663b08); | |
iVar10 = (int)uVar21; | |
dprintf((byte *)s_ERROR___Booting_Fail___8f663b14,(int *)((ulonglong)uVar21 >> 0x20),iVar16, | |
puVar11); | |
piVar6 = extraout_r1_13; | |
} | |
if (iVar10 == 0) { | |
dprintf((byte *)s_ERROR__splash_Partition_table_no_8f6633f4,piVar6,iVar16,puVar11); | |
iVar16 = -1; | |
uVar5 = extraout_r1_17; | |
goto LAB_8f62c424; | |
} | |
lVar19 = FUN_8f60688c(iVar10,piVar6); | |
piVar6 = (int *)((ulonglong)lVar19 >> 0x20); | |
uVar12 = (uint)lVar19 | (uint)piVar6; | |
if (lVar19 == 0) { | |
dprintf((byte *)s_ERROR__splash_Partition_invalid_8f663420,piVar6,iVar16,0); | |
iVar16 = -1; | |
uVar5 = extraout_r1_18; | |
goto LAB_8f62c424; | |
} | |
uVar2 = FUN_8f606904(iVar10); | |
uVar21 = FUN_8f60db18(uVar2); | |
uVar20 = FUN_8f60d5cc((int)uVar21,(int)((ulonglong)uVar21 >> 0x20)); | |
uVar3 = (uint)uVar20; | |
if (uVar3 == 0) { | |
dprintf((byte *)s_ERROR_splash_Partition_invalid_b_8f663444,(int *)(uVar20 >> 0x20),iVar16, | |
uVar12 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment