ulong vrr_do_mount_check_before_mount(int64_t **param_1, int32_t *param_2) { int32_t iVar1; int64_t *piVar2; uint64_t uVar3; int64_t iVar4; uint64_t uVar5; int64_t iVar6; int64_t *piVar7; int64_t *piVar8; uint32_t uStack72; uint32_t uStack68; if (*(param_1 + 10) = 0) { return 1; } if ((((*(param_1 + 5) >> 5 & 1) == 0) || (piVar7 = *(**param_1 + 0x88), piVar7 == NULL)) || (*piVar7 == '\0')) { piVar7 = param_1[2]; } iVar4 = cRead_8(sp_el0); iVar4 = *(iVar4 + 0x60); if (param_1 + 9 != NULL) { param_1[9] = NULL; } uVar5 = *(iVar4 + 8); if (((uVar5 == 0) && (*(iVar4 + 0x10) == 0)) && (*(iVar4 + 0x18) == 0)) { iVar6 = 1; *(iVar4 + 0x18) = 0x72536643; code_r0x004cf120: *(iVar4 + 8) = iVar6; } else if ((uVar5 < 0x100) && (*(iVar4 + 0x18) == 0x72536643)) { iVar6 = uVar5 + 1; goto code_r0x004cf120; } if (((((*(param_1 + 10) & 1) != 0) && (*0x2702bec == 0)) && (iVar1 = fcn.004cf3d8(), iVar1 != 0)) && (*0x2702b60 = fcn.004cf690(), *0x2702bec == 0)) { *0x2702bec = fcn.004cf690(); _raw_read_lock(0x2702b58); fcn.004cbcb0(&uStack68); uVar5 = uStack68 >> 0x1c & 7; uVar5 = *((((uStack68 >> 0x18) + 1 & 3) + uVar5) * 8 + 0x4d5d78) ^ *((uVar5 + (uStack68 >> 0x18 & 3)) * 8 + 0x4d5d78) ^ *((((uStack68 >> 0x18) + 2 & 3) + uVar5) * 8 + 0x4d5d78); _raw_read_unlock(0x2702b58); if (((uVar5 != 0) && (uVar3 = MARK50(uVar5, 0), (uVar3 & 1) != 0)) && (*(uVar5 + 0xc20) != 0)) { _raw_read_lock(0x2702b58); fcn.004cbcb0(&uStack72); uVar5 = uStack72 >> 0x1c & 7; uVar5 = *((((uStack72 >> 0x18) + 1 & 3) + uVar5) * 8 + 0x4d5d78) ^ *((uVar5 + (uStack72 >> 0x18 & 3)) * 8 + 0x4d5d78) ^ *((((uStack72 >> 0x18) + 2 & 3) + uVar5) * 8 + 0x4d5d78); _raw_read_unlock(0x2702b58); if (((uVar5 != 0) && (uVar3 = MARK50(uVar5, 0), (uVar3 & 1) != 0)) && (*(uVar5 + 0xc00) == 0)) { set_vars_global_flag(0, 3); } } } if ((*(param_1 + 10) >> 1 & 1) == 0) { return 1; } if ((*param_1[3] == '\0') || (*param_1[3] == '/')) { piVar8 = *param_1; if ((*piVar8[1] & 0x700000) != 0x600000) goto code_r0x004cf1f8; } else { piVar8 = *param_1; } piVar2 = __get_free_pages(0x6000c0, 0); if ((piVar2 != NULL) || (piVar2 = __get_free_pages(0x480020, 0), piVar2 != NULL)) { piVar8 = fcn.004cc6a8(piVar8, piVar2, 0x1000); if ((piVar8 < 0xfffffffffffff001) && (piVar8 != NULL)) { param_1[0xb] = piVar2; param_1[3] = piVar8; *(param_1 + 7) = 0; } else { free_pages(piVar2, 0); } } code_r0x004cf1f8: iVar1 = do_mount_check(piVar7, param_1[3], param_1[5], param_1[1], param_1 + 0xc); if (iVar1 < 0) { if (param_2 == NULL) { return 0; } } else { if (((*(param_1 + 0x74) != '\0') || (5 < *(param_1 + 0x75))) || ((iVar1 = rs_verify_func(0x14e7f30, 0xb), iVar1 == 0 && ((iVar1 = rs_verify_func(0x14e90e8, 0xc), iVar1 == 0 && (iVar1 = rs_verify_func(0x14e8170, 0xd), iVar1 == 0)))))) { return 1; } if (param_2 == NULL) { return 0; } iVar1 = -1; } *param_2 = iVar1; return 0; }