__int64 __fastcall sub_228560(__int64 *a1)
{
int v2; // w8
__int64 v3; // x20
__int64 v5; // x0
__int64 v6; // x0
__int64 v8; // [xsp+8h] [xbp-28h]
__int64 v9; // [xsp+10h] [xbp-20h]
_BYTE v10[12]; // [xsp+1Ch] [xbp-14h] BYREF
__int64 v11; // [xsp+28h] [xbp-8h] BYREF
sub_229134(&unk_A0065, 12, v10);
v2 = *((_DWORD *)a1 + 280);
*((_DWORD *)a1 + 280) = v2 + 1;
if ( (v2 | 8) != 0xB || !*((_BYTE *)a1 + 1129) || (v9 = sub_228668(a1)) == 0 )
{
sub_4DF2BC(a1 + 133);
if ( !*a1 )
{
sub_4DF2EC(a1 + 133);
goto LABEL_8;
}
v3 = *(_QWORD *)(*a1 + 16);
v11 = *a1;
sub_22871C(a1, &v11);
sub_4DF2EC(a1 + 133);
v9 = v3;
if ( !v3 )
{
LABEL_8:
v8 = 0;
v9 = sub_22878C(a1);
if ( !v9 )
return v8;
}
}
v8 = v9;
if ( dword_5755A4++ <= 4 )
{
v5 = sub_4F6C54();
v8 = v9;
if ( (unsigned int)sub_4F7874(v5, 68) )
{
v6 = sub_4F6C54();
sub_4F7074(v6, v10, *((unsigned int *)a1 + 280), v9);
return v9;
}
}
return v8;
}
.text:0000000000228560
.text:0000000000228560 ; Attributes: bp-based frame
.text:0000000000228560
.text:0000000000228560 ; __int64 __fastcall sub_228560(__int64 *)
.text:0000000000228560 sub_228560 ; CODE XREF: .text:00000000001C5EC4↑p
.text:0000000000228560
.text:0000000000228560 var_28 = -0x28
.text:0000000000228560 var_20 = -0x20
.text:0000000000228560 var_14 = -0x14
.text:0000000000228560 var_8 = -8
.text:0000000000228560 var_s0 = 0
.text:0000000000228560 var_s10 = 0x10
.text:0000000000228560
.text:0000000000228560 ; __unwind {
.text:0000000000228560 SUB SP, SP, #0x50
.text:0000000000228564 STP X29, X30, [SP,#0x30+var_s0]
.text:0000000000228568 STP X20, X19, [SP,#0x30+var_s10]
.text:000000000022856C ADD X29, SP, #0x30
.text:0000000000228570 MOV X19, X0
.text:0000000000228574 ADRL X0, unk_A0065
.text:000000000022857C SUB X2, X29, #-var_14
.text:0000000000228580 MOV W1, #0xC
.text:0000000000228584 BL sub_229134
.text:0000000000228588 LDR W8, [X19,#0x460]
.text:000000000022858C ORR W9, W8, #8
.text:0000000000228590 ADD W8, W8, #1
.text:0000000000228594 CMP W9, #0xB
.text:0000000000228598 STR W8, [X19,#0x460]
.text:000000000022859C B.NE loc_2285B8
.text:00000000002285A0 LDRB W8, [X19,#0x469]
.text:00000000002285A4 CBZ W8, loc_2285B8
.text:00000000002285A8 MOV X0, X19
.text:00000000002285AC BL sub_228668
.text:00000000002285B0 STR X0, [SP,#0x30+var_20]
.text:00000000002285B4 CBNZ X0, loc_228608
.text:00000000002285B8
.text:00000000002285B8 loc_2285B8 ; CODE XREF: sub_228560+3C↑j
.text:00000000002285B8 ; sub_228560+44↑j
.text:00000000002285B8 ADD X0, X19, #0x428
.text:00000000002285BC BL sub_4DF2BC
.text:00000000002285C0 LDR X8, [X19]
.text:00000000002285C4 CBZ X8, loc_2285F0
.text:00000000002285C8 LDR X20, [X8,#0x10]
.text:00000000002285CC SUB X1, X29, #-var_8
.text:00000000002285D0 MOV X0, X19
.text:00000000002285D4 STUR X8, [X29,#var_8]
.text:00000000002285D8 BL sub_22871C
.text:00000000002285DC ADD X0, X19, #0x428
.text:00000000002285E0 BL sub_4DF2EC
.text:00000000002285E4 STR X20, [SP,#0x30+var_20]
.text:00000000002285E8 CBNZ X20, loc_228608
.text:00000000002285EC B loc_2285F8
.text:00000000002285F0 ; ---------------------------------------------------------------------------
.text:00000000002285F0
.text:00000000002285F0 loc_2285F0 ; CODE XREF: sub_228560+64↑j
.text:00000000002285F0 ADD X0, X19, #0x428
.text:00000000002285F4 BL sub_4DF2EC
.text:00000000002285F8
.text:00000000002285F8 loc_2285F8 ; CODE XREF: sub_228560+8C↑j
.text:00000000002285F8 MOV X0, X19
.text:00000000002285FC BL sub_22878C
.text:0000000000228600 STP XZR, X0, [SP,#0x30+var_28]
.text:0000000000228604 CBZ X0, loc_228654
.text:0000000000228608
.text:0000000000228608 loc_228608 ; CODE XREF: sub_228560+54↑j
.text:0000000000228608 ; sub_228560+88↑j
.text:0000000000228608 ADRP X8, #dword_5755A4@PAGE
.text:000000000022860C LDR X20, [SP,#0x30+var_20]
.text:0000000000228610 LDR W9, [X8,#dword_5755A4@PAGEOFF]
.text:0000000000228614 STR X20, [SP,#0x30+var_28]
.text:0000000000228618 ADD W10, W9, #1
.text:000000000022861C CMP W9, #4
.text:0000000000228620 STR W10, [X8,#dword_5755A4@PAGEOFF]
.text:0000000000228624 B.GT loc_228654
.text:0000000000228628 BL sub_4F6C54
.text:000000000022862C MOV W1, #0x44 ; 'D'
.text:0000000000228630 BL sub_4F7874
.text:0000000000228634 STR X20, [SP,#0x30+var_28]
.text:0000000000228638 CBZ W0, loc_228654
.text:000000000022863C BL sub_4F6C54
.text:0000000000228640 LDR W2, [X19,#0x460]
.text:0000000000228644 SUB X1, X29, #-var_14
.text:0000000000228648 MOV X3, X20
.text:000000000022864C BL sub_4F7074
.text:0000000000228650 STR X20, [SP,#0x30+var_28]
.text:0000000000228654
.text:0000000000228654 loc_228654 ; CODE XREF: sub_228560+A4↑j
.text:0000000000228654 ; sub_228560+C4↑j ...
.text:0000000000228654 LDR X0, [SP,#0x30+var_28]
.text:0000000000228658 LDP X20, X19, [SP,#0x30+var_s10]
.text:000000000022865C LDP X29, X30, [SP,#0x30+var_s0]
.text:0000000000228660 ADD SP, SP, #0x50 ; 'P'
.text:0000000000228664 RET
.text:0000000000228664 ; } // starts at 228560
.text:0000000000228664 ; End of function sub_228560
.text:0000000000228664
.text:0000000000228668