Created
June 19, 2025 18:01
-
-
Save Lusamine/640cc0e091435dd31c753440b4d92e76 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
| // a2 = 0 on join camp, 1 on group camp, 2 on finish curry no mon, 3 on curry mon | |
| // a3 = 0 on join camp, 1 (group activity 6), 2 (group activity 5), 4 (group activity look at curry mon) | |
| // a4 = 0, 1 front spot taken | |
| __int32 __fastcall camp_determine_initial_behavior(__int64 a1, int setting, int group_activity, bool front_slot_taken) | |
| { | |
| time_t v9; // x0 | |
| __int64 v10; // x24 | |
| time_t curr_unix_time; // x23 | |
| time_t time_last_entered_camp; // x25 | |
| __int64 v13; // x24 | |
| unsigned int *v14; // x8 | |
| unsigned __int32 Friendship; // w0 | |
| __int64 v16; // x23 | |
| unsigned int *v17; // x8 | |
| float rand_float; // s0 | |
| __int64 v19; // x23 | |
| unsigned int *v20; // x8 | |
| float v21; // s0 | |
| __int64 v22; // x23 | |
| unsigned int *v23; // x8 | |
| float v24; // s0 | |
| __int64 v25; // x23 | |
| unsigned int *v26; // x8 | |
| __int64 v27; // x22 | |
| unsigned int *v28; // x8 | |
| unsigned __int8 CampFriendship; // w0 | |
| struct tm v31; // [xsp+0h] [xbp-B0h] BYREF | |
| struct tm tp; // [xsp+38h] [xbp-78h] BYREF | |
| if ( sub_710077B180(*(_QWORD *)(a1 + 88)) ) | |
| return 0; | |
| if ( setting == 1 ) | |
| return 13; | |
| if ( group_activity == 4 ) // Curry mon spawned | |
| return 12; | |
| if ( ((unsigned int)sub_710077B560(*(_QWORD *)(a1 + 88)) | 1) == 3 ) | |
| return 11; | |
| if ( !setting && !front_slot_taken ) | |
| { | |
| if ( Pml_PokePara_CoreParam__GetFriendship(*(Pml_PokePara_CoreParam_o **)(a1 + 88)) >= 255 | |
| && get_rand_float(global_struct->main_rng, 1.0) < 0.1 ) | |
| { | |
| return 7; // In your face | |
| } | |
| sub_7100F2AD30(&tp); | |
| v9 = mktime_0(&tp); | |
| v10 = *(_QWORD *)(qword_71026364F0 + 632); | |
| curr_unix_time = v9; | |
| if ( v10 ) | |
| (*(void (__fastcall **)(__int64))(*(_QWORD *)(v10 + 72) + 16LL))(v10 + 72); | |
| sub_710142AAE0(&v31, v10); | |
| tp = v31; | |
| time_last_entered_camp = mktime_0(&tp); | |
| if ( v10 ) | |
| (*(void (__fastcall **)(__int64))(*(_QWORD *)(v10 + 72) + 24LL))(v10 + 72); | |
| if ( sub_710121ACF0(*(_QWORD *)(a1 + 192)) ) | |
| { | |
| v13 = *(_QWORD *)(a1 + 192); | |
| if ( v13 ) | |
| { | |
| sub_710121ACF0(*(_QWORD *)(a1 + 192)); | |
| v14 = (unsigned int *)(*(_QWORD *)(v13 + 304) | |
| + *(unsigned __int16 *)(*(_QWORD *)(v13 + 304) - **(int **)(v13 + 304) + 4LL)); | |
| if ( *((_BYTE *)v14 + *v14 + 45) ) | |
| { | |
| Friendship = Pml_PokePara_CoreParam__GetFriendship(*(Pml_PokePara_CoreParam_o **)(a1 + 88)); | |
| if ( curr_unix_time - time_last_entered_camp >= 432000 && Friendship > 199 )// difference of 5 days | |
| return 8; // stands in front looking annoyed | |
| } | |
| } | |
| } | |
| } | |
| if ( group_activity == 3 ) | |
| return 2; | |
| if ( sub_710121ACF0(*(_QWORD *)(a1 + 192)) ) | |
| { | |
| v16 = *(_QWORD *)(a1 + 192); | |
| if ( v16 ) | |
| { | |
| sub_710121ACF0(*(_QWORD *)(a1 + 192)); | |
| v17 = (unsigned int *)(*(_QWORD *)(v16 + 304) | |
| + *(unsigned __int16 *)(*(_QWORD *)(v16 + 304) - **(int **)(v16 + 304) + 4LL)); | |
| if ( *((_BYTE *)v17 + *v17 + 30) ) | |
| { | |
| if ( Pml_PokePara_CoreParam__GetFriendship(*(Pml_PokePara_CoreParam_o **)(a1 + 88)) >= 255 ) | |
| { | |
| rand_float = get_rand_float(global_struct->main_rng, 1.0); | |
| if ( !setting && !front_slot_taken && rand_float < 0.1 ) | |
| return 10; | |
| } | |
| } | |
| } | |
| } | |
| if ( sub_710121ACF0(*(_QWORD *)(a1 + 192)) ) | |
| { | |
| v19 = *(_QWORD *)(a1 + 192); | |
| if ( v19 ) | |
| { | |
| sub_710121ACF0(*(_QWORD *)(a1 + 192)); | |
| v20 = (unsigned int *)(*(_QWORD *)(v19 + 304) | |
| + *(unsigned __int16 *)(*(_QWORD *)(v19 + 304) - **(int **)(v19 + 304) + 4LL)); | |
| if ( *((_BYTE *)v20 + *v20 + 29) ) | |
| { | |
| if ( Pml_PokePara_CoreParam__GetFriendship(*(Pml_PokePara_CoreParam_o **)(a1 + 88)) >= 200 ) | |
| { | |
| v21 = get_rand_float(global_struct->main_rng, 1.0); | |
| if ( !setting && !front_slot_taken && v21 < 0.1 ) | |
| return 9; | |
| } | |
| } | |
| } | |
| } | |
| if ( sub_710121ACF0(*(_QWORD *)(a1 + 192)) ) | |
| { | |
| v22 = *(_QWORD *)(a1 + 192); | |
| if ( v22 ) | |
| { | |
| sub_710121ACF0(*(_QWORD *)(a1 + 192)); | |
| v23 = (unsigned int *)(*(_QWORD *)(v22 + 304) | |
| + *(unsigned __int16 *)(*(_QWORD *)(v22 + 304) - **(int **)(v22 + 304) + 4LL)); | |
| if ( *((_BYTE *)v23 + *v23 + 45) ) | |
| { | |
| if ( Pml_PokePara_CoreParam__GetFriendship(*(Pml_PokePara_CoreParam_o **)(a1 + 88)) >= 200 ) | |
| { | |
| v24 = get_rand_float(global_struct->main_rng, 1.0); | |
| if ( !setting && !front_slot_taken && v24 < 0.0 ) | |
| return 8; | |
| } | |
| } | |
| } | |
| } | |
| if ( sub_710121ACF0(*(_QWORD *)(a1 + 192)) ) | |
| { | |
| v25 = *(_QWORD *)(a1 + 192); | |
| if ( v25 ) | |
| { | |
| sub_710121ACF0(*(_QWORD *)(a1 + 192)); | |
| v26 = (unsigned int *)(*(_QWORD *)(v25 + 304) | |
| + *(unsigned __int16 *)(*(_QWORD *)(v25 + 304) - **(int **)(v25 + 304) + 4LL)); | |
| if ( *((_BYTE *)v26 + *v26 + 34) ) | |
| { | |
| if ( Pml_PokePara_CoreParam__GetFriendship(*(Pml_PokePara_CoreParam_o **)(a1 + 88)) >= 220 | |
| && Pml_PokePara_CoreParam__GetCampFriendship(*(Pml_PokePara_CoreParam_o **)(a1 + 88)) >= 220u | |
| && get_rand_float(global_struct->main_rng, 1.0) < 0.1 | |
| && setting == 2 | |
| && !front_slot_taken ) | |
| { | |
| return 4; | |
| } | |
| } | |
| } | |
| } | |
| if ( sub_710121ACF0(*(_QWORD *)(a1 + 192)) ) | |
| { | |
| v27 = *(_QWORD *)(a1 + 192); | |
| if ( v27 ) | |
| { | |
| sub_710121ACF0(*(_QWORD *)(a1 + 192)); | |
| v28 = (unsigned int *)(*(_QWORD *)(v27 + 304) | |
| + *(unsigned __int16 *)(*(_QWORD *)(v27 + 304) - **(int **)(v27 + 304) + 4LL)); | |
| if ( *((_BYTE *)v28 + *v28 + 31) ) | |
| { | |
| if ( Pml_PokePara_CoreParam__GetFriendship(*(Pml_PokePara_CoreParam_o **)(a1 + 88)) >= 180 | |
| && Pml_PokePara_CoreParam__GetCampFriendship(*(Pml_PokePara_CoreParam_o **)(a1 + 88)) >= 180u | |
| && get_rand_float(global_struct->main_rng, 1.0) < 0.1 | |
| && !front_slot_taken ) | |
| { | |
| return 3; | |
| } | |
| } | |
| } | |
| } | |
| CampFriendship = Pml_PokePara_CoreParam__GetCampFriendship(*(Pml_PokePara_CoreParam_o **)(a1 + 88)); | |
| if ( group_activity == 1 && CampFriendship > 179u ) | |
| return 6; // 3 mons are talking | |
| if ( Pml_PokePara_CoreParam__GetCampFriendship(*(Pml_PokePara_CoreParam_o **)(a1 + 88)) > 69u && group_activity == 2 ) | |
| return 5; // 2 mons chatting | |
| else | |
| return 1; | |
| } | |
| ---- | |
| .text:00000071011B6B10 ; =============== S U B R O U T I N E ======================================= | |
| .text:00000071011B6B10 | |
| .text:00000071011B6B10 ; a2 = 0 on join camp, 1 on group camp, 2 on finish curry no mon, 3 on curry mon | |
| .text:00000071011B6B10 ; a3 = 0 on join camp, 1 (group activity 6), 2 (group activity 5), 4 (group activity look at curry mon) | |
| .text:00000071011B6B10 ; a4 = 0, 1 front spot taken | |
| .text:00000071011B6B10 ; Attributes: bp-based frame | |
| .text:00000071011B6B10 | |
| .text:00000071011B6B10 ; __int32 __fastcall camp_determine_initial_behavior(__int64 a1, int setting, int group_activity, bool front_slot_taken) | |
| .text:00000071011B6B10 camp_determine_initial_behavior ; CODE XREF: sub_71012376D0+B4↓p | |
| .text:00000071011B6B10 | |
| .text:00000071011B6B10 var_B0 = -0xB0 | |
| .text:00000071011B6B10 var_A0 = -0xA0 | |
| .text:00000071011B6B10 var_98 = -0x98 | |
| .text:00000071011B6B10 var_90 = -0x90 | |
| .text:00000071011B6B10 var_88 = -0x88 | |
| .text:00000071011B6B10 tp = -0x78 | |
| .text:00000071011B6B10 var_40 = -0x40 | |
| .text:00000071011B6B10 var_30 = -0x30 | |
| .text:00000071011B6B10 var_20 = -0x20 | |
| .text:00000071011B6B10 var_10 = -0x10 | |
| .text:00000071011B6B10 var_s0 = 0 | |
| .text:00000071011B6B10 | |
| .text:00000071011B6B10 SUB SP, SP, #0xC0 | |
| .text:00000071011B6B14 STR X25, [SP,#0xB0+var_40] | |
| .text:00000071011B6B18 STP X24, X23, [SP,#0xB0+var_30] | |
| .text:00000071011B6B1C STP X22, X21, [SP,#0xB0+var_20] | |
| .text:00000071011B6B20 STP X20, X19, [SP,#0xB0+var_10] | |
| .text:00000071011B6B24 STP X29, X30, [SP,#0xB0+var_s0] | |
| .text:00000071011B6B28 ADD X29, SP, #0xB0 | |
| .text:00000071011B6B2C MOV X20, X0 | |
| .text:00000071011B6B30 LDR X0, [X0,#0x58] | |
| .text:00000071011B6B34 MOV W21, W3 | |
| .text:00000071011B6B38 MOV W19, W2 | |
| .text:00000071011B6B3C MOV W22, W1 | |
| .text:00000071011B6B40 BL sub_710077B180 | |
| .text:00000071011B6B44 TBZ W0, #0, loc_71011B6B50 | |
| .text:00000071011B6B48 MOV W0, WZR | |
| .text:00000071011B6B4C B loc_71011B6FDC | |
| .text:00000071011B6B50 ; --------------------------------------------------------------------------- | |
| .text:00000071011B6B50 | |
| .text:00000071011B6B50 loc_71011B6B50 ; CODE XREF: camp_determine_initial_behavior+34↑j | |
| .text:00000071011B6B50 CMP W22, #1 | |
| .text:00000071011B6B54 B.NE loc_71011B6B60 | |
| .text:00000071011B6B58 MOV W0, #0xD | |
| .text:00000071011B6B5C B loc_71011B6FDC | |
| .text:00000071011B6B60 ; --------------------------------------------------------------------------- | |
| .text:00000071011B6B60 | |
| .text:00000071011B6B60 loc_71011B6B60 ; CODE XREF: camp_determine_initial_behavior+44↑j | |
| .text:00000071011B6B60 CMP W19, #4 | |
| .text:00000071011B6B64 B.NE loc_71011B6B70 | |
| .text:00000071011B6B68 MOV W0, #0xC | |
| .text:00000071011B6B6C B loc_71011B6FDC | |
| .text:00000071011B6B70 ; --------------------------------------------------------------------------- | |
| .text:00000071011B6B70 | |
| .text:00000071011B6B70 loc_71011B6B70 ; CODE XREF: camp_determine_initial_behavior+54↑j | |
| .text:00000071011B6B70 LDR X0, [X20,#0x58] | |
| .text:00000071011B6B74 BL sub_710077B560 | |
| .text:00000071011B6B78 ORR W8, W0, #1 | |
| .text:00000071011B6B7C CMP W8, #3 | |
| .text:00000071011B6B80 B.NE loc_71011B6B8C | |
| .text:00000071011B6B84 MOV W0, #0xB | |
| .text:00000071011B6B88 B loc_71011B6FDC | |
| .text:00000071011B6B8C ; --------------------------------------------------------------------------- | |
| .text:00000071011B6B8C | |
| .text:00000071011B6B8C loc_71011B6B8C ; CODE XREF: camp_determine_initial_behavior+70↑j | |
| .text:00000071011B6B8C CBNZ W22, loc_71011B6CC4 | |
| .text:00000071011B6B90 TBNZ W21, #0, loc_71011B6CC4 | |
| .text:00000071011B6B94 LDR X0, [X20,#0x58] | |
| .text:00000071011B6B98 BL Pml.PokePara.CoreParam$$GetFriendship | |
| .text:00000071011B6B9C CMP W0, #0xFF | |
| .text:00000071011B6BA0 B.CC loc_71011B6BD4 | |
| .text:00000071011B6BA4 ADRP X8, #off_7102610848@PAGE | |
| .text:00000071011B6BA8 LDR X8, [X8,#off_7102610848@PAGEOFF] | |
| .text:00000071011B6BAC LDR X8, [X8] | |
| .text:00000071011B6BB0 LDR X0, [X8,#0x98] | |
| .text:00000071011B6BB4 FMOV S0, #1.0 | |
| .text:00000071011B6BB8 BL get_rand_float | |
| .text:00000071011B6BBC ADRP X8, #dword_7101C4BEC4@PAGE | |
| .text:00000071011B6BC0 LDR S1, [X8,#dword_7101C4BEC4@PAGEOFF] | |
| .text:00000071011B6BC4 FCMP S0, S1 | |
| .text:00000071011B6BC8 B.PL loc_71011B6BD4 | |
| .text:00000071011B6BCC MOV W0, #7 | |
| .text:00000071011B6BD0 B loc_71011B6FDC | |
| .text:00000071011B6BD4 ; --------------------------------------------------------------------------- | |
| .text:00000071011B6BD4 | |
| .text:00000071011B6BD4 loc_71011B6BD4 ; CODE XREF: camp_determine_initial_behavior+90↑j | |
| .text:00000071011B6BD4 ; camp_determine_initial_behavior+B8↑j | |
| .text:00000071011B6BD4 ADD X0, SP, #0xB0+tp | |
| .text:00000071011B6BD8 BL sub_7100F2AD30 | |
| .text:00000071011B6BDC ADD X0, SP, #0xB0+tp ; tp | |
| .text:00000071011B6BE0 BL mktime_0 | |
| .text:00000071011B6BE4 ADRP X8, #off_7102610798@PAGE | |
| .text:00000071011B6BE8 LDR X8, [X8,#off_7102610798@PAGEOFF] | |
| .text:00000071011B6BEC LDR X8, [X8] | |
| .text:00000071011B6BF0 LDR X24, [X8,#0x278] | |
| .text:00000071011B6BF4 MOV X23, X0 | |
| .text:00000071011B6BF8 CBZ X24, loc_71011B6C0C | |
| .text:00000071011B6BFC MOV X0, X24 | |
| .text:00000071011B6C00 LDR X8, [X0,#0x48]! | |
| .text:00000071011B6C04 LDR X8, [X8,#0x10] | |
| .text:00000071011B6C08 BLR X8 | |
| .text:00000071011B6C0C | |
| .text:00000071011B6C0C loc_71011B6C0C ; CODE XREF: camp_determine_initial_behavior+E8↑j | |
| .text:00000071011B6C0C MOV X8, SP | |
| .text:00000071011B6C10 MOV X0, X24 | |
| .text:00000071011B6C14 BL sub_710142AAE0 | |
| .text:00000071011B6C18 LDR X8, [SP,#0xB0+var_A0] | |
| .text:00000071011B6C1C STR X8, [SP,#0xB0+tp.tm_mon] | |
| .text:00000071011B6C20 ADD X0, SP, #0xB0+tp ; tp | |
| .text:00000071011B6C24 LDP X9, X8, [SP,#0xB0+var_B0] | |
| .text:00000071011B6C28 LDP X11, X10, [SP,#0xB0+var_88] | |
| .text:00000071011B6C2C STP X9, X8, [SP,#0xB0+tp] | |
| .text:00000071011B6C30 LDR X8, [SP,#0xB0+var_90] | |
| .text:00000071011B6C34 STP X11, X10, [SP,#0xB0+tp.tm_gmtoff] | |
| .text:00000071011B6C38 STR X8, [SP,#0xB0+tp.tm_isdst] | |
| .text:00000071011B6C3C LDR X8, [SP,#0xB0+var_98] | |
| .text:00000071011B6C40 STR X8, [SP,#0xB0+tp.tm_wday] | |
| .text:00000071011B6C44 BL mktime_0 | |
| .text:00000071011B6C48 MOV X25, X0 | |
| .text:00000071011B6C4C CBZ X24, loc_71011B6C60 | |
| .text:00000071011B6C50 LDR X8, [X24,#0x48]! | |
| .text:00000071011B6C54 LDR X8, [X8,#0x18] | |
| .text:00000071011B6C58 MOV X0, X24 | |
| .text:00000071011B6C5C BLR X8 | |
| .text:00000071011B6C60 | |
| .text:00000071011B6C60 loc_71011B6C60 ; CODE XREF: camp_determine_initial_behavior+13C↑j | |
| .text:00000071011B6C60 LDR X0, [X20,#0xC0] | |
| .text:00000071011B6C64 BL sub_710121ACF0 | |
| .text:00000071011B6C68 TBZ W0, #0, loc_71011B6CC4 | |
| .text:00000071011B6C6C LDR X24, [X20,#0xC0] | |
| .text:00000071011B6C70 CBZ X24, loc_71011B6CC4 | |
| .text:00000071011B6C74 MOV X0, X24 | |
| .text:00000071011B6C78 BL sub_710121ACF0 | |
| .text:00000071011B6C7C LDR X8, [X24,#0x130] | |
| .text:00000071011B6C80 LDRSW X9, [X8] | |
| .text:00000071011B6C84 SUB X9, X8, X9 | |
| .text:00000071011B6C88 LDRH W9, [X9,#4] | |
| .text:00000071011B6C8C ADD X8, X8, X9 | |
| .text:00000071011B6C90 LDR W9, [X8] | |
| .text:00000071011B6C94 ADD X8, X8, X9 | |
| .text:00000071011B6C98 LDRB W8, [X8,#0x2D] | |
| .text:00000071011B6C9C CBZ W8, loc_71011B6CC4 | |
| .text:00000071011B6CA0 LDR X0, [X20,#0x58] | |
| .text:00000071011B6CA4 SUB X23, X23, X25 | |
| .text:00000071011B6CA8 BL Pml.PokePara.CoreParam$$GetFriendship | |
| .text:00000071011B6CAC MOV W8, #0x69780 | |
| .text:00000071011B6CB4 CMP X23, X8 | |
| .text:00000071011B6CB8 B.LT loc_71011B6CC4 | |
| .text:00000071011B6CBC CMP W0, #199 | |
| .text:00000071011B6CC0 B.HI loc_71011B6E5C | |
| .text:00000071011B6CC4 | |
| .text:00000071011B6CC4 loc_71011B6CC4 ; CODE XREF: camp_determine_initial_behavior:loc_71011B6B8C↑j | |
| .text:00000071011B6CC4 ; camp_determine_initial_behavior+80↑j ... | |
| .text:00000071011B6CC4 CMP W19, #3 | |
| .text:00000071011B6CC8 B.NE loc_71011B6CD4 | |
| .text:00000071011B6CCC MOV W0, #2 | |
| .text:00000071011B6CD0 B loc_71011B6FDC | |
| .text:00000071011B6CD4 ; --------------------------------------------------------------------------- | |
| .text:00000071011B6CD4 | |
| .text:00000071011B6CD4 loc_71011B6CD4 ; CODE XREF: camp_determine_initial_behavior+1B8↑j | |
| .text:00000071011B6CD4 LDR X0, [X20,#0xC0] | |
| .text:00000071011B6CD8 BL sub_710121ACF0 | |
| .text:00000071011B6CDC TBZ W0, #0, loc_71011B6D5C | |
| .text:00000071011B6CE0 LDR X23, [X20,#0xC0] | |
| .text:00000071011B6CE4 CBZ X23, loc_71011B6D5C | |
| .text:00000071011B6CE8 MOV X0, X23 | |
| .text:00000071011B6CEC BL sub_710121ACF0 | |
| .text:00000071011B6CF0 LDR X8, [X23,#0x130] | |
| .text:00000071011B6CF4 LDRSW X9, [X8] | |
| .text:00000071011B6CF8 SUB X9, X8, X9 | |
| .text:00000071011B6CFC LDRH W9, [X9,#4] | |
| .text:00000071011B6D00 ADD X8, X8, X9 | |
| .text:00000071011B6D04 LDR W9, [X8] | |
| .text:00000071011B6D08 ADD X8, X8, X9 | |
| .text:00000071011B6D0C LDRB W8, [X8,#0x1E] | |
| .text:00000071011B6D10 CBZ W8, loc_71011B6D5C | |
| .text:00000071011B6D14 LDR X0, [X20,#0x58] | |
| .text:00000071011B6D18 BL Pml.PokePara.CoreParam$$GetFriendship | |
| .text:00000071011B6D1C CMP W0, #0xFF | |
| .text:00000071011B6D20 B.CC loc_71011B6D5C | |
| .text:00000071011B6D24 ADRP X8, #off_7102610848@PAGE | |
| .text:00000071011B6D28 LDR X8, [X8,#off_7102610848@PAGEOFF] | |
| .text:00000071011B6D2C LDR X8, [X8] | |
| .text:00000071011B6D30 LDR X0, [X8,#0x98] | |
| .text:00000071011B6D34 FMOV S0, #1.0 | |
| .text:00000071011B6D38 BL get_rand_float | |
| .text:00000071011B6D3C CBNZ W22, loc_71011B6D5C | |
| .text:00000071011B6D40 TBNZ W21, #0, loc_71011B6D5C | |
| .text:00000071011B6D44 ADRP X8, #dword_7101C4BEC4@PAGE | |
| .text:00000071011B6D48 LDR S1, [X8,#dword_7101C4BEC4@PAGEOFF] | |
| .text:00000071011B6D4C FCMP S0, S1 | |
| .text:00000071011B6D50 B.PL loc_71011B6D5C | |
| .text:00000071011B6D54 MOV W0, #0xA | |
| .text:00000071011B6D58 B loc_71011B6FDC | |
| .text:00000071011B6D5C ; --------------------------------------------------------------------------- | |
| .text:00000071011B6D5C | |
| .text:00000071011B6D5C loc_71011B6D5C ; CODE XREF: camp_determine_initial_behavior+1CC↑j | |
| .text:00000071011B6D5C ; camp_determine_initial_behavior+1D4↑j ... | |
| .text:00000071011B6D5C LDR X0, [X20,#0xC0] | |
| .text:00000071011B6D60 BL sub_710121ACF0 | |
| .text:00000071011B6D64 TBZ W0, #0, loc_71011B6DE4 | |
| .text:00000071011B6D68 LDR X23, [X20,#0xC0] | |
| .text:00000071011B6D6C CBZ X23, loc_71011B6DE4 | |
| .text:00000071011B6D70 MOV X0, X23 | |
| .text:00000071011B6D74 BL sub_710121ACF0 | |
| .text:00000071011B6D78 LDR X8, [X23,#0x130] | |
| .text:00000071011B6D7C LDRSW X9, [X8] | |
| .text:00000071011B6D80 SUB X9, X8, X9 | |
| .text:00000071011B6D84 LDRH W9, [X9,#4] | |
| .text:00000071011B6D88 ADD X8, X8, X9 | |
| .text:00000071011B6D8C LDR W9, [X8] | |
| .text:00000071011B6D90 ADD X8, X8, X9 | |
| .text:00000071011B6D94 LDRB W8, [X8,#0x1D] | |
| .text:00000071011B6D98 CBZ W8, loc_71011B6DE4 | |
| .text:00000071011B6D9C LDR X0, [X20,#0x58] | |
| .text:00000071011B6DA0 BL Pml.PokePara.CoreParam$$GetFriendship | |
| .text:00000071011B6DA4 CMP W0, #0xC8 | |
| .text:00000071011B6DA8 B.CC loc_71011B6DE4 | |
| .text:00000071011B6DAC ADRP X8, #off_7102610848@PAGE | |
| .text:00000071011B6DB0 LDR X8, [X8,#off_7102610848@PAGEOFF] | |
| .text:00000071011B6DB4 LDR X8, [X8] | |
| .text:00000071011B6DB8 LDR X0, [X8,#0x98] | |
| .text:00000071011B6DBC FMOV S0, #1.0 | |
| .text:00000071011B6DC0 BL get_rand_float | |
| .text:00000071011B6DC4 CBNZ W22, loc_71011B6DE4 | |
| .text:00000071011B6DC8 TBNZ W21, #0, loc_71011B6DE4 | |
| .text:00000071011B6DCC ADRP X8, #dword_7101C4BEC4@PAGE | |
| .text:00000071011B6DD0 LDR S1, [X8,#dword_7101C4BEC4@PAGEOFF] | |
| .text:00000071011B6DD4 FCMP S0, S1 | |
| .text:00000071011B6DD8 B.PL loc_71011B6DE4 | |
| .text:00000071011B6DDC MOV W0, #9 | |
| .text:00000071011B6DE0 B loc_71011B6FDC | |
| .text:00000071011B6DE4 ; --------------------------------------------------------------------------- | |
| .text:00000071011B6DE4 | |
| .text:00000071011B6DE4 loc_71011B6DE4 ; CODE XREF: camp_determine_initial_behavior+254↑j | |
| .text:00000071011B6DE4 ; camp_determine_initial_behavior+25C↑j ... | |
| .text:00000071011B6DE4 LDR X0, [X20,#0xC0] | |
| .text:00000071011B6DE8 BL sub_710121ACF0 | |
| .text:00000071011B6DEC TBZ W0, #0, loc_71011B6E64 | |
| .text:00000071011B6DF0 LDR X23, [X20,#0xC0] | |
| .text:00000071011B6DF4 CBZ X23, loc_71011B6E64 | |
| .text:00000071011B6DF8 MOV X0, X23 | |
| .text:00000071011B6DFC BL sub_710121ACF0 | |
| .text:00000071011B6E00 LDR X8, [X23,#0x130] | |
| .text:00000071011B6E04 LDRSW X9, [X8] | |
| .text:00000071011B6E08 SUB X9, X8, X9 | |
| .text:00000071011B6E0C LDRH W9, [X9,#4] | |
| .text:00000071011B6E10 ADD X8, X8, X9 | |
| .text:00000071011B6E14 LDR W9, [X8] | |
| .text:00000071011B6E18 ADD X8, X8, X9 | |
| .text:00000071011B6E1C LDRB W8, [X8,#0x2D] | |
| .text:00000071011B6E20 CBZ W8, loc_71011B6E64 | |
| .text:00000071011B6E24 LDR X0, [X20,#0x58] | |
| .text:00000071011B6E28 BL Pml.PokePara.CoreParam$$GetFriendship | |
| .text:00000071011B6E2C CMP W0, #0xC8 | |
| .text:00000071011B6E30 B.CC loc_71011B6E64 | |
| .text:00000071011B6E34 ADRP X8, #off_7102610848@PAGE | |
| .text:00000071011B6E38 LDR X8, [X8,#off_7102610848@PAGEOFF] | |
| .text:00000071011B6E3C LDR X8, [X8] | |
| .text:00000071011B6E40 LDR X0, [X8,#0x98] | |
| .text:00000071011B6E44 FMOV S0, #1.0 | |
| .text:00000071011B6E48 BL get_rand_float | |
| .text:00000071011B6E4C CBNZ W22, loc_71011B6E64 | |
| .text:00000071011B6E50 TBNZ W21, #0, loc_71011B6E64 | |
| .text:00000071011B6E54 FCMP S0, #0.0 | |
| .text:00000071011B6E58 B.PL loc_71011B6E64 | |
| .text:00000071011B6E5C | |
| .text:00000071011B6E5C loc_71011B6E5C ; CODE XREF: camp_determine_initial_behavior+1B0↑j | |
| .text:00000071011B6E5C MOV W0, #8 | |
| .text:00000071011B6E60 B loc_71011B6FDC | |
| .text:00000071011B6E64 ; --------------------------------------------------------------------------- | |
| .text:00000071011B6E64 | |
| .text:00000071011B6E64 loc_71011B6E64 ; CODE XREF: camp_determine_initial_behavior+2DC↑j | |
| .text:00000071011B6E64 ; camp_determine_initial_behavior+2E4↑j ... | |
| .text:00000071011B6E64 LDR X0, [X20,#0xC0] | |
| .text:00000071011B6E68 BL sub_710121ACF0 | |
| .text:00000071011B6E6C TBZ W0, #0, loc_71011B6F04 | |
| .text:00000071011B6E70 LDR X23, [X20,#0xC0] | |
| .text:00000071011B6E74 CBZ X23, loc_71011B6F04 | |
| .text:00000071011B6E78 MOV X0, X23 | |
| .text:00000071011B6E7C BL sub_710121ACF0 | |
| .text:00000071011B6E80 LDR X8, [X23,#0x130] | |
| .text:00000071011B6E84 LDRSW X9, [X8] | |
| .text:00000071011B6E88 SUB X9, X8, X9 | |
| .text:00000071011B6E8C LDRH W9, [X9,#4] | |
| .text:00000071011B6E90 ADD X8, X8, X9 | |
| .text:00000071011B6E94 LDR W9, [X8] | |
| .text:00000071011B6E98 ADD X8, X8, X9 | |
| .text:00000071011B6E9C LDRB W8, [X8,#0x22] | |
| .text:00000071011B6EA0 CBZ W8, loc_71011B6F04 | |
| .text:00000071011B6EA4 LDR X0, [X20,#0x58] | |
| .text:00000071011B6EA8 BL Pml.PokePara.CoreParam$$GetFriendship | |
| .text:00000071011B6EAC CMP W0, #0xDC | |
| .text:00000071011B6EB0 B.CC loc_71011B6F04 | |
| .text:00000071011B6EB4 LDR X0, [X20,#0x58] | |
| .text:00000071011B6EB8 BL Pml.PokePara.CoreParam$$GetCampFriendship | |
| .text:00000071011B6EBC AND W8, W0, #0xFF | |
| .text:00000071011B6EC0 CMP W8, #0xDC | |
| .text:00000071011B6EC4 B.CC loc_71011B6F04 | |
| .text:00000071011B6EC8 ADRP X8, #off_7102610848@PAGE | |
| .text:00000071011B6ECC LDR X8, [X8,#off_7102610848@PAGEOFF] | |
| .text:00000071011B6ED0 LDR X8, [X8] | |
| .text:00000071011B6ED4 LDR X0, [X8,#0x98] | |
| .text:00000071011B6ED8 FMOV S0, #1.0 | |
| .text:00000071011B6EDC BL get_rand_float | |
| .text:00000071011B6EE0 ADRP X8, #dword_7101C4BEC4@PAGE | |
| .text:00000071011B6EE4 LDR S1, [X8,#dword_7101C4BEC4@PAGEOFF] | |
| .text:00000071011B6EE8 FCMP S0, S1 | |
| .text:00000071011B6EEC B.PL loc_71011B6F04 | |
| .text:00000071011B6EF0 CMP W22, #2 | |
| .text:00000071011B6EF4 B.NE loc_71011B6F04 | |
| .text:00000071011B6EF8 TBNZ W21, #0, loc_71011B6F04 | |
| .text:00000071011B6EFC MOV W0, #4 | |
| .text:00000071011B6F00 B loc_71011B6FDC | |
| .text:00000071011B6F04 ; --------------------------------------------------------------------------- | |
| .text:00000071011B6F04 | |
| .text:00000071011B6F04 loc_71011B6F04 ; CODE XREF: camp_determine_initial_behavior+35C↑j | |
| .text:00000071011B6F04 ; camp_determine_initial_behavior+364↑j ... | |
| .text:00000071011B6F04 LDR X0, [X20,#0xC0] | |
| .text:00000071011B6F08 BL sub_710121ACF0 | |
| .text:00000071011B6F0C TBZ W0, #0, loc_71011B6F9C | |
| .text:00000071011B6F10 LDR X22, [X20,#0xC0] | |
| .text:00000071011B6F14 CBZ X22, loc_71011B6F9C | |
| .text:00000071011B6F18 MOV X0, X22 | |
| .text:00000071011B6F1C BL sub_710121ACF0 | |
| .text:00000071011B6F20 LDR X8, [X22,#0x130] | |
| .text:00000071011B6F24 LDRSW X9, [X8] | |
| .text:00000071011B6F28 SUB X9, X8, X9 | |
| .text:00000071011B6F2C LDRH W9, [X9,#4] | |
| .text:00000071011B6F30 ADD X8, X8, X9 | |
| .text:00000071011B6F34 LDR W9, [X8] | |
| .text:00000071011B6F38 ADD X8, X8, X9 | |
| .text:00000071011B6F3C LDRB W8, [X8,#0x1F] | |
| .text:00000071011B6F40 CBZ W8, loc_71011B6F9C | |
| .text:00000071011B6F44 LDR X0, [X20,#0x58] | |
| .text:00000071011B6F48 BL Pml.PokePara.CoreParam$$GetFriendship | |
| .text:00000071011B6F4C CMP W0, #0xB4 | |
| .text:00000071011B6F50 B.CC loc_71011B6F9C | |
| .text:00000071011B6F54 LDR X0, [X20,#0x58] | |
| .text:00000071011B6F58 BL Pml.PokePara.CoreParam$$GetCampFriendship | |
| .text:00000071011B6F5C AND W8, W0, #0xFF | |
| .text:00000071011B6F60 CMP W8, #0xB4 | |
| .text:00000071011B6F64 B.CC loc_71011B6F9C | |
| .text:00000071011B6F68 ADRP X8, #off_7102610848@PAGE | |
| .text:00000071011B6F6C LDR X8, [X8,#off_7102610848@PAGEOFF] | |
| .text:00000071011B6F70 LDR X8, [X8] | |
| .text:00000071011B6F74 LDR X0, [X8,#0x98] | |
| .text:00000071011B6F78 FMOV S0, #1.0 | |
| .text:00000071011B6F7C BL get_rand_float | |
| .text:00000071011B6F80 ADRP X8, #dword_7101C4BEC4@PAGE | |
| .text:00000071011B6F84 LDR S1, [X8,#dword_7101C4BEC4@PAGEOFF] | |
| .text:00000071011B6F88 FCMP S0, S1 | |
| .text:00000071011B6F8C B.PL loc_71011B6F9C | |
| .text:00000071011B6F90 TBNZ W21, #0, loc_71011B6F9C | |
| .text:00000071011B6F94 MOV W0, #3 | |
| .text:00000071011B6F98 B loc_71011B6FDC | |
| .text:00000071011B6F9C ; --------------------------------------------------------------------------- | |
| .text:00000071011B6F9C | |
| .text:00000071011B6F9C loc_71011B6F9C ; CODE XREF: camp_determine_initial_behavior+3FC↑j | |
| .text:00000071011B6F9C ; camp_determine_initial_behavior+404↑j ... | |
| .text:00000071011B6F9C LDR X0, [X20,#0x58] | |
| .text:00000071011B6FA0 BL Pml.PokePara.CoreParam$$GetCampFriendship | |
| .text:00000071011B6FA4 CMP W19, #1 | |
| .text:00000071011B6FA8 B.NE loc_71011B6FC0 | |
| .text:00000071011B6FAC AND W8, W0, #0xFF | |
| .text:00000071011B6FB0 CMP W8, #0xB3 | |
| .text:00000071011B6FB4 B.LS loc_71011B6FC0 | |
| .text:00000071011B6FB8 MOV W0, #6 | |
| .text:00000071011B6FBC B loc_71011B6FDC | |
| .text:00000071011B6FC0 ; --------------------------------------------------------------------------- | |
| .text:00000071011B6FC0 | |
| .text:00000071011B6FC0 loc_71011B6FC0 ; CODE XREF: camp_determine_initial_behavior+498↑j | |
| .text:00000071011B6FC0 ; camp_determine_initial_behavior+4A4↑j | |
| .text:00000071011B6FC0 LDR X0, [X20,#0x58] | |
| .text:00000071011B6FC4 BL Pml.PokePara.CoreParam$$GetCampFriendship | |
| .text:00000071011B6FC8 AND W8, W0, #0xFF | |
| .text:00000071011B6FCC CMP W8, #0x45 ; 'E' | |
| .text:00000071011B6FD0 MOV W8, #5 | |
| .text:00000071011B6FD4 CCMP W19, #2, #0, HI | |
| .text:00000071011B6FD8 CSINC W0, W8, WZR, EQ | |
| .text:00000071011B6FDC | |
| .text:00000071011B6FDC loc_71011B6FDC ; CODE XREF: camp_determine_initial_behavior+3C↑j | |
| .text:00000071011B6FDC ; camp_determine_initial_behavior+4C↑j ... | |
| .text:00000071011B6FDC LDP X29, X30, [SP,#0xB0+var_s0] | |
| .text:00000071011B6FE0 LDR X25, [SP,#0xB0+var_40] | |
| .text:00000071011B6FE4 LDP X20, X19, [SP,#0xB0+var_10] | |
| .text:00000071011B6FE8 LDP X22, X21, [SP,#0xB0+var_20] | |
| .text:00000071011B6FEC LDP X24, X23, [SP,#0xB0+var_30] | |
| .text:00000071011B6FF0 ADD SP, SP, #0xC0 | |
| .text:00000071011B6FF4 RET | |
| .text:00000071011B6FF4 ; End of function camp_determine_initial_behavior |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment