signed int __fastcall sub_6FFBD4(int a1, pml::pokepara::CoreParam *a2, int a3) { int v3; // r5@1 pml::pokepara::CoreParam *v4; // r6@1 int *v5; // r0@1 int v6; // r0@2 int v7; // r3@2 int v8; // r0@2 int v9; // r0@2 int v10; // r0@2 unsigned int v11; // r0@3 unsigned int v12; // r4@4 unsigned __int8 v13; // r0@13 unsigned int v14; // r1@14 unsigned int v15; // r0@14 bool v16; // cf@14 unsigned int v17; // r0@17 signed int result; // r0@25 v3 = a1; v4 = a2; sub_765850(*(a1 + 4), a3, 0); v5 = sub_7621F0(*(v3 + 8)); if ( v5 && (v6 = *v5, v7 = *(v3 + 12), Field::Encount::PokeSet::CheckEffectApplyIntruder(), v8 = *(v3 + 2521), v9 = *(v3 + 12), Field::Encount::PokeSet::SetupLotteryIntruderPokeParam(), v10) ) { v11 = *(v3 + 2521); if ( v11 >= 5 ) // get flawless IV count { if ( v11 >= 10 ) { if ( v11 >= 20 ) { if ( v11 >= 30 ) v12 = 4; else v12 = 3; } else { v12 = 2; } } else { v12 = 1; } } else { v12 = 0; } while ( pml::pokepara::CoreParam::GetTalentPowerMaxNum(v4) < v12 ) { v13 = gfl2::math::SFMTRandom::Next((v3 + 16), 6u); pml::pokepara::CoreParam::ChangeTalentPower(v4, v13, 31); } v14 = gfl2::math::SFMTRandom::Next((v3 + 16), 100u); v15 = *(v3 + 2521); v16 = v15 >= 5; if ( v15 >= 5 ) v16 = v15 >= 10; if ( v16 ) // get hidden power rate { if ( v15 >= 20 ) { if ( v15 >= 30 ) v17 = 15; else v17 = 10; } else { v17 = 5; } } else { v17 = 0; } if ( v14 < v17 ) // rand(100) < rate pml::pokepara::CoreParam::SetTokuseiIndex(v4, 2u);// hidden abil result = 1; // pkm generated } else { result = 0; } return result; }