Created
February 16, 2026 03:48
-
-
Save Lusamine/fc5ea7ff60f1997d99108362bb7f951a to your computer and use it in GitHub Desktop.
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
| 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