Skip to content

Instantly share code, notes, and snippets.

@Lusamine
Created February 16, 2026 03:48
Show Gist options
  • Select an option

  • Save Lusamine/fc5ea7ff60f1997d99108362bb7f951a to your computer and use it in GitHub Desktop.

Select an option

Save Lusamine/fc5ea7ff60f1997d99108362bb7f951a to your computer and use it in GitHub Desktop.
unsigned __int32 __fastcall get_total_donut_budget(unsigned int flavor_total)
{
void *v2; // x8
int v3; // w9
void *v4; // x0
unsigned int flavor_threshold_1; // w20
unsigned int flavor_threshold_2; // w21
unsigned int flavor_threshold_3; // w22
unsigned int flavor_threshold_4; // w23
unsigned int flavor_threshold_5; // w24
unsigned int flavor_threshold_6; // w25
unsigned int flavor_threshold_7; // w26
unsigned int flavor_threshold_8; // w27
unsigned __int32 v13; // w19
__int64 v15; // [xsp+18h] [xbp+18h] BYREF
v2 = off_7103EC3428;
v3 = *((_DWORD *)off_7103EC3428 + 80);
__dmb(9u);
if ( v3 )
v4 = v2;
else
v4 = 0LL;
sub_71008517AC(v4);
flavor_threshold_1 = sub_71008CB5D0(v15, 125LL);
flavor_threshold_2 = sub_71008CB5D0(v15, 126LL);
flavor_threshold_3 = sub_71008CB5D0(v15, 127LL);
flavor_threshold_4 = sub_71008CB5D0(v15, 128LL);
flavor_threshold_5 = sub_71008CB5D0(v15, 129LL);
flavor_threshold_6 = sub_71008CB5D0(v15, 130LL);
flavor_threshold_7 = sub_71008CB5D0(v15, 131LL);
flavor_threshold_8 = sub_71008CB5D0(v15, 132LL);
if ( (unsigned int)sub_71008CB5D0(v15, 133LL) <= flavor_total )
{
v13 = 9;
}
else if ( flavor_threshold_8 <= flavor_total )
{
v13 = 8;
}
else if ( flavor_threshold_7 <= flavor_total )
{
v13 = 7;
}
else if ( flavor_threshold_6 <= flavor_total )
{
v13 = 6;
}
else if ( flavor_threshold_5 <= flavor_total )
{
v13 = 5;
}
else if ( flavor_threshold_4 <= flavor_total )
{
v13 = 4;
}
else if ( flavor_threshold_3 <= flavor_total )
{
v13 = 3;
}
else if ( flavor_threshold_2 <= flavor_total )
{
v13 = 2;
}
else
{
v13 = flavor_threshold_1 <= flavor_total;
}
sub_7100776BD4(&v15);
return v13;
}
-----
.text:0000007102D5DEA8 ; unsigned __int32 __fastcall get_total_donut_budget(unsigned int flavor_total)
.text:0000007102D5DEA8 get_total_donut_budget ; CODE XREF: generate_donut+764↑p
.text:0000007102D5DEA8
.text:0000007102D5DEA8 var_20 = -0x20
.text:0000007102D5DEA8 var_10 = -0x10
.text:0000007102D5DEA8 var_8 = -8
.text:0000007102D5DEA8 var_s0 = 0
.text:0000007102D5DEA8 var_s10 = 0x10
.text:0000007102D5DEA8 var_s20 = 0x20
.text:0000007102D5DEA8 var_s30 = 0x30
.text:0000007102D5DEA8
.text:0000007102D5DEA8 STP X29, X30, [SP,#-0x40+var_20]!
.text:0000007102D5DEAC STR X27, [SP,#0x20+var_10]
.text:0000007102D5DEB0 STP X26, X25, [SP,#0x20+var_s0]
.text:0000007102D5DEB4 STP X24, X23, [SP,#0x20+var_s10]
.text:0000007102D5DEB8 STP X22, X21, [SP,#0x20+var_s20]
.text:0000007102D5DEBC STP X20, X19, [SP,#0x20+var_s30]
.text:0000007102D5DEC0 MOV X29, SP
.text:0000007102D5DEC4 ADRP X8, #off_7103EC3428@PAGE
.text:0000007102D5DEC8 MOV W19, W0
.text:0000007102D5DECC LDR X8, [X8,#off_7103EC3428@PAGEOFF]
.text:0000007102D5DED0 LDR W9, [X8,#0x140]
.text:0000007102D5DED4 DMB ISHLD
.text:0000007102D5DED8 CMP W9, #0
.text:0000007102D5DEDC CSEL X0, XZR, X8, EQ
.text:0000007102D5DEE0 ADD X8, X29, #0x18
.text:0000007102D5DEE4 BL sub_71008517AC
.text:0000007102D5DEE8 LDR X0, [X29,#0x20+var_8]
.text:0000007102D5DEEC MOV W1, #0x7D ; '}'
.text:0000007102D5DEF0 BL sub_71008CB5D0
.text:0000007102D5DEF4 MOV W20, W0
.text:0000007102D5DEF8 LDR X0, [X29,#0x20+var_8]
.text:0000007102D5DEFC MOV W1, #0x7E ; '~'
.text:0000007102D5DF00 BL sub_71008CB5D0
.text:0000007102D5DF04 MOV W21, W0
.text:0000007102D5DF08 LDR X0, [X29,#0x20+var_8]
.text:0000007102D5DF0C MOV W1, #0x7F
.text:0000007102D5DF10 BL sub_71008CB5D0
.text:0000007102D5DF14 MOV W22, W0
.text:0000007102D5DF18 LDR X0, [X29,#0x20+var_8]
.text:0000007102D5DF1C MOV W1, #0x80
.text:0000007102D5DF20 BL sub_71008CB5D0
.text:0000007102D5DF24 MOV W23, W0
.text:0000007102D5DF28 LDR X0, [X29,#0x20+var_8]
.text:0000007102D5DF2C MOV W1, #0x81
.text:0000007102D5DF30 BL sub_71008CB5D0
.text:0000007102D5DF34 MOV W24, W0
.text:0000007102D5DF38 LDR X0, [X29,#0x20+var_8]
.text:0000007102D5DF3C MOV W1, #0x82
.text:0000007102D5DF40 BL sub_71008CB5D0
.text:0000007102D5DF44 MOV W25, W0
.text:0000007102D5DF48 LDR X0, [X29,#0x20+var_8]
.text:0000007102D5DF4C MOV W1, #0x83
.text:0000007102D5DF50 BL sub_71008CB5D0
.text:0000007102D5DF54 MOV W26, W0
.text:0000007102D5DF58 LDR X0, [X29,#0x20+var_8]
.text:0000007102D5DF5C MOV W1, #0x84
.text:0000007102D5DF60 BL sub_71008CB5D0
.text:0000007102D5DF64 MOV W27, W0
.text:0000007102D5DF68 LDR X0, [X29,#0x20+var_8]
.text:0000007102D5DF6C MOV W1, #0x85
.text:0000007102D5DF70 BL sub_71008CB5D0
.text:0000007102D5DF74 CMP W0, W19
.text:0000007102D5DF78 B.LS loc_7102D5DFC0
.text:0000007102D5DF7C CMP W27, W19
.text:0000007102D5DF80 B.LS loc_7102D5DFEC
.text:0000007102D5DF84 CMP W26, W19
.text:0000007102D5DF88 B.LS loc_7102D5DFF4
.text:0000007102D5DF8C CMP W25, W19
.text:0000007102D5DF90 B.LS loc_7102D5DFFC
.text:0000007102D5DF94 CMP W24, W19
.text:0000007102D5DF98 B.LS loc_7102D5E004
.text:0000007102D5DF9C CMP W23, W19
.text:0000007102D5DFA0 B.LS loc_7102D5E00C
.text:0000007102D5DFA4 CMP W22, W19
.text:0000007102D5DFA8 B.LS loc_7102D5E014
.text:0000007102D5DFAC CMP W21, W19
.text:0000007102D5DFB0 B.LS loc_7102D5E01C
.text:0000007102D5DFB4 CMP W20, W19
.text:0000007102D5DFB8 CSET W19, LS
.text:0000007102D5DFBC B loc_7102D5DFC4
.text:0000007102D5DFC0 ; ---------------------------------------------------------------------------
.text:0000007102D5DFC0
.text:0000007102D5DFC0 loc_7102D5DFC0 ; CODE XREF: get_total_donut_budget+D0↑j
.text:0000007102D5DFC0 MOV W19, #9
.text:0000007102D5DFC4
.text:0000007102D5DFC4 loc_7102D5DFC4 ; CODE XREF: get_total_donut_budget+114↑j
.text:0000007102D5DFC4 ; get_total_donut_budget+148↓j ...
.text:0000007102D5DFC4 ADD X0, X29, #0x18
.text:0000007102D5DFC8 BL sub_7100776BD4
.text:0000007102D5DFCC MOV W0, W19
.text:0000007102D5DFD0 LDP X20, X19, [SP,#0x20+var_s30]
.text:0000007102D5DFD4 LDP X22, X21, [SP,#0x20+var_s20]
.text:0000007102D5DFD8 LDR X27, [SP,#0x20+var_10]
.text:0000007102D5DFDC LDP X24, X23, [SP,#0x20+var_s10]
.text:0000007102D5DFE0 LDP X26, X25, [SP,#0x20+var_s0]
.text:0000007102D5DFE4 LDP X29, X30, [SP+0x20+var_20],#0x60
.text:0000007102D5DFE8 RET
.text:0000007102D5DFEC ; ---------------------------------------------------------------------------
.text:0000007102D5DFEC
.text:0000007102D5DFEC loc_7102D5DFEC ; CODE XREF: get_total_donut_budget+D8↑j
.text:0000007102D5DFEC MOV W19, #8
.text:0000007102D5DFF0 B loc_7102D5DFC4
.text:0000007102D5DFF4 ; ---------------------------------------------------------------------------
.text:0000007102D5DFF4
.text:0000007102D5DFF4 loc_7102D5DFF4 ; CODE XREF: get_total_donut_budget+E0↑j
.text:0000007102D5DFF4 MOV W19, #7
.text:0000007102D5DFF8 B loc_7102D5DFC4
.text:0000007102D5DFFC ; ---------------------------------------------------------------------------
.text:0000007102D5DFFC
.text:0000007102D5DFFC loc_7102D5DFFC ; CODE XREF: get_total_donut_budget+E8↑j
.text:0000007102D5DFFC MOV W19, #6
.text:0000007102D5E000 B loc_7102D5DFC4
.text:0000007102D5E004 ; ---------------------------------------------------------------------------
.text:0000007102D5E004
.text:0000007102D5E004 loc_7102D5E004 ; CODE XREF: get_total_donut_budget+F0↑j
.text:0000007102D5E004 MOV W19, #5
.text:0000007102D5E008 B loc_7102D5DFC4
.text:0000007102D5E00C ; ---------------------------------------------------------------------------
.text:0000007102D5E00C
.text:0000007102D5E00C loc_7102D5E00C ; CODE XREF: get_total_donut_budget+F8↑j
.text:0000007102D5E00C MOV W19, #4
.text:0000007102D5E010 B loc_7102D5DFC4
.text:0000007102D5E014 ; ---------------------------------------------------------------------------
.text:0000007102D5E014
.text:0000007102D5E014 loc_7102D5E014 ; CODE XREF: get_total_donut_budget+100↑j
.text:0000007102D5E014 MOV W19, #3
.text:0000007102D5E018 B loc_7102D5DFC4
.text:0000007102D5E01C ; ---------------------------------------------------------------------------
.text:0000007102D5E01C
.text:0000007102D5E01C loc_7102D5E01C ; CODE XREF: get_total_donut_budget+108↑j
.text:0000007102D5E01C MOV W19, #2
.text:0000007102D5E020 B loc_7102D5DFC4
.text:0000007102D5E020 ; End of function get_total_donut_budget
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment