Skip to content

Instantly share code, notes, and snippets.

@Lusamine
Created August 20, 2022 19:21
Show Gist options
  • Save Lusamine/6e0d3c4635165dd1cf3e0b93e2f8622f to your computer and use it in GitHub Desktop.
Save Lusamine/6e0d3c4635165dd1cf3e0b93e2f8622f to your computer and use it in GitHub Desktop.
__int64 __fastcall get_capture_indicator(capture_info *a1, capture_info *a2)
{
float *capture_index_ofs; // x21
unsigned int v5; // w9
__int64 v6; // x8
__int64 v7; // x9
__int64 v8; // x11
__int64 v9; // x8
__int64 v10; // x9
__int64 v11; // x11
__int64 v12; // x8
__int64 v13; // x9
__int64 qword58; // x11
__int64 v15; // x9
__int64 v16; // x10
__int64 qword78; // x11
long double capture_offset_from_hash; // q0
__int64 species_no; // x9
__int64 v20; // x8
_BOOL4 v21; // w10
float capture_index_basic_coef; // s13 MAPDST
__int64 *v23; // x0
__int64 v24; // x9
unsigned __int64 v25; // x10
int *v26; // x8
unsigned __int16 *v27; // x9
__int64 v28; // x9
unsigned int catch_rate; // w22
long double capture_index_pokepara_coef_ofs; // q0
int is_outbreak; // w23
float capture_index_pokepara_coef; // s9 MAPDST
long double v33; // q0
int plrank; // w24
unsigned int poke_level; // w26
float capture_index_outbreak_factor; // s11 MAPDST
unsigned int glv; // w25
int poke_lvrank_bias_oybn; // w20
long double poke_lvrank_bias_per_glv_ofs; // q0
int glv_factor; // w25
int poke_lvrank; // w26
int poke_lvrank_max; // w0
int poke_lvrank_index; // w8
__int64 *lv_factor_index; // x8
unsigned __int64 v45; // x9
const char *v46; // x10
__int64 v47; // x8
long double v48; // q0
unsigned int max_hp0; // w8
unsigned int cur_hp0; // s0
float max_hp; // s12
float cur_hp; // s8
long double capture_index_hp_coef_ofs; // q0
float hp_factor; // s8
unsigned __int64 v55; // x8
unsigned __int64 *p_capture_hash; // x0
__int64 v57; // x9
const char *v58; // x10
long double v59; // q0
int ball_index; // w8
float sick_factor; // s12
unsigned __int64 v64; // x8
__int64 v65; // x10
const char *v66; // x9
float ball_factor; // s13
unsigned __int64 v68; // x8
char *v69; // x0
__int64 v70; // x9
const char *v71; // x10
float ai_factor; // s14
unsigned __int64 v73; // x9
unsigned __int64 *v74; // x0
const char *v75; // x8
float backstrike_factor; // s15
unsigned __int64 v77; // x8
unsigned __int64 *v78; // x0
__int64 v79; // x9
const char *v80; // x10
long double bait_factor_ofs; // q0
float capture_index; // s8
float capture_index_range_top; // s9
long double capture_index_range_bottom_ofs; // q0
int capture_result; // w8
float capture_ratio; // s9
float capture_index0; // s11
float capture_index_range_top0; // s8
int random_value_max0; // w0
float random_value_max; // s9
long double capture_judge_radical_root_ofs; // q0
float capture_index1; // s11
float power; // s8
long double capture_index_range_top_ofs; // q0
float capture_fail_ratio; // s0
__int64 result; // x0
int ai_react_behavior; // w8
__int64 *v99; // x10
__int64 *v100; // x9
int ai_feeding_behavior; // w8
capture_info *v102; // x0
__int64 v103; // [xsp+0h] [xbp-210h] BYREF
char v104; // [xsp+20h] [xbp-1F0h] BYREF
char v105; // [xsp+40h] [xbp-1D0h] BYREF
char v106; // [xsp+60h] [xbp-1B0h] BYREF
char v107; // [xsp+80h] [xbp-190h] BYREF
char v108; // [xsp+A0h] [xbp-170h] BYREF
char v109[32]; // [xsp+C0h] [xbp-150h] BYREF
char v110[32]; // [xsp+E0h] [xbp-130h] BYREF
char v111[32]; // [xsp+100h] [xbp-110h] BYREF
char v112[32]; // [xsp+120h] [xbp-F0h] BYREF
char v113[32]; // [xsp+140h] [xbp-D0h] BYREF
unsigned __int64 capture_hash; // [xsp+160h] [xbp-B0h] BYREF
const char *capture_string; // [xsp+168h] [xbp-A8h]
__int64 capture_strlen; // [xsp+170h] [xbp-A0h]
__int64 v117; // [xsp+178h] [xbp-98h]
float lv_factor; // [xsp+1CCh] [xbp-44h]
*(_QWORD *)&a1->capture_index = 0LL;
capture_index_ofs = &a1->capture_index;
*(_DWORD *)&a1->species_no = 0;
LOWORD(a1->word8) = 0;
*(_QWORD *)&a1->cur_hp = 0LL;
a1->sick_index = 0;
*(_QWORD *)&a1->ball_index = 0LL;
*(_QWORD *)&a1->capture_ratio = 0LL;
a1->capture_result = 2;
v5 = a2->max_hp;
if ( v5 )
LOBYTE(v5) = a2->cur_hp <= v5;
if ( ((unsigned __int8)v5 & (*(_DWORD *)&a2->species_no != 0 && *(_DWORD *)&a2->species_no < 906) & (*(_DWORD *)&a2->ball_index != 0 && *(_DWORD *)&a2->ball_index < 38)) == 0 )
return 0LL;
v6 = *(_QWORD *)&a2->plrank;
v7 = *(_QWORD *)&a2->word8;
v8 = *(_QWORD *)&a2->gv_def;
*(_QWORD *)&a1->gv_hp = *(_QWORD *)&a2->gv_hp;
*(_QWORD *)&a1->gv_def = v8;
*(_QWORD *)&a1->plrank = v6;
*(_QWORD *)&a1->word8 = v7;
v9 = *(_QWORD *)&a2->gv_spd;
v10 = *(_QWORD *)&a2->cur_hp;
v11 = *(_QWORD *)&a2->ball_index;
*(_QWORD *)&a1->sick_index = *(_QWORD *)&a2->sick_index;
*(_QWORD *)&a1->ball_index = v11;
*(_QWORD *)&a1->gv_spd = v9;
*(_QWORD *)&a1->cur_hp = v10;
v12 = *(_QWORD *)&a2->field_40;
v13 = *(_QWORD *)&a2->is_outbreak;
qword58 = a2->qword58;
a1->qword50 = a2->qword50;
a1->qword58 = qword58;
*(_QWORD *)&a1->field_40 = v12;
*(_QWORD *)&a1->is_outbreak = v13;
v15 = *(_QWORD *)&a2->ai_feeding_behavior;
v16 = *(_QWORD *)&a2->field_70;
qword78 = a2->qword78;
a1->qword60 = a2->qword60;
*(_QWORD *)&a1->ai_feeding_behavior = v15;
LODWORD(v12) = (unsigned __int8)a1->field_44;
*(_QWORD *)&a1->field_70 = v16;
a1->qword78 = qword78;
if ( !(_DWORD)v12 || a1->catch_type == 2 )
{
if ( !a1->is_not_aggro_towards_player )
goto LABEL_108;
}
else
{
a1->catch_type = 1;
if ( !a1->is_not_aggro_towards_player )
{
LABEL_108:
if ( a1->catch_type != 2 )
a1->catch_type = 2;
}
}
capture_hash = 0x59676EBDFE28CE5LL;
capture_string = "capture_index_basic_coef";
capture_strlen = 24LL;
v117 = 0LL;
capture_offset_from_hash = get_capture_offset_from_hash(&capture_hash);
species_no = *(unsigned int *)&a1->species_no;
LOWORD(v20) = a1->word8;
v21 = (int)species_no > 905 || ((unsigned int)species_no | 1) == 907;
capture_index_basic_coef = *(float *)&capture_offset_from_hash;
if ( v21 )
LOWORD(v20) = 0;
if ( (unsigned __int16)v20 > 27u )
goto LABEL_13;
if ( v21 )
species_no = 0LL;
v23 = (__int64 *)qword_71042F23A0[4 * species_no];
v24 = *v23;
v25 = (v23[1] - *v23) >> 3;
if ( v25 <= (unsigned __int16)v20 || !*(_QWORD *)(v24 + 8LL * (unsigned __int16)v20) )
{
LABEL_13:
v23 = (__int64 *)qword_71042F23A0[0];
LOWORD(v20) = 0;
v24 = *(_QWORD *)qword_71042F23A0[0];
v25 = (__int64)(*(_QWORD *)(qword_71042F23A0[0] + 8) - *(_QWORD *)qword_71042F23A0[0]) >> 3;
}
v20 = (unsigned __int16)v20;
if ( v25 > (unsigned __int16)v20 )
{
v26 = *(int **)(v24 + 8 * v20);
v27 = (unsigned __int16 *)((char *)v26 - *v26);
if ( *v27 >= 39u && (v28 = v27[19]) != 0 ) // Value 17 in personal table is catch rate.
catch_rate = *((unsigned __int8 *)v26 + v28);
else
catch_rate = 0;
capture_hash = 0xD9FA5C848808ECA4LL;
capture_string = "capture_index_pokepara_coef";
capture_strlen = 27LL;
v117 = 0LL;
capture_index_pokepara_coef_ofs = get_capture_offset_from_hash(&capture_hash);
is_outbreak = (unsigned __int8)a1->is_outbreak;
capture_index_pokepara_coef = *(float *)&capture_index_pokepara_coef_ofs;
capture_hash = 0x9D9179CF276FE936LL;
capture_string = "capture_index_outbreak_factor";
capture_strlen = 29LL;
v117 = 0LL;
v33 = get_capture_offset_from_hash(&capture_hash);
if ( *(_DWORD *)&a2->plrank >= 10u )
plrank = 10;
else
plrank = *(_DWORD *)&a2->plrank;
poke_level = a2->poke_level;
capture_index_outbreak_factor = *(float *)&v33;
glv = a2->gv_atk + a2->gv_hp + a2->gv_def + a2->gv_spa + a2->gv_spd + a2->gv_spe;
if ( a2->is_oybn )
{
capture_hash = 0x45BA8962E1F7264CLL;
capture_string = "poke_lvrank_bias_oybn";
capture_strlen = 21LL;
v117 = 0LL;
poke_lvrank_bias_oybn = get_capture_value_from_hash(&capture_hash);
}
else
{
poke_lvrank_bias_oybn = 0;
}
capture_hash = 0x2CF7843E4882DF4FLL;
capture_string = "poke_lvrank_bias_per_glv";
capture_strlen = 24LL;
v117 = 0LL;
poke_lvrank_bias_per_glv_ofs = get_capture_offset_from_hash(&capture_hash);
capture_hash = 0xC9B446FA2EC6E9B6LL;
capture_string = "poke_lvrank_1_range_max";
capture_strlen = 23LL;
v117 = 0LL;
glv_factor = (int)(float)(*(float *)&poke_lvrank_bias_per_glv_ofs * (float)glv);
if ( (unsigned int)get_capture_value_from_hash(&capture_hash) >= poke_level )
{
poke_lvrank = 1;
}
else
{
capture_hash = 0xAC2011894D183CBFLL;
capture_string = "poke_lvrank_2_range_max";
capture_strlen = 23LL;
v117 = 0LL;
if ( (unsigned int)get_capture_value_from_hash(&capture_hash) >= poke_level )
{
poke_lvrank = 2;
}
else
{
capture_hash = 0x276CECA19E893A2CLL;
capture_string = "poke_lvrank_3_range_max";
capture_strlen = 23LL;
v117 = 0LL;
if ( (unsigned int)get_capture_value_from_hash(&capture_hash) >= poke_level )
{
poke_lvrank = 3;
}
else
{
capture_hash = 0x2959D0D2E30622A5LL;
capture_string = "poke_lvrank_4_range_max";
capture_strlen = 23LL;
v117 = 0LL;
if ( (unsigned int)get_capture_value_from_hash(&capture_hash) >= poke_level )
{
poke_lvrank = 4;
}
else
{
capture_hash = 0xD1BB9D6F2B6273D2LL;
capture_string = "poke_lvrank_5_range_max";
capture_strlen = 23LL;
v117 = 0LL;
if ( (unsigned int)get_capture_value_from_hash(&capture_hash) >= poke_level )
{
poke_lvrank = 5;
}
else
{
capture_hash = 0x2E77C752FB4BEE6BLL;
capture_string = "poke_lvrank_6_range_max";
capture_strlen = 23LL;
v117 = 0LL;
if ( (unsigned int)get_capture_value_from_hash(&capture_hash) >= poke_level )
{
poke_lvrank = 6;
}
else
{
capture_hash = 0x3FFAB8ECA2941AA8LL;
capture_string = "poke_lvrank_7_range_max";
capture_strlen = 23LL;
v117 = 0LL;
if ( (unsigned int)get_capture_value_from_hash(&capture_hash) < poke_level )
{
capture_hash = 0xE2B1170EDAFB7A61LL;
capture_string = "poke_lvrank_8_range_max";
capture_strlen = 23LL;
v117 = 0LL;
if ( (unsigned int)get_capture_value_from_hash(&capture_hash) < poke_level )
{
capture_hash = 0x2A4CF01147CEBAAELL;
capture_string = "poke_lvrank_9_range_max";
capture_strlen = 23LL;
v117 = 0LL;
if ( (unsigned int)get_capture_value_from_hash(&capture_hash) >= poke_level )
poke_lvrank = 9;
else
poke_lvrank = 10;
}
else
{
poke_lvrank = 8;
}
}
else
{
poke_lvrank = 7;
}
}
}
}
}
}
}
capture_hash = 0x75B7338D12200A6CLL;
capture_string = "poke_lvrank_max";
capture_strlen = 15LL;
v117 = 0LL;
poke_lvrank_max = get_capture_value_from_hash(&capture_hash);
poke_lvrank_index = poke_lvrank_bias_oybn + glv_factor + poke_lvrank;
if ( poke_lvrank_index >= poke_lvrank_max )
poke_lvrank_index = poke_lvrank_max;
if ( poke_lvrank_index )
--poke_lvrank_index;
lv_factor_index = &lv_factor_plrank_pokerank_table[30 * plrank + 3 * (unsigned int)poke_lvrank_index];// 30 entries per plrank, 3 entries per poke_lvrank
v45 = *lv_factor_index;
v46 = (const char *)lv_factor_index[1];
v47 = lv_factor_index[2];
capture_hash = v45;
capture_string = v46;
capture_strlen = v47;
v117 = 0LL;
v48 = get_capture_offset_from_hash(&capture_hash);
max_hp0 = a1->max_hp;
lv_factor = *(float *)&v48;
if ( max_hp0 )
{
cur_hp0 = a1->cur_hp;
max_hp = (float)max_hp0;
capture_hash = 0x9092F2A3627B3F85LL;
capture_string = "capture_index_hp_coef";
cur_hp = (float)cur_hp0;
capture_strlen = 21LL;
v117 = 0LL;
capture_index_hp_coef_ofs = get_capture_offset_from_hash(&capture_hash);
hp_factor = 1.0 - (float)((float)(*(float *)&capture_index_hp_coef_ofs * cur_hp) / max_hp);
}
else
{
hp_factor = 0.0;
}
v55 = 0x62EAF84322895335LL;
p_capture_hash = &capture_hash;
v57 = 32LL;
v58 = "capture_index_sick_factor_freeze";
switch ( a1->sick_index )
{
case 1:
v55 = 0x8465B12CF814E13CLL;
p_capture_hash = (unsigned __int64 *)v111;
v57 = 35LL;
v58 = "capture_index_sick_factor_paralysis";
break;
case 4:
v55 = 0x9CD1FF52E08F5E67LL;
p_capture_hash = (unsigned __int64 *)v110;
v57 = 30LL;
v58 = "capture_index_sick_factor_burn";
break;
case 5:
v55 = 0x4C793817B00CEC5ELL;
p_capture_hash = (unsigned __int64 *)v112;
v57 = 32LL;
v58 = "capture_index_sick_factor_poison";
break;
case 6:
v55 = 0xB1653F18D38154C1LL;
p_capture_hash = (unsigned __int64 *)v113;
v57 = 31LL;
v58 = "capture_index_sick_factor_sleep";
break;
case 7:
break;
default:
v55 = 0x18772DEE4238F2B4LL;
p_capture_hash = (unsigned __int64 *)v109;
v57 = 30LL;
v58 = "capture_index_sick_factor_none";
break;
}
*p_capture_hash = v55;
p_capture_hash[1] = (unsigned __int64)v58;
p_capture_hash[2] = v57;
p_capture_hash[3] = 0LL;
v59 = get_capture_offset_from_hash(p_capture_hash);
ball_index = *(_DWORD *)&a1->ball_index;
sick_factor = *(float *)&v59;
switch ( ball_index )
{
case 29:
v64 = 0xD04E978BC4C1FE78LL;
v65 = 31LL;
v66 = "capture_index_ball_factor_super";
break;
case 30:
v64 = 0x99DE71F0037B195LL;
v65 = 31LL;
v66 = "capture_index_ball_factor_hyper";
break;
case 31:
v100 = &ball_factor_wing_table;
v99 = &ball_factor_wing_suitable_table;
goto LABEL_101;
case 32:
v100 = &ball_factor_wing_super_table;
v99 = &ball_factor_wing_super_suitable_table;
goto LABEL_101;
case 33:
v100 = &ball_factor_wing_hyper_table;
v99 = &ball_factor_wing_hyper_suitable_table;
LABEL_101:
if ( !a1->wing_suitable_flying_high ) // Wing Ball line gets a bonus for the specific encounters high in the sky.
v99 = v100;
goto LABEL_85;
case 34:
if ( a1->stealth_suitable_noticed ) // Heavy Ball line gets a bonus if the Pokémon has not noticed you.
v99 = &ball_factor_stealth_table;
else
v99 = &ball_factor_stealth_suitable_table;
goto LABEL_85;
case 35:
if ( a1->stealth_suitable_noticed )
v99 = &ball_factor_stealth_super_table;
else
v99 = &ball_factor_stealth_super_suitable_table;
goto LABEL_85;
case 36:
v99 = &ball_factor_stealth_hyper_table;
if ( !a1->stealth_suitable_noticed )
v99 = &ball_factor_stealth_hyper_suitable_table;
LABEL_85:
v64 = *v99;
v66 = (const char *)v99[1];
v65 = v99[2];
break;
default:
v64 = 0xD7769B974D232662LL;
v65 = 33LL;
v66 = "capture_index_ball_factor_default";
break;
}
capture_hash = v64;
capture_string = v66;
capture_strlen = v65;
v117 = 0LL;
LODWORD(ball_factor) = COERCE_UNSIGNED_INT128(get_capture_offset_from_hash(&capture_hash));
v68 = 0x7E918A37D64C6833LL;
v69 = (char *)&capture_hash;
v70 = 32LL;
v71 = "capture_index_ai_factor_sleeping";
switch ( a1->ai_behavior_type )
{
case 1:
v68 = 0xE40DA46C1375657BLL;
v69 = v113;
v70 = 31LL;
v71 = "capture_index_ai_factor_caution";// The "..." reaction, or when they hear you but don't see you.
break;
case 2:
ai_react_behavior = a1->ai_react_behavior;
if ( ai_react_behavior == 1 ) // Starts when the ! appears after they notice you. Timid after they run and turn around to look at you.
{
v68 = 0x888497D32C05846ELL;
v69 = &v105;
v70 = 40LL;
v71 = "capture_index_ai_factor_react_aggressive";
}
else if ( ai_react_behavior == 2 )
{
v68 = 0x962E06E067EA1FE5LL;
v69 = &v106;
v70 = 35LL;
v71 = "capture_index_ai_factor_react_timid";
}
else
{
v68 = 0x7B846A5D45BF7F20LL;
v69 = &v104;
v70 = 36LL;
v71 = "capture_index_ai_factor_react_docile";
}
break;
case 3:
ai_feeding_behavior = a1->ai_feeding_behavior;
if ( ai_feeding_behavior )
{
if ( ai_feeding_behavior == 1 )
{
v68 = 0x2509FB459BDA09BELL;
v69 = &v108;
v70 = 40LL;
v71 = "capture_index_ai_factor_feeding_baitball";// eating cakes
}
else
{
v68 = 0xB149B923E2DD99EELL;
v69 = &v107;
v70 = 31LL;
v71 = "capture_index_ai_factor_feeding";// eating anything else
}
}
else
{
v68 = 0x81D8AC8EB05D1D9FLL;
v69 = v109;
v70 = 36LL;
v71 = "capture_index_ai_factor_feeding_nuts";// eating berries
}
break;
case 4:
break;
case 5:
v68 = 0x7B33512EEBD9B4B6LL;
v69 = v110;
v70 = 32LL;
v71 = "capture_index_ai_factor_escaping";
break;
case 6:
v68 = 0xC6ADCE1789869E03LL;
v69 = v112;
v70 = 33LL;
v71 = "capture_index_ai_factor_tiredness";// Stunning with items
break;
case 7:
v68 = 0x58519C0B1F1E33A0LL;
v69 = v111;
v70 = 31LL;
v71 = "capture_index_ai_factor_resting";
break;
default:
v68 = 0xCBFD17AC2DEC1AB7LL;
v69 = (char *)&v103;
v70 = 31LL;
v71 = "capture_index_ai_factor_default";
break;
}
*(_QWORD *)v69 = v68;
*((_QWORD *)v69 + 1) = v71;
*((_QWORD *)v69 + 2) = v70;
*((_QWORD *)v69 + 3) = 0LL;
LODWORD(ai_factor) = COERCE_UNSIGNED_INT128(get_capture_offset_from_hash((unsigned __int64 *)v69));
v73 = 0x9F5D4DAA67A63E57LL;
if ( a1->backstrike_success )
v74 = &capture_hash;
else
v74 = (unsigned __int64 *)v113;
v75 = "capture_index_backstrike_success_factor";
if ( a1->backstrike_success )
v73 = 0x58B3F904BDABE0C4LL;
if ( !a1->backstrike_success )
v75 = "capture_index_backstrike_failure_factor";
*v74 = v73;
v74[1] = (unsigned __int64)v75;
v74[2] = 39LL;
v74[3] = 0LL;
LODWORD(backstrike_factor) = COERCE_UNSIGNED_INT128(get_capture_offset_from_hash(v74));
if ( (a1->field_70 & 1) != 0 ) // Picked up or has eaten Razz Berry (persists in battle).
{
v77 = 0x2098631317549760LL;
v78 = &capture_hash;
v79 = 41LL;
v80 = "capture_index_baiteffect_available_factor";
}
else
{
v77 = 0xE01F57D0F55AAE72LL;
v78 = (unsigned __int64 *)v113;
v79 = 45LL;
v80 = "capture_index_baiteffect_not_available_factor";
}
*v78 = v77;
v78[1] = (unsigned __int64)v80;
v78[2] = v79;
v78[3] = 0LL;
bait_factor_ofs = get_capture_offset_from_hash(v78);
if ( a1->is_not_aggro_towards_player ) // Disabled when aggressive and not stunned.
{
if ( !is_outbreak )
capture_index_outbreak_factor = 0.0;
capture_index = (float)((float)((float)(capture_index_pokepara_coef * (float)catch_rate)
+ capture_index_outbreak_factor)
+ (float)(capture_index_basic_coef * lv_factor))
+ (float)((float)((float)((float)((float)((float)(capture_index_basic_coef * hp_factor) * sick_factor)
* ball_factor)
* ai_factor)
* backstrike_factor)
* *(float *)&bait_factor_ofs);
}
else
{
capture_hash = 0x916810CA2E189E6ALL;
capture_string = "capture_index_range_bottom";
capture_strlen = 26LL;
v117 = 0LL;
LODWORD(capture_index) = COERCE_UNSIGNED_INT128(get_capture_offset_from_hash(&capture_hash));
}
*capture_index_ofs = capture_index;
capture_hash = 0x5AA46A7246202B1CLL;
capture_string = "capture_index_range_top";
capture_strlen = 23LL;
v117 = 0LL;
LODWORD(capture_index_range_top) = COERCE_UNSIGNED_INT128(get_capture_offset_from_hash(&capture_hash));
capture_hash = 0x916810CA2E189E6ALL;
capture_string = "capture_index_range_bottom";
capture_strlen = 26LL;
v117 = 0LL;
capture_index_range_bottom_ofs = get_capture_offset_from_hash(&capture_hash);
if ( *(float *)&capture_index_range_bottom_ofs < capture_index )
capture_result = 1;
else
capture_result = 2;
if ( capture_index_range_top <= capture_index )
capture_result = 0;
a1->capture_result = capture_result; // 0 = guaranteed catch, 1 = roll for catch, 2 = impossible catch
if ( capture_result == 2 )
{
capture_ratio = 1.0;
if ( a1->catch_type != 1 )
LABEL_76:
capture_ratio = 0.0;
}
else
{
if ( capture_result )
{
capture_ratio = 0.0;
capture_index0 = *capture_index_ofs;
capture_hash = 0x5AA46A7246202B1CLL;
capture_string = "capture_index_range_top";
capture_strlen = 23LL;
v117 = 0LL;
LODWORD(capture_index_range_top0) = COERCE_UNSIGNED_INT128(get_capture_offset_from_hash(&capture_hash));
capture_hash = 0x8A148DC1A556BECDLL;
capture_string = "random_value_max";
capture_strlen = 16LL;
v117 = 0LL;
random_value_max0 = get_capture_value_from_hash(&capture_hash);
if ( fabsf(capture_index0) > 0.00000011921 )// 1/8388608f
{
if ( random_value_max0 )
capture_ratio = (float)((float)random_value_max0 / (float)(capture_index_range_top0 / capture_index0))
/ (float)random_value_max0;
}
goto LABEL_69;
}
capture_ratio = 1.0;
if ( a1->catch_type == 2 )
goto LABEL_76;
}
LABEL_69:
a1->capture_ratio = capture_ratio;
capture_hash = 0x8A148DC1A556BECDLL;
capture_string = "random_value_max";
capture_strlen = 16LL;
v117 = 0LL;
random_value_max = (float)(int)get_capture_value_from_hash(&capture_hash);
capture_hash = 0xB9C720D7D22A88E9LL;
capture_string = "capture_judge_radical_root";
capture_strlen = 26LL;
v117 = 0LL;
capture_judge_radical_root_ofs = get_capture_offset_from_hash(&capture_hash);
capture_index1 = a1->capture_index;
capture_hash = 0x5AA46A7246202B1CLL;
capture_string = "capture_index_range_top";
power = 1.0 / *(float *)&capture_judge_radical_root_ofs;
capture_strlen = 23LL;
v117 = 0LL;
capture_index_range_top_ofs = get_capture_offset_from_hash(&capture_hash);
capture_fail_ratio = powf_0(
1.0 - fminf(fmaxf(capture_index1 / *(float *)&capture_index_range_top_ofs, 0.0), 1.0),
power);
result = 1LL;
a1->shake_chance = (float)(1.0 - capture_fail_ratio) * random_value_max;
return result;
}
v102 = (capture_info *)std::__vector_base_common<true>::__throw_out_of_range(v23);
return capture_shake_check(v102);
}
------
.text:0000007101805800 ; __int64 __fastcall get_capture_indicator(capture_info *a1, capture_info *a2)
.text:0000007101805800 get_capture_indicator ; CODE XREF: judge_capture_in_battle+290↑p
.text:0000007101805800 ; .text:000000710180AFF0↓p ...
.text:0000007101805800
.text:0000007101805800 var_1F0 = -0x1F0
.text:0000007101805800 var_1D0 = -0x1D0
.text:0000007101805800 var_1B0 = -0x1B0
.text:0000007101805800 var_190 = -0x190
.text:0000007101805800 var_170 = -0x170
.text:0000007101805800 var_150 = -0x150
.text:0000007101805800 var_130 = -0x130
.text:0000007101805800 var_110 = -0x110
.text:0000007101805800 var_F0 = -0xF0
.text:0000007101805800 var_D0 = -0xD0
.text:0000007101805800 capture_hash = -0xB0
.text:0000007101805800 capture_string = -0xA8
.text:0000007101805800 capture_strlen = -0xA0
.text:0000007101805800 anonymous_1 = -0x98
.text:0000007101805800 var_90 = -0x90
.text:0000007101805800 var_80 = -0x80
.text:0000007101805800 var_70 = -0x70
.text:0000007101805800 var_60 = -0x60
.text:0000007101805800 var_50 = -0x50
.text:0000007101805800 var_48 = -0x48
.text:0000007101805800 lv_factor = -0x44
.text:0000007101805800 var_40 = -0x40
.text:0000007101805800 var_30 = -0x30
.text:0000007101805800 var_20 = -0x20
.text:0000007101805800 var_10 = -0x10
.text:0000007101805800 var_s0 = 0
.text:0000007101805800
.text:0000007101805800 STP D15, D14, [SP,#-0x10+var_90]!
.text:0000007101805804 STP D13, D12, [SP,#0x90+var_80]
.text:0000007101805808 STR X28, [SP,#0x90+var_50]
.text:000000710180580C STP D11, D10, [SP,#0x90+var_70]
.text:0000007101805810 STP D9, D8, [SP,#0x90+var_60]
.text:0000007101805814 STP X26, X25, [SP,#0x90+var_40]
.text:0000007101805818 STP X24, X23, [SP,#0x90+var_30]
.text:000000710180581C STP X22, X21, [SP,#0x90+var_20]
.text:0000007101805820 STP X20, X19, [SP,#0x90+var_10]
.text:0000007101805824 STP X29, X30, [SP,#0x90+var_s0]
.text:0000007101805828 ADD X29, SP, #0x90
.text:000000710180582C SUB SP, SP, #0x180
.text:0000007101805830 MOV X21, X0
.text:0000007101805834 MOV W8, #2
.text:0000007101805838 MOV X20, X1
.text:000000710180583C STR XZR, [X21,#0x84]!
.text:0000007101805840 STUR WZR, [X21,#-0x80]
.text:0000007101805844 STURH WZR, [X21,#-0x7C]
.text:0000007101805848 MOV X19, X0
.text:000000710180584C STUR XZR, [X21,#-0x5C]
.text:0000007101805850 STUR WZR, [X21,#-0x54]
.text:0000007101805854 STUR XZR, [X21,#-0x4C]
.text:0000007101805858 STR XZR, [X21,#8]
.text:000000710180585C STR W8, [X21,#0x10]
.text:0000007101805860 LDR W8, [X1,#4]
.text:0000007101805864 CMP W8, #0
.text:0000007101805868 CSET W9, NE
.text:000000710180586C CMP W8, #0x38A
.text:0000007101805870 CSET W8, LT
.text:0000007101805874 AND W8, W9, W8
.text:0000007101805878 LDR W9, [X1,#0x2C]
.text:000000710180587C CBZ W9, loc_710180588C
.text:0000007101805880 LDR W10, [X20,#0x28]
.text:0000007101805884 CMP W10, W9
.text:0000007101805888 CSET W9, LS
.text:000000710180588C
.text:000000710180588C loc_710180588C ; CODE XREF: get_capture_indicator+7C↑j
.text:000000710180588C AND W8, W9, W8
.text:0000007101805890 LDR W9, [X20,#0x38]
.text:0000007101805894 CMP W9, #0
.text:0000007101805898 CSET W10, NE
.text:000000710180589C CMP W9, #0x26 ; '&'
.text:00000071018058A0 CSET W9, LT
.text:00000071018058A4 AND W9, W10, W9
.text:00000071018058A8 TST W8, W9
.text:00000071018058AC B.EQ loc_710180642C
.text:00000071018058B0 LDP X8, X9, [X20]
.text:00000071018058B4 LDP X10, X11, [X20,#0x10]
.text:00000071018058B8 STP X10, X11, [X19,#0x10]
.text:00000071018058BC STP X8, X9, [X19]
.text:00000071018058C0 LDP X8, X9, [X20,#0x20]
.text:00000071018058C4 LDP X10, X11, [X20,#0x30]
.text:00000071018058C8 STP X10, X11, [X19,#0x30]
.text:00000071018058CC STP X8, X9, [X19,#0x20]
.text:00000071018058D0 LDP X8, X9, [X20,#0x40]
.text:00000071018058D4 LDP X10, X11, [X20,#0x50]
.text:00000071018058D8 STP X10, X11, [X19,#0x50]
.text:00000071018058DC STP X8, X9, [X19,#0x40]
.text:00000071018058E0 LDP X8, X9, [X20,#0x60]
.text:00000071018058E4 LDP X10, X11, [X20,#0x70]
.text:00000071018058E8 STP X8, X9, [X19,#0x60]
.text:00000071018058EC LDRB W8, [X19,#0x44]
.text:00000071018058F0 STP X10, X11, [X19,#0x70]
.text:00000071018058F4 CBNZ W8, loc_71018063D4
.text:00000071018058F8
.text:00000071018058F8 loc_71018058F8 ; CODE XREF: get_capture_indicator+BDC↓j
.text:00000071018058F8 LDRB W8, [X19,#0x46]
.text:00000071018058FC CBZ W8, loc_71018063F0
.text:0000007101805900
.text:0000007101805900 loc_7101805900 ; CODE XREF: get_capture_indicator+BEC↓j
.text:0000007101805900 ; get_capture_indicator+BF8↓j ...
.text:0000007101805900 MOV X9, #0xDFE28CE5
.text:0000007101805908 ADRL X8, aCaptureIndexBa ; "capture_index_basic_coef"
.text:0000007101805910 MOVK X9, #0x76EB,LSL#32
.text:0000007101805914 MOVK X9, #0x596,LSL#48
.text:0000007101805918 STP X9, X8, [X29,#capture_hash]
.text:000000710180591C MOV W8, #0x18
.text:0000007101805920 SUB X0, X29, #-capture_hash
.text:0000007101805924 STP X8, XZR, [X29,#capture_strlen]
.text:0000007101805928 BL get_capture_offset_from_hash
.text:000000710180592C LDR W9, [X19,#4]
.text:0000007101805930 ORR W10, W9, #1
.text:0000007101805934 CMP W10, #0x38B
.text:0000007101805938 LDRH W8, [X19,#8]
.text:000000710180593C CSET W10, EQ
.text:0000007101805940 CMP W9, #0x389
.text:0000007101805944 CSET W11, GT
.text:0000007101805948 ORR W10, W11, W10
.text:000000710180594C CMP W10, #0
.text:0000007101805950 MOV V13.16B, V0.16B
.text:0000007101805954 CSEL W8, WZR, W8, NE
.text:0000007101805958 AND W11, W8, #0xFFFF
.text:000000710180595C CMP W11, #0x1B
.text:0000007101805960 B.HI loc_710180599C
.text:0000007101805964 CMP W10, #0
.text:0000007101805968 ADRL X10, qword_71042F23A0
.text:0000007101805970 CSEL X9, XZR, X9, NE
.text:0000007101805974 LSL X9, X9, #5
.text:0000007101805978 AND X11, X8, #0xFFFF
.text:000000710180597C LDR X0, [X10,X9]
.text:0000007101805980 LDP X9, X10, [X0]
.text:0000007101805984 SUB X10, X10, X9
.text:0000007101805988 ASR X10, X10, #3
.text:000000710180598C CMP X10, X11
.text:0000007101805990 B.LS loc_710180599C
.text:0000007101805994 LDR X11, [X9,X11,LSL#3]
.text:0000007101805998 CBNZ X11, loc_71018059B4
.text:000000710180599C
.text:000000710180599C loc_710180599C ; CODE XREF: get_capture_indicator+160↑j
.text:000000710180599C ; get_capture_indicator+190↑j
.text:000000710180599C ADRP X9, #qword_71042F23A0@PAGE
.text:00000071018059A0 LDR X0, [X9,#qword_71042F23A0@PAGEOFF]
.text:00000071018059A4 MOV W8, WZR
.text:00000071018059A8 LDP X9, X10, [X0]
.text:00000071018059AC SUB X10, X10, X9
.text:00000071018059B0 ASR X10, X10, #3
.text:00000071018059B4
.text:00000071018059B4 loc_71018059B4 ; CODE XREF: get_capture_indicator+198↑j
.text:00000071018059B4 AND X8, X8, #0xFFFF
.text:00000071018059B8 CMP X10, X8
.text:00000071018059BC B.LS loc_71018065E4
.text:00000071018059C0 LDR X8, [X9,X8,LSL#3]
.text:00000071018059C4 LDRSW X9, [X8]
.text:00000071018059C8 SUB X9, X8, X9
.text:00000071018059CC LDRH W10, [X9]
.text:00000071018059D0 CMP W10, #0x27 ; '''
.text:00000071018059D4 B.CC loc_7101805C34
.text:00000071018059D8 LDRH W9, [X9,#0x26]
.text:00000071018059DC CBZ X9, loc_7101805C34
.text:00000071018059E0 LDRB W22, [X8,X9]
.text:00000071018059E4
.text:00000071018059E4 loc_71018059E4 ; CODE XREF: get_capture_indicator+438↓j
.text:00000071018059E4 MOV X9, #0x8808ECA4
.text:00000071018059EC ADRL X8, aCaptureIndexPo ; "capture_index_pokepara_coef"
.text:00000071018059F4 MOVK X9, #0x5C84,LSL#32
.text:00000071018059F8 MOVK X9, #0xD9FA,LSL#48
.text:00000071018059FC STP X9, X8, [X29,#capture_hash]
.text:0000007101805A00 MOV W8, #0x1B
.text:0000007101805A04 SUB X0, X29, #-capture_hash
.text:0000007101805A08 STP X8, XZR, [X29,#capture_strlen]
.text:0000007101805A0C BL get_capture_offset_from_hash
.text:0000007101805A10 LDRB W23, [X19,#0x48]
.text:0000007101805A14 MOV X9, #0x276FE936
.text:0000007101805A1C ADRL X8, aCaptureIndexOu ; "capture_index_outbreak_factor"
.text:0000007101805A24 MOV V9.16B, V0.16B
.text:0000007101805A28 MOVK X9, #0x79CF,LSL#32
.text:0000007101805A2C MOVK X9, #0x9D91,LSL#48
.text:0000007101805A30 SUB X0, X29, #-capture_hash
.text:0000007101805A34 STP X9, X8, [X29,#capture_hash]
.text:0000007101805A38 MOV W8, #0x1D
.text:0000007101805A3C STP X8, XZR, [X29,#capture_strlen]
.text:0000007101805A40 BL get_capture_offset_from_hash
.text:0000007101805A44 LDR W8, [X20]
.text:0000007101805A48 MOV W9, #0xA
.text:0000007101805A4C CMP W8, #0xA
.text:0000007101805A50 CSEL W24, W8, W9, CC
.text:0000007101805A54 LDP W26, W8, [X20,#0xC]
.text:0000007101805A58 LDP W9, W10, [X20,#0x14]
.text:0000007101805A5C ADD W8, W9, W8
.text:0000007101805A60 ADD W8, W8, W10
.text:0000007101805A64 LDP W9, W10, [X20,#0x1C]
.text:0000007101805A68 ADD W8, W8, W9
.text:0000007101805A6C LDRB W9, [X20,#0x34]
.text:0000007101805A70 ADD W8, W8, W10
.text:0000007101805A74 LDR W10, [X20,#0x24]
.text:0000007101805A78 MOV V11.16B, V0.16B
.text:0000007101805A7C ADD W25, W8, W10
.text:0000007101805A80 CBNZ W9, loc_7101805C3C
.text:0000007101805A84 MOV W20, WZR
.text:0000007101805A88
.text:0000007101805A88 loc_7101805A88 ; CODE XREF: get_capture_indicator+46C↓j
.text:0000007101805A88 MOV X9, #0x4882DF4F
.text:0000007101805A90 ADRL X8, aPokeLvrankBias ; "poke_lvrank_bias_per_glv"
.text:0000007101805A98 MOVK X9, #0x843E,LSL#32
.text:0000007101805A9C MOVK X9, #0x2CF7,LSL#48
.text:0000007101805AA0 STP X9, X8, [X29,#capture_hash]
.text:0000007101805AA4 MOV W8, #0x18
.text:0000007101805AA8 SUB X0, X29, #-capture_hash
.text:0000007101805AAC STP X8, XZR, [X29,#capture_strlen]
.text:0000007101805AB0 BL get_capture_offset_from_hash
.text:0000007101805AB4 UCVTF S1, W25
.text:0000007101805AB8 FMUL S0, S0, S1
.text:0000007101805ABC MOV X8, #0xC9B446FA2EC6E9B6
.text:0000007101805ACC ADRL X9, aPokeLvrank1Ran ; "poke_lvrank_1_range_max"
.text:0000007101805AD4 STP X8, X9, [X29,#capture_hash]
.text:0000007101805AD8 MOV W8, #0x17
.text:0000007101805ADC SUB X0, X29, #-capture_hash
.text:0000007101805AE0 STP X8, XZR, [X29,#capture_strlen]
.text:0000007101805AE4 FCVTZS W25, S0
.text:0000007101805AE8 BL get_capture_value_from_hash
.text:0000007101805AEC CMP W0, W26
.text:0000007101805AF0 B.CS loc_7101806230
.text:0000007101805AF4 MOV X9, #0x4D183CBF
.text:0000007101805AFC ADRL X8, aPokeLvrank2Ran ; "poke_lvrank_2_range_max"
.text:0000007101805B04 MOVK X9, #0x1189,LSL#32
.text:0000007101805B08 MOVK X9, #0xAC20,LSL#48
.text:0000007101805B0C STP X9, X8, [X29,#capture_hash]
.text:0000007101805B10 MOV W8, #0x17
.text:0000007101805B14 SUB X0, X29, #-capture_hash
.text:0000007101805B18 STP X8, XZR, [X29,#capture_strlen]
.text:0000007101805B1C BL get_capture_value_from_hash
.text:0000007101805B20 CMP W0, W26
.text:0000007101805B24 B.CS loc_71018061A8
.text:0000007101805B28 MOV X9, #0x9E893A2C
.text:0000007101805B30 ADRL X8, aPokeLvrank3Ran ; "poke_lvrank_3_range_max"
.text:0000007101805B38 MOVK X9, #0xECA1,LSL#32
.text:0000007101805B3C MOVK X9, #0x276C,LSL#48
.text:0000007101805B40 STP X9, X8, [X29,#capture_hash]
.text:0000007101805B44 MOV W8, #0x17
.text:0000007101805B48 SUB X0, X29, #-capture_hash
.text:0000007101805B4C STP X8, XZR, [X29,#capture_strlen]
.text:0000007101805B50 BL get_capture_value_from_hash
.text:0000007101805B54 CMP W0, W26
.text:0000007101805B58 B.CS loc_7101806180
.text:0000007101805B5C MOV X9, #0xE30622A5
.text:0000007101805B64 ADRL X8, aPokeLvrank4Ran ; "poke_lvrank_4_range_max"
.text:0000007101805B6C MOVK X9, #0xD0D2,LSL#32
.text:0000007101805B70 MOVK X9, #0x2959,LSL#48
.text:0000007101805B74 STP X9, X8, [X29,#capture_hash]
.text:0000007101805B78 MOV W8, #0x17
.text:0000007101805B7C SUB X0, X29, #-capture_hash
.text:0000007101805B80 STP X8, XZR, [X29,#capture_strlen]
.text:0000007101805B84 BL get_capture_value_from_hash
.text:0000007101805B88 CMP W0, W26
.text:0000007101805B8C B.CS loc_7101805C70
.text:0000007101805B90 MOV X9, #0x2B6273D2
.text:0000007101805B98 ADRL X8, aPokeLvrank5Ran ; "poke_lvrank_5_range_max"
.text:0000007101805BA0 MOVK X9, #0x9D6F,LSL#32
.text:0000007101805BA4 MOVK X9, #0xD1BB,LSL#48
.text:0000007101805BA8 STP X9, X8, [X29,#capture_hash]
.text:0000007101805BAC MOV W8, #0x17
.text:0000007101805BB0 SUB X0, X29, #-capture_hash
.text:0000007101805BB4 STP X8, XZR, [X29,#capture_strlen]
.text:0000007101805BB8 BL get_capture_value_from_hash
.text:0000007101805BBC CMP W0, W26
.text:0000007101805BC0 B.CS loc_71018061A0
.text:0000007101805BC4 MOV X9, #0xFB4BEE6B
.text:0000007101805BCC ADRL X8, aPokeLvrank6Ran ; "poke_lvrank_6_range_max"
.text:0000007101805BD4 MOVK X9, #0xC752,LSL#32
.text:0000007101805BD8 MOVK X9, #0x2E77,LSL#48
.text:0000007101805BDC STP X9, X8, [X29,#capture_hash]
.text:0000007101805BE0 MOV W8, #0x17
.text:0000007101805BE4 SUB X0, X29, #-capture_hash
.text:0000007101805BE8 STP X8, XZR, [X29,#capture_strlen]
.text:0000007101805BEC BL get_capture_value_from_hash
.text:0000007101805BF0 CMP W0, W26
.text:0000007101805BF4 B.CS loc_71018061B0
.text:0000007101805BF8 MOV X9, #0xA2941AA8
.text:0000007101805C00 ADRL X8, aPokeLvrank7Ran ; "poke_lvrank_7_range_max"
.text:0000007101805C08 MOVK X9, #0xB8EC,LSL#32
.text:0000007101805C0C MOVK X9, #0x3FFA,LSL#48
.text:0000007101805C10 STP X9, X8, [X29,#capture_hash]
.text:0000007101805C14 MOV W8, #0x17
.text:0000007101805C18 SUB X0, X29, #-capture_hash
.text:0000007101805C1C STP X8, XZR, [X29,#capture_strlen]
.text:0000007101805C20 BL get_capture_value_from_hash
.text:0000007101805C24 CMP W0, W26
.text:0000007101805C28 B.CC loc_71018062FC
.text:0000007101805C2C MOV W26, #7
.text:0000007101805C30 B loc_7101805C74
.text:0000007101805C34 ; ---------------------------------------------------------------------------
.text:0000007101805C34
.text:0000007101805C34 loc_7101805C34 ; CODE XREF: get_capture_indicator+1D4↑j
.text:0000007101805C34 ; get_capture_indicator+1DC↑j
.text:0000007101805C34 MOV W22, WZR
.text:0000007101805C38 B loc_71018059E4
.text:0000007101805C3C ; ---------------------------------------------------------------------------
.text:0000007101805C3C
.text:0000007101805C3C loc_7101805C3C ; CODE XREF: get_capture_indicator+280↑j
.text:0000007101805C3C MOV X9, #0xE1F7264C
.text:0000007101805C44 ADRL X8, aPokeLvrankBias_0 ; "poke_lvrank_bias_oybn"
.text:0000007101805C4C MOVK X9, #0x8962,LSL#32
.text:0000007101805C50 MOVK X9, #0x45BA,LSL#48
.text:0000007101805C54 STP X9, X8, [X29,#capture_hash]
.text:0000007101805C58 MOV W8, #0x15
.text:0000007101805C5C SUB X0, X29, #-capture_hash
.text:0000007101805C60 STP X8, XZR, [X29,#capture_strlen]
.text:0000007101805C64 BL get_capture_value_from_hash
.text:0000007101805C68 MOV W20, W0
.text:0000007101805C6C B loc_7101805A88
.text:0000007101805C70 ; ---------------------------------------------------------------------------
.text:0000007101805C70
.text:0000007101805C70 loc_7101805C70 ; CODE XREF: get_capture_indicator+38C↑j
.text:0000007101805C70 MOV W26, #4
.text:0000007101805C74
.text:0000007101805C74 loc_7101805C74 ; CODE XREF: get_capture_indicator+430↑j
.text:0000007101805C74 ; get_capture_indicator+984↓j ...
.text:0000007101805C74 MOV X9, #0x12200A6C
.text:0000007101805C7C ADRL X8, aPokeLvrankMax ; "poke_lvrank_max"
.text:0000007101805C84 MOVK X9, #0x338D,LSL#32
.text:0000007101805C88 MOVK X9, #0x75B7,LSL#48
.text:0000007101805C8C STP X9, X8, [X29,#capture_hash]
.text:0000007101805C90 MOV W8, #0xF
.text:0000007101805C94 SUB X0, X29, #-capture_hash
.text:0000007101805C98 STP X8, XZR, [X29,#capture_strlen]
.text:0000007101805C9C BL get_capture_value_from_hash
.text:0000007101805CA0 ADD W8, W20, W25
.text:0000007101805CA4 ADD W8, W8, W26
.text:0000007101805CA8 CMP W8, W0
.text:0000007101805CAC CSEL W8, W8, W0, LT
.text:0000007101805CB0 CBZ W8, loc_7101805CB8
.text:0000007101805CB4 SUB W8, W8, #1
.text:0000007101805CB8
.text:0000007101805CB8 loc_7101805CB8 ; CODE XREF: get_capture_indicator+4B0↑j
.text:0000007101805CB8 ADRL X9, lv_factor_plrank_pokerank_table
.text:0000007101805CC0 MOV W10, #0xF0
.text:0000007101805CC4 MOV W11, #0x18
.text:0000007101805CC8 UMADDL X9, W24, W10, X9
.text:0000007101805CCC UMADDL X8, W8, W11, X9
.text:0000007101805CD0 LDP X9, X10, [X8]
.text:0000007101805CD4 LDR X8, [X8,#0x10]
.text:0000007101805CD8 SUB X0, X29, #-capture_hash
.text:0000007101805CDC STP X9, X10, [X29,#capture_hash]
.text:0000007101805CE0 STP X8, XZR, [X29,#capture_strlen]
.text:0000007101805CE4 BL get_capture_offset_from_hash
.text:0000007101805CE8 LDR W8, [X19,#0x2C]
.text:0000007101805CEC FMOV S10, #1.0
.text:0000007101805CF0 STUR S0, [X29,#lv_factor]
.text:0000007101805CF4 CBZ W8, loc_7101806434
.text:0000007101805CF8 LDR S0, [X19,#0x28]
.text:0000007101805CFC MOV X9, #0x9092F2A3627B3F85
.text:0000007101805D0C ADRL X10, aCaptureIndexHp ; "capture_index_hp_coef"
.text:0000007101805D14 UCVTF S12, W8
.text:0000007101805D18 MOV W8, #0x15
.text:0000007101805D1C SUB X0, X29, #-capture_hash
.text:0000007101805D20 STP X9, X10, [X29,#capture_hash]
.text:0000007101805D24 UCVTF S8, S0
.text:0000007101805D28 STP X8, XZR, [X29,#capture_strlen]
.text:0000007101805D2C BL get_capture_offset_from_hash
.text:0000007101805D30 FMUL S0, S0, S8
.text:0000007101805D34 FDIV S0, S0, S12
.text:0000007101805D38 FSUB S8, S10, S0
.text:0000007101805D3C
.text:0000007101805D3C loc_7101805D3C ; CODE XREF: get_capture_indicator+C38↓j
.text:0000007101805D3C LDR W8, [X19,#0x30]
.text:0000007101805D40 SUB W10, W8, #1 ; switch 7 cases
.text:0000007101805D44 CMP W10, #6
.text:0000007101805D48 B.HI def_7101805D80 ; jumptable 0000007101805D80 default case, cases 2,3
.text:0000007101805D4C ADRL X11, jpt_7101805D80
.text:0000007101805D54 ADR X12, def_7101805D80 ; jumptable 0000007101805D80 default case, cases 2,3
.text:0000007101805D58 LDRH W13, [X11,X10,LSL#1]
.text:0000007101805D5C ADD X12, X12, X13,LSL#2
.text:0000007101805D60 MOV X8, #0x62EAF84322895335
.text:0000007101805D70 SUB X0, X29, #-capture_hash
.text:0000007101805D74 MOV W9, #0x20 ; ' '
.text:0000007101805D78 ADRL X10, aCaptureIndexSi ; "capture_index_sick_factor_freeze"
.text:0000007101805D80 BR X12 ; switch jump
.text:0000007101805D84 ; ---------------------------------------------------------------------------
.text:0000007101805D84
.text:0000007101805D84 def_7101805D80 ; CODE XREF: get_capture_indicator+548↑j
.text:0000007101805D84 ; get_capture_indicator+580↑j
.text:0000007101805D84 ; DATA XREF: ...
.text:0000007101805D84 MOV X8, #0x18772DEE4238F2B4 ; jumptable 0000007101805D80 default case, cases 2,3
.text:0000007101805D94 ADD X0, SP, #0x210+var_150
.text:0000007101805D98 MOV W9, #0x1E
.text:0000007101805D9C ADRL X10, aCaptureIndexSi_0 ; "capture_index_sick_factor_none"
.text:0000007101805DA4
.text:0000007101805DA4 loc_7101805DA4 ; CODE XREF: get_capture_indicator+580↑j
.text:0000007101805DA4 ; get_capture_indicator+BAC↓j ...
.text:0000007101805DA4 STP X8, X10, [X0] ; jumptable 0000007101805D80 case 7
.text:0000007101805DA8 STP X9, XZR, [X0,#0x10]
.text:0000007101805DAC BL get_capture_offset_from_hash
.text:0000007101805DB0 LDR W8, [X19,#0x38]
.text:0000007101805DB4 MOV V12.16B, V0.16B
.text:0000007101805DB8 STUR S11, [X29,#var_48]
.text:0000007101805DBC SUB W10, W8, #0x1D ; switch 8 cases
.text:0000007101805DC0 CMP W10, #7
.text:0000007101805DC4 B.LS loc_71018060D8
.text:0000007101805DC8
.text:0000007101805DC8 def_71018060F4 ; jumptable 00000071018060F4 default case
.text:0000007101805DC8 MOV V11.16B, V9.16B
.text:0000007101805DCC MOV V9.16B, V13.16B
.text:0000007101805DD0 MOV X8, #0x4D232662
.text:0000007101805DD8 SUB X0, X29, #-capture_hash
.text:0000007101805DDC MOVK X8, #0x9B97,LSL#32
.text:0000007101805DE0 MOVK X8, #0xD776,LSL#48
.text:0000007101805DE4 MOV W10, #0x21 ; '!'
.text:0000007101805DE8 ADRL X9, aCaptureIndexBa_0 ; "capture_index_ball_factor_default"
.text:0000007101805DF0
.text:0000007101805DF0 loc_7101805DF0 ; CODE XREF: get_capture_indicator+920↓j
.text:0000007101805DF0 ; get_capture_indicator+A10↓j ...
.text:0000007101805DF0 STP X8, X9, [X0]
.text:0000007101805DF4 STP X10, XZR, [X0,#0x10]
.text:0000007101805DF8 BL get_capture_offset_from_hash
.text:0000007101805DFC LDR W8, [X19,#0x3C]
.text:0000007101805E00 MOV V13.16B, V0.16B
.text:0000007101805E04 SUB W10, W8, #1 ; switch 7 cases
.text:0000007101805E08 CMP W10, #6
.text:0000007101805E0C B.LS loc_7101806124
.text:0000007101805E10
.text:0000007101805E10 def_7101806158 ; jumptable 0000007101806158 default case
.text:0000007101805E10 MOV X8, #0xCBFD17AC2DEC1AB7
.text:0000007101805E20 MOV X0, SP
.text:0000007101805E24 MOV W9, #0x1F
.text:0000007101805E28 ADRL X10, aCaptureIndexAi ; "capture_index_ai_factor_default"
.text:0000007101805E30
.text:0000007101805E30 loc_7101805E30 ; CODE XREF: get_capture_indicator+958↓j
.text:0000007101805E30 ; get_capture_indicator+97C↓j ...
.text:0000007101805E30 STP X8, X10, [X0] ; jumptable 0000007101806158 case 4
.text:0000007101805E34 STP X9, XZR, [X0,#0x10]
.text:0000007101805E38 BL get_capture_offset_from_hash
.text:0000007101805E3C LDRB W9, [X19,#0x36]
.text:0000007101805E40 SUB X8, X29, #-capture_hash
.text:0000007101805E44 SUB X10, X29, #-var_D0
.text:0000007101805E48 MOV X11, #0xBDABE0C4
.text:0000007101805E50 MOV V14.16B, V0.16B
.text:0000007101805E54 CMP W9, #0
.text:0000007101805E58 MOV X9, #0x67A63E57
.text:0000007101805E60 MOVK X11, #0xF904,LSL#32
.text:0000007101805E64 MOVK X11, #0x58B3,LSL#48
.text:0000007101805E68 MOVK X9, #0x4DAA,LSL#32
.text:0000007101805E6C MOVK X9, #0x9F5D,LSL#48
.text:0000007101805E70 CSEL X0, X10, X8, EQ
.text:0000007101805E74 ADRL X8, aCaptureIndexBa_1 ; "capture_index_backstrike_success_factor"
.text:0000007101805E7C ADRL X10, aCaptureIndexBa_2 ; "capture_index_backstrike_failure_factor"
.text:0000007101805E84 CSEL X9, X9, X11, EQ
.text:0000007101805E88 CSEL X8, X10, X8, EQ
.text:0000007101805E8C STP X9, X8, [X0]
.text:0000007101805E90 MOV W8, #0x27 ; '''
.text:0000007101805E94 STP X8, XZR, [X0,#0x10]
.text:0000007101805E98 BL get_capture_offset_from_hash
.text:0000007101805E9C LDRB W8, [X19,#0x70]
.text:0000007101805EA0 MOV V15.16B, V0.16B
.text:0000007101805EA4 TBNZ W8, #0, loc_710180643C
.text:0000007101805EA8 MOV X8, #0xE01F57D0F55AAE72
.text:0000007101805EB8 SUB X0, X29, #-var_D0
.text:0000007101805EBC MOV W9, #0x2D ; '-'
.text:0000007101805EC0 ADRL X10, aCaptureIndexBa_3 ; "capture_index_baiteffect_not_available_"...
.text:0000007101805EC8
.text:0000007101805EC8 loc_7101805EC8 ; CODE XREF: get_capture_indicator+C5C↓j
.text:0000007101805EC8 MOV X24, #0x916810CA2E189E6A
.text:0000007101805ED8 STP X8, X10, [X0]
.text:0000007101805EDC STP X9, XZR, [X0,#0x10]
.text:0000007101805EE0 BL get_capture_offset_from_hash
.text:0000007101805EE4 LDRB W8, [X19,#0x46]
.text:0000007101805EE8 ADRL X25, aCaptureIndexRa ; "capture_index_range_bottom"
.text:0000007101805EF0 CBZ W8, loc_7101806214
.text:0000007101805EF4 UCVTF S1, W22
.text:0000007101805EF8 FMUL S1, S11, S1
.text:0000007101805EFC CBNZ W23, loc_7101806460
.text:0000007101805F00 FMOV S2, WZR
.text:0000007101805F04
.text:0000007101805F04 loc_7101805F04 ; CODE XREF: get_capture_indicator+C64↓j
.text:0000007101805F04 FADD S1, S1, S2
.text:0000007101805F08 LDUR S2, [X29,#lv_factor]
.text:0000007101805F0C FMUL S2, S9, S2
.text:0000007101805F10 FMUL S3, S9, S8
.text:0000007101805F14 FADD S1, S1, S2
.text:0000007101805F18 FMUL S2, S3, S12
.text:0000007101805F1C FMUL S3, S2, S13
.text:0000007101805F20 FMUL S2, S3, S14
.text:0000007101805F24 FMUL S3, S2, S15
.text:0000007101805F28 FMUL S0, S3, S0
.text:0000007101805F2C FADD S8, S1, S0
.text:0000007101805F30
.text:0000007101805F30 loc_7101805F30 ; CODE XREF: get_capture_indicator+A2C↓j
.text:0000007101805F30 MOV X22, #0x46202B1C
.text:0000007101805F38 STR S8, [X21]
.text:0000007101805F3C ADRL X20, aCaptureIndexRa_0 ; "capture_index_range_top"
.text:0000007101805F44 MOVK X22, #0x6A72,LSL#32
.text:0000007101805F48 MOVK X22, #0x5AA4,LSL#48
.text:0000007101805F4C STP X22, X20, [X29,#capture_hash]
.text:0000007101805F50 MOV W8, #0x17
.text:0000007101805F54 SUB X0, X29, #-capture_hash
.text:0000007101805F58 STP X8, XZR, [X29,#capture_strlen]
.text:0000007101805F5C BL get_capture_offset_from_hash
.text:0000007101805F60 MOV W8, #0x1A
.text:0000007101805F64 SUB X0, X29, #-capture_hash
.text:0000007101805F68 MOV V9.16B, V0.16B
.text:0000007101805F6C STP X24, X25, [X29,#capture_hash]
.text:0000007101805F70 STP X8, XZR, [X29,#capture_strlen]
.text:0000007101805F74 BL get_capture_offset_from_hash
.text:0000007101805F78 FCMP S0, S8
.text:0000007101805F7C MOV W8, #2
.text:0000007101805F80 CSINC W8, W8, WZR, PL
.text:0000007101805F84 FCMP S9, S8
.text:0000007101805F88 B.LS loc_710180635C
.text:0000007101805F8C
.text:0000007101805F8C loc_7101805F8C ; CODE XREF: get_capture_indicator+B60↓j
.text:0000007101805F8C MOV X23, #0xA556BECD
.text:0000007101805F94 STR W8, [X19,#0x94]
.text:0000007101805F98 MOVK X23, #0x8DC1,LSL#32
.text:0000007101805F9C MOVK X23, #0x8A14,LSL#48
.text:0000007101805FA0 CMP W8, #2
.text:0000007101805FA4 ADRL X24, aRandomValueMax ; "random_value_max"
.text:0000007101805FAC B.EQ loc_7101806188
.text:0000007101805FB0 CBZ W8, loc_71018062C4
.text:0000007101805FB4 FMOV S9, WZR
.text:0000007101805FB8 CMP W8, #1
.text:0000007101805FBC B.NE loc_7101806018
.text:0000007101805FC0 LDR S11, [X21]
.text:0000007101805FC4 MOV W8, #0x17
.text:0000007101805FC8 SUB X0, X29, #-capture_hash
.text:0000007101805FCC STP X22, X20, [X29,#capture_hash]
.text:0000007101805FD0 STP X8, XZR, [X29,#capture_strlen]
.text:0000007101805FD4 BL get_capture_offset_from_hash
.text:0000007101805FD8 MOV W8, #0x10
.text:0000007101805FDC SUB X0, X29, #-capture_hash
.text:0000007101805FE0 MOV V8.16B, V0.16B
.text:0000007101805FE4 STP X23, X24, [X29,#capture_hash]
.text:0000007101805FE8 STP X8, XZR, [X29,#capture_strlen]
.text:0000007101805FEC BL get_capture_value_from_hash
.text:0000007101805FF0 MOV W8, #0x34000000
.text:0000007101805FF4 FMOV S1, W8
.text:0000007101805FF8 FABS S0, S11
.text:0000007101805FFC FCMP S0, S1
.text:0000007101806000 B.LE loc_7101806018
.text:0000007101806004 CBZ W0, loc_7101806018
.text:0000007101806008 FDIV S1, S8, S11
.text:000000710180600C SCVTF S0, W0
.text:0000007101806010 FDIV S1, S0, S1
.text:0000007101806014 FDIV S9, S1, S0
.text:0000007101806018
.text:0000007101806018 loc_7101806018 ; CODE XREF: get_capture_indicator+7BC↑j
.text:0000007101806018 ; get_capture_indicator+800↑j ...
.text:0000007101806018 MOV W8, #0x10
.text:000000710180601C SUB X0, X29, #-capture_hash
.text:0000007101806020 STR S9, [X19,#0x8C]
.text:0000007101806024 STP X23, X24, [X29,#capture_hash]
.text:0000007101806028 STP X8, XZR, [X29,#capture_strlen]
.text:000000710180602C BL get_capture_value_from_hash
.text:0000007101806030 MOV X8, #0xD22A88E9
.text:0000007101806038 ADRL X9, aCaptureJudgeRa ; "capture_judge_radical_root"
.text:0000007101806040 SCVTF S9, W0
.text:0000007101806044 MOVK X8, #0x20D7,LSL#32
.text:0000007101806048 MOVK X8, #0xB9C7,LSL#48
.text:000000710180604C SUB X0, X29, #-capture_hash
.text:0000007101806050 STP X8, X9, [X29,#capture_hash]
.text:0000007101806054 MOV W8, #0x1A
.text:0000007101806058 STP X8, XZR, [X29,#capture_strlen]
.text:000000710180605C BL get_capture_offset_from_hash
.text:0000007101806060 LDR S11, [X19,#0x84]
.text:0000007101806064 MOV W8, #0x17
.text:0000007101806068 SUB X0, X29, #-capture_hash
.text:000000710180606C STP X22, X20, [X29,#capture_hash]
.text:0000007101806070 FDIV S8, S10, S0
.text:0000007101806074 STP X8, XZR, [X29,#capture_strlen]
.text:0000007101806078 BL get_capture_offset_from_hash
.text:000000710180607C FDIV S0, S11, S0
.text:0000007101806080 FMOV S1, WZR
.text:0000007101806084 FMAXNM S0, S0, S1
.text:0000007101806088 MOV V1.16B, V8.16B ; y
.text:000000710180608C FMIN S0, S0, S10
.text:0000007101806090 FSUB S0, S10, S0 ; x
.text:0000007101806094 BL powf_0
.text:0000007101806098 FSUB S0, S10, S0
.text:000000710180609C FMUL S0, S0, S9
.text:00000071018060A0 MOV W0, #1
.text:00000071018060A4 STR S0, [X19,#0x88]
.text:00000071018060A8
.text:00000071018060A8 loc_71018060A8 ; CODE XREF: get_capture_indicator+C30↓j
.text:00000071018060A8 ADD SP, SP, #0x180
.text:00000071018060AC LDP D9, D8, [SP,#0x90+var_60]
.text:00000071018060B0 LDR X28, [SP,#0x90+var_50]
.text:00000071018060B4 LDP D11, D10, [SP,#0x90+var_70]
.text:00000071018060B8 LDP D13, D12, [SP,#0x90+var_80]
.text:00000071018060BC LDP X29, X30, [SP,#0x90+var_s0]
.text:00000071018060C0 LDP X20, X19, [SP,#0x90+var_10]
.text:00000071018060C4 LDP X22, X21, [SP,#0x90+var_20]
.text:00000071018060C8 LDP X24, X23, [SP,#0x90+var_30]
.text:00000071018060CC LDP X26, X25, [SP,#0x90+var_40]
.text:00000071018060D0 LDP D15, D14, [SP+0x90+var_90],#0xA0
.text:00000071018060D4 RET
.text:00000071018060D8 ; ---------------------------------------------------------------------------
.text:00000071018060D8
.text:00000071018060D8 loc_71018060D8 ; CODE XREF: get_capture_indicator+5C4↑j
.text:00000071018060D8 LDRB W8, [X19,#0x41]
.text:00000071018060DC ADRL X11, jpt_71018060F4
.text:00000071018060E4 LDRB W9, [X19,#0x43]
.text:00000071018060E8 ADR X12, loc_71018060F8 ; jumptable 00000071018060F4 case 29
.text:00000071018060EC LDRH W13, [X11,X10,LSL#1]
.text:00000071018060F0 ADD X12, X12, X13,LSL#2
.text:00000071018060F4 BR X12 ; switch jump
.text:00000071018060F8 ; ---------------------------------------------------------------------------
.text:00000071018060F8
.text:00000071018060F8 loc_71018060F8 ; CODE XREF: get_capture_indicator+8F4↑j
.text:00000071018060F8 ; DATA XREF: get_capture_indicator+8E8↑o
.text:00000071018060F8 MOV X8, #0xC4C1FE78 ; jumptable 00000071018060F4 case 29
.text:0000007101806100 MOV V11.16B, V9.16B
.text:0000007101806104 MOV V9.16B, V13.16B
.text:0000007101806108 SUB X0, X29, #-capture_hash
.text:000000710180610C MOVK X8, #0x978B,LSL#32
.text:0000007101806110 MOVK X8, #0xD04E,LSL#48
.text:0000007101806114 MOV W10, #0x1F
.text:0000007101806118 ADRL X9, aCaptureIndexBa_4 ; "capture_index_ball_factor_super"
.text:0000007101806120 B loc_7101805DF0
.text:0000007101806124 ; ---------------------------------------------------------------------------
.text:0000007101806124
.text:0000007101806124 loc_7101806124 ; CODE XREF: get_capture_indicator+60C↑j
.text:0000007101806124 ADRL X11, jpt_7101806158
.text:000000710180612C ADR X12, loc_7101805E30 ; jumptable 0000007101806158 case 4
.text:0000007101806130 LDRH W13, [X11,X10,LSL#1]
.text:0000007101806134 ADD X12, X12, X13,LSL#2
.text:0000007101806138 MOV X8, #0x7E918A37D64C6833
.text:0000007101806148 SUB X0, X29, #-capture_hash
.text:000000710180614C MOV W9, #0x20 ; ' '
.text:0000007101806150 ADRL X10, aCaptureIndexAi_0 ; "capture_index_ai_factor_sleeping"
.text:0000007101806158 BR X12 ; switch jump
.text:000000710180615C ; ---------------------------------------------------------------------------
.text:000000710180615C
.text:000000710180615C loc_710180615C ; CODE XREF: get_capture_indicator+958↑j
.text:000000710180615C MOV X8, #0xE40DA46C1375657B ; jumptable 0000007101806158 case 1
.text:000000710180616C SUB X0, X29, #-var_D0
.text:0000007101806170 MOV W9, #0x1F
.text:0000007101806174 ADRL X10, aCaptureIndexAi_1 ; "capture_index_ai_factor_caution"
.text:000000710180617C B loc_7101805E30 ; jumptable 0000007101806158 case 4
.text:0000007101806180 ; ---------------------------------------------------------------------------
.text:0000007101806180
.text:0000007101806180 loc_7101806180 ; CODE XREF: get_capture_indicator+358↑j
.text:0000007101806180 MOV W26, #3
.text:0000007101806184 B loc_7101805C74
.text:0000007101806188 ; ---------------------------------------------------------------------------
.text:0000007101806188
.text:0000007101806188 loc_7101806188 ; CODE XREF: get_capture_indicator+7AC↑j
.text:0000007101806188 LDR W8, [X19,#0x80]
.text:000000710180618C MOV V9.16B, V10.16B
.text:0000007101806190 CMP W8, #1
.text:0000007101806194 B.EQ loc_7101806018
.text:0000007101806198
.text:0000007101806198 loc_7101806198 ; CODE XREF: get_capture_indicator+AD4↓j
.text:0000007101806198 FMOV S9, WZR
.text:000000710180619C B loc_7101806018
.text:00000071018061A0 ; ---------------------------------------------------------------------------
.text:00000071018061A0
.text:00000071018061A0 loc_71018061A0 ; CODE XREF: get_capture_indicator+3C0↑j
.text:00000071018061A0 MOV W26, #5
.text:00000071018061A4 B loc_7101805C74
.text:00000071018061A8 ; ---------------------------------------------------------------------------
.text:00000071018061A8
.text:00000071018061A8 loc_71018061A8 ; CODE XREF: get_capture_indicator+324↑j
.text:00000071018061A8 MOV W26, #2
.text:00000071018061AC B loc_7101805C74
.text:00000071018061B0 ; ---------------------------------------------------------------------------
.text:00000071018061B0
.text:00000071018061B0 loc_71018061B0 ; CODE XREF: get_capture_indicator+3F4↑j
.text:00000071018061B0 MOV W26, #6
.text:00000071018061B4 B loc_7101805C74
.text:00000071018061B8 ; ---------------------------------------------------------------------------
.text:00000071018061B8
.text:00000071018061B8 loc_71018061B8 ; CODE XREF: get_capture_indicator+958↑j
.text:00000071018061B8 LDR W8, [X19,#0x4C] ; jumptable 0000007101806158 case 2
.text:00000071018061BC CMP W8, #1
.text:00000071018061C0 B.EQ loc_710180627C
.text:00000071018061C4 CMP W8, #2
.text:00000071018061C8 B.EQ loc_71018062D8
.text:00000071018061CC MOV X8, #0x7B846A5D45BF7F20
.text:00000071018061DC ADD X0, SP, #0x210+var_1F0
.text:00000071018061E0 MOV W9, #0x24 ; '$'
.text:00000071018061E4 ADRL X10, aCaptureIndexAi_2 ; "capture_index_ai_factor_react_docile"
.text:00000071018061EC B loc_7101805E30 ; jumptable 0000007101806158 case 4
.text:00000071018061F0 ; ---------------------------------------------------------------------------
.text:00000071018061F0
.text:00000071018061F0 loc_71018061F0 ; CODE XREF: get_capture_indicator+8F4↑j
.text:00000071018061F0 MOV V11.16B, V9.16B ; jumptable 00000071018060F4 case 35
.text:00000071018061F4 MOV V9.16B, V13.16B
.text:00000071018061F8 CBNZ W9, loc_7101806544
.text:00000071018061FC ADRL X10, ball_factor_stealth_super_suitable_table
.text:0000007101806204
.text:0000007101806204 loc_7101806204 ; CODE XREF: get_capture_indicator+A4C↓j
.text:0000007101806204 ; get_capture_indicator+D4C↓j ...
.text:0000007101806204 SUB X0, X29, #-capture_hash
.text:0000007101806208
.text:0000007101806208 loc_7101806208 ; CODE XREF: get_capture_indicator+B88↓j
.text:0000007101806208 ; get_capture_indicator+D24↓j
.text:0000007101806208 LDP X8, X9, [X10]
.text:000000710180620C LDR X10, [X10,#0x10]
.text:0000007101806210 B loc_7101805DF0
.text:0000007101806214 ; ---------------------------------------------------------------------------
.text:0000007101806214
.text:0000007101806214 loc_7101806214 ; CODE XREF: get_capture_indicator+6F0↑j
.text:0000007101806214 MOV W8, #0x1A
.text:0000007101806218 SUB X0, X29, #-capture_hash
.text:000000710180621C STP X24, X25, [X29,#capture_hash]
.text:0000007101806220 STP X8, XZR, [X29,#capture_strlen]
.text:0000007101806224 BL get_capture_offset_from_hash
.text:0000007101806228 MOV V8.16B, V0.16B
.text:000000710180622C B loc_7101805F30
.text:0000007101806230 ; ---------------------------------------------------------------------------
.text:0000007101806230
.text:0000007101806230 loc_7101806230 ; CODE XREF: get_capture_indicator+2F0↑j
.text:0000007101806230 MOV W26, #1
.text:0000007101806234 B loc_7101805C74
.text:0000007101806238 ; ---------------------------------------------------------------------------
.text:0000007101806238
.text:0000007101806238 loc_7101806238 ; CODE XREF: get_capture_indicator+8F4↑j
.text:0000007101806238 MOV V11.16B, V9.16B ; jumptable 00000071018060F4 case 34
.text:000000710180623C CBNZ W9, loc_7101806550
.text:0000007101806240 ADRL X10, ball_factor_stealth_suitable_table
.text:0000007101806248 MOV V9.16B, V13.16B
.text:000000710180624C B loc_7101806204
.text:0000007101806250 ; ---------------------------------------------------------------------------
.text:0000007101806250
.text:0000007101806250 loc_7101806250 ; CODE XREF: get_capture_indicator+8F4↑j
.text:0000007101806250 MOV X8, #0x37B195 ; jumptable 00000071018060F4 case 30
.text:0000007101806258 MOV V11.16B, V9.16B
.text:000000710180625C MOV V9.16B, V13.16B
.text:0000007101806260 SUB X0, X29, #-capture_hash
.text:0000007101806264 MOVK X8, #0xE71F,LSL#32
.text:0000007101806268 MOVK X8, #0x99D,LSL#48
.text:000000710180626C MOV W10, #0x1F
.text:0000007101806270 ADRL X9, aCaptureIndexBa_5 ; "capture_index_ball_factor_hyper"
.text:0000007101806278 B loc_7101805DF0
.text:000000710180627C ; ---------------------------------------------------------------------------
.text:000000710180627C
.text:000000710180627C loc_710180627C ; CODE XREF: get_capture_indicator+9C0↑j
.text:000000710180627C MOV X8, #0x888497D32C05846E
.text:000000710180628C ADD X0, SP, #0x210+var_1D0
.text:0000007101806290 MOV W9, #0x28 ; '('
.text:0000007101806294 ADRL X10, aCaptureIndexAi_3 ; "capture_index_ai_factor_react_aggressiv"...
.text:000000710180629C B loc_7101805E30 ; jumptable 0000007101806158 case 4
.text:00000071018062A0 ; ---------------------------------------------------------------------------
.text:00000071018062A0
.text:00000071018062A0 loc_71018062A0 ; CODE XREF: get_capture_indicator+958↑j
.text:00000071018062A0 MOV X8, #0x58519C0B1F1E33A0 ; jumptable 0000007101806158 case 7
.text:00000071018062B0 ADD X0, SP, #0x210+var_110
.text:00000071018062B4 MOV W9, #0x1F
.text:00000071018062B8 ADRL X10, aCaptureIndexAi_4 ; "capture_index_ai_factor_resting"
.text:00000071018062C0 B loc_7101805E30 ; jumptable 0000007101806158 case 4
.text:00000071018062C4 ; ---------------------------------------------------------------------------
.text:00000071018062C4
.text:00000071018062C4 loc_71018062C4 ; CODE XREF: get_capture_indicator+7B0↑j
.text:00000071018062C4 LDR W8, [X19,#0x80]
.text:00000071018062C8 MOV V9.16B, V10.16B
.text:00000071018062CC CMP W8, #2
.text:00000071018062D0 B.NE loc_7101806018
.text:00000071018062D4 B loc_7101806198
.text:00000071018062D8 ; ---------------------------------------------------------------------------
.text:00000071018062D8
.text:00000071018062D8 loc_71018062D8 ; CODE XREF: get_capture_indicator+9C8↑j
.text:00000071018062D8 MOV X8, #0x962E06E067EA1FE5
.text:00000071018062E8 ADD X0, SP, #0x210+var_1B0
.text:00000071018062EC MOV W9, #0x23 ; '#'
.text:00000071018062F0 ADRL X10, aCaptureIndexAi_5 ; "capture_index_ai_factor_react_timid"
.text:00000071018062F8 B loc_7101805E30 ; jumptable 0000007101806158 case 4
.text:00000071018062FC ; ---------------------------------------------------------------------------
.text:00000071018062FC
.text:00000071018062FC loc_71018062FC ; CODE XREF: get_capture_indicator+428↑j
.text:00000071018062FC MOV X9, #0xDAFB7A61
.text:0000007101806304 ADRL X8, aPokeLvrank8Ran ; "poke_lvrank_8_range_max"
.text:000000710180630C MOVK X9, #0x170E,LSL#32
.text:0000007101806310 MOVK X9, #0xE2B1,LSL#48
.text:0000007101806314 STP X9, X8, [X29,#capture_hash]
.text:0000007101806318 MOV W8, #0x17
.text:000000710180631C SUB X0, X29, #-capture_hash
.text:0000007101806320 STP X8, XZR, [X29,#capture_strlen]
.text:0000007101806324 BL get_capture_value_from_hash
.text:0000007101806328 CMP W0, W26
.text:000000710180632C B.CC loc_7101806560
.text:0000007101806330 MOV W26, #8
.text:0000007101806334 B loc_7101805C74
.text:0000007101806338 ; ---------------------------------------------------------------------------
.text:0000007101806338
.text:0000007101806338 loc_7101806338 ; CODE XREF: get_capture_indicator+958↑j
.text:0000007101806338 MOV X8, #0x7B33512EEBD9B4B6 ; jumptable 0000007101806158 case 5
.text:0000007101806348 ADD X0, SP, #0x210+var_130
.text:000000710180634C MOV W9, #0x20 ; ' '
.text:0000007101806350 ADRL X10, aCaptureIndexAi_6 ; "capture_index_ai_factor_escaping"
.text:0000007101806358 B loc_7101805E30 ; jumptable 0000007101806158 case 4
.text:000000710180635C ; ---------------------------------------------------------------------------
.text:000000710180635C
.text:000000710180635C loc_710180635C ; CODE XREF: get_capture_indicator+788↑j
.text:000000710180635C MOV W8, WZR
.text:0000007101806360 B loc_7101805F8C
.text:0000007101806364 ; ---------------------------------------------------------------------------
.text:0000007101806364
.text:0000007101806364 loc_7101806364 ; CODE XREF: get_capture_indicator+8F4↑j
.text:0000007101806364 MOV V11.16B, V9.16B ; jumptable 00000071018060F4 case 31
.text:0000007101806368 MOV V9.16B, V13.16B
.text:000000710180636C ADRL X9, ball_factor_wing_table
.text:0000007101806374 ADRL X10, ball_factor_wing_suitable_table
.text:000000710180637C
.text:000000710180637C loc_710180637C ; CODE XREF: get_capture_indicator+CFC↓j
.text:000000710180637C ; get_capture_indicator+D40↓j
.text:000000710180637C CMP W8, #0
.text:0000007101806380 SUB X0, X29, #-capture_hash
.text:0000007101806384 CSEL X10, X10, X9, NE
.text:0000007101806388 B loc_7101806208
.text:000000710180638C ; ---------------------------------------------------------------------------
.text:000000710180638C
.text:000000710180638C loc_710180638C ; CODE XREF: get_capture_indicator+580↑j
.text:000000710180638C MOV X8, #0xB1653F18D38154C1 ; jumptable 0000007101805D80 case 6
.text:000000710180639C SUB X0, X29, #-var_D0
.text:00000071018063A0 MOV W9, #0x1F
.text:00000071018063A4 ADRL X10, aCaptureIndexSi_1 ; "capture_index_sick_factor_sleep"
.text:00000071018063AC B loc_7101805DA4 ; jumptable 0000007101805D80 case 7
.text:00000071018063B0 ; ---------------------------------------------------------------------------
.text:00000071018063B0
.text:00000071018063B0 loc_71018063B0 ; CODE XREF: get_capture_indicator+580↑j
.text:00000071018063B0 MOV X8, #0x9CD1FF52E08F5E67 ; jumptable 0000007101805D80 case 4
.text:00000071018063C0 ADD X0, SP, #0x210+var_130
.text:00000071018063C4 MOV W9, #0x1E
.text:00000071018063C8 ADRL X10, aCaptureIndexSi_2 ; "capture_index_sick_factor_burn"
.text:00000071018063D0 B loc_7101805DA4 ; jumptable 0000007101805D80 case 7
.text:00000071018063D4 ; ---------------------------------------------------------------------------
.text:00000071018063D4
.text:00000071018063D4 loc_71018063D4 ; CODE XREF: get_capture_indicator+F4↑j
.text:00000071018063D4 LDR W8, [X19,#0x80]
.text:00000071018063D8 CMP W8, #2
.text:00000071018063DC B.EQ loc_71018058F8
.text:00000071018063E0 MOV W8, #1
.text:00000071018063E4 STR W8, [X19,#0x80]
.text:00000071018063E8 LDRB W8, [X19,#0x46]
.text:00000071018063EC CBNZ W8, loc_7101805900
.text:00000071018063F0
.text:00000071018063F0 loc_71018063F0 ; CODE XREF: get_capture_indicator+FC↑j
.text:00000071018063F0 LDR W8, [X19,#0x80]
.text:00000071018063F4 CMP W8, #2
.text:00000071018063F8 B.EQ loc_7101805900
.text:00000071018063FC MOV W8, #2
.text:0000007101806400 STR W8, [X19,#0x80]
.text:0000007101806404 B loc_7101805900
.text:0000007101806408 ; ---------------------------------------------------------------------------
.text:0000007101806408
.text:0000007101806408 loc_7101806408 ; CODE XREF: get_capture_indicator+580↑j
.text:0000007101806408 MOV X8, #0x8465B12CF814E13C ; jumptable 0000007101805D80 case 1
.text:0000007101806418 ADD X0, SP, #0x210+var_110
.text:000000710180641C MOV W9, #0x23 ; '#'
.text:0000007101806420 ADRL X10, aCaptureIndexSi_3 ; "capture_index_sick_factor_paralysis"
.text:0000007101806428 B loc_7101805DA4 ; jumptable 0000007101805D80 case 7
.text:000000710180642C ; ---------------------------------------------------------------------------
.text:000000710180642C
.text:000000710180642C loc_710180642C ; CODE XREF: get_capture_indicator+AC↑j
.text:000000710180642C MOV W0, WZR
.text:0000007101806430 B loc_71018060A8
.text:0000007101806434 ; ---------------------------------------------------------------------------
.text:0000007101806434
.text:0000007101806434 loc_7101806434 ; CODE XREF: get_capture_indicator+4F4↑j
.text:0000007101806434 FMOV S8, WZR
.text:0000007101806438 B loc_7101805D3C
.text:000000710180643C ; ---------------------------------------------------------------------------
.text:000000710180643C
.text:000000710180643C loc_710180643C ; CODE XREF: get_capture_indicator+6A4↑j
.text:000000710180643C MOV X8, #0x2098631317549760
.text:000000710180644C SUB X0, X29, #-capture_hash
.text:0000007101806450 MOV W9, #0x29 ; ')'
.text:0000007101806454 ADRL X10, aCaptureIndexBa_6 ; "capture_index_baiteffect_available_fact"...
.text:000000710180645C B loc_7101805EC8
.text:0000007101806460 ; ---------------------------------------------------------------------------
.text:0000007101806460
.text:0000007101806460 loc_7101806460 ; CODE XREF: get_capture_indicator+6FC↑j
.text:0000007101806460 LDUR S2, [X29,#var_48]
.text:0000007101806464 B loc_7101805F04
.text:0000007101806468 ; ---------------------------------------------------------------------------
.text:0000007101806468
.text:0000007101806468 loc_7101806468 ; CODE XREF: get_capture_indicator+958↑j
.text:0000007101806468 LDR W8, [X19,#0x68] ; jumptable 0000007101806158 case 3
.text:000000710180646C CBZ W8, loc_710180659C
.text:0000007101806470 CMP W8, #1
.text:0000007101806474 B.NE loc_71018065C0
.text:0000007101806478 MOV X8, #0x2509FB459BDA09BE
.text:0000007101806488 ADD X0, SP, #0x210+var_170
.text:000000710180648C MOV W9, #0x28 ; '('
.text:0000007101806490 ADRL X10, aCaptureIndexAi_7 ; "capture_index_ai_factor_feeding_baitbal"...
.text:0000007101806498 B loc_7101805E30 ; jumptable 0000007101806158 case 4
.text:000000710180649C ; ---------------------------------------------------------------------------
.text:000000710180649C
.text:000000710180649C loc_710180649C ; CODE XREF: get_capture_indicator+580↑j
.text:000000710180649C MOV X8, #0x4C793817B00CEC5E ; jumptable 0000007101805D80 case 5
.text:00000071018064AC SUB X0, X29, #-var_F0
.text:00000071018064B0 MOV W9, #0x20 ; ' '
.text:00000071018064B4 ADRL X10, aCaptureIndexSi_4 ; "capture_index_sick_factor_poison"
.text:00000071018064BC B loc_7101805DA4 ; jumptable 0000007101805D80 case 7
.text:00000071018064C0 ; ---------------------------------------------------------------------------
.text:00000071018064C0
.text:00000071018064C0 loc_71018064C0 ; CODE XREF: get_capture_indicator+958↑j
.text:00000071018064C0 MOV X8, #0xC6ADCE1789869E03 ; jumptable 0000007101806158 case 6
.text:00000071018064D0 SUB X0, X29, #-var_F0
.text:00000071018064D4 MOV W9, #0x21 ; '!'
.text:00000071018064D8 ADRL X10, aCaptureIndexAi_8 ; "capture_index_ai_factor_tiredness"
.text:00000071018064E0 B loc_7101805E30 ; jumptable 0000007101806158 case 4
.text:00000071018064E4 ; ---------------------------------------------------------------------------
.text:00000071018064E4
.text:00000071018064E4 loc_71018064E4 ; CODE XREF: get_capture_indicator+8F4↑j
.text:00000071018064E4 MOV V11.16B, V9.16B ; jumptable 00000071018060F4 case 33
.text:00000071018064E8 MOV V9.16B, V13.16B
.text:00000071018064EC ADRL X9, ball_factor_wing_hyper_table
.text:00000071018064F4 ADRL X10, ball_factor_wing_hyper_suitable_table
.text:00000071018064FC B loc_710180637C
.text:0000007101806500 ; ---------------------------------------------------------------------------
.text:0000007101806500
.text:0000007101806500 loc_7101806500 ; CODE XREF: get_capture_indicator+8F4↑j
.text:0000007101806500 ADRL X8, ball_factor_stealth_hyper_suitable_table ; jumptable 00000071018060F4 case 36
.text:0000007101806508 MOV V11.16B, V9.16B
.text:000000710180650C ADRL X10, ball_factor_stealth_hyper_table
.text:0000007101806514 MOV V9.16B, V13.16B
.text:0000007101806518 CMP W9, #0
.text:000000710180651C SUB X0, X29, #-capture_hash
.text:0000007101806520 CSEL X10, X10, X8, NE
.text:0000007101806524 B loc_7101806208
.text:0000007101806528 ; ---------------------------------------------------------------------------
.text:0000007101806528
.text:0000007101806528 loc_7101806528 ; CODE XREF: get_capture_indicator+8F4↑j
.text:0000007101806528 MOV V11.16B, V9.16B ; jumptable 00000071018060F4 case 32
.text:000000710180652C MOV V9.16B, V13.16B
.text:0000007101806530 ADRL X9, ball_factor_wing_super_table
.text:0000007101806538 ADRL X10, ball_factor_wing_super_suitable_table
.text:0000007101806540 B loc_710180637C
.text:0000007101806544 ; ---------------------------------------------------------------------------
.text:0000007101806544
.text:0000007101806544 loc_7101806544 ; CODE XREF: get_capture_indicator+9F8↑j
.text:0000007101806544 ADRL X10, ball_factor_stealth_super_table
.text:000000710180654C B loc_7101806204
.text:0000007101806550 ; ---------------------------------------------------------------------------
.text:0000007101806550
.text:0000007101806550 loc_7101806550 ; CODE XREF: get_capture_indicator+A3C↑j
.text:0000007101806550 ADRL X10, ball_factor_stealth_table
.text:0000007101806558 MOV V9.16B, V13.16B
.text:000000710180655C B loc_7101806204
.text:0000007101806560 ; ---------------------------------------------------------------------------
.text:0000007101806560
.text:0000007101806560 loc_7101806560 ; CODE XREF: get_capture_indicator+B2C↑j
.text:0000007101806560 MOV X9, #0x47CEBAAE
.text:0000007101806568 ADRL X8, aPokeLvrank9Ran ; "poke_lvrank_9_range_max"
.text:0000007101806570 MOVK X9, #0xF011,LSL#32
.text:0000007101806574 MOVK X9, #0x2A4C,LSL#48
.text:0000007101806578 STP X9, X8, [X29,#capture_hash]
.text:000000710180657C MOV W8, #0x17
.text:0000007101806580 SUB X0, X29, #-capture_hash
.text:0000007101806584 STP X8, XZR, [X29,#capture_strlen]
.text:0000007101806588 BL get_capture_value_from_hash
.text:000000710180658C CMP W0, W26
.text:0000007101806590 MOV W8, #9
.text:0000007101806594 CINC W26, W8, CC
.text:0000007101806598 B loc_7101805C74
.text:000000710180659C ; ---------------------------------------------------------------------------
.text:000000710180659C
.text:000000710180659C loc_710180659C ; CODE XREF: get_capture_indicator+C6C↑j
.text:000000710180659C MOV X8, #0x81D8AC8EB05D1D9F
.text:00000071018065AC ADD X0, SP, #0x210+var_150
.text:00000071018065B0 MOV W9, #0x24 ; '$'
.text:00000071018065B4 ADRL X10, aCaptureIndexAi_9 ; "capture_index_ai_factor_feeding_nuts"
.text:00000071018065BC B loc_7101805E30 ; jumptable 0000007101806158 case 4
.text:00000071018065C0 ; ---------------------------------------------------------------------------
.text:00000071018065C0
.text:00000071018065C0 loc_71018065C0 ; CODE XREF: get_capture_indicator+C74↑j
.text:00000071018065C0 MOV X8, #0xB149B923E2DD99EE
.text:00000071018065D0 ADD X0, SP, #0x210+var_190
.text:00000071018065D4 MOV W9, #0x1F
.text:00000071018065D8 ADRL X10, aCaptureIndexAi_10 ; "capture_index_ai_factor_feeding"
.text:00000071018065E0 B loc_7101805E30 ; jumptable 0000007101806158 case 4
.text:00000071018065E4 ; ---------------------------------------------------------------------------
.text:00000071018065E4
.text:00000071018065E4 loc_71018065E4 ; CODE XREF: get_capture_indicator+1BC↑j
.text:00000071018065E4 BL _ZNKSt3__120__vector_base_commonILb1EE20__throw_out_of_rangeEv_0 ; std::__vector_base_common<true>::__throw_out_of_range(void)
.text:00000071018065E4 ; End of function get_capture_indicator
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment