fvb, functionvalue, vector (#77)

Co-authored-by: Pheenoh <pheenoh@gmail.com>
This commit is contained in:
notyourav
2021-01-18 11:27:25 -08:00
committed by GitHub
parent e35c282900
commit c48c35f4db
49 changed files with 3454 additions and 2902 deletions
@@ -0,0 +1,23 @@
/* 80281D5C 0027EC9C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80281D60 0027ECA0 7C 08 02 A6 */ mflr r0
/* 80281D64 0027ECA4 90 01 00 24 */ stw r0, 0x24(r1)
/* 80281D68 0027ECA8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80281D6C 0027ECAC 7C 7F 1B 78 */ mr r31, r3
/* 80281D70 0027ECB0 4B FF F9 21 */ bl __ct__Q27JStudio14TFunctionValueFv
/* 80281D74 0027ECB4 38 7F 00 04 */ addi r3, r31, 4
/* 80281D78 0027ECB8 38 81 00 08 */ addi r4, r1, 8
/* 80281D7C 0027ECBC 88 0D 8C 68 */ lbz r0, 0x804511E8-0x80458580(r13) /*SDA HACK; original: lbl_804511E8-_SDA_BASE_(r13)*/
/* 80281D80 0027ECC0 98 01 00 08 */ stb r0, 8(r1)
/* 80281D84 0027ECC4 48 05 AF 4D */ bl JGadget_NS_TVector_pointer_void
/* 80281D88 0027ECC8 3C 60 80 3C */ lis r3, lbl_803C4980@ha
/* 80281D8C 0027ECCC 38 03 49 80 */ addi r0, r3, lbl_803C4980@l
/* 80281D90 0027ECD0 90 1F 00 00 */ stw r0, 0(r31)
/* 80281D94 0027ECD4 38 00 00 00 */ li r0, 0
/* 80281D98 0027ECD8 90 1F 00 18 */ stw r0, 0x18(r31)
/* 80281D9C 0027ECDC 90 1F 00 20 */ stw r0, 0x20(r31)
/* 80281DA0 0027ECE0 7F E3 FB 78 */ mr r3, r31
/* 80281DA4 0027ECE4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80281DA8 0027ECE8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80281DAC 0027ECEC 7C 08 03 A6 */ mtlr r0
/* 80281DB0 0027ECF0 38 21 00 20 */ addi r1, r1, 0x20
/* 80281DB4 0027ECF4 4E 80 00 20 */ blr
+6 -3
View File
@@ -31,16 +31,19 @@ struct TNodeLinkList {
oNode_.pPrev_ = &oNode_;
}
void Insert(iterator iter, TLinkListNode* node);
TLinkListNode* size() const { return iter.node; }
bool empty() const { return size() == 0; }
iterator end() { return iterator(oNode_.pNext_); }
void Insert(iterator iter, TLinkListNode* node);
iterator iter;
TLinkListNode oNode_;
};
// Currently non matching, but its a rough idea
template <class T, int U, int V>
// Shows up as 3 args in Ghidra, but the 'undefined' is just -1
template <class T, int U>
struct TLinkList : TNodeLinkList {
TLinkListNode* Element_toNode(T* p) { return &static_cast<JStudio::stb::TObject*>(p)->mNode; }
+21
View File
@@ -0,0 +1,21 @@
#ifndef JGADGET_SEARCH_H
#define JGADGET_SEARCH_H
// double FuncDef550(double , double )
#include "global.h"
namespace JGadget {
//! @todo: mangled name isn't correct, fix this
//! Current: toValueFromIndex<PFdd_d>__7JGadgetFiPCPFdd_dUlRCPFdd_d
//! Target: toValueFromIndex<PFdd_d>__7JGadgetFiPCPFdd_dUlRCPFdd_d_RCPFdd_d
template <typename T>
inline const T& toValueFromIndex(int idx, const T* pValue, u32 count, const T& fallback) {
JUT_ASSERT(pValue != NULL);
return (idx >= count) ? fallback : pValue[idx];
}
} // namespace JGadget
#endif // JGADGET_SEARCH_H
+65
View File
@@ -0,0 +1,65 @@
#ifndef JGADGET_VECTOR_H
#define JGADGET_VECTOR_H
#include "global.h"
static u8 lbl_804511E8;
namespace JGadget {
namespace vector {
u32 extend_default(u32 arg1, u32 arg2, u32 arg3);
typedef u32 (*ExtendFunc)(u32, u32, u32);
} // namespace vector
template <typename T>
struct TAllocator {
static TAllocator get() {}
inline TAllocator() { _0 = lbl_804511E8; }
u8 _0;
u8 _1[3];
u32 _4;
u32 _8;
u32 _c;
};
template <typename T, template <class> class Allocator>
struct TVector {
TVector(Allocator<T> alloc) {
_0 = NULL;
pBegin_ = _0;
_c = NULL;
extend = vector::extend_default;
}
void** begin() { return pBegin_; }
void** end() { return pEnd_; }
// void erase(void** arg1, void** arg2) {}
void** _0;
void** pBegin_;
void** pEnd_;
u32 _c;
vector::ExtendFunc extend;
};
struct TVector_pointer_void : TVector<void*, TAllocator> {
// TVector_pointer_void(const TAllocator<void*>& allocator);
void clear() { erase(begin(), end()); }
private:
void erase(void** pItFirst, void** pItLast);
};
template <typename T>
struct TVector_pointer : TVector_pointer_void {
// TVector_pointer(const TAllocator<void*>& allocator) : TVector_pointer_void(allocator) {}
};
} // namespace JGadget
#endif // JGADGET_VECTOR_H
@@ -0,0 +1,33 @@
/* 80284460 002813A0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80284464 002813A4 7C 08 02 A6 */ mflr r0
/* 80284468 002813A8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8028446C 002813AC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80284470 002813B0 7C 7F 1B 78 */ mr r31, r3
/* 80284474 002813B4 7F E5 FB 78 */ mr r5, r31
/* 80284478 002813B8 80 84 00 00 */ lwz r4, 0(r4)
/* 8028447C 002813BC A0 04 00 06 */ lhz r0, 6(r4)
/* 80284480 002813C0 38 60 00 00 */ li r3, 0
/* 80284484 002813C4 28 00 00 00 */ cmplwi r0, 0
/* 80284488 002813C8 41 82 00 08 */ beq lbl_80284490
/* 8028448C 002813CC 38 64 00 08 */ addi r3, r4, 8
lbl_80284490:
/* 80284490 002813D0 90 65 00 00 */ stw r3, 0(r5)
/* 80284494 002813D4 90 05 00 04 */ stw r0, 4(r5)
/* 80284498 002813D8 3C 60 80 3C */ lis r3, lbl_803C4AB0@ha
/* 8028449C 002813DC 38 03 4A B0 */ addi r0, r3, lbl_803C4AB0@l
/* 802844A0 002813E0 90 05 00 08 */ stw r0, 8(r5)
/* 802844A4 002813E4 38 00 00 00 */ li r0, 0
/* 802844A8 002813E8 90 05 00 0C */ stw r0, 0xc(r5)
/* 802844AC 002813EC 90 05 00 10 */ stw r0, 0x10(r5)
/* 802844B0 002813F0 38 7F 00 18 */ addi r3, r31, 0x18
/* 802844B4 002813F4 90 65 00 14 */ stw r3, 0x14(r5)
/* 802844B8 002813F8 3C 80 80 3C */ lis r4, lbl_803C4A70@ha
/* 802844BC 002813FC 38 04 4A 70 */ addi r0, r4, lbl_803C4A70@l
/* 802844C0 00281400 90 1F 00 08 */ stw r0, 8(r31)
/* 802844C4 00281404 4B FF E1 F9 */ bl __ct__Q27JStudio19TFunctionValue_listFv
/* 802844C8 00281408 7F E3 FB 78 */ mr r3, r31
/* 802844CC 0028140C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802844D0 00281410 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802844D4 00281414 7C 08 03 A6 */ mtlr r0
/* 802844D8 00281418 38 21 00 10 */ addi r1, r1, 0x10
/* 802844DC 0028141C 4E 80 00 20 */ blr
@@ -0,0 +1,33 @@
/* 802845B0 002814F0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802845B4 002814F4 7C 08 02 A6 */ mflr r0
/* 802845B8 002814F8 90 01 00 14 */ stw r0, 0x14(r1)
/* 802845BC 002814FC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802845C0 00281500 7C 7F 1B 78 */ mr r31, r3
/* 802845C4 00281504 7F E5 FB 78 */ mr r5, r31
/* 802845C8 00281508 80 84 00 00 */ lwz r4, 0(r4)
/* 802845CC 0028150C A0 04 00 06 */ lhz r0, 6(r4)
/* 802845D0 00281510 38 60 00 00 */ li r3, 0
/* 802845D4 00281514 28 00 00 00 */ cmplwi r0, 0
/* 802845D8 00281518 41 82 00 08 */ beq lbl_802845E0
/* 802845DC 0028151C 38 64 00 08 */ addi r3, r4, 8
lbl_802845E0:
/* 802845E0 00281520 90 65 00 00 */ stw r3, 0(r5)
/* 802845E4 00281524 90 05 00 04 */ stw r0, 4(r5)
/* 802845E8 00281528 3C 60 80 3C */ lis r3, lbl_803C4AB0@ha
/* 802845EC 0028152C 38 03 4A B0 */ addi r0, r3, lbl_803C4AB0@l
/* 802845F0 00281530 90 05 00 08 */ stw r0, 8(r5)
/* 802845F4 00281534 38 00 00 00 */ li r0, 0
/* 802845F8 00281538 90 05 00 0C */ stw r0, 0xc(r5)
/* 802845FC 0028153C 90 05 00 10 */ stw r0, 0x10(r5)
/* 80284600 00281540 38 7F 00 18 */ addi r3, r31, 0x18
/* 80284604 00281544 90 65 00 14 */ stw r3, 0x14(r5)
/* 80284608 00281548 3C 80 80 3C */ lis r4, lbl_803C4A50@ha
/* 8028460C 0028154C 38 04 4A 50 */ addi r0, r4, lbl_803C4A50@l
/* 80284610 00281550 90 1F 00 08 */ stw r0, 8(r31)
/* 80284614 00281554 4B FF EC B1 */ bl __ct__Q27JStudio22TFunctionValue_hermiteFv
/* 80284618 00281558 7F E3 FB 78 */ mr r3, r31
/* 8028461C 0028155C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80284620 00281560 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80284624 00281564 7C 08 03 A6 */ mtlr r0
/* 80284628 00281568 38 21 00 10 */ addi r1, r1, 0x10
/* 8028462C 0028156C 4E 80 00 20 */ blr
@@ -0,0 +1,33 @@
/* 80284338 00281278 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8028433C 0028127C 7C 08 02 A6 */ mflr r0
/* 80284340 00281280 90 01 00 14 */ stw r0, 0x14(r1)
/* 80284344 00281284 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80284348 00281288 7C 7F 1B 78 */ mr r31, r3
/* 8028434C 0028128C 7F E5 FB 78 */ mr r5, r31
/* 80284350 00281290 80 84 00 00 */ lwz r4, 0(r4)
/* 80284354 00281294 A0 04 00 06 */ lhz r0, 6(r4)
/* 80284358 00281298 38 60 00 00 */ li r3, 0
/* 8028435C 0028129C 28 00 00 00 */ cmplwi r0, 0
/* 80284360 002812A0 41 82 00 08 */ beq lbl_80284368
/* 80284364 002812A4 38 64 00 08 */ addi r3, r4, 8
lbl_80284368:
/* 80284368 002812A8 90 65 00 00 */ stw r3, 0(r5)
/* 8028436C 002812AC 90 05 00 04 */ stw r0, 4(r5)
/* 80284370 002812B0 3C 60 80 3C */ lis r3, lbl_803C4AB0@ha
/* 80284374 002812B4 38 03 4A B0 */ addi r0, r3, lbl_803C4AB0@l
/* 80284378 002812B8 90 05 00 08 */ stw r0, 8(r5)
/* 8028437C 002812BC 38 00 00 00 */ li r0, 0
/* 80284380 002812C0 90 05 00 0C */ stw r0, 0xc(r5)
/* 80284384 002812C4 90 05 00 10 */ stw r0, 0x10(r5)
/* 80284388 002812C8 38 7F 00 18 */ addi r3, r31, 0x18
/* 8028438C 002812CC 90 65 00 14 */ stw r3, 0x14(r5)
/* 80284390 002812D0 3C 80 80 3C */ lis r4, lbl_803C4A90@ha
/* 80284394 002812D4 38 04 4A 90 */ addi r0, r4, lbl_803C4A90@l
/* 80284398 002812D8 90 1F 00 08 */ stw r0, 8(r31)
/* 8028439C 002812DC 4B FF DF D1 */ bl __ct__Q27JStudio23TFunctionValue_constantFv
/* 802843A0 002812E0 7F E3 FB 78 */ mr r3, r31
/* 802843A4 002812E4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802843A8 002812E8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802843AC 002812EC 7C 08 03 A6 */ mtlr r0
/* 802843B0 002812F0 38 21 00 10 */ addi r1, r1, 0x10
/* 802843B4 002812F4 4E 80 00 20 */ blr
@@ -0,0 +1,33 @@
/* 80284254 00281194 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80284258 00281198 7C 08 02 A6 */ mflr r0
/* 8028425C 0028119C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80284260 002811A0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80284264 002811A4 7C 7F 1B 78 */ mr r31, r3
/* 80284268 002811A8 7F E5 FB 78 */ mr r5, r31
/* 8028426C 002811AC 80 84 00 00 */ lwz r4, 0(r4)
/* 80284270 002811B0 A0 04 00 06 */ lhz r0, 6(r4)
/* 80284274 002811B4 38 60 00 00 */ li r3, 0
/* 80284278 002811B8 28 00 00 00 */ cmplwi r0, 0
/* 8028427C 002811BC 41 82 00 08 */ beq lbl_80284284
/* 80284280 002811C0 38 64 00 08 */ addi r3, r4, 8
lbl_80284284:
/* 80284284 002811C4 90 65 00 00 */ stw r3, 0(r5)
/* 80284288 002811C8 90 05 00 04 */ stw r0, 4(r5)
/* 8028428C 002811CC 3C 60 80 3C */ lis r3, lbl_803C4AB0@ha
/* 80284290 002811D0 38 03 4A B0 */ addi r0, r3, lbl_803C4AB0@l
/* 80284294 002811D4 90 05 00 08 */ stw r0, 8(r5)
/* 80284298 002811D8 38 00 00 00 */ li r0, 0
/* 8028429C 002811DC 90 05 00 0C */ stw r0, 0xc(r5)
/* 802842A0 002811E0 90 05 00 10 */ stw r0, 0x10(r5)
/* 802842A4 002811E4 38 7F 00 18 */ addi r3, r31, 0x18
/* 802842A8 002811E8 90 65 00 14 */ stw r3, 0x14(r5)
/* 802842AC 002811EC 3C 80 80 3C */ lis r4, lbl_803C4AA0@ha
/* 802842B0 002811F0 38 04 4A A0 */ addi r0, r4, lbl_803C4AA0@l
/* 802842B4 002811F4 90 1F 00 08 */ stw r0, 8(r31)
/* 802842B8 002811F8 4B FF DA A5 */ bl __ct__Q27JStudio24TFunctionValue_compositeFv
/* 802842BC 002811FC 7F E3 FB 78 */ mr r3, r31
/* 802842C0 00281200 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802842C4 00281204 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802842C8 00281208 7C 08 03 A6 */ mtlr r0
/* 802842CC 0028120C 38 21 00 10 */ addi r1, r1, 0x10
/* 802842D0 00281210 4E 80 00 20 */ blr
@@ -0,0 +1,33 @@
/* 802843C8 00281308 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802843CC 0028130C 7C 08 02 A6 */ mflr r0
/* 802843D0 00281310 90 01 00 14 */ stw r0, 0x14(r1)
/* 802843D4 00281314 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802843D8 00281318 7C 7F 1B 78 */ mr r31, r3
/* 802843DC 0028131C 7F E5 FB 78 */ mr r5, r31
/* 802843E0 00281320 80 84 00 00 */ lwz r4, 0(r4)
/* 802843E4 00281324 A0 04 00 06 */ lhz r0, 6(r4)
/* 802843E8 00281328 38 60 00 00 */ li r3, 0
/* 802843EC 0028132C 28 00 00 00 */ cmplwi r0, 0
/* 802843F0 00281330 41 82 00 08 */ beq lbl_802843F8
/* 802843F4 00281334 38 64 00 08 */ addi r3, r4, 8
lbl_802843F8:
/* 802843F8 00281338 90 65 00 00 */ stw r3, 0(r5)
/* 802843FC 0028133C 90 05 00 04 */ stw r0, 4(r5)
/* 80284400 00281340 3C 60 80 3C */ lis r3, lbl_803C4AB0@ha
/* 80284404 00281344 38 03 4A B0 */ addi r0, r3, lbl_803C4AB0@l
/* 80284408 00281348 90 05 00 08 */ stw r0, 8(r5)
/* 8028440C 0028134C 38 00 00 00 */ li r0, 0
/* 80284410 00281350 90 05 00 0C */ stw r0, 0xc(r5)
/* 80284414 00281354 90 05 00 10 */ stw r0, 0x10(r5)
/* 80284418 00281358 38 7F 00 18 */ addi r3, r31, 0x18
/* 8028441C 0028135C 90 65 00 14 */ stw r3, 0x14(r5)
/* 80284420 00281360 3C 80 80 3C */ lis r4, lbl_803C4A80@ha
/* 80284424 00281364 38 04 4A 80 */ addi r0, r4, lbl_803C4A80@l
/* 80284428 00281368 90 1F 00 08 */ stw r0, 8(r31)
/* 8028442C 0028136C 4B FF DF C1 */ bl __ct__Q27JStudio25TFunctionValue_transitionFv
/* 80284430 00281370 7F E3 FB 78 */ mr r3, r31
/* 80284434 00281374 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80284438 00281378 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8028443C 0028137C 7C 08 03 A6 */ mtlr r0
/* 80284440 00281380 38 21 00 10 */ addi r1, r1, 0x10
/* 80284444 00281384 4E 80 00 20 */ blr
@@ -0,0 +1,33 @@
/* 80284500 00281440 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80284504 00281444 7C 08 02 A6 */ mflr r0
/* 80284508 00281448 90 01 00 14 */ stw r0, 0x14(r1)
/* 8028450C 0028144C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80284510 00281450 7C 7F 1B 78 */ mr r31, r3
/* 80284514 00281454 7F E5 FB 78 */ mr r5, r31
/* 80284518 00281458 80 84 00 00 */ lwz r4, 0(r4)
/* 8028451C 0028145C A0 04 00 06 */ lhz r0, 6(r4)
/* 80284520 00281460 38 60 00 00 */ li r3, 0
/* 80284524 00281464 28 00 00 00 */ cmplwi r0, 0
/* 80284528 00281468 41 82 00 08 */ beq lbl_80284530
/* 8028452C 0028146C 38 64 00 08 */ addi r3, r4, 8
lbl_80284530:
/* 80284530 00281470 90 65 00 00 */ stw r3, 0(r5)
/* 80284534 00281474 90 05 00 04 */ stw r0, 4(r5)
/* 80284538 00281478 3C 60 80 3C */ lis r3, lbl_803C4AB0@ha
/* 8028453C 0028147C 38 03 4A B0 */ addi r0, r3, lbl_803C4AB0@l
/* 80284540 00281480 90 05 00 08 */ stw r0, 8(r5)
/* 80284544 00281484 38 00 00 00 */ li r0, 0
/* 80284548 00281488 90 05 00 0C */ stw r0, 0xc(r5)
/* 8028454C 0028148C 90 05 00 10 */ stw r0, 0x10(r5)
/* 80284550 00281490 38 7F 00 18 */ addi r3, r31, 0x18
/* 80284554 00281494 90 65 00 14 */ stw r3, 0x14(r5)
/* 80284558 00281498 3C 80 80 3C */ lis r4, lbl_803C4A60@ha
/* 8028455C 0028149C 38 04 4A 60 */ addi r0, r4, lbl_803C4A60@l
/* 80284560 002814A0 90 1F 00 08 */ stw r0, 8(r31)
/* 80284564 002814A4 4B FF E7 D1 */ bl __ct__Q27JStudio29TFunctionValue_list_parameterFv
/* 80284568 002814A8 7F E3 FB 78 */ mr r3, r31
/* 8028456C 002814AC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80284570 002814B0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80284574 002814B4 7C 08 03 A6 */ mtlr r0
/* 80284578 002814B8 38 21 00 10 */ addi r1, r1, 0x10
/* 8028457C 002814BC 4E 80 00 20 */ blr
@@ -0,0 +1,35 @@
/* 80282094 0027EFD4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80282098 0027EFD8 7C 08 02 A6 */ mflr r0
/* 8028209C 0027EFDC 90 01 00 24 */ stw r0, 0x24(r1)
/* 802820A0 0027EFE0 DB E1 00 18 */ stfd f31, 0x18(r1)
/* 802820A4 0027EFE4 DB C1 00 10 */ stfd f30, 0x10(r1)
/* 802820A8 0027EFE8 FF C0 08 90 */ fmr f30, f1
/* 802820AC 0027EFEC CB E4 00 00 */ lfd f31, 0(r4)
/* 802820B0 0027EFF0 80 03 00 08 */ lwz r0, 8(r3)
/* 802820B4 0027EFF4 80 63 00 04 */ lwz r3, 4(r3)
/* 802820B8 0027EFF8 90 61 00 08 */ stw r3, 8(r1)
/* 802820BC 0027EFFC 90 01 00 0C */ stw r0, 0xc(r1)
/* 802820C0 0027F000 48 00 00 2C */ b lbl_802820EC
lbl_802820C4:
/* 802820C4 0027F004 80 61 00 08 */ lwz r3, 8(r1)
/* 802820C8 0027F008 38 03 00 04 */ addi r0, r3, 4
/* 802820CC 0027F00C 90 01 00 08 */ stw r0, 8(r1)
/* 802820D0 0027F010 80 63 00 00 */ lwz r3, 0(r3)
/* 802820D4 0027F014 FC 20 F0 90 */ fmr f1, f30
/* 802820D8 0027F018 81 83 00 00 */ lwz r12, 0(r3)
/* 802820DC 0027F01C 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 802820E0 0027F020 7D 89 03 A6 */ mtctr r12
/* 802820E4 0027F024 4E 80 04 21 */ bctrl
/* 802820E8 0027F028 FF FF 08 2A */ fadd f31, f31, f1
lbl_802820EC:
/* 802820EC 0027F02C 80 61 00 08 */ lwz r3, 8(r1)
/* 802820F0 0027F030 80 01 00 0C */ lwz r0, 0xc(r1)
/* 802820F4 0027F034 7C 03 00 40 */ cmplw r3, r0
/* 802820F8 0027F038 40 82 FF CC */ bne lbl_802820C4
/* 802820FC 0027F03C FC 20 F8 90 */ fmr f1, f31
/* 80282100 0027F040 CB E1 00 18 */ lfd f31, 0x18(r1)
/* 80282104 0027F044 CB C1 00 10 */ lfd f30, 0x10(r1)
/* 80282108 0027F048 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8028210C 0027F04C 7C 08 03 A6 */ mtlr r0
/* 80282110 0027F050 38 21 00 20 */ addi r1, r1, 0x20
/* 80282114 0027F054 4E 80 00 20 */ blr
@@ -0,0 +1,64 @@
/* 80282284 0027F1C4 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80282288 0027F1C8 7C 08 02 A6 */ mflr r0
/* 8028228C 0027F1CC 90 01 00 34 */ stw r0, 0x34(r1)
/* 80282290 0027F1D0 DB E1 00 28 */ stfd f31, 0x28(r1)
/* 80282294 0027F1D4 DB C1 00 20 */ stfd f30, 0x20(r1)
/* 80282298 0027F1D8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8028229C 0027F1DC 7C 9F 23 78 */ mr r31, r4
/* 802822A0 0027F1E0 FF C0 08 90 */ fmr f30, f1
/* 802822A4 0027F1E4 80 83 00 04 */ lwz r4, 4(r3)
/* 802822A8 0027F1E8 28 04 00 00 */ cmplwi r4, 0
/* 802822AC 0027F1EC 40 82 00 0C */ bne lbl_802822B8
/* 802822B0 0027F1F0 38 00 00 00 */ li r0, 0
/* 802822B4 0027F1F4 48 00 00 14 */ b lbl_802822C8
lbl_802822B8:
/* 802822B8 0027F1F8 80 03 00 08 */ lwz r0, 8(r3)
/* 802822BC 0027F1FC 7C 04 00 50 */ subf r0, r4, r0
/* 802822C0 0027F200 7C 00 16 70 */ srawi r0, r0, 2
/* 802822C4 0027F204 7C 00 01 94 */ addze r0, r0
lbl_802822C8:
/* 802822C8 0027F208 28 00 00 00 */ cmplwi r0, 0
/* 802822CC 0027F20C 40 82 00 0C */ bne lbl_802822D8
/* 802822D0 0027F210 C8 22 BA 00 */ lfd f1, lbl_80455400-_SDA2_BASE_(r2)
/* 802822D4 0027F214 48 00 00 7C */ b lbl_80282350
lbl_802822D8:
/* 802822D8 0027F218 80 03 00 08 */ lwz r0, 8(r3)
/* 802822DC 0027F21C 90 81 00 08 */ stw r4, 8(r1)
/* 802822E0 0027F220 90 01 00 0C */ stw r0, 0xc(r1)
/* 802822E4 0027F224 38 04 00 04 */ addi r0, r4, 4
/* 802822E8 0027F228 90 01 00 08 */ stw r0, 8(r1)
/* 802822EC 0027F22C 80 64 00 00 */ lwz r3, 0(r4)
/* 802822F0 0027F230 FC 20 F0 90 */ fmr f1, f30
/* 802822F4 0027F234 81 83 00 00 */ lwz r12, 0(r3)
/* 802822F8 0027F238 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 802822FC 0027F23C 7D 89 03 A6 */ mtctr r12
/* 80282300 0027F240 4E 80 04 21 */ bctrl
/* 80282304 0027F244 FF E0 08 90 */ fmr f31, f1
/* 80282308 0027F248 48 00 00 2C */ b lbl_80282334
lbl_8028230C:
/* 8028230C 0027F24C 80 61 00 08 */ lwz r3, 8(r1)
/* 80282310 0027F250 38 03 00 04 */ addi r0, r3, 4
/* 80282314 0027F254 90 01 00 08 */ stw r0, 8(r1)
/* 80282318 0027F258 80 63 00 00 */ lwz r3, 0(r3)
/* 8028231C 0027F25C FC 20 F0 90 */ fmr f1, f30
/* 80282320 0027F260 81 83 00 00 */ lwz r12, 0(r3)
/* 80282324 0027F264 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 80282328 0027F268 7D 89 03 A6 */ mtctr r12
/* 8028232C 0027F26C 4E 80 04 21 */ bctrl
/* 80282330 0027F270 FF FF 08 24 */ fdiv f31, f31, f1
lbl_80282334:
/* 80282334 0027F274 80 61 00 08 */ lwz r3, 8(r1)
/* 80282338 0027F278 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8028233C 0027F27C 7C 03 00 40 */ cmplw r3, r0
/* 80282340 0027F280 40 82 FF CC */ bne lbl_8028230C
/* 80282344 0027F284 C8 1F 00 00 */ lfd f0, 0(r31)
/* 80282348 0027F288 FF FF 00 24 */ fdiv f31, f31, f0
/* 8028234C 0027F28C FC 20 F8 90 */ fmr f1, f31
lbl_80282350:
/* 80282350 0027F290 CB E1 00 28 */ lfd f31, 0x28(r1)
/* 80282354 0027F294 CB C1 00 20 */ lfd f30, 0x20(r1)
/* 80282358 0027F298 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8028235C 0027F29C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80282360 0027F2A0 7C 08 03 A6 */ mtlr r0
/* 80282364 0027F2A4 38 21 00 30 */ addi r1, r1, 0x30
/* 80282368 0027F2A8 4E 80 00 20 */ blr
@@ -0,0 +1,100 @@
/* 80281EC8 0027EE08 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80281ECC 0027EE0C 7C 08 02 A6 */ mflr r0
/* 80281ED0 0027EE10 90 01 00 44 */ stw r0, 0x44(r1)
/* 80281ED4 0027EE14 DB E1 00 38 */ stfd f31, 0x38(r1)
/* 80281ED8 0027EE18 39 61 00 38 */ addi r11, r1, 0x38
/* 80281EDC 0027EE1C 48 0E 03 01 */ bl _savegpr_29
/* 80281EE0 0027EE20 7C 9D 23 78 */ mr r29, r4
/* 80281EE4 0027EE24 FF E0 08 90 */ fmr f31, f1
/* 80281EE8 0027EE28 83 C3 00 04 */ lwz r30, 4(r3)
/* 80281EEC 0027EE2C 28 1E 00 00 */ cmplwi r30, 0
/* 80281EF0 0027EE30 40 82 00 0C */ bne lbl_80281EFC
/* 80281EF4 0027EE34 3B E0 00 00 */ li r31, 0
/* 80281EF8 0027EE38 48 00 00 14 */ b lbl_80281F0C
lbl_80281EFC:
/* 80281EFC 0027EE3C 80 03 00 08 */ lwz r0, 8(r3)
/* 80281F00 0027EE40 7C 1E 00 50 */ subf r0, r30, r0
/* 80281F04 0027EE44 7C 00 16 70 */ srawi r0, r0, 2
/* 80281F08 0027EE48 7F E0 01 94 */ addze r31, r0
lbl_80281F0C:
/* 80281F0C 0027EE4C 2C 1F 00 01 */ cmpwi r31, 1
/* 80281F10 0027EE50 41 81 00 0C */ bgt lbl_80281F1C
/* 80281F14 0027EE54 C8 22 BA 00 */ lfd f1, lbl_80455400-_SDA2_BASE_(r2)
/* 80281F18 0027EE58 48 00 00 F8 */ b lbl_80282010
lbl_80281F1C:
/* 80281F1C 0027EE5C 80 7E 00 00 */ lwz r3, 0(r30)
/* 80281F20 0027EE60 FC 20 F8 90 */ fmr f1, f31
/* 80281F24 0027EE64 81 83 00 00 */ lwz r12, 0(r3)
/* 80281F28 0027EE68 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 80281F2C 0027EE6C 7D 89 03 A6 */ mtctr r12
/* 80281F30 0027EE70 4E 80 04 21 */ bctrl
/* 80281F34 0027EE74 48 0E A1 C9 */ bl func_8036C0FC
/* 80281F38 0027EE78 FC 00 08 1E */ fctiwz f0, f1
/* 80281F3C 0027EE7C D8 01 00 18 */ stfd f0, 0x18(r1)
/* 80281F40 0027EE80 80 61 00 1C */ lwz r3, 0x1c(r1)
/* 80281F44 0027EE84 80 1D 00 00 */ lwz r0, 0(r29)
/* 80281F48 0027EE88 2C 00 00 02 */ cmpwi r0, 2
/* 80281F4C 0027EE8C 41 82 00 5C */ beq lbl_80281FA8
/* 80281F50 0027EE90 40 80 00 10 */ bge lbl_80281F60
/* 80281F54 0027EE94 2C 00 00 00 */ cmpwi r0, 0
/* 80281F58 0027EE98 41 82 00 08 */ beq lbl_80281F60
/* 80281F5C 0027EE9C 40 80 00 28 */ bge lbl_80281F84
lbl_80281F60:
/* 80281F60 0027EEA0 2C 03 00 00 */ cmpwi r3, 0
/* 80281F64 0027EEA4 40 80 00 0C */ bge lbl_80281F70
/* 80281F68 0027EEA8 38 60 00 00 */ li r3, 0
/* 80281F6C 0027EEAC 48 00 00 84 */ b lbl_80281FF0
lbl_80281F70:
/* 80281F70 0027EEB0 38 1F FF FF */ addi r0, r31, -1
/* 80281F74 0027EEB4 7C 03 00 00 */ cmpw r3, r0
/* 80281F78 0027EEB8 41 80 00 78 */ blt lbl_80281FF0
/* 80281F7C 0027EEBC 38 7F FF FE */ addi r3, r31, -2
/* 80281F80 0027EEC0 48 00 00 70 */ b lbl_80281FF0
lbl_80281F84:
/* 80281F84 0027EEC4 38 9F FF FF */ addi r4, r31, -1
/* 80281F88 0027EEC8 48 0E 30 F1 */ bl func_80365078
/* 80281F8C 0027EECC 90 81 00 14 */ stw r4, 0x14(r1)
/* 80281F90 0027EED0 90 61 00 10 */ stw r3, 0x10(r1)
/* 80281F94 0027EED4 7C 83 23 79 */ or. r3, r4, r4
/* 80281F98 0027EED8 40 80 00 58 */ bge lbl_80281FF0
/* 80281F9C 0027EEDC 7C 7F 1A 14 */ add r3, r31, r3
/* 80281FA0 0027EEE0 38 63 FF FF */ addi r3, r3, -1
/* 80281FA4 0027EEE4 48 00 00 4C */ b lbl_80281FF0
lbl_80281FA8:
/* 80281FA8 0027EEE8 38 1F FF FF */ addi r0, r31, -1
/* 80281FAC 0027EEEC 2C 00 00 01 */ cmpwi r0, 1
/* 80281FB0 0027EEF0 40 82 00 0C */ bne lbl_80281FBC
/* 80281FB4 0027EEF4 38 60 00 00 */ li r3, 0
/* 80281FB8 0027EEF8 48 00 00 38 */ b lbl_80281FF0
lbl_80281FBC:
/* 80281FBC 0027EEFC 38 1F FF FE */ addi r0, r31, -2
/* 80281FC0 0027EF00 54 1D 08 3C */ slwi r29, r0, 1
/* 80281FC4 0027EF04 7F A4 EB 78 */ mr r4, r29
/* 80281FC8 0027EF08 48 0E 30 B1 */ bl func_80365078
/* 80281FCC 0027EF0C 90 81 00 0C */ stw r4, 0xc(r1)
/* 80281FD0 0027EF10 90 61 00 08 */ stw r3, 8(r1)
/* 80281FD4 0027EF14 7C 83 23 79 */ or. r3, r4, r4
/* 80281FD8 0027EF18 40 80 00 08 */ bge lbl_80281FE0
/* 80281FDC 0027EF1C 7C 63 EA 14 */ add r3, r3, r29
lbl_80281FE0:
/* 80281FE0 0027EF20 38 1F FF FF */ addi r0, r31, -1
/* 80281FE4 0027EF24 7C 03 00 00 */ cmpw r3, r0
/* 80281FE8 0027EF28 41 80 00 08 */ blt lbl_80281FF0
/* 80281FEC 0027EF2C 7C 63 E8 50 */ subf r3, r3, r29
lbl_80281FF0:
/* 80281FF0 0027EF30 38 03 00 01 */ addi r0, r3, 1
/* 80281FF4 0027EF34 54 00 10 3A */ slwi r0, r0, 2
/* 80281FF8 0027EF38 7C 7E 00 2E */ lwzx r3, r30, r0
/* 80281FFC 0027EF3C FC 20 F8 90 */ fmr f1, f31
/* 80282000 0027EF40 81 83 00 00 */ lwz r12, 0(r3)
/* 80282004 0027EF44 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 80282008 0027EF48 7D 89 03 A6 */ mtctr r12
/* 8028200C 0027EF4C 4E 80 04 21 */ bctrl
lbl_80282010:
/* 80282010 0027EF50 CB E1 00 38 */ lfd f31, 0x38(r1)
/* 80282014 0027EF54 39 61 00 38 */ addi r11, r1, 0x38
/* 80282018 0027EF58 48 0E 02 11 */ bl _restgpr_29
/* 8028201C 0027EF5C 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80282020 0027EF60 7C 08 03 A6 */ mtlr r0
/* 80282024 0027EF64 38 21 00 40 */ addi r1, r1, 0x40
/* 80282028 0027EF68 4E 80 00 20 */ blr
@@ -0,0 +1,35 @@
/* 80282200 0027F140 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80282204 0027F144 7C 08 02 A6 */ mflr r0
/* 80282208 0027F148 90 01 00 24 */ stw r0, 0x24(r1)
/* 8028220C 0027F14C DB E1 00 18 */ stfd f31, 0x18(r1)
/* 80282210 0027F150 DB C1 00 10 */ stfd f30, 0x10(r1)
/* 80282214 0027F154 FF C0 08 90 */ fmr f30, f1
/* 80282218 0027F158 CB E4 00 00 */ lfd f31, 0(r4)
/* 8028221C 0027F15C 80 03 00 08 */ lwz r0, 8(r3)
/* 80282220 0027F160 80 63 00 04 */ lwz r3, 4(r3)
/* 80282224 0027F164 90 61 00 08 */ stw r3, 8(r1)
/* 80282228 0027F168 90 01 00 0C */ stw r0, 0xc(r1)
/* 8028222C 0027F16C 48 00 00 2C */ b lbl_80282258
lbl_80282230:
/* 80282230 0027F170 80 61 00 08 */ lwz r3, 8(r1)
/* 80282234 0027F174 38 03 00 04 */ addi r0, r3, 4
/* 80282238 0027F178 90 01 00 08 */ stw r0, 8(r1)
/* 8028223C 0027F17C 80 63 00 00 */ lwz r3, 0(r3)
/* 80282240 0027F180 FC 20 F0 90 */ fmr f1, f30
/* 80282244 0027F184 81 83 00 00 */ lwz r12, 0(r3)
/* 80282248 0027F188 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 8028224C 0027F18C 7D 89 03 A6 */ mtctr r12
/* 80282250 0027F190 4E 80 04 21 */ bctrl
/* 80282254 0027F194 FF FF 00 72 */ fmul f31, f31, f1
lbl_80282258:
/* 80282258 0027F198 80 61 00 08 */ lwz r3, 8(r1)
/* 8028225C 0027F19C 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80282260 0027F1A0 7C 03 00 40 */ cmplw r3, r0
/* 80282264 0027F1A4 40 82 FF CC */ bne lbl_80282230
/* 80282268 0027F1A8 FC 20 F8 90 */ fmr f1, f31
/* 8028226C 0027F1AC CB E1 00 18 */ lfd f31, 0x18(r1)
/* 80282270 0027F1B0 CB C1 00 10 */ lfd f30, 0x10(r1)
/* 80282274 0027F1B4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80282278 0027F1B8 7C 08 03 A6 */ mtlr r0
/* 8028227C 0027F1BC 38 21 00 20 */ addi r1, r1, 0x20
/* 80282280 0027F1C0 4E 80 00 20 */ blr
@@ -0,0 +1,28 @@
/* 8028202C 0027EF6C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80282030 0027EF70 7C 08 02 A6 */ mflr r0
/* 80282034 0027EF74 90 01 00 14 */ stw r0, 0x14(r1)
/* 80282038 0027EF78 C8 04 00 00 */ lfd f0, 0(r4)
/* 8028203C 0027EF7C FC 21 00 28 */ fsub f1, f1, f0
/* 80282040 0027EF80 80 03 00 08 */ lwz r0, 8(r3)
/* 80282044 0027EF84 80 63 00 04 */ lwz r3, 4(r3)
/* 80282048 0027EF88 90 61 00 08 */ stw r3, 8(r1)
/* 8028204C 0027EF8C 90 01 00 0C */ stw r0, 0xc(r1)
/* 80282050 0027EF90 48 00 00 24 */ b lbl_80282074
lbl_80282054:
/* 80282054 0027EF94 80 61 00 08 */ lwz r3, 8(r1)
/* 80282058 0027EF98 38 03 00 04 */ addi r0, r3, 4
/* 8028205C 0027EF9C 90 01 00 08 */ stw r0, 8(r1)
/* 80282060 0027EFA0 80 63 00 00 */ lwz r3, 0(r3)
/* 80282064 0027EFA4 81 83 00 00 */ lwz r12, 0(r3)
/* 80282068 0027EFA8 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 8028206C 0027EFAC 7D 89 03 A6 */ mtctr r12
/* 80282070 0027EFB0 4E 80 04 21 */ bctrl
lbl_80282074:
/* 80282074 0027EFB4 80 61 00 08 */ lwz r3, 8(r1)
/* 80282078 0027EFB8 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8028207C 0027EFBC 7C 03 00 40 */ cmplw r3, r0
/* 80282080 0027EFC0 40 82 FF D4 */ bne lbl_80282054
/* 80282084 0027EFC4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80282088 0027EFC8 7C 08 03 A6 */ mtlr r0
/* 8028208C 0027EFCC 38 21 00 10 */ addi r1, r1, 0x10
/* 80282090 0027EFD0 4E 80 00 20 */ blr
@@ -0,0 +1,31 @@
/* 80281E5C 0027ED9C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80281E60 0027EDA0 7C 08 02 A6 */ mflr r0
/* 80281E64 0027EDA4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80281E68 0027EDA8 80 84 00 00 */ lwz r4, 0(r4)
/* 80281E6C 0027EDAC 80 A3 00 04 */ lwz r5, 4(r3)
/* 80281E70 0027EDB0 28 05 00 00 */ cmplwi r5, 0
/* 80281E74 0027EDB4 40 82 00 0C */ bne lbl_80281E80
/* 80281E78 0027EDB8 38 00 00 00 */ li r0, 0
/* 80281E7C 0027EDBC 48 00 00 14 */ b lbl_80281E90
lbl_80281E80:
/* 80281E80 0027EDC0 80 03 00 08 */ lwz r0, 8(r3)
/* 80281E84 0027EDC4 7C 05 00 50 */ subf r0, r5, r0
/* 80281E88 0027EDC8 7C 00 16 70 */ srawi r0, r0, 2
/* 80281E8C 0027EDCC 7C 00 01 94 */ addze r0, r0
lbl_80281E90:
/* 80281E90 0027EDD0 7C 04 00 40 */ cmplw r4, r0
/* 80281E94 0027EDD4 41 80 00 0C */ blt lbl_80281EA0
/* 80281E98 0027EDD8 C8 22 BA 00 */ lfd f1, lbl_80455400-_SDA2_BASE_(r2)
/* 80281E9C 0027EDDC 48 00 00 1C */ b lbl_80281EB8
lbl_80281EA0:
/* 80281EA0 0027EDE0 54 80 10 3A */ slwi r0, r4, 2
/* 80281EA4 0027EDE4 7C 65 00 2E */ lwzx r3, r5, r0
/* 80281EA8 0027EDE8 81 83 00 00 */ lwz r12, 0(r3)
/* 80281EAC 0027EDEC 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 80281EB0 0027EDF0 7D 89 03 A6 */ mtctr r12
/* 80281EB4 0027EDF4 4E 80 04 21 */ bctrl
lbl_80281EB8:
/* 80281EB8 0027EDF8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80281EBC 0027EDFC 7C 08 03 A6 */ mtlr r0
/* 80281EC0 0027EE00 38 21 00 10 */ addi r1, r1, 0x10
/* 80281EC4 0027EE04 4E 80 00 20 */ blr
@@ -0,0 +1,64 @@
/* 80282118 0027F058 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8028211C 0027F05C 7C 08 02 A6 */ mflr r0
/* 80282120 0027F060 90 01 00 34 */ stw r0, 0x34(r1)
/* 80282124 0027F064 DB E1 00 28 */ stfd f31, 0x28(r1)
/* 80282128 0027F068 DB C1 00 20 */ stfd f30, 0x20(r1)
/* 8028212C 0027F06C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80282130 0027F070 7C 9F 23 78 */ mr r31, r4
/* 80282134 0027F074 FF C0 08 90 */ fmr f30, f1
/* 80282138 0027F078 80 83 00 04 */ lwz r4, 4(r3)
/* 8028213C 0027F07C 28 04 00 00 */ cmplwi r4, 0
/* 80282140 0027F080 40 82 00 0C */ bne lbl_8028214C
/* 80282144 0027F084 38 00 00 00 */ li r0, 0
/* 80282148 0027F088 48 00 00 14 */ b lbl_8028215C
lbl_8028214C:
/* 8028214C 0027F08C 80 03 00 08 */ lwz r0, 8(r3)
/* 80282150 0027F090 7C 04 00 50 */ subf r0, r4, r0
/* 80282154 0027F094 7C 00 16 70 */ srawi r0, r0, 2
/* 80282158 0027F098 7C 00 01 94 */ addze r0, r0
lbl_8028215C:
/* 8028215C 0027F09C 28 00 00 00 */ cmplwi r0, 0
/* 80282160 0027F0A0 40 82 00 0C */ bne lbl_8028216C
/* 80282164 0027F0A4 C8 22 BA 00 */ lfd f1, lbl_80455400-_SDA2_BASE_(r2)
/* 80282168 0027F0A8 48 00 00 7C */ b lbl_802821E4
lbl_8028216C:
/* 8028216C 0027F0AC 80 03 00 08 */ lwz r0, 8(r3)
/* 80282170 0027F0B0 90 81 00 08 */ stw r4, 8(r1)
/* 80282174 0027F0B4 90 01 00 0C */ stw r0, 0xc(r1)
/* 80282178 0027F0B8 38 04 00 04 */ addi r0, r4, 4
/* 8028217C 0027F0BC 90 01 00 08 */ stw r0, 8(r1)
/* 80282180 0027F0C0 80 64 00 00 */ lwz r3, 0(r4)
/* 80282184 0027F0C4 FC 20 F0 90 */ fmr f1, f30
/* 80282188 0027F0C8 81 83 00 00 */ lwz r12, 0(r3)
/* 8028218C 0027F0CC 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 80282190 0027F0D0 7D 89 03 A6 */ mtctr r12
/* 80282194 0027F0D4 4E 80 04 21 */ bctrl
/* 80282198 0027F0D8 FF E0 08 90 */ fmr f31, f1
/* 8028219C 0027F0DC 48 00 00 2C */ b lbl_802821C8
lbl_802821A0:
/* 802821A0 0027F0E0 80 61 00 08 */ lwz r3, 8(r1)
/* 802821A4 0027F0E4 38 03 00 04 */ addi r0, r3, 4
/* 802821A8 0027F0E8 90 01 00 08 */ stw r0, 8(r1)
/* 802821AC 0027F0EC 80 63 00 00 */ lwz r3, 0(r3)
/* 802821B0 0027F0F0 FC 20 F0 90 */ fmr f1, f30
/* 802821B4 0027F0F4 81 83 00 00 */ lwz r12, 0(r3)
/* 802821B8 0027F0F8 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 802821BC 0027F0FC 7D 89 03 A6 */ mtctr r12
/* 802821C0 0027F100 4E 80 04 21 */ bctrl
/* 802821C4 0027F104 FF FF 08 28 */ fsub f31, f31, f1
lbl_802821C8:
/* 802821C8 0027F108 80 61 00 08 */ lwz r3, 8(r1)
/* 802821CC 0027F10C 80 01 00 0C */ lwz r0, 0xc(r1)
/* 802821D0 0027F110 7C 03 00 40 */ cmplw r3, r0
/* 802821D4 0027F114 40 82 FF CC */ bne lbl_802821A0
/* 802821D8 0027F118 C8 1F 00 00 */ lfd f0, 0(r31)
/* 802821DC 0027F11C FF FF 00 28 */ fsub f31, f31, f0
/* 802821E0 0027F120 FC 20 F8 90 */ fmr f1, f31
lbl_802821E4:
/* 802821E4 0027F124 CB E1 00 28 */ lfd f31, 0x28(r1)
/* 802821E8 0027F128 CB C1 00 20 */ lfd f30, 0x20(r1)
/* 802821EC 0027F12C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802821F0 0027F130 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802821F4 0027F134 7C 08 03 A6 */ mtlr r0
/* 802821F8 0027F138 38 21 00 30 */ addi r1, r1, 0x30
/* 802821FC 0027F13C 4E 80 00 20 */ blr
@@ -0,0 +1,258 @@
/* 80282858 0027F798 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8028285C 0027F79C 7C 08 02 A6 */ mflr r0
/* 80282860 0027F7A0 90 01 00 54 */ stw r0, 0x54(r1)
/* 80282864 0027F7A4 DB E1 00 40 */ stfd f31, 0x40(r1)
/* 80282868 0027F7A8 F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0
/* 8028286C 0027F7AC DB C1 00 30 */ stfd f30, 0x30(r1)
/* 80282870 0027F7B0 F3 C1 00 38 */ psq_st f30, 56(r1), 0, 0
/* 80282874 0027F7B4 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 80282878 0027F7B8 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8028287C 0027F7BC 7C 7F 1B 78 */ mr r31, r3
/* 80282880 0027F7C0 C8 63 00 28 */ lfd f3, 0x28(r3)
/* 80282884 0027F7C4 C8 43 00 30 */ lfd f2, 0x30(r3)
/* 80282888 0027F7C8 FC 01 18 28 */ fsub f0, f1, f3
/* 8028288C 0027F7CC FC 02 00 32 */ fmul f0, f2, f0
/* 80282890 0027F7D0 FC 43 00 2A */ fadd f2, f3, f0
/* 80282894 0027F7D4 80 63 00 48 */ lwz r3, 0x48(r3)
/* 80282898 0027F7D8 3B C3 FF FF */ addi r30, r3, -1
/* 8028289C 0027F7DC 88 7F 00 21 */ lbz r3, 0x21(r31)
/* 802828A0 0027F7E0 7C 63 07 74 */ extsb r3, r3
/* 802828A4 0027F7E4 C8 22 BA 48 */ lfd f1, lbl_80455448-_SDA2_BASE_(r2)
/* 802828A8 0027F7E8 93 C1 00 24 */ stw r30, 0x24(r1)
/* 802828AC 0027F7EC 3C 00 43 30 */ lis r0, 0x4330
/* 802828B0 0027F7F0 90 01 00 20 */ stw r0, 0x20(r1)
/* 802828B4 0027F7F4 C8 01 00 20 */ lfd f0, 0x20(r1)
/* 802828B8 0027F7F8 FF E0 08 28 */ fsub f31, f0, f1
/* 802828BC 0027F7FC 2C 03 00 02 */ cmpwi r3, 2
/* 802828C0 0027F800 41 82 01 2C */ beq lbl_802829EC
/* 802828C4 0027F804 40 80 00 14 */ bge lbl_802828D8
/* 802828C8 0027F808 2C 03 00 00 */ cmpwi r3, 0
/* 802828CC 0027F80C 41 82 00 1C */ beq lbl_802828E8
/* 802828D0 0027F810 40 80 00 98 */ bge lbl_80282968
/* 802828D4 0027F814 48 00 00 14 */ b lbl_802828E8
lbl_802828D8:
/* 802828D8 0027F818 2C 03 00 04 */ cmpwi r3, 4
/* 802828DC 0027F81C 41 82 02 2C */ beq lbl_80282B08
/* 802828E0 0027F820 40 80 00 08 */ bge lbl_802828E8
/* 802828E4 0027F824 48 00 01 90 */ b lbl_80282A74
lbl_802828E8:
/* 802828E8 0027F828 C8 1F 00 08 */ lfd f0, 8(r31)
/* 802828EC 0027F82C FF C2 00 28 */ fsub f30, f2, f0
/* 802828F0 0027F830 C8 02 BA 00 */ lfd f0, lbl_80455400-_SDA2_BASE_(r2)
/* 802828F4 0027F834 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 802828F8 0027F838 40 80 00 28 */ bge lbl_80282920
/* 802828FC 0027F83C 80 7F 00 38 */ lwz r3, 0x38(r31)
/* 80282900 0027F840 4B FF ED 49 */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 80282904 0027F844 FC 20 F0 90 */ fmr f1, f30
/* 80282908 0027F848 C8 5F 00 18 */ lfd f2, 0x18(r31)
/* 8028290C 0027F84C 7C 6C 1B 78 */ mr r12, r3
/* 80282910 0027F850 7D 89 03 A6 */ mtctr r12
/* 80282914 0027F854 4E 80 04 21 */ bctrl
/* 80282918 0027F858 FF C0 08 90 */ fmr f30, f1
/* 8028291C 0027F85C 48 00 00 34 */ b lbl_80282950
lbl_80282920:
/* 80282920 0027F860 C8 1F 00 18 */ lfd f0, 0x18(r31)
/* 80282924 0027F864 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 80282928 0027F868 4C 41 13 82 */ cror 2, 1, 2
/* 8028292C 0027F86C 40 82 00 24 */ bne lbl_80282950
/* 80282930 0027F870 80 7F 00 3C */ lwz r3, 0x3c(r31)
/* 80282934 0027F874 4B FF ED 15 */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 80282938 0027F878 FC 20 F0 90 */ fmr f1, f30
/* 8028293C 0027F87C C8 5F 00 18 */ lfd f2, 0x18(r31)
/* 80282940 0027F880 7C 6C 1B 78 */ mr r12, r3
/* 80282944 0027F884 7D 89 03 A6 */ mtctr r12
/* 80282948 0027F888 4E 80 04 21 */ bctrl
/* 8028294C 0027F88C FF C0 08 90 */ fmr f30, f1
lbl_80282950:
/* 80282950 0027F890 C8 1F 00 08 */ lfd f0, 8(r31)
/* 80282954 0027F894 FF DE 00 2A */ fadd f30, f30, f0
/* 80282958 0027F898 C8 1F 00 50 */ lfd f0, 0x50(r31)
/* 8028295C 0027F89C FC 1E 00 24 */ fdiv f0, f30, f0
/* 80282960 0027F8A0 D8 01 00 08 */ stfd f0, 8(r1)
/* 80282964 0027F8A4 48 00 02 28 */ b lbl_80282B8C
lbl_80282968:
/* 80282968 0027F8A8 C8 1F 00 08 */ lfd f0, 8(r31)
/* 8028296C 0027F8AC FF C2 00 2A */ fadd f30, f2, f0
/* 80282970 0027F8B0 FF DE 00 28 */ fsub f30, f30, f0
/* 80282974 0027F8B4 C8 02 BA 00 */ lfd f0, lbl_80455400-_SDA2_BASE_(r2)
/* 80282978 0027F8B8 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 8028297C 0027F8BC 40 80 00 28 */ bge lbl_802829A4
/* 80282980 0027F8C0 80 7F 00 38 */ lwz r3, 0x38(r31)
/* 80282984 0027F8C4 4B FF EC C5 */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 80282988 0027F8C8 FC 20 F0 90 */ fmr f1, f30
/* 8028298C 0027F8CC C8 5F 00 18 */ lfd f2, 0x18(r31)
/* 80282990 0027F8D0 7C 6C 1B 78 */ mr r12, r3
/* 80282994 0027F8D4 7D 89 03 A6 */ mtctr r12
/* 80282998 0027F8D8 4E 80 04 21 */ bctrl
/* 8028299C 0027F8DC FF C0 08 90 */ fmr f30, f1
/* 802829A0 0027F8E0 48 00 00 34 */ b lbl_802829D4
lbl_802829A4:
/* 802829A4 0027F8E4 C8 1F 00 18 */ lfd f0, 0x18(r31)
/* 802829A8 0027F8E8 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 802829AC 0027F8EC 4C 41 13 82 */ cror 2, 1, 2
/* 802829B0 0027F8F0 40 82 00 24 */ bne lbl_802829D4
/* 802829B4 0027F8F4 80 7F 00 3C */ lwz r3, 0x3c(r31)
/* 802829B8 0027F8F8 4B FF EC 91 */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 802829BC 0027F8FC FC 20 F0 90 */ fmr f1, f30
/* 802829C0 0027F900 C8 5F 00 18 */ lfd f2, 0x18(r31)
/* 802829C4 0027F904 7C 6C 1B 78 */ mr r12, r3
/* 802829C8 0027F908 7D 89 03 A6 */ mtctr r12
/* 802829CC 0027F90C 4E 80 04 21 */ bctrl
/* 802829D0 0027F910 FF C0 08 90 */ fmr f30, f1
lbl_802829D4:
/* 802829D4 0027F914 C8 1F 00 08 */ lfd f0, 8(r31)
/* 802829D8 0027F918 FF DE 00 2A */ fadd f30, f30, f0
/* 802829DC 0027F91C C8 1F 00 50 */ lfd f0, 0x50(r31)
/* 802829E0 0027F920 FC 1E 00 24 */ fdiv f0, f30, f0
/* 802829E4 0027F924 D8 01 00 08 */ stfd f0, 8(r1)
/* 802829E8 0027F928 48 00 01 A4 */ b lbl_80282B8C
lbl_802829EC:
/* 802829EC 0027F92C C8 1F 00 10 */ lfd f0, 0x10(r31)
/* 802829F0 0027F930 FF C2 00 2A */ fadd f30, f2, f0
/* 802829F4 0027F934 C8 1F 00 08 */ lfd f0, 8(r31)
/* 802829F8 0027F938 FF DE 00 28 */ fsub f30, f30, f0
/* 802829FC 0027F93C C8 02 BA 00 */ lfd f0, lbl_80455400-_SDA2_BASE_(r2)
/* 80282A00 0027F940 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 80282A04 0027F944 40 80 00 28 */ bge lbl_80282A2C
/* 80282A08 0027F948 80 7F 00 38 */ lwz r3, 0x38(r31)
/* 80282A0C 0027F94C 4B FF EC 3D */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 80282A10 0027F950 FC 20 F0 90 */ fmr f1, f30
/* 80282A14 0027F954 C8 5F 00 18 */ lfd f2, 0x18(r31)
/* 80282A18 0027F958 7C 6C 1B 78 */ mr r12, r3
/* 80282A1C 0027F95C 7D 89 03 A6 */ mtctr r12
/* 80282A20 0027F960 4E 80 04 21 */ bctrl
/* 80282A24 0027F964 FF C0 08 90 */ fmr f30, f1
/* 80282A28 0027F968 48 00 00 34 */ b lbl_80282A5C
lbl_80282A2C:
/* 80282A2C 0027F96C C8 1F 00 18 */ lfd f0, 0x18(r31)
/* 80282A30 0027F970 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 80282A34 0027F974 4C 41 13 82 */ cror 2, 1, 2
/* 80282A38 0027F978 40 82 00 24 */ bne lbl_80282A5C
/* 80282A3C 0027F97C 80 7F 00 3C */ lwz r3, 0x3c(r31)
/* 80282A40 0027F980 4B FF EC 09 */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 80282A44 0027F984 FC 20 F0 90 */ fmr f1, f30
/* 80282A48 0027F988 C8 5F 00 18 */ lfd f2, 0x18(r31)
/* 80282A4C 0027F98C 7C 6C 1B 78 */ mr r12, r3
/* 80282A50 0027F990 7D 89 03 A6 */ mtctr r12
/* 80282A54 0027F994 4E 80 04 21 */ bctrl
/* 80282A58 0027F998 FF C0 08 90 */ fmr f30, f1
lbl_80282A5C:
/* 80282A5C 0027F99C C8 1F 00 08 */ lfd f0, 8(r31)
/* 80282A60 0027F9A0 FF DE 00 2A */ fadd f30, f30, f0
/* 80282A64 0027F9A4 C8 1F 00 50 */ lfd f0, 0x50(r31)
/* 80282A68 0027F9A8 FC 1E 00 24 */ fdiv f0, f30, f0
/* 80282A6C 0027F9AC D8 01 00 08 */ stfd f0, 8(r1)
/* 80282A70 0027F9B0 48 00 01 1C */ b lbl_80282B8C
lbl_80282A74:
/* 80282A74 0027F9B4 C8 22 BA 28 */ lfd f1, lbl_80455428-_SDA2_BASE_(r2)
/* 80282A78 0027F9B8 C8 7F 00 08 */ lfd f3, 8(r31)
/* 80282A7C 0027F9BC C8 1F 00 10 */ lfd f0, 0x10(r31)
/* 80282A80 0027F9C0 FC 03 00 2A */ fadd f0, f3, f0
/* 80282A84 0027F9C4 FC 01 00 32 */ fmul f0, f1, f0
/* 80282A88 0027F9C8 FF C2 00 2A */ fadd f30, f2, f0
/* 80282A8C 0027F9CC FF DE 18 28 */ fsub f30, f30, f3
/* 80282A90 0027F9D0 C8 02 BA 00 */ lfd f0, lbl_80455400-_SDA2_BASE_(r2)
/* 80282A94 0027F9D4 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 80282A98 0027F9D8 40 80 00 28 */ bge lbl_80282AC0
/* 80282A9C 0027F9DC 80 7F 00 38 */ lwz r3, 0x38(r31)
/* 80282AA0 0027F9E0 4B FF EB A9 */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 80282AA4 0027F9E4 FC 20 F0 90 */ fmr f1, f30
/* 80282AA8 0027F9E8 C8 5F 00 18 */ lfd f2, 0x18(r31)
/* 80282AAC 0027F9EC 7C 6C 1B 78 */ mr r12, r3
/* 80282AB0 0027F9F0 7D 89 03 A6 */ mtctr r12
/* 80282AB4 0027F9F4 4E 80 04 21 */ bctrl
/* 80282AB8 0027F9F8 FF C0 08 90 */ fmr f30, f1
/* 80282ABC 0027F9FC 48 00 00 34 */ b lbl_80282AF0
lbl_80282AC0:
/* 80282AC0 0027FA00 C8 1F 00 18 */ lfd f0, 0x18(r31)
/* 80282AC4 0027FA04 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 80282AC8 0027FA08 4C 41 13 82 */ cror 2, 1, 2
/* 80282ACC 0027FA0C 40 82 00 24 */ bne lbl_80282AF0
/* 80282AD0 0027FA10 80 7F 00 3C */ lwz r3, 0x3c(r31)
/* 80282AD4 0027FA14 4B FF EB 75 */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 80282AD8 0027FA18 FC 20 F0 90 */ fmr f1, f30
/* 80282ADC 0027FA1C C8 5F 00 18 */ lfd f2, 0x18(r31)
/* 80282AE0 0027FA20 7C 6C 1B 78 */ mr r12, r3
/* 80282AE4 0027FA24 7D 89 03 A6 */ mtctr r12
/* 80282AE8 0027FA28 4E 80 04 21 */ bctrl
/* 80282AEC 0027FA2C FF C0 08 90 */ fmr f30, f1
lbl_80282AF0:
/* 80282AF0 0027FA30 C8 1F 00 08 */ lfd f0, 8(r31)
/* 80282AF4 0027FA34 FF DE 00 2A */ fadd f30, f30, f0
/* 80282AF8 0027FA38 C8 1F 00 50 */ lfd f0, 0x50(r31)
/* 80282AFC 0027FA3C FC 1E 00 24 */ fdiv f0, f30, f0
/* 80282B00 0027FA40 D8 01 00 08 */ stfd f0, 8(r1)
/* 80282B04 0027FA44 48 00 00 88 */ b lbl_80282B8C
lbl_80282B08:
/* 80282B08 0027FA48 C8 1F 00 08 */ lfd f0, 8(r31)
/* 80282B0C 0027FA4C FF C2 00 28 */ fsub f30, f2, f0
/* 80282B10 0027FA50 C8 02 BA 00 */ lfd f0, lbl_80455400-_SDA2_BASE_(r2)
/* 80282B14 0027FA54 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 80282B18 0027FA58 40 80 00 28 */ bge lbl_80282B40
/* 80282B1C 0027FA5C 80 7F 00 38 */ lwz r3, 0x38(r31)
/* 80282B20 0027FA60 4B FF EB 29 */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 80282B24 0027FA64 FC 20 F0 90 */ fmr f1, f30
/* 80282B28 0027FA68 C8 5F 00 18 */ lfd f2, 0x18(r31)
/* 80282B2C 0027FA6C 7C 6C 1B 78 */ mr r12, r3
/* 80282B30 0027FA70 7D 89 03 A6 */ mtctr r12
/* 80282B34 0027FA74 4E 80 04 21 */ bctrl
/* 80282B38 0027FA78 FF C0 08 90 */ fmr f30, f1
/* 80282B3C 0027FA7C 48 00 00 34 */ b lbl_80282B70
lbl_80282B40:
/* 80282B40 0027FA80 C8 1F 00 18 */ lfd f0, 0x18(r31)
/* 80282B44 0027FA84 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 80282B48 0027FA88 4C 41 13 82 */ cror 2, 1, 2
/* 80282B4C 0027FA8C 40 82 00 24 */ bne lbl_80282B70
/* 80282B50 0027FA90 80 7F 00 3C */ lwz r3, 0x3c(r31)
/* 80282B54 0027FA94 4B FF EA F5 */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 80282B58 0027FA98 FC 20 F0 90 */ fmr f1, f30
/* 80282B5C 0027FA9C C8 5F 00 18 */ lfd f2, 0x18(r31)
/* 80282B60 0027FAA0 7C 6C 1B 78 */ mr r12, r3
/* 80282B64 0027FAA4 7D 89 03 A6 */ mtctr r12
/* 80282B68 0027FAA8 4E 80 04 21 */ bctrl
/* 80282B6C 0027FAAC FF C0 08 90 */ fmr f30, f1
lbl_80282B70:
/* 80282B70 0027FAB0 C8 1F 00 08 */ lfd f0, 8(r31)
/* 80282B74 0027FAB4 FF DE 00 2A */ fadd f30, f30, f0
/* 80282B78 0027FAB8 FC 1E 00 28 */ fsub f0, f30, f0
/* 80282B7C 0027FABC FC 3F 00 32 */ fmul f1, f31, f0
/* 80282B80 0027FAC0 C8 1F 00 18 */ lfd f0, 0x18(r31)
/* 80282B84 0027FAC4 FC 01 00 24 */ fdiv f0, f1, f0
/* 80282B88 0027FAC8 D8 01 00 08 */ stfd f0, 8(r1)
lbl_80282B8C:
/* 80282B8C 0027FACC C8 21 00 08 */ lfd f1, 8(r1)
/* 80282B90 0027FAD0 C8 02 BA 00 */ lfd f0, lbl_80455400-_SDA2_BASE_(r2)
/* 80282B94 0027FAD4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80282B98 0027FAD8 40 80 00 10 */ bge lbl_80282BA8
/* 80282B9C 0027FADC 80 7F 00 44 */ lwz r3, 0x44(r31)
/* 80282BA0 0027FAE0 C0 23 00 00 */ lfs f1, 0(r3)
/* 80282BA4 0027FAE4 48 00 00 44 */ b lbl_80282BE8
lbl_80282BA8:
/* 80282BA8 0027FAE8 FC 01 F8 40 */ fcmpo cr0, f1, f31
/* 80282BAC 0027FAEC 4C 41 13 82 */ cror 2, 1, 2
/* 80282BB0 0027FAF0 40 82 00 14 */ bne lbl_80282BC4
/* 80282BB4 0027FAF4 80 7F 00 44 */ lwz r3, 0x44(r31)
/* 80282BB8 0027FAF8 57 C0 10 3A */ slwi r0, r30, 2
/* 80282BBC 0027FAFC 7C 23 04 2E */ lfsx f1, r3, r0
/* 80282BC0 0027FB00 48 00 00 28 */ b lbl_80282BE8
lbl_80282BC4:
/* 80282BC4 0027FB04 48 0E 95 39 */ bl func_8036C0FC
/* 80282BC8 0027FB08 D8 21 00 10 */ stfd f1, 0x10(r1)
/* 80282BCC 0027FB0C 48 0D F4 E1 */ bl func_803620AC
/* 80282BD0 0027FB10 90 61 00 18 */ stw r3, 0x18(r1)
/* 80282BD4 0027FB14 7F E3 FB 78 */ mr r3, r31
/* 80282BD8 0027FB18 38 81 00 08 */ addi r4, r1, 8
/* 80282BDC 0027FB1C 81 9F 00 58 */ lwz r12, 0x58(r31)
/* 80282BE0 0027FB20 7D 89 03 A6 */ mtctr r12
/* 80282BE4 0027FB24 4E 80 04 21 */ bctrl
lbl_80282BE8:
/* 80282BE8 0027FB28 E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0
/* 80282BEC 0027FB2C CB E1 00 40 */ lfd f31, 0x40(r1)
/* 80282BF0 0027FB30 E3 C1 00 38 */ psq_l f30, 56(r1), 0, 0
/* 80282BF4 0027FB34 CB C1 00 30 */ lfd f30, 0x30(r1)
/* 80282BF8 0027FB38 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 80282BFC 0027FB3C 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 80282C00 0027FB40 80 01 00 54 */ lwz r0, 0x54(r1)
/* 80282C04 0027FB44 7C 08 03 A6 */ mtlr r0
/* 80282C08 0027FB48 38 21 00 50 */ addi r1, r1, 0x50
/* 80282C0C 0027FB4C 4E 80 00 20 */ blr
@@ -0,0 +1,76 @@
/* 8028344C 0028038C 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80283450 00280390 7C 08 02 A6 */ mflr r0
/* 80283454 00280394 90 01 00 44 */ stw r0, 0x44(r1)
/* 80283458 00280398 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 8028345C 0028039C 7C 7F 1B 78 */ mr r31, r3
/* 80283460 002803A0 D8 21 00 08 */ stfd f1, 8(r1)
/* 80283464 002803A4 80 A3 00 40 */ lwz r5, 0x40(r3)
/* 80283468 002803A8 38 7F 00 08 */ addi r3, r31, 8
/* 8028346C 002803AC C0 45 00 00 */ lfs f2, 0(r5)
/* 80283470 002803B0 80 9F 00 44 */ lwz r4, 0x44(r31)
/* 80283474 002803B4 38 84 FF FF */ addi r4, r4, -1
/* 80283478 002803B8 80 1F 00 48 */ lwz r0, 0x48(r31)
/* 8028347C 002803BC 7C 04 01 D6 */ mullw r0, r4, r0
/* 80283480 002803C0 54 00 10 3A */ slwi r0, r0, 2
/* 80283484 002803C4 7C 65 04 2E */ lfsx f3, r5, r0
/* 80283488 002803C8 4B FF E5 81 */ bl range_getParameter__Q27JStudio29TFunctionValueAttribute_rangeCFddd
/* 8028348C 002803CC D8 21 00 08 */ stfd f1, 8(r1)
/* 80283490 002803D0 80 7F 00 5C */ lwz r3, 0x5c(r31)
/* 80283494 002803D4 80 1F 00 60 */ lwz r0, 0x60(r31)
/* 80283498 002803D8 90 61 00 10 */ stw r3, 0x10(r1)
/* 8028349C 002803DC 90 01 00 14 */ stw r0, 0x14(r1)
/* 802834A0 002803E0 80 7F 00 54 */ lwz r3, 0x54(r31)
/* 802834A4 002803E4 80 1F 00 58 */ lwz r0, 0x58(r31)
/* 802834A8 002803E8 90 61 00 18 */ stw r3, 0x18(r1)
/* 802834AC 002803EC 90 01 00 1C */ stw r0, 0x1c(r1)
/* 802834B0 002803F0 80 7F 00 4C */ lwz r3, 0x4c(r31)
/* 802834B4 002803F4 80 1F 00 50 */ lwz r0, 0x50(r31)
/* 802834B8 002803F8 90 61 00 20 */ stw r3, 0x20(r1)
/* 802834BC 002803FC 90 01 00 24 */ stw r0, 0x24(r1)
/* 802834C0 00280400 38 61 00 28 */ addi r3, r1, 0x28
/* 802834C4 00280404 38 81 00 20 */ addi r4, r1, 0x20
/* 802834C8 00280408 38 A1 00 18 */ addi r5, r1, 0x18
/* 802834CC 0028040C 38 C1 00 10 */ addi r6, r1, 0x10
/* 802834D0 00280410 38 E1 00 08 */ addi r7, r1, 8
/* 802834D4 00280414 48 00 03 85 */ bl JGadget_NS_findUpperBound_binary_current_X2_
/* 802834D8 00280418 80 01 00 28 */ lwz r0, 0x28(r1)
/* 802834DC 0028041C 90 1F 00 5C */ stw r0, 0x5c(r31)
/* 802834E0 00280420 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 802834E4 00280424 90 1F 00 60 */ stw r0, 0x60(r31)
/* 802834E8 00280428 80 9F 00 5C */ lwz r4, 0x5c(r31)
/* 802834EC 0028042C 80 1F 00 4C */ lwz r0, 0x4c(r31)
/* 802834F0 00280430 7C 04 00 40 */ cmplw r4, r0
/* 802834F4 00280434 40 82 00 0C */ bne lbl_80283500
/* 802834F8 00280438 C0 24 00 04 */ lfs f1, 4(r4)
/* 802834FC 0028043C 48 00 00 60 */ b lbl_8028355C
lbl_80283500:
/* 80283500 00280440 80 1F 00 54 */ lwz r0, 0x54(r31)
/* 80283504 00280444 7C 04 00 40 */ cmplw r4, r0
/* 80283508 00280448 40 82 00 24 */ bne lbl_8028352C
/* 8028350C 0028044C 80 1F 00 60 */ lwz r0, 0x60(r31)
/* 80283510 00280450 54 03 10 3A */ slwi r3, r0, 2
/* 80283514 00280454 80 1F 00 5C */ lwz r0, 0x5c(r31)
/* 80283518 00280458 7C 03 00 50 */ subf r0, r3, r0
/* 8028351C 0028045C 90 1F 00 5C */ stw r0, 0x5c(r31)
/* 80283520 00280460 80 7F 00 5C */ lwz r3, 0x5c(r31)
/* 80283524 00280464 C0 23 00 04 */ lfs f1, 4(r3)
/* 80283528 00280468 48 00 00 34 */ b lbl_8028355C
lbl_8028352C:
/* 8028352C 0028046C 80 1F 00 48 */ lwz r0, 0x48(r31)
/* 80283530 00280470 54 00 10 3A */ slwi r0, r0, 2
/* 80283534 00280474 7C 60 20 50 */ subf r3, r0, r4
/* 80283538 00280478 C8 21 00 08 */ lfd f1, 8(r1)
/* 8028353C 0028047C C0 43 00 00 */ lfs f2, 0(r3)
/* 80283540 00280480 C0 63 00 04 */ lfs f3, 4(r3)
/* 80283544 00280484 7C 63 02 14 */ add r3, r3, r0
/* 80283548 00280488 C0 83 FF FC */ lfs f4, -4(r3)
/* 8028354C 0028048C C0 A4 00 00 */ lfs f5, 0(r4)
/* 80283550 00280490 C0 C4 00 04 */ lfs f6, 4(r4)
/* 80283554 00280494 C0 E4 00 08 */ lfs f7, 8(r4)
/* 80283558 00280498 4B FF E1 B9 */ bl interpolateValue_hermite__Q27JStudio13functionvalueFddddddd
lbl_8028355C:
/* 8028355C 0028049C 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 80283560 002804A0 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80283564 002804A4 7C 08 03 A6 */ mtlr r0
/* 80283568 002804A8 38 21 00 40 */ addi r1, r1, 0x40
/* 8028356C 002804AC 4E 80 00 20 */ blr
@@ -0,0 +1,130 @@
/* 802824F4 0027F434 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802824F8 0027F438 7C 08 02 A6 */ mflr r0
/* 802824FC 0027F43C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80282500 0027F440 DB E1 00 18 */ stfd f31, 0x18(r1)
/* 80282504 0027F444 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80282508 0027F448 7C 7F 1B 78 */ mr r31, r3
/* 8028250C 0027F44C C8 63 00 28 */ lfd f3, 0x28(r3)
/* 80282510 0027F450 C8 43 00 30 */ lfd f2, 0x30(r3)
/* 80282514 0027F454 FC 01 18 28 */ fsub f0, f1, f3
/* 80282518 0027F458 FC 02 00 32 */ fmul f0, f2, f0
/* 8028251C 0027F45C FC 23 00 2A */ fadd f1, f3, f0
/* 80282520 0027F460 C8 03 00 08 */ lfd f0, 8(r3)
/* 80282524 0027F464 FF E1 00 28 */ fsub f31, f1, f0
/* 80282528 0027F468 C8 02 BA 00 */ lfd f0, lbl_80455400-_SDA2_BASE_(r2)
/* 8028252C 0027F46C FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 80282530 0027F470 40 80 00 28 */ bge lbl_80282558
/* 80282534 0027F474 80 7F 00 38 */ lwz r3, 0x38(r31)
/* 80282538 0027F478 4B FF F1 11 */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 8028253C 0027F47C FC 20 F8 90 */ fmr f1, f31
/* 80282540 0027F480 C8 5F 00 18 */ lfd f2, 0x18(r31)
/* 80282544 0027F484 7C 6C 1B 78 */ mr r12, r3
/* 80282548 0027F488 7D 89 03 A6 */ mtctr r12
/* 8028254C 0027F48C 4E 80 04 21 */ bctrl
/* 80282550 0027F490 FF E0 08 90 */ fmr f31, f1
/* 80282554 0027F494 48 00 00 34 */ b lbl_80282588
lbl_80282558:
/* 80282558 0027F498 C8 1F 00 18 */ lfd f0, 0x18(r31)
/* 8028255C 0027F49C FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 80282560 0027F4A0 4C 41 13 82 */ cror 2, 1, 2
/* 80282564 0027F4A4 40 82 00 24 */ bne lbl_80282588
/* 80282568 0027F4A8 80 7F 00 3C */ lwz r3, 0x3c(r31)
/* 8028256C 0027F4AC 4B FF F0 DD */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 80282570 0027F4B0 FC 20 F8 90 */ fmr f1, f31
/* 80282574 0027F4B4 C8 5F 00 18 */ lfd f2, 0x18(r31)
/* 80282578 0027F4B8 7C 6C 1B 78 */ mr r12, r3
/* 8028257C 0027F4BC 7D 89 03 A6 */ mtctr r12
/* 80282580 0027F4C0 4E 80 04 21 */ bctrl
/* 80282584 0027F4C4 FF E0 08 90 */ fmr f31, f1
lbl_80282588:
/* 80282588 0027F4C8 C8 5F 00 08 */ lfd f2, 8(r31)
/* 8028258C 0027F4CC FF FF 10 2A */ fadd f31, f31, f2
/* 80282590 0027F4D0 88 1F 00 21 */ lbz r0, 0x21(r31)
/* 80282594 0027F4D4 7C 00 07 74 */ extsb r0, r0
/* 80282598 0027F4D8 2C 00 00 03 */ cmpwi r0, 3
/* 8028259C 0027F4DC 41 82 00 54 */ beq lbl_802825F0
/* 802825A0 0027F4E0 40 80 00 10 */ bge lbl_802825B0
/* 802825A4 0027F4E4 2C 00 00 02 */ cmpwi r0, 2
/* 802825A8 0027F4E8 40 80 00 2C */ bge lbl_802825D4
/* 802825AC 0027F4EC 48 00 00 10 */ b lbl_802825BC
lbl_802825B0:
/* 802825B0 0027F4F0 2C 00 00 05 */ cmpwi r0, 5
/* 802825B4 0027F4F4 40 80 00 08 */ bge lbl_802825BC
/* 802825B8 0027F4F8 48 00 00 60 */ b lbl_80282618
lbl_802825BC:
/* 802825BC 0027F4FC FC 1F 10 40 */ fcmpo cr0, f31, f2
/* 802825C0 0027F500 40 80 00 0C */ bge lbl_802825CC
/* 802825C4 0027F504 C8 3F 00 48 */ lfd f1, 0x48(r31)
/* 802825C8 0027F508 48 00 00 DC */ b lbl_802826A4
lbl_802825CC:
/* 802825CC 0027F50C C8 3F 00 50 */ lfd f1, 0x50(r31)
/* 802825D0 0027F510 48 00 00 D4 */ b lbl_802826A4
lbl_802825D4:
/* 802825D4 0027F514 C8 1F 00 10 */ lfd f0, 0x10(r31)
/* 802825D8 0027F518 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 802825DC 0027F51C 40 80 00 0C */ bge lbl_802825E8
/* 802825E0 0027F520 C8 3F 00 48 */ lfd f1, 0x48(r31)
/* 802825E4 0027F524 48 00 00 C0 */ b lbl_802826A4
lbl_802825E8:
/* 802825E8 0027F528 C8 3F 00 50 */ lfd f1, 0x50(r31)
/* 802825EC 0027F52C 48 00 00 B8 */ b lbl_802826A4
lbl_802825F0:
/* 802825F0 0027F530 C8 22 BA 28 */ lfd f1, lbl_80455428-_SDA2_BASE_(r2)
/* 802825F4 0027F534 C8 1F 00 10 */ lfd f0, 0x10(r31)
/* 802825F8 0027F538 FC 02 00 2A */ fadd f0, f2, f0
/* 802825FC 0027F53C FC 01 00 32 */ fmul f0, f1, f0
/* 80282600 0027F540 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 80282604 0027F544 40 80 00 0C */ bge lbl_80282610
/* 80282608 0027F548 C8 3F 00 48 */ lfd f1, 0x48(r31)
/* 8028260C 0027F54C 48 00 00 98 */ b lbl_802826A4
lbl_80282610:
/* 80282610 0027F550 C8 3F 00 50 */ lfd f1, 0x50(r31)
/* 80282614 0027F554 48 00 00 90 */ b lbl_802826A4
lbl_80282618:
/* 80282618 0027F558 FC 1F 10 40 */ fcmpo cr0, f31, f2
/* 8028261C 0027F55C 40 80 00 0C */ bge lbl_80282628
/* 80282620 0027F560 C8 3F 00 48 */ lfd f1, 0x48(r31)
/* 80282624 0027F564 48 00 00 80 */ b lbl_802826A4
lbl_80282628:
/* 80282628 0027F568 C8 BF 00 10 */ lfd f5, 0x10(r31)
/* 8028262C 0027F56C FC 1F 28 40 */ fcmpo cr0, f31, f5
/* 80282630 0027F570 4C 41 13 82 */ cror 2, 1, 2
/* 80282634 0027F574 40 82 00 0C */ bne lbl_80282640
/* 80282638 0027F578 C8 3F 00 50 */ lfd f1, 0x50(r31)
/* 8028263C 0027F57C 48 00 00 68 */ b lbl_802826A4
lbl_80282640:
/* 80282640 0027F580 80 1F 00 40 */ lwz r0, 0x40(r31)
/* 80282644 0027F584 2C 00 00 02 */ cmpwi r0, 2
/* 80282648 0027F588 41 82 00 44 */ beq lbl_8028268C
/* 8028264C 0027F58C 40 80 00 14 */ bge lbl_80282660
/* 80282650 0027F590 2C 00 00 00 */ cmpwi r0, 0
/* 80282654 0027F594 41 82 FF 9C */ beq lbl_802825F0
/* 80282658 0027F598 40 80 00 10 */ bge lbl_80282668
/* 8028265C 0027F59C 4B FF FF 94 */ b lbl_802825F0
lbl_80282660:
/* 80282660 0027F5A0 2C 00 00 04 */ cmpwi r0, 4
/* 80282664 0027F5A4 40 80 FF 8C */ bge lbl_802825F0
lbl_80282668:
/* 80282668 0027F5A8 C8 7F 00 48 */ lfd f3, 0x48(r31)
/* 8028266C 0027F5AC FC 3F 10 28 */ fsub f1, f31, f2
/* 80282670 0027F5B0 C8 1F 00 50 */ lfd f0, 0x50(r31)
/* 80282674 0027F5B4 FC 00 18 28 */ fsub f0, f0, f3
/* 80282678 0027F5B8 FC 21 00 32 */ fmul f1, f1, f0
/* 8028267C 0027F5BC C8 1F 00 18 */ lfd f0, 0x18(r31)
/* 80282680 0027F5C0 FC 01 00 24 */ fdiv f0, f1, f0
/* 80282684 0027F5C4 FC 23 00 2A */ fadd f1, f3, f0
/* 80282688 0027F5C8 48 00 00 1C */ b lbl_802826A4
lbl_8028268C:
/* 8028268C 0027F5CC FC 20 F8 90 */ fmr f1, f31
/* 80282690 0027F5D0 C8 7F 00 48 */ lfd f3, 0x48(r31)
/* 80282694 0027F5D4 C8 82 BA 00 */ lfd f4, lbl_80455400-_SDA2_BASE_(r2)
/* 80282698 0027F5D8 C8 DF 00 50 */ lfd f6, 0x50(r31)
/* 8028269C 0027F5DC FC E0 20 90 */ fmr f7, f4
/* 802826A0 0027F5E0 4B FF F0 71 */ bl interpolateValue_hermite__Q27JStudio13functionvalueFddddddd
lbl_802826A4:
/* 802826A4 0027F5E4 CB E1 00 18 */ lfd f31, 0x18(r1)
/* 802826A8 0027F5E8 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 802826AC 0027F5EC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802826B0 0027F5F0 7C 08 03 A6 */ mtlr r0
/* 802826B4 0027F5F4 38 21 00 20 */ addi r1, r1, 0x20
/* 802826B8 0027F5F8 4E 80 00 20 */ blr
@@ -0,0 +1,57 @@
/* 80282F10 0027FE50 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80282F14 0027FE54 7C 08 02 A6 */ mflr r0
/* 80282F18 0027FE58 90 01 00 34 */ stw r0, 0x34(r1)
/* 80282F1C 0027FE5C 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 80282F20 0027FE60 7C 7F 1B 78 */ mr r31, r3
/* 80282F24 0027FE64 D8 21 00 08 */ stfd f1, 8(r1)
/* 80282F28 0027FE68 80 A3 00 44 */ lwz r5, 0x44(r3)
/* 80282F2C 0027FE6C 38 7F 00 08 */ addi r3, r31, 8
/* 80282F30 0027FE70 C0 45 00 00 */ lfs f2, 0(r5)
/* 80282F34 0027FE74 80 9F 00 48 */ lwz r4, 0x48(r31)
/* 80282F38 0027FE78 38 04 FF FF */ addi r0, r4, -1
/* 80282F3C 0027FE7C 54 00 18 38 */ slwi r0, r0, 3
/* 80282F40 0027FE80 7C 65 04 2E */ lfsx f3, r5, r0
/* 80282F44 0027FE84 4B FF EA C5 */ bl range_getParameter__Q27JStudio29TFunctionValueAttribute_rangeCFddd
/* 80282F48 0027FE88 D8 21 00 08 */ stfd f1, 8(r1)
/* 80282F4C 0027FE8C 80 1F 00 54 */ lwz r0, 0x54(r31)
/* 80282F50 0027FE90 90 01 00 10 */ stw r0, 0x10(r1)
/* 80282F54 0027FE94 80 1F 00 50 */ lwz r0, 0x50(r31)
/* 80282F58 0027FE98 90 01 00 14 */ stw r0, 0x14(r1)
/* 80282F5C 0027FE9C 80 1F 00 4C */ lwz r0, 0x4c(r31)
/* 80282F60 0027FEA0 90 01 00 18 */ stw r0, 0x18(r1)
/* 80282F64 0027FEA4 38 61 00 1C */ addi r3, r1, 0x1c
/* 80282F68 0027FEA8 38 81 00 18 */ addi r4, r1, 0x18
/* 80282F6C 0027FEAC 38 A1 00 14 */ addi r5, r1, 0x14
/* 80282F70 0027FEB0 38 C1 00 10 */ addi r6, r1, 0x10
/* 80282F74 0027FEB4 38 E1 00 08 */ addi r7, r1, 8
/* 80282F78 0027FEB8 48 00 06 65 */ bl JGadget_NS_findUpperBound_binary_current
/* 80282F7C 0027FEBC 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80282F80 0027FEC0 90 1F 00 54 */ stw r0, 0x54(r31)
/* 80282F84 0027FEC4 80 7F 00 54 */ lwz r3, 0x54(r31)
/* 80282F88 0027FEC8 80 1F 00 4C */ lwz r0, 0x4c(r31)
/* 80282F8C 0027FECC 7C 03 00 40 */ cmplw r3, r0
/* 80282F90 0027FED0 40 82 00 0C */ bne lbl_80282F9C
/* 80282F94 0027FED4 C0 23 00 04 */ lfs f1, 4(r3)
/* 80282F98 0027FED8 48 00 00 3C */ b lbl_80282FD4
lbl_80282F9C:
/* 80282F9C 0027FEDC 80 1F 00 50 */ lwz r0, 0x50(r31)
/* 80282FA0 0027FEE0 7C 03 00 40 */ cmplw r3, r0
/* 80282FA4 0027FEE4 40 82 00 1C */ bne lbl_80282FC0
/* 80282FA8 0027FEE8 80 7F 00 54 */ lwz r3, 0x54(r31)
/* 80282FAC 0027FEEC 38 03 FF F8 */ addi r0, r3, -8
/* 80282FB0 0027FEF0 90 1F 00 54 */ stw r0, 0x54(r31)
/* 80282FB4 0027FEF4 80 7F 00 54 */ lwz r3, 0x54(r31)
/* 80282FB8 0027FEF8 C0 23 00 04 */ lfs f1, 4(r3)
/* 80282FBC 0027FEFC 48 00 00 18 */ b lbl_80282FD4
lbl_80282FC0:
/* 80282FC0 0027FF00 7F E3 FB 78 */ mr r3, r31
/* 80282FC4 0027FF04 C8 21 00 08 */ lfd f1, 8(r1)
/* 80282FC8 0027FF08 81 9F 00 58 */ lwz r12, 0x58(r31)
/* 80282FCC 0027FF0C 7D 89 03 A6 */ mtctr r12
/* 80282FD0 0027FF10 4E 80 04 21 */ bctrl
lbl_80282FD4:
/* 80282FD4 0027FF14 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 80282FD8 0027FF18 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80282FDC 0027FF1C 7C 08 03 A6 */ mtlr r0
/* 80282FE0 0027FF20 38 21 00 30 */ addi r1, r1, 0x30
/* 80282FE4 0027FF24 4E 80 00 20 */ blr
@@ -0,0 +1,82 @@
/* 802817D8 0027E718 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802817DC 0027E71C DB E1 00 08 */ stfd f31, 8(r1)
/* 802817E0 0027E720 C8 C4 00 00 */ lfd f6, 0(r4)
/* 802817E4 0027E724 C8 A4 00 08 */ lfd f5, 8(r4)
/* 802817E8 0027E728 C8 E4 00 10 */ lfd f7, 0x10(r4)
/* 802817EC 0027E72C C9 04 00 18 */ lfd f8, 0x18(r4)
/* 802817F0 0027E730 C9 24 00 20 */ lfd f9, 0x20(r4)
/* 802817F4 0027E734 C9 44 00 28 */ lfd f10, 0x28(r4)
/* 802817F8 0027E738 FD 61 28 28 */ fsub f11, f1, f5
/* 802817FC 0027E73C FD 81 38 28 */ fsub f12, f1, f7
/* 80281800 0027E740 FC 08 08 28 */ fsub f0, f8, f1
/* 80281804 0027E744 FC 49 08 28 */ fsub f2, f9, f1
/* 80281808 0027E748 C8 82 BA 08 */ lfd f4, lbl_80455408-_SDA2_BASE_(r2)
/* 8028180C 0027E74C FC 68 38 28 */ fsub f3, f8, f7
/* 80281810 0027E750 FD A4 18 24 */ fdiv f13, f4, f3
/* 80281814 0027E754 FC 80 03 72 */ fmul f4, f0, f13
/* 80281818 0027E758 FC 68 28 28 */ fsub f3, f8, f5
/* 8028181C 0027E75C FF E4 18 24 */ fdiv f31, f4, f3
/* 80281820 0027E760 FC 8C 03 72 */ fmul f4, f12, f13
/* 80281824 0027E764 FC 69 38 28 */ fsub f3, f9, f7
/* 80281828 0027E768 FD A4 18 24 */ fdiv f13, f4, f3
/* 8028182C 0027E76C FC 80 07 F2 */ fmul f4, f0, f31
/* 80281830 0027E770 FC 68 30 28 */ fsub f3, f8, f6
/* 80281834 0027E774 FD 04 18 24 */ fdiv f8, f4, f3
/* 80281838 0027E778 FC 8B 07 F2 */ fmul f4, f11, f31
/* 8028183C 0027E77C FC 62 03 72 */ fmul f3, f2, f13
/* 80281840 0027E780 FC 84 18 2A */ fadd f4, f4, f3
/* 80281844 0027E784 FC 69 28 28 */ fsub f3, f9, f5
/* 80281848 0027E788 FD 24 18 24 */ fdiv f9, f4, f3
/* 8028184C 0027E78C FC 8C 03 72 */ fmul f4, f12, f13
/* 80281850 0027E790 FC 6A 38 28 */ fsub f3, f10, f7
/* 80281854 0027E794 FC E4 18 24 */ fdiv f7, f4, f3
/* 80281858 0027E798 FC 8C 01 F2 */ fmul f4, f12, f7
/* 8028185C 0027E79C C8 63 00 18 */ lfd f3, 0x18(r3)
/* 80281860 0027E7A0 FC A4 00 F2 */ fmul f5, f4, f3
/* 80281864 0027E7A4 FC 8B 02 72 */ fmul f4, f11, f9
/* 80281868 0027E7A8 FC 6A 08 28 */ fsub f3, f10, f1
/* 8028186C 0027E7AC FC 63 01 F2 */ fmul f3, f3, f7
/* 80281870 0027E7B0 FC 84 18 2A */ fadd f4, f4, f3
/* 80281874 0027E7B4 C8 63 00 10 */ lfd f3, 0x10(r3)
/* 80281878 0027E7B8 FC 84 00 F2 */ fmul f4, f4, f3
/* 8028187C 0027E7BC FC 60 02 32 */ fmul f3, f0, f8
/* 80281880 0027E7C0 C8 03 00 00 */ lfd f0, 0(r3)
/* 80281884 0027E7C4 FC 63 00 32 */ fmul f3, f3, f0
/* 80281888 0027E7C8 FC 01 30 28 */ fsub f0, f1, f6
/* 8028188C 0027E7CC FC 20 02 32 */ fmul f1, f0, f8
/* 80281890 0027E7D0 FC 02 02 72 */ fmul f0, f2, f9
/* 80281894 0027E7D4 FC 21 00 2A */ fadd f1, f1, f0
/* 80281898 0027E7D8 C8 03 00 08 */ lfd f0, 8(r3)
/* 8028189C 0027E7DC FC 01 00 32 */ fmul f0, f1, f0
/* 802818A0 0027E7E0 FC 03 00 2A */ fadd f0, f3, f0
/* 802818A4 0027E7E4 FC 04 00 2A */ fadd f0, f4, f0
/* 802818A8 0027E7E8 FC 25 00 2A */ fadd f1, f5, f0
/* 802818AC 0027E7EC CB E1 00 08 */ lfd f31, 8(r1)
/* 802818B0 0027E7F0 38 21 00 10 */ addi r1, r1, 0x10
/* 802818B4 0027E7F4 4E 80 00 20 */ blr
/* 802818B8 0027E7F8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802818BC 0027E7FC 7C 08 02 A6 */ mflr r0
/* 802818C0 0027E800 90 01 00 24 */ stw r0, 0x24(r1)
/* 802818C4 0027E804 DB E1 00 18 */ stfd f31, 0x18(r1)
/* 802818C8 0027E808 DB C1 00 10 */ stfd f30, 0x10(r1)
/* 802818CC 0027E80C FF C0 10 90 */ fmr f30, f2
/* 802818D0 0027E810 C8 02 BA 38 */ lfd f0, 0x80455438 - 0x80459A00(r2) /*SDA HACK; original: lbl_80455438-_SDA2_BASE_(r2)*/
/* 802818D4 0027E814 FF E0 07 B2 */ fmul f31, f0, f30
/* 802818D8 0027E818 FC 40 F8 90 */ fmr f2, f31
/* 802818DC 0027E81C 48 0E AE 85 */ bl func_8036C760
/* 802818E0 0027E820 C8 02 BA 00 */ lfd f0, 0x80455400 - 0x80459A00(r2) /*SDA HACK; original: lbl_80455400-_SDA2_BASE_(r2)*/
/* 802818E4 0027E824 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 802818E8 0027E828 40 80 00 08 */ bge lbl_802818F0
/* 802818EC 0027E82C FC 21 F8 2A */ fadd f1, f1, f31
lbl_802818F0:
/* 802818F0 0027E830 FC 01 F0 40 */ fcmpo cr0, f1, f30
/* 802818F4 0027E834 4C 41 13 82 */ cror 2, 1, 2
/* 802818F8 0027E838 40 82 00 08 */ bne lbl_80281900
/* 802818FC 0027E83C FC 3F 08 28 */ fsub f1, f31, f1
lbl_80281900:
/* 80281900 0027E840 CB E1 00 18 */ lfd f31, 0x18(r1)
/* 80281904 0027E844 CB C1 00 10 */ lfd f30, 0x10(r1)
/* 80281908 0027E848 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8028190C 0027E84C 7C 08 03 A6 */ mtlr r0
/* 80281910 0027E850 38 21 00 20 */ addi r1, r1, 0x20
/* 80281914 0027E854 4E 80 00 20 */ blr
@@ -0,0 +1,25 @@
/* 80281774 0027E6B4 C8 02 BA 08 */ lfd f0, lbl_80455408-_SDA2_BASE_(r2)
/* 80281778 0027E6B8 FC C0 08 28 */ fsub f6, f0, f1
/* 8028177C 0027E6BC FC 06 01 B2 */ fmul f0, f6, f6
/* 80281780 0027E6C0 FD 00 01 B2 */ fmul f8, f0, f6
/* 80281784 0027E6C4 FD 21 00 72 */ fmul f9, f1, f1
/* 80281788 0027E6C8 FD 49 00 72 */ fmul f10, f9, f1
/* 8028178C 0027E6CC C8 E2 BA 20 */ lfd f7, lbl_80455420-_SDA2_BASE_(r2)
/* 80281790 0027E6D0 C8 C2 BA 28 */ lfd f6, lbl_80455428-_SDA2_BASE_(r2)
/* 80281794 0027E6D4 FC 01 48 2A */ fadd f0, f1, f9
/* 80281798 0027E6D8 FC 00 50 28 */ fsub f0, f0, f10
/* 8028179C 0027E6DC FC 06 00 32 */ fmul f0, f6, f0
/* 802817A0 0027E6E0 FC 07 00 2A */ fadd f0, f7, f0
/* 802817A4 0027E6E4 FC 80 01 32 */ fmul f4, f0, f4
/* 802817A8 0027E6E8 C8 22 BA 30 */ lfd f1, lbl_80455430-_SDA2_BASE_(r2)
/* 802817AC 0027E6EC FC 06 02 B2 */ fmul f0, f6, f10
/* 802817B0 0027E6F0 FC 00 48 28 */ fsub f0, f0, f9
/* 802817B4 0027E6F4 FC 01 00 2A */ fadd f0, f1, f0
/* 802817B8 0027E6F8 FC 60 00 F2 */ fmul f3, f0, f3
/* 802817BC 0027E6FC FC 28 00 B2 */ fmul f1, f8, f2
/* 802817C0 0027E700 FC 0A 01 72 */ fmul f0, f10, f5
/* 802817C4 0027E704 FC 01 00 2A */ fadd f0, f1, f0
/* 802817C8 0027E708 FC 07 00 32 */ fmul f0, f7, f0
/* 802817CC 0027E70C FC 03 00 2A */ fadd f0, f3, f0
/* 802817D0 0027E710 FC 24 00 2A */ fadd f1, f4, f0
/* 802817D4 0027E714 4E 80 00 20 */ blr
@@ -0,0 +1,25 @@
/* 80281710 0027E650 FD 21 10 28 */ fsub f9, f1, f2
/* 80281714 0027E654 C9 02 BA 08 */ lfd f8, lbl_80455408-_SDA2_BASE_(r2)
/* 80281718 0027E658 FC 05 10 28 */ fsub f0, f5, f2
/* 8028171C 0027E65C FC 08 00 24 */ fdiv f0, f8, f0
/* 80281720 0027E660 FC 49 00 32 */ fmul f2, f9, f0
/* 80281724 0027E664 FD 42 40 28 */ fsub f10, f2, f8
/* 80281728 0027E668 C8 22 BA 10 */ lfd f1, lbl_80455410-_SDA2_BASE_(r2)
/* 8028172C 0027E66C C8 02 BA 18 */ lfd f0, lbl_80455418-_SDA2_BASE_(r2)
/* 80281730 0027E670 FC 00 00 B2 */ fmul f0, f0, f2
/* 80281734 0027E674 FC 21 00 2A */ fadd f1, f1, f0
/* 80281738 0027E678 FC 02 00 B2 */ fmul f0, f2, f2
/* 8028173C 0027E67C FD 61 00 32 */ fmul f11, f1, f0
/* 80281740 0027E680 FC 0A 02 72 */ fmul f0, f10, f9
/* 80281744 0027E684 FC 02 00 32 */ fmul f0, f2, f0
/* 80281748 0027E688 FC A0 01 F2 */ fmul f5, f0, f7
/* 8028174C 0027E68C FC 0A 02 B2 */ fmul f0, f10, f10
/* 80281750 0027E690 FC 09 00 32 */ fmul f0, f9, f0
/* 80281754 0027E694 FC 40 01 32 */ fmul f2, f0, f4
/* 80281758 0027E698 FC 08 58 28 */ fsub f0, f8, f11
/* 8028175C 0027E69C FC 20 00 F2 */ fmul f1, f0, f3
/* 80281760 0027E6A0 FC 0B 01 B2 */ fmul f0, f11, f6
/* 80281764 0027E6A4 FC 01 00 2A */ fadd f0, f1, f0
/* 80281768 0027E6A8 FC 02 00 2A */ fadd f0, f2, f0
/* 8028176C 0027E6AC FC 25 00 2A */ fadd f1, f5, f0
/* 80281770 0027E6B0 4E 80 00 20 */ blr
@@ -0,0 +1,146 @@
/* 80283FC8 00280F08 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 80283FCC 00280F0C 7C 08 02 A6 */ mflr r0
/* 80283FD0 00280F10 90 01 00 64 */ stw r0, 0x64(r1)
/* 80283FD4 00280F14 39 61 00 60 */ addi r11, r1, 0x60
/* 80283FD8 00280F18 48 0D E1 ED */ bl _savegpr_23
/* 80283FDC 00280F1C 7C 7A 1B 78 */ mr r26, r3
/* 80283FE0 00280F20 7C 97 23 78 */ mr r23, r4
/* 80283FE4 00280F24 7C BB 2B 78 */ mr r27, r5
/* 80283FE8 00280F28 38 61 00 14 */ addi r3, r1, 0x14
/* 80283FEC 00280F2C 80 9A 00 14 */ lwz r4, 0x14(r26)
/* 80283FF0 00280F30 81 84 00 00 */ lwz r12, 0(r4)
/* 80283FF4 00280F34 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 80283FF8 00280F38 7D 89 03 A6 */ mtctr r12
/* 80283FFC 00280F3C 4E 80 04 21 */ bctrl
/* 80284000 00280F40 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80284004 00280F44 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80284008 00280F48 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 8028400C 00280F4C 80 97 00 00 */ lwz r4, 0(r23)
/* 80284010 00280F50 80 04 00 00 */ lwz r0, 0(r4)
/* 80284014 00280F54 7F 84 02 14 */ add r28, r4, r0
/* 80284018 00280F58 A0 64 00 06 */ lhz r3, 6(r4)
/* 8028401C 00280F5C 38 03 00 03 */ addi r0, r3, 3
/* 80284020 00280F60 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d
/* 80284024 00280F64 7C 64 02 14 */ add r3, r4, r0
/* 80284028 00280F68 38 63 00 08 */ addi r3, r3, 8
/* 8028402C 00280F6C 48 00 01 8C */ b lbl_802841B8
lbl_80284030:
/* 80284030 00280F70 90 61 00 10 */ stw r3, 0x10(r1)
/* 80284034 00280F74 38 61 00 10 */ addi r3, r1, 0x10
/* 80284038 00280F78 38 81 00 20 */ addi r4, r1, 0x20
/* 8028403C 00280F7C 48 00 10 71 */ bl JStudio_NS_fvb_NS_data_NS_TParse_TParagraph_NS_getData
/* 80284040 00280F80 80 81 00 28 */ lwz r4, 0x28(r1)
/* 80284044 00280F84 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80284048 00280F88 28 00 00 16 */ cmplwi r0, 0x16
/* 8028404C 00280F8C 41 81 01 68 */ bgt lbl_802841B4
/* 80284050 00280F90 3C 60 80 3C */ lis r3, lbl_803C49C0@ha
/* 80284054 00280F94 38 63 49 C0 */ addi r3, r3, lbl_803C49C0@l
/* 80284058 00280F98 54 00 10 3A */ slwi r0, r0, 2
/* 8028405C 00280F9C 7C 03 00 2E */ lwzx r0, r3, r0
/* 80284060 00280FA0 7C 09 03 A6 */ mtctr r0
/* 80284064 00280FA4 4E 80 04 20 */ bctr
/* 80284068 00280FA8 7F 43 D3 78 */ mr r3, r26
/* 8028406C 00280FAC 38 81 00 20 */ addi r4, r1, 0x20
/* 80284070 00280FB0 7F 65 DB 78 */ mr r5, r27
/* 80284074 00280FB4 81 9A 00 08 */ lwz r12, 8(r26)
/* 80284078 00280FB8 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8028407C 00280FBC 7D 89 03 A6 */ mtctr r12
/* 80284080 00280FC0 4E 80 04 21 */ bctrl
/* 80284084 00280FC4 48 00 01 30 */ b lbl_802841B4
/* 80284088 00280FC8 28 1F 00 00 */ cmplwi r31, 0
/* 8028408C 00280FCC 41 82 01 28 */ beq lbl_802841B4
/* 80284090 00280FD0 83 24 00 00 */ lwz r25, 0(r4)
/* 80284094 00280FD4 3B 04 00 04 */ addi r24, r4, 4
/* 80284098 00280FD8 48 00 00 4C */ b lbl_802840E4
lbl_8028409C:
/* 8028409C 00280FDC 82 F8 00 00 */ lwz r23, 0(r24)
/* 802840A0 00280FE0 7F 63 DB 78 */ mr r3, r27
/* 802840A4 00280FE4 38 98 00 04 */ addi r4, r24, 4
/* 802840A8 00280FE8 7E E5 BB 78 */ mr r5, r23
/* 802840AC 00280FEC 48 00 07 89 */ bl getObject__Q37JStudio3fvb8TControlFPCvUl
/* 802840B0 00280FF0 28 03 00 00 */ cmplwi r3, 0
/* 802840B4 00280FF4 41 82 00 1C */ beq lbl_802840D0
/* 802840B8 00280FF8 80 03 00 14 */ lwz r0, 0x14(r3)
/* 802840BC 00280FFC 90 01 00 0C */ stw r0, 0xc(r1)
/* 802840C0 00281000 7F E3 FB 78 */ mr r3, r31
/* 802840C4 00281004 80 9F 00 08 */ lwz r4, 8(r31)
/* 802840C8 00281008 38 A1 00 0C */ addi r5, r1, 0xc
/* 802840CC 0028100C 48 05 8C D9 */ bl JGadget_NS_TVector_pointer_void_NS_insert
lbl_802840D0:
/* 802840D0 00281010 38 17 00 03 */ addi r0, r23, 3
/* 802840D4 00281014 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d
/* 802840D8 00281018 7F 00 C2 14 */ add r24, r0, r24
/* 802840DC 0028101C 3B 18 00 04 */ addi r24, r24, 4
/* 802840E0 00281020 3B 39 FF FF */ addi r25, r25, -1
lbl_802840E4:
/* 802840E4 00281024 28 19 00 00 */ cmplwi r25, 0
/* 802840E8 00281028 40 82 FF B4 */ bne lbl_8028409C
/* 802840EC 0028102C 48 00 00 C8 */ b lbl_802841B4
/* 802840F0 00281030 28 1F 00 00 */ cmplwi r31, 0
/* 802840F4 00281034 41 82 00 C0 */ beq lbl_802841B4
/* 802840F8 00281038 7C 97 23 78 */ mr r23, r4
/* 802840FC 0028103C 83 04 00 00 */ lwz r24, 0(r4)
/* 80284100 00281040 48 00 00 34 */ b lbl_80284134
lbl_80284104:
/* 80284104 00281044 7F 63 DB 78 */ mr r3, r27
/* 80284108 00281048 80 97 00 00 */ lwz r4, 0(r23)
/* 8028410C 0028104C 48 00 07 C9 */ bl getObject_index__Q37JStudio3fvb8TControlFUl
/* 80284110 00281050 28 03 00 00 */ cmplwi r3, 0
/* 80284114 00281054 41 82 00 1C */ beq lbl_80284130
/* 80284118 00281058 80 03 00 14 */ lwz r0, 0x14(r3)
/* 8028411C 0028105C 90 01 00 08 */ stw r0, 8(r1)
/* 80284120 00281060 7F E3 FB 78 */ mr r3, r31
/* 80284124 00281064 80 9F 00 08 */ lwz r4, 8(r31)
/* 80284128 00281068 38 A1 00 08 */ addi r5, r1, 8
/* 8028412C 0028106C 48 05 8C 79 */ bl JGadget_NS_TVector_pointer_void_NS_insert
lbl_80284130:
/* 80284130 00281070 3B 18 FF FF */ addi r24, r24, -1
lbl_80284134:
/* 80284134 00281074 28 18 00 00 */ cmplwi r24, 0
/* 80284138 00281078 3A F7 00 04 */ addi r23, r23, 4
/* 8028413C 0028107C 40 82 FF C8 */ bne lbl_80284104
/* 80284140 00281080 48 00 00 74 */ b lbl_802841B4
/* 80284144 00281084 28 1E 00 00 */ cmplwi r30, 0
/* 80284148 00281088 41 82 00 6C */ beq lbl_802841B4
/* 8028414C 0028108C 7F C3 F3 78 */ mr r3, r30
/* 80284150 00281090 C0 24 00 00 */ lfs f1, 0(r4)
/* 80284154 00281094 C0 44 00 04 */ lfs f2, 4(r4)
/* 80284158 00281098 4B FF D8 9D */ bl range_set__Q27JStudio29TFunctionValueAttribute_rangeFdd
/* 8028415C 0028109C 48 00 00 58 */ b lbl_802841B4
/* 80284160 002810A0 28 1E 00 00 */ cmplwi r30, 0
/* 80284164 002810A4 41 82 00 50 */ beq lbl_802841B4
/* 80284168 002810A8 80 04 00 00 */ lwz r0, 0(r4)
/* 8028416C 002810AC 98 1E 00 18 */ stb r0, 0x18(r30)
/* 80284170 002810B0 48 00 00 44 */ b lbl_802841B4
/* 80284174 002810B4 28 1E 00 00 */ cmplwi r30, 0
/* 80284178 002810B8 41 82 00 3C */ beq lbl_802841B4
/* 8028417C 002810BC 80 04 00 00 */ lwz r0, 0(r4)
/* 80284180 002810C0 98 1E 00 19 */ stb r0, 0x19(r30)
/* 80284184 002810C4 48 00 00 30 */ b lbl_802841B4
/* 80284188 002810C8 28 1E 00 00 */ cmplwi r30, 0
/* 8028418C 002810CC 41 82 00 28 */ beq lbl_802841B4
/* 80284190 002810D0 A0 64 00 02 */ lhz r3, 2(r4)
/* 80284194 002810D4 A0 04 00 00 */ lhz r0, 0(r4)
/* 80284198 002810D8 90 1E 00 30 */ stw r0, 0x30(r30)
/* 8028419C 002810DC 90 7E 00 34 */ stw r3, 0x34(r30)
/* 802841A0 002810E0 48 00 00 14 */ b lbl_802841B4
/* 802841A4 002810E4 28 1D 00 00 */ cmplwi r29, 0
/* 802841A8 002810E8 41 82 00 0C */ beq lbl_802841B4
/* 802841AC 002810EC 80 04 00 00 */ lwz r0, 0(r4)
/* 802841B0 002810F0 90 1D 00 00 */ stw r0, 0(r29)
lbl_802841B4:
/* 802841B4 002810F4 80 61 00 2C */ lwz r3, 0x2c(r1)
lbl_802841B8:
/* 802841B8 002810F8 7C 03 E0 40 */ cmplw r3, r28
/* 802841BC 002810FC 41 80 FE 74 */ blt lbl_80284030
/* 802841C0 00281100 80 7A 00 14 */ lwz r3, 0x14(r26)
/* 802841C4 00281104 81 83 00 00 */ lwz r12, 0(r3)
/* 802841C8 00281108 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 802841CC 0028110C 7D 89 03 A6 */ mtctr r12
/* 802841D0 00281110 4E 80 04 21 */ bctrl
/* 802841D4 00281114 39 61 00 60 */ addi r11, r1, 0x60
/* 802841D8 00281118 48 0D E0 39 */ bl _restgpr_23
/* 802841DC 0028111C 80 01 00 64 */ lwz r0, 0x64(r1)
/* 802841E0 00281120 7C 08 03 A6 */ mtlr r0
/* 802841E4 00281124 38 21 00 60 */ addi r1, r1, 0x60
/* 802841E8 00281128 4E 80 00 20 */ blr
@@ -0,0 +1,25 @@
/* 802842D4 00281214 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802842D8 00281218 7C 08 02 A6 */ mflr r0
/* 802842DC 0028121C 90 01 00 24 */ stw r0, 0x24(r1)
/* 802842E0 00281220 39 61 00 20 */ addi r11, r1, 0x20
/* 802842E4 00281224 48 0D DE F9 */ bl _savegpr_29
/* 802842E8 00281228 7C 7D 1B 78 */ mr r29, r3
/* 802842EC 0028122C 83 C4 00 08 */ lwz r30, 8(r4)
/* 802842F0 00281230 80 7E 00 00 */ lwz r3, 0(r30)
/* 802842F4 00281234 4B FF FF 4D */ bl getCompositeOperation___Q27JStudio3fvbFQ47JStudio3fvb4data11TEComposite
/* 802842F8 00281238 7C 7F 1B 78 */ mr r31, r3
/* 802842FC 0028123C 38 61 00 08 */ addi r3, r1, 8
/* 80284300 00281240 38 9E 00 04 */ addi r4, r30, 4
/* 80284304 00281244 81 9F 00 04 */ lwz r12, 4(r31)
/* 80284308 00281248 7D 89 03 A6 */ mtctr r12
/* 8028430C 0028124C 4E 80 04 21 */ bctrl
/* 80284310 00281250 80 1F 00 00 */ lwz r0, 0(r31)
/* 80284314 00281254 90 1D 00 30 */ stw r0, 0x30(r29)
/* 80284318 00281258 C8 01 00 08 */ lfd f0, 8(r1)
/* 8028431C 0028125C D8 1D 00 38 */ stfd f0, 0x38(r29)
/* 80284320 00281260 39 61 00 20 */ addi r11, r1, 0x20
/* 80284324 00281264 48 0D DF 05 */ bl _restgpr_29
/* 80284328 00281268 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8028432C 0028126C 7C 08 03 A6 */ mtlr r0
/* 80284330 00281270 38 21 00 20 */ addi r1, r1, 0x20
/* 80284334 00281274 4E 80 00 20 */ blr
@@ -0,0 +1,213 @@
/* 80281A08 0027E948 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80281A0C 0027E94C 7C 08 02 A6 */ mflr r0
/* 80281A10 0027E950 90 01 00 34 */ stw r0, 0x34(r1)
/* 80281A14 0027E954 39 61 00 30 */ addi r11, r1, 0x30
/* 80281A18 0027E958 48 0E 07 2D */ bl _savefpr_29
/* 80281A1C 0027E95C 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80281A20 0027E960 7C 7F 1B 78 */ mr r31, r3
/* 80281A24 0027E964 FF E0 10 90 */ fmr f31, f2
/* 80281A28 0027E968 FF A0 18 90 */ fmr f29, f3
/* 80281A2C 0027E96C C8 63 00 20 */ lfd f3, 0x20(r3)
/* 80281A30 0027E970 C8 43 00 28 */ lfd f2, 0x28(r3)
/* 80281A34 0027E974 FC 01 18 28 */ fsub f0, f1, f3
/* 80281A38 0027E978 FC 02 00 32 */ fmul f0, f2, f0
/* 80281A3C 0027E97C FC 43 00 2A */ fadd f2, f3, f0
/* 80281A40 0027E980 88 03 00 19 */ lbz r0, 0x19(r3)
/* 80281A44 0027E984 7C 00 07 74 */ extsb r0, r0
/* 80281A48 0027E988 2C 00 00 02 */ cmpwi r0, 2
/* 80281A4C 0027E98C 41 82 01 1C */ beq lbl_80281B68
/* 80281A50 0027E990 40 80 00 14 */ bge lbl_80281A64
/* 80281A54 0027E994 2C 00 00 00 */ cmpwi r0, 0
/* 80281A58 0027E998 41 82 00 1C */ beq lbl_80281A74
/* 80281A5C 0027E99C 40 80 00 90 */ bge lbl_80281AEC
/* 80281A60 0027E9A0 48 00 00 14 */ b lbl_80281A74
lbl_80281A64:
/* 80281A64 0027E9A4 2C 00 00 04 */ cmpwi r0, 4
/* 80281A68 0027E9A8 41 82 02 0C */ beq lbl_80281C74
/* 80281A6C 0027E9AC 40 80 00 08 */ bge lbl_80281A74
/* 80281A70 0027E9B0 48 00 01 78 */ b lbl_80281BE8
lbl_80281A74:
/* 80281A74 0027E9B4 C8 1F 00 00 */ lfd f0, 0(r31)
/* 80281A78 0027E9B8 FF E2 00 28 */ fsub f31, f2, f0
/* 80281A7C 0027E9BC C8 02 BA 00 */ lfd f0, lbl_80455400-_SDA2_BASE_(r2)
/* 80281A80 0027E9C0 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 80281A84 0027E9C4 40 80 00 28 */ bge lbl_80281AAC
/* 80281A88 0027E9C8 80 7F 00 30 */ lwz r3, 0x30(r31)
/* 80281A8C 0027E9CC 4B FF FB BD */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 80281A90 0027E9D0 FC 20 F8 90 */ fmr f1, f31
/* 80281A94 0027E9D4 C8 5F 00 10 */ lfd f2, 0x10(r31)
/* 80281A98 0027E9D8 7C 6C 1B 78 */ mr r12, r3
/* 80281A9C 0027E9DC 7D 89 03 A6 */ mtctr r12
/* 80281AA0 0027E9E0 4E 80 04 21 */ bctrl
/* 80281AA4 0027E9E4 FF E0 08 90 */ fmr f31, f1
/* 80281AA8 0027E9E8 48 00 00 34 */ b lbl_80281ADC
lbl_80281AAC:
/* 80281AAC 0027E9EC C8 1F 00 10 */ lfd f0, 0x10(r31)
/* 80281AB0 0027E9F0 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 80281AB4 0027E9F4 4C 41 13 82 */ cror 2, 1, 2
/* 80281AB8 0027E9F8 40 82 00 24 */ bne lbl_80281ADC
/* 80281ABC 0027E9FC 80 7F 00 34 */ lwz r3, 0x34(r31)
/* 80281AC0 0027EA00 4B FF FB 89 */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 80281AC4 0027EA04 FC 20 F8 90 */ fmr f1, f31
/* 80281AC8 0027EA08 C8 5F 00 10 */ lfd f2, 0x10(r31)
/* 80281ACC 0027EA0C 7C 6C 1B 78 */ mr r12, r3
/* 80281AD0 0027EA10 7D 89 03 A6 */ mtctr r12
/* 80281AD4 0027EA14 4E 80 04 21 */ bctrl
/* 80281AD8 0027EA18 FF E0 08 90 */ fmr f31, f1
lbl_80281ADC:
/* 80281ADC 0027EA1C C8 1F 00 00 */ lfd f0, 0(r31)
/* 80281AE0 0027EA20 FF FF 00 2A */ fadd f31, f31, f0
/* 80281AE4 0027EA24 FC 20 F8 90 */ fmr f1, f31
/* 80281AE8 0027EA28 48 00 02 14 */ b lbl_80281CFC
lbl_80281AEC:
/* 80281AEC 0027EA2C C8 1F 00 00 */ lfd f0, 0(r31)
/* 80281AF0 0027EA30 FF E2 00 2A */ fadd f31, f2, f0
/* 80281AF4 0027EA34 FF FF 00 28 */ fsub f31, f31, f0
/* 80281AF8 0027EA38 C8 02 BA 00 */ lfd f0, lbl_80455400-_SDA2_BASE_(r2)
/* 80281AFC 0027EA3C FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 80281B00 0027EA40 40 80 00 28 */ bge lbl_80281B28
/* 80281B04 0027EA44 80 7F 00 30 */ lwz r3, 0x30(r31)
/* 80281B08 0027EA48 4B FF FB 41 */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 80281B0C 0027EA4C FC 20 F8 90 */ fmr f1, f31
/* 80281B10 0027EA50 C8 5F 00 10 */ lfd f2, 0x10(r31)
/* 80281B14 0027EA54 7C 6C 1B 78 */ mr r12, r3
/* 80281B18 0027EA58 7D 89 03 A6 */ mtctr r12
/* 80281B1C 0027EA5C 4E 80 04 21 */ bctrl
/* 80281B20 0027EA60 FF E0 08 90 */ fmr f31, f1
/* 80281B24 0027EA64 48 00 00 34 */ b lbl_80281B58
lbl_80281B28:
/* 80281B28 0027EA68 C8 1F 00 10 */ lfd f0, 0x10(r31)
/* 80281B2C 0027EA6C FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 80281B30 0027EA70 4C 41 13 82 */ cror 2, 1, 2
/* 80281B34 0027EA74 40 82 00 24 */ bne lbl_80281B58
/* 80281B38 0027EA78 80 7F 00 34 */ lwz r3, 0x34(r31)
/* 80281B3C 0027EA7C 4B FF FB 0D */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 80281B40 0027EA80 FC 20 F8 90 */ fmr f1, f31
/* 80281B44 0027EA84 C8 5F 00 10 */ lfd f2, 0x10(r31)
/* 80281B48 0027EA88 7C 6C 1B 78 */ mr r12, r3
/* 80281B4C 0027EA8C 7D 89 03 A6 */ mtctr r12
/* 80281B50 0027EA90 4E 80 04 21 */ bctrl
/* 80281B54 0027EA94 FF E0 08 90 */ fmr f31, f1
lbl_80281B58:
/* 80281B58 0027EA98 C8 1F 00 00 */ lfd f0, 0(r31)
/* 80281B5C 0027EA9C FF FF 00 2A */ fadd f31, f31, f0
/* 80281B60 0027EAA0 FC 20 F8 90 */ fmr f1, f31
/* 80281B64 0027EAA4 48 00 01 98 */ b lbl_80281CFC
lbl_80281B68:
/* 80281B68 0027EAA8 C8 1F 00 08 */ lfd f0, 8(r31)
/* 80281B6C 0027EAAC FF E2 00 2A */ fadd f31, f2, f0
/* 80281B70 0027EAB0 C8 1F 00 00 */ lfd f0, 0(r31)
/* 80281B74 0027EAB4 FF FF 00 28 */ fsub f31, f31, f0
/* 80281B78 0027EAB8 C8 02 BA 00 */ lfd f0, lbl_80455400-_SDA2_BASE_(r2)
/* 80281B7C 0027EABC FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 80281B80 0027EAC0 40 80 00 28 */ bge lbl_80281BA8
/* 80281B84 0027EAC4 80 7F 00 30 */ lwz r3, 0x30(r31)
/* 80281B88 0027EAC8 4B FF FA C1 */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 80281B8C 0027EACC FC 20 F8 90 */ fmr f1, f31
/* 80281B90 0027EAD0 C8 5F 00 10 */ lfd f2, 0x10(r31)
/* 80281B94 0027EAD4 7C 6C 1B 78 */ mr r12, r3
/* 80281B98 0027EAD8 7D 89 03 A6 */ mtctr r12
/* 80281B9C 0027EADC 4E 80 04 21 */ bctrl
/* 80281BA0 0027EAE0 FF E0 08 90 */ fmr f31, f1
/* 80281BA4 0027EAE4 48 00 00 34 */ b lbl_80281BD8
lbl_80281BA8:
/* 80281BA8 0027EAE8 C8 1F 00 10 */ lfd f0, 0x10(r31)
/* 80281BAC 0027EAEC FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 80281BB0 0027EAF0 4C 41 13 82 */ cror 2, 1, 2
/* 80281BB4 0027EAF4 40 82 00 24 */ bne lbl_80281BD8
/* 80281BB8 0027EAF8 80 7F 00 34 */ lwz r3, 0x34(r31)
/* 80281BBC 0027EAFC 4B FF FA 8D */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 80281BC0 0027EB00 FC 20 F8 90 */ fmr f1, f31
/* 80281BC4 0027EB04 C8 5F 00 10 */ lfd f2, 0x10(r31)
/* 80281BC8 0027EB08 7C 6C 1B 78 */ mr r12, r3
/* 80281BCC 0027EB0C 7D 89 03 A6 */ mtctr r12
/* 80281BD0 0027EB10 4E 80 04 21 */ bctrl
/* 80281BD4 0027EB14 FF E0 08 90 */ fmr f31, f1
lbl_80281BD8:
/* 80281BD8 0027EB18 C8 1F 00 00 */ lfd f0, 0(r31)
/* 80281BDC 0027EB1C FF FF 00 2A */ fadd f31, f31, f0
/* 80281BE0 0027EB20 FC 20 F8 90 */ fmr f1, f31
/* 80281BE4 0027EB24 48 00 01 18 */ b lbl_80281CFC
lbl_80281BE8:
/* 80281BE8 0027EB28 C8 22 BA 28 */ lfd f1, lbl_80455428-_SDA2_BASE_(r2)
/* 80281BEC 0027EB2C C8 7F 00 00 */ lfd f3, 0(r31)
/* 80281BF0 0027EB30 C8 1F 00 08 */ lfd f0, 8(r31)
/* 80281BF4 0027EB34 FC 03 00 2A */ fadd f0, f3, f0
/* 80281BF8 0027EB38 FC 01 00 32 */ fmul f0, f1, f0
/* 80281BFC 0027EB3C FF E2 00 2A */ fadd f31, f2, f0
/* 80281C00 0027EB40 FF FF 18 28 */ fsub f31, f31, f3
/* 80281C04 0027EB44 C8 02 BA 00 */ lfd f0, lbl_80455400-_SDA2_BASE_(r2)
/* 80281C08 0027EB48 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 80281C0C 0027EB4C 40 80 00 28 */ bge lbl_80281C34
/* 80281C10 0027EB50 80 7F 00 30 */ lwz r3, 0x30(r31)
/* 80281C14 0027EB54 4B FF FA 35 */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 80281C18 0027EB58 FC 20 F8 90 */ fmr f1, f31
/* 80281C1C 0027EB5C C8 5F 00 10 */ lfd f2, 0x10(r31)
/* 80281C20 0027EB60 7C 6C 1B 78 */ mr r12, r3
/* 80281C24 0027EB64 7D 89 03 A6 */ mtctr r12
/* 80281C28 0027EB68 4E 80 04 21 */ bctrl
/* 80281C2C 0027EB6C FF E0 08 90 */ fmr f31, f1
/* 80281C30 0027EB70 48 00 00 34 */ b lbl_80281C64
lbl_80281C34:
/* 80281C34 0027EB74 C8 1F 00 10 */ lfd f0, 0x10(r31)
/* 80281C38 0027EB78 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 80281C3C 0027EB7C 4C 41 13 82 */ cror 2, 1, 2
/* 80281C40 0027EB80 40 82 00 24 */ bne lbl_80281C64
/* 80281C44 0027EB84 80 7F 00 34 */ lwz r3, 0x34(r31)
/* 80281C48 0027EB88 4B FF FA 01 */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 80281C4C 0027EB8C FC 20 F8 90 */ fmr f1, f31
/* 80281C50 0027EB90 C8 5F 00 10 */ lfd f2, 0x10(r31)
/* 80281C54 0027EB94 7C 6C 1B 78 */ mr r12, r3
/* 80281C58 0027EB98 7D 89 03 A6 */ mtctr r12
/* 80281C5C 0027EB9C 4E 80 04 21 */ bctrl
/* 80281C60 0027EBA0 FF E0 08 90 */ fmr f31, f1
lbl_80281C64:
/* 80281C64 0027EBA4 C8 1F 00 00 */ lfd f0, 0(r31)
/* 80281C68 0027EBA8 FF FF 00 2A */ fadd f31, f31, f0
/* 80281C6C 0027EBAC FC 20 F8 90 */ fmr f1, f31
/* 80281C70 0027EBB0 48 00 00 8C */ b lbl_80281CFC
lbl_80281C74:
/* 80281C74 0027EBB4 C8 1F 00 00 */ lfd f0, 0(r31)
/* 80281C78 0027EBB8 FF C2 00 28 */ fsub f30, f2, f0
/* 80281C7C 0027EBBC C8 02 BA 00 */ lfd f0, lbl_80455400-_SDA2_BASE_(r2)
/* 80281C80 0027EBC0 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 80281C84 0027EBC4 40 80 00 28 */ bge lbl_80281CAC
/* 80281C88 0027EBC8 80 7F 00 30 */ lwz r3, 0x30(r31)
/* 80281C8C 0027EBCC 4B FF F9 BD */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 80281C90 0027EBD0 FC 20 F0 90 */ fmr f1, f30
/* 80281C94 0027EBD4 C8 5F 00 10 */ lfd f2, 0x10(r31)
/* 80281C98 0027EBD8 7C 6C 1B 78 */ mr r12, r3
/* 80281C9C 0027EBDC 7D 89 03 A6 */ mtctr r12
/* 80281CA0 0027EBE0 4E 80 04 21 */ bctrl
/* 80281CA4 0027EBE4 FF C0 08 90 */ fmr f30, f1
/* 80281CA8 0027EBE8 48 00 00 34 */ b lbl_80281CDC
lbl_80281CAC:
/* 80281CAC 0027EBEC C8 1F 00 10 */ lfd f0, 0x10(r31)
/* 80281CB0 0027EBF0 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 80281CB4 0027EBF4 4C 41 13 82 */ cror 2, 1, 2
/* 80281CB8 0027EBF8 40 82 00 24 */ bne lbl_80281CDC
/* 80281CBC 0027EBFC 80 7F 00 34 */ lwz r3, 0x34(r31)
/* 80281CC0 0027EC00 4B FF F9 89 */ bl toFunction_outside__Q27JStudio14TFunctionValueFi
/* 80281CC4 0027EC04 FC 20 F0 90 */ fmr f1, f30
/* 80281CC8 0027EC08 C8 5F 00 10 */ lfd f2, 0x10(r31)
/* 80281CCC 0027EC0C 7C 6C 1B 78 */ mr r12, r3
/* 80281CD0 0027EC10 7D 89 03 A6 */ mtctr r12
/* 80281CD4 0027EC14 4E 80 04 21 */ bctrl
/* 80281CD8 0027EC18 FF C0 08 90 */ fmr f30, f1
lbl_80281CDC:
/* 80281CDC 0027EC1C C8 1F 00 00 */ lfd f0, 0(r31)
/* 80281CE0 0027EC20 FF DE 00 2A */ fadd f30, f30, f0
/* 80281CE4 0027EC24 FC 3E 00 28 */ fsub f1, f30, f0
/* 80281CE8 0027EC28 FC 1D F8 28 */ fsub f0, f29, f31
/* 80281CEC 0027EC2C FC 21 00 32 */ fmul f1, f1, f0
/* 80281CF0 0027EC30 C8 1F 00 10 */ lfd f0, 0x10(r31)
/* 80281CF4 0027EC34 FC 01 00 24 */ fdiv f0, f1, f0
/* 80281CF8 0027EC38 FC 3F 00 2A */ fadd f1, f31, f0
lbl_80281CFC:
/* 80281CFC 0027EC3C 39 61 00 30 */ addi r11, r1, 0x30
/* 80281D00 0027EC40 48 0E 04 91 */ bl _restfpr_29
/* 80281D04 0027EC44 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80281D08 0027EC48 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80281D0C 0027EC4C 7C 08 03 A6 */ mtlr r0
/* 80281D10 0027EC50 38 21 00 30 */ addi r1, r1, 0x30
/* 80281D14 0027EC54 4E 80 00 20 */ blr
@@ -0,0 +1,38 @@
/* 80282CA8 0027FBE8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80282CAC 0027FBEC 7C 08 02 A6 */ mflr r0
/* 80282CB0 0027FBF0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80282CB4 0027FBF4 80 A3 00 44 */ lwz r5, 0x44(r3)
/* 80282CB8 0027FBF8 80 C4 00 10 */ lwz r6, 0x10(r4)
/* 80282CBC 0027FBFC 54 C0 10 3A */ slwi r0, r6, 2
/* 80282CC0 0027FC00 7C 65 04 2E */ lfsx f3, r5, r0
/* 80282CC4 0027FC04 7C A5 02 14 */ add r5, r5, r0
/* 80282CC8 0027FC08 C0 85 00 04 */ lfs f4, 4(r5)
/* 80282CCC 0027FC0C 28 06 00 00 */ cmplwi r6, 0
/* 80282CD0 0027FC10 40 82 00 18 */ bne lbl_80282CE8
/* 80282CD4 0027FC14 C8 02 BA 38 */ lfd f0, lbl_80455438-_SDA2_BASE_(r2)
/* 80282CD8 0027FC18 FC 00 00 F2 */ fmul f0, f0, f3
/* 80282CDC 0027FC1C FC 40 20 28 */ fsub f2, f0, f4
/* 80282CE0 0027FC20 C0 A5 00 08 */ lfs f5, 8(r5)
/* 80282CE4 0027FC24 48 00 00 30 */ b lbl_80282D14
lbl_80282CE8:
/* 80282CE8 0027FC28 80 63 00 48 */ lwz r3, 0x48(r3)
/* 80282CEC 0027FC2C 38 03 FF FE */ addi r0, r3, -2
/* 80282CF0 0027FC30 7C 06 00 40 */ cmplw r6, r0
/* 80282CF4 0027FC34 40 82 00 18 */ bne lbl_80282D0C
/* 80282CF8 0027FC38 C0 45 FF FC */ lfs f2, -4(r5)
/* 80282CFC 0027FC3C C8 02 BA 38 */ lfd f0, lbl_80455438-_SDA2_BASE_(r2)
/* 80282D00 0027FC40 FC 00 01 32 */ fmul f0, f0, f4
/* 80282D04 0027FC44 FC A0 18 28 */ fsub f5, f0, f3
/* 80282D08 0027FC48 48 00 00 0C */ b lbl_80282D14
lbl_80282D0C:
/* 80282D0C 0027FC4C C0 45 FF FC */ lfs f2, -4(r5)
/* 80282D10 0027FC50 C0 A5 00 08 */ lfs f5, 8(r5)
lbl_80282D14:
/* 80282D14 0027FC54 C8 24 00 00 */ lfd f1, 0(r4)
/* 80282D18 0027FC58 C8 04 00 08 */ lfd f0, 8(r4)
/* 80282D1C 0027FC5C FC 21 00 28 */ fsub f1, f1, f0
/* 80282D20 0027FC60 4B FF EA 55 */ bl interpolateValue_BSpline_uniform__Q27JStudio13functionvalueFddddd
/* 80282D24 0027FC64 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80282D28 0027FC68 7C 08 03 A6 */ mtlr r0
/* 80282D2C 0027FC6C 38 21 00 10 */ addi r1, r1, 0x10
/* 80282D30 0027FC70 4E 80 00 20 */ blr
@@ -0,0 +1,169 @@
/* 80283060 0027FFA0 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 80283064 0027FFA4 7C 08 02 A6 */ mflr r0
/* 80283068 0027FFA8 90 01 00 64 */ stw r0, 0x64(r1)
/* 8028306C 0027FFAC 80 83 00 54 */ lwz r4, 0x54(r3)
/* 80283070 0027FFB0 C0 E4 FF FC */ lfs f7, -4(r4)
/* 80283074 0027FFB4 D8 E1 00 10 */ stfd f7, 0x10(r1)
/* 80283078 0027FFB8 C0 C4 00 04 */ lfs f6, 4(r4)
/* 8028307C 0027FFBC D8 C1 00 18 */ stfd f6, 0x18(r1)
/* 80283080 0027FFC0 C0 A4 FF F8 */ lfs f5, -8(r4)
/* 80283084 0027FFC4 D8 A1 00 38 */ stfd f5, 0x38(r1)
/* 80283088 0027FFC8 C0 84 00 00 */ lfs f4, 0(r4)
/* 8028308C 0027FFCC D8 81 00 40 */ stfd f4, 0x40(r1)
/* 80283090 0027FFD0 80 03 00 50 */ lwz r0, 0x50(r3)
/* 80283094 0027FFD4 7C 04 00 50 */ subf r0, r4, r0
/* 80283098 0027FFD8 7C 00 16 70 */ srawi r0, r0, 2
/* 8028309C 0027FFDC 7C A0 01 94 */ addze r5, r0
/* 802830A0 0027FFE0 80 03 00 4C */ lwz r0, 0x4c(r3)
/* 802830A4 0027FFE4 7C 00 20 50 */ subf r0, r0, r4
/* 802830A8 0027FFE8 7C 00 16 70 */ srawi r0, r0, 2
/* 802830AC 0027FFEC 7C 00 01 94 */ addze r0, r0
/* 802830B0 0027FFF0 2C 00 00 03 */ cmpwi r0, 3
/* 802830B4 0027FFF4 41 82 01 40 */ beq lbl_802831F4
/* 802830B8 0027FFF8 40 80 00 10 */ bge lbl_802830C8
/* 802830BC 0027FFFC 2C 00 00 02 */ cmpwi r0, 2
/* 802830C0 00280000 40 80 00 14 */ bge lbl_802830D4
/* 802830C4 00280004 48 00 01 30 */ b lbl_802831F4
lbl_802830C8:
/* 802830C8 00280008 2C 00 00 05 */ cmpwi r0, 5
/* 802830CC 0028000C 40 80 01 28 */ bge lbl_802831F4
/* 802830D0 00280010 48 00 00 80 */ b lbl_80283150
lbl_802830D4:
/* 802830D4 00280014 C8 42 BA 38 */ lfd f2, lbl_80455438-_SDA2_BASE_(r2)
/* 802830D8 00280018 FC 02 01 F2 */ fmul f0, f2, f7
/* 802830DC 0028001C FC 00 30 28 */ fsub f0, f0, f6
/* 802830E0 00280020 D8 01 00 08 */ stfd f0, 8(r1)
/* 802830E4 00280024 C0 04 00 0C */ lfs f0, 0xc(r4)
/* 802830E8 00280028 D8 01 00 20 */ stfd f0, 0x20(r1)
/* 802830EC 0028002C C0 64 00 08 */ lfs f3, 8(r4)
/* 802830F0 00280030 D8 61 00 48 */ stfd f3, 0x48(r1)
/* 802830F4 00280034 FC 42 01 72 */ fmul f2, f2, f5
/* 802830F8 00280038 FC 02 20 28 */ fsub f0, f2, f4
/* 802830FC 0028003C D8 01 00 30 */ stfd f0, 0x30(r1)
/* 80283100 00280040 FC 02 18 28 */ fsub f0, f2, f3
/* 80283104 00280044 D8 01 00 28 */ stfd f0, 0x28(r1)
/* 80283108 00280048 2C 05 00 03 */ cmpwi r5, 3
/* 8028310C 0028004C 41 82 00 38 */ beq lbl_80283144
/* 80283110 00280050 40 80 00 10 */ bge lbl_80283120
/* 80283114 00280054 2C 05 00 02 */ cmpwi r5, 2
/* 80283118 00280058 40 80 00 10 */ bge lbl_80283128
/* 8028311C 0028005C 48 00 00 28 */ b lbl_80283144
lbl_80283120:
/* 80283120 00280060 2C 05 00 05 */ cmpwi r5, 5
/* 80283124 00280064 40 80 00 20 */ bge lbl_80283144
lbl_80283128:
/* 80283128 00280068 C8 42 BA 38 */ lfd f2, lbl_80455438-_SDA2_BASE_(r2)
/* 8028312C 0028006C C8 01 00 48 */ lfd f0, 0x48(r1)
/* 80283130 00280070 FC 42 00 32 */ fmul f2, f2, f0
/* 80283134 00280074 C8 01 00 40 */ lfd f0, 0x40(r1)
/* 80283138 00280078 FC 02 00 28 */ fsub f0, f2, f0
/* 8028313C 0028007C D8 01 00 50 */ stfd f0, 0x50(r1)
/* 80283140 00280080 48 00 01 68 */ b lbl_802832A8
lbl_80283144:
/* 80283144 00280084 C0 04 00 10 */ lfs f0, 0x10(r4)
/* 80283148 00280088 D8 01 00 50 */ stfd f0, 0x50(r1)
/* 8028314C 0028008C 48 00 01 5C */ b lbl_802832A8
lbl_80283150:
/* 80283150 00280090 C0 04 FF F4 */ lfs f0, -0xc(r4)
/* 80283154 00280094 D8 01 00 08 */ stfd f0, 8(r1)
/* 80283158 00280098 C0 64 FF F0 */ lfs f3, -0x10(r4)
/* 8028315C 0028009C D8 61 00 30 */ stfd f3, 0x30(r1)
/* 80283160 002800A0 C8 42 BA 38 */ lfd f2, lbl_80455438-_SDA2_BASE_(r2)
/* 80283164 002800A4 FC 02 00 F2 */ fmul f0, f2, f3
/* 80283168 002800A8 FC 00 28 28 */ fsub f0, f0, f5
/* 8028316C 002800AC D8 01 00 28 */ stfd f0, 0x28(r1)
/* 80283170 002800B0 2C 05 00 03 */ cmpwi r5, 3
/* 80283174 002800B4 41 82 00 64 */ beq lbl_802831D8
/* 80283178 002800B8 40 80 00 10 */ bge lbl_80283188
/* 8028317C 002800BC 2C 05 00 02 */ cmpwi r5, 2
/* 80283180 002800C0 40 80 00 14 */ bge lbl_80283194
/* 80283184 002800C4 48 00 00 54 */ b lbl_802831D8
lbl_80283188:
/* 80283188 002800C8 2C 05 00 05 */ cmpwi r5, 5
/* 8028318C 002800CC 40 80 00 4C */ bge lbl_802831D8
/* 80283190 002800D0 48 00 00 28 */ b lbl_802831B8
lbl_80283194:
/* 80283194 002800D4 FC 02 01 B2 */ fmul f0, f2, f6
/* 80283198 002800D8 FC 00 38 28 */ fsub f0, f0, f7
/* 8028319C 002800DC D8 01 00 20 */ stfd f0, 0x20(r1)
/* 802831A0 002800E0 FC 42 01 32 */ fmul f2, f2, f4
/* 802831A4 002800E4 FC 02 28 28 */ fsub f0, f2, f5
/* 802831A8 002800E8 D8 01 00 48 */ stfd f0, 0x48(r1)
/* 802831AC 002800EC FC 02 18 28 */ fsub f0, f2, f3
/* 802831B0 002800F0 D8 01 00 50 */ stfd f0, 0x50(r1)
/* 802831B4 002800F4 48 00 00 F4 */ b lbl_802832A8
lbl_802831B8:
/* 802831B8 002800F8 C0 04 00 0C */ lfs f0, 0xc(r4)
/* 802831BC 002800FC D8 01 00 20 */ stfd f0, 0x20(r1)
/* 802831C0 00280100 C0 04 00 08 */ lfs f0, 8(r4)
/* 802831C4 00280104 D8 01 00 48 */ stfd f0, 0x48(r1)
/* 802831C8 00280108 FC 02 00 32 */ fmul f0, f2, f0
/* 802831CC 0028010C FC 00 20 28 */ fsub f0, f0, f4
/* 802831D0 00280110 D8 01 00 50 */ stfd f0, 0x50(r1)
/* 802831D4 00280114 48 00 00 D4 */ b lbl_802832A8
lbl_802831D8:
/* 802831D8 00280118 C0 04 00 0C */ lfs f0, 0xc(r4)
/* 802831DC 0028011C D8 01 00 20 */ stfd f0, 0x20(r1)
/* 802831E0 00280120 C0 04 00 08 */ lfs f0, 8(r4)
/* 802831E4 00280124 D8 01 00 48 */ stfd f0, 0x48(r1)
/* 802831E8 00280128 C0 04 00 10 */ lfs f0, 0x10(r4)
/* 802831EC 0028012C D8 01 00 50 */ stfd f0, 0x50(r1)
/* 802831F0 00280130 48 00 00 B8 */ b lbl_802832A8
lbl_802831F4:
/* 802831F4 00280134 C0 04 FF F4 */ lfs f0, -0xc(r4)
/* 802831F8 00280138 D8 01 00 08 */ stfd f0, 8(r1)
/* 802831FC 0028013C C0 84 FF F0 */ lfs f4, -0x10(r4)
/* 80283200 00280140 D8 81 00 30 */ stfd f4, 0x30(r1)
/* 80283204 00280144 C0 04 FF E8 */ lfs f0, -0x18(r4)
/* 80283208 00280148 D8 01 00 28 */ stfd f0, 0x28(r1)
/* 8028320C 0028014C 2C 05 00 03 */ cmpwi r5, 3
/* 80283210 00280150 41 82 00 80 */ beq lbl_80283290
/* 80283214 00280154 40 80 00 10 */ bge lbl_80283224
/* 80283218 00280158 2C 05 00 02 */ cmpwi r5, 2
/* 8028321C 0028015C 40 80 00 14 */ bge lbl_80283230
/* 80283220 00280160 48 00 00 70 */ b lbl_80283290
lbl_80283224:
/* 80283224 00280164 2C 05 00 05 */ cmpwi r5, 5
/* 80283228 00280168 40 80 00 68 */ bge lbl_80283290
/* 8028322C 0028016C 48 00 00 3C */ b lbl_80283268
lbl_80283230:
/* 80283230 00280170 C8 62 BA 38 */ lfd f3, lbl_80455438-_SDA2_BASE_(r2)
/* 80283234 00280174 C8 01 00 18 */ lfd f0, 0x18(r1)
/* 80283238 00280178 FC 43 00 32 */ fmul f2, f3, f0
/* 8028323C 0028017C C8 01 00 10 */ lfd f0, 0x10(r1)
/* 80283240 00280180 FC 02 00 28 */ fsub f0, f2, f0
/* 80283244 00280184 D8 01 00 20 */ stfd f0, 0x20(r1)
/* 80283248 00280188 C8 01 00 40 */ lfd f0, 0x40(r1)
/* 8028324C 0028018C FC 43 00 32 */ fmul f2, f3, f0
/* 80283250 00280190 C8 01 00 38 */ lfd f0, 0x38(r1)
/* 80283254 00280194 FC 02 00 28 */ fsub f0, f2, f0
/* 80283258 00280198 D8 01 00 48 */ stfd f0, 0x48(r1)
/* 8028325C 0028019C FC 02 20 28 */ fsub f0, f2, f4
/* 80283260 002801A0 D8 01 00 50 */ stfd f0, 0x50(r1)
/* 80283264 002801A4 48 00 00 44 */ b lbl_802832A8
lbl_80283268:
/* 80283268 002801A8 C0 04 00 0C */ lfs f0, 0xc(r4)
/* 8028326C 002801AC D8 01 00 20 */ stfd f0, 0x20(r1)
/* 80283270 002801B0 C0 44 00 08 */ lfs f2, 8(r4)
/* 80283274 002801B4 D8 41 00 48 */ stfd f2, 0x48(r1)
/* 80283278 002801B8 C8 02 BA 38 */ lfd f0, lbl_80455438-_SDA2_BASE_(r2)
/* 8028327C 002801BC FC 40 00 B2 */ fmul f2, f0, f2
/* 80283280 002801C0 C8 01 00 40 */ lfd f0, 0x40(r1)
/* 80283284 002801C4 FC 02 00 28 */ fsub f0, f2, f0
/* 80283288 002801C8 D8 01 00 50 */ stfd f0, 0x50(r1)
/* 8028328C 002801CC 48 00 00 1C */ b lbl_802832A8
lbl_80283290:
/* 80283290 002801D0 C0 04 00 0C */ lfs f0, 0xc(r4)
/* 80283294 002801D4 D8 01 00 20 */ stfd f0, 0x20(r1)
/* 80283298 002801D8 C0 04 00 08 */ lfs f0, 8(r4)
/* 8028329C 002801DC D8 01 00 48 */ stfd f0, 0x48(r1)
/* 802832A0 002801E0 C0 04 00 10 */ lfs f0, 0x10(r4)
/* 802832A4 002801E4 D8 01 00 50 */ stfd f0, 0x50(r1)
lbl_802832A8:
/* 802832A8 002801E8 38 61 00 08 */ addi r3, r1, 8
/* 802832AC 002801EC 38 81 00 28 */ addi r4, r1, 0x28
/* 802832B0 002801F0 4B FF E5 29 */ bl interpolateValue_BSpline_nonuniform__Q27JStudio13functionvalueFdPCdPCd
/* 802832B4 002801F4 80 01 00 64 */ lwz r0, 0x64(r1)
/* 802832B8 002801F8 7C 08 03 A6 */ mtlr r0
/* 802832BC 002801FC 38 21 00 60 */ addi r1, r1, 0x60
/* 802832C0 00280200 4E 80 00 20 */ blr
+397
View File
@@ -0,0 +1,397 @@
#ifndef JSTUDIO_FUNCTIONVALUE_H
#define JSTUDIO_FUNCTIONVALUE_H
#include "JSystem/JGadget/search.h"
#include "JSystem/JGadget/vector.h"
#include "global.h"
typedef f64 (*DoubleFunc)(f64, f64); // gapfnExtrapolateParameter_
extern "C" {
extern void toFunction_outside__Q27JStudio14TFunctionValueFi();
extern void JGadget_NS_TVector_pointer_void();
extern void __ct__Q27JStudio14TFunctionValueFv();
extern void func_80365078();
extern void func_8036C0FC();
extern void interpolateValue_hermite__Q27JStudio13functionvalueFddddddd();
extern void interpolateValue_BSpline_uniform__Q27JStudio13functionvalueFddddd();
extern void JGadget_NS_findUpperBound_binary_current();
extern void range_getParameter__Q27JStudio29TFunctionValueAttribute_rangeCFddd();
extern void interpolateValue_BSpline_nonuniform__Q27JStudio13functionvalueFdPCdPCd();
extern void JGadget_NS_findUpperBound_binary_current_X2_();
extern f64 func_8036C760(f64 a1, f64 a2);
}
extern DoubleFunc lbl_8039A9F0[];
extern f64 lbl_80455408;
extern f64 lbl_80455410;
extern f64 lbl_80455418;
extern f64 lbl_80455420;
extern f64 lbl_80455428;
extern f64 lbl_80455430;
extern f64 lbl_80455400;
extern f64 lbl_80455440;
extern f64 lbl_80455428;
extern u8 lbl_803C4980;
extern f64 lbl_80455448;
extern f64 lbl_80455438;
namespace JStudio {
struct TFunctionValue;
struct TFunctionValueAttributeSet;
struct TFunctionValueAttribute_refer;
struct TFunctionValueAttribute_range;
struct TFunctionValueAttribute_interpolate;
/* Function Value Base */
struct TFunctionValue {
typedef enum TEProgress { PROG_INIT = 0 };
typedef enum TEAdjust { ADJ_INIT = 0 };
typedef enum TEOutside { OUT_INIT = 0 };
TFunctionValue();
virtual ~TFunctionValue();
// virtuals
virtual u32 getType() const = 0;
virtual TFunctionValueAttributeSet getAttributeSet() = 0;
virtual void initialize() = 0;
virtual void prepare() = 0;
virtual f64 getValue(f64 arg1) = 0;
// inlines
static DoubleFunc toFunction(TFunctionValue::TEOutside outside) {
return toFunction_outside(outside);
}
// member functions
static DoubleFunc toFunction_outside(int arg1);
};
/* Attribute Sets */
struct TFunctionValueAttributeSet_const {
TFunctionValueAttributeSet_const(TFunctionValueAttribute_refer* refer,
TFunctionValueAttribute_range* range,
TFunctionValueAttribute_interpolate* interp)
: refer_(refer), range_(range), interp_(interp) {}
/* 0x00 */ TFunctionValueAttribute_refer* refer_;
/* 0x04 */ TFunctionValueAttribute_range* range_;
/* 0x08 */ TFunctionValueAttribute_interpolate* interp_;
};
struct TFunctionValueAttributeSet : TFunctionValueAttributeSet_const {
TFunctionValueAttributeSet(TFunctionValueAttribute_refer* refer,
TFunctionValueAttribute_range* range,
TFunctionValueAttribute_interpolate* interp)
: TFunctionValueAttributeSet_const(refer, range, interp) {}
};
/* Attributes */
struct TFunctionValueAttribute_range {
TFunctionValueAttribute_range();
// inlines
TFunctionValue::TEProgress range_getProgress() const {
return (TFunctionValue::TEProgress)mProgress;
}
void range_setProgress(TFunctionValue::TEProgress progress) { mProgress = progress; }
TFunctionValue::TEAdjust range_getAdjust() const { return (TFunctionValue::TEAdjust)mAdjust; }
void range_setAdjust(TFunctionValue::TEAdjust adjust) { mAdjust = adjust; }
void range_setOutside(TFunctionValue::TEOutside outside) { range_setOutside(outside, outside); }
void range_setOutside(TFunctionValue::TEOutside begin, TFunctionValue::TEOutside end) {
range_setOutside_begin(begin);
range_setOutside_end(end);
}
void range_setOutside_begin(TFunctionValue::TEOutside begin) { mBegin = begin; }
void range_setOutside_end(TFunctionValue::TEOutside end) { mEnd = end; }
f64 range_getParameter_outside(f64 arg1) const {
f64 temp = arg1 - fBegin_;
f64 result = temp;
if (temp >= lbl_80455400) {
if (temp >= fDifference_) {
result = TFunctionValue::toFunction(mEnd)(temp, fDifference_);
}
} else {
result = TFunctionValue::toFunction(mBegin)(temp, fDifference_);
}
return result + fBegin_;
}
f64 range_getParameter_progress(f64 arg1) const { return _20 + _28 * (arg1 - _20); }
// member functions
void range_initialize();
void range_prepare();
void range_set(f64 arg1, f64 arg2);
f64 range_getParameter(f64 arg1, f64 arg2, f64 arg3) const;
private:
/* -0x00 */ f64 fBegin_;
/* -0x08 */ f64 fEnd_;
/* -0x10 */ f64 fDifference_;
/* -0x18 */ s8 mProgress;
/* -0x19 */ s8 mAdjust;
/* -0x1a */ s8 _1a[2];
/* -0x1c */ u32 _1c;
/* -0x20 */ f64 _20;
/* -0x28 */ f64 _28;
/* -0x30 */ TFunctionValue::TEOutside mBegin;
/* -0x34 */ TFunctionValue::TEOutside mEnd;
};
struct TFunctionValueAttribute_refer : JGadget::TVector_pointer<TFunctionValue*> {
// TFunctionValueAttribute_refer() :
// JGadget::TVector_pointer<TFunctionValue*>(JGadget::TAllocator<void*>()) {}
// inlines
const TFunctionValueAttribute_refer* refer_getContainer() const { return this; }
bool refer_isReferring(const TFunctionValue* p) const { return false; } // todo
// member functions
void refer_initialize();
};
struct TFunctionValueAttribute_interpolate {
TFunctionValueAttribute_interpolate() : _40(0) {}
void interpolate_initialize() { _40 = 0; }
void interpolate_prepare() {}
u32 interpolate_get() const { return _40; }
/* 0x40 */ u32 _40;
};
/* Function Value Formats */
struct TFunctionValue_composite : TFunctionValue, TFunctionValueAttribute_refer {
struct TData;
typedef f64 (*UnkFunc)(f64, const TFunctionValueAttribute_refer*,
const TFunctionValue_composite::TData*);
struct TData {
TData(void* data) : u32data((u32)data) {}
TData(const void* data) : rawData(data) {}
TData(u32 data) : u32data(data) {}
TData(f32 data) : f32data(data) {}
inline void operator=(const TData& rhs) { f32data = rhs.f32data; }
union {
const void* rawData;
u32 u32data;
f64 f32data;
};
};
TFunctionValue_composite(); // : _18(0), data((void*)NULL) {}
// virtuals
virtual u32 getType() const;
virtual TFunctionValueAttributeSet getAttributeSet();
virtual void initialize();
virtual void prepare();
virtual f64 getValue(f64 arg1);
// inlines
const TData* data_getData() const { return &data; }
// member functions
f64 composite_raw(const JGadget::TVector_pointer<TFunctionValue*>& pv, const TData& data,
f64 d);
f64 composite_index(const JGadget::TVector_pointer<TFunctionValue*>& pv, const TData& data,
f64 d);
f64 composite_parameter(const JGadget::TVector_pointer<TFunctionValue*>& pv, const TData& data,
f64 d);
f64 composite_add(const JGadget::TVector_pointer<TFunctionValue*>& pv, const TData& data,
f64 d);
f64 composite_subtract(const JGadget::TVector_pointer<TFunctionValue*>& pv, const TData& data,
f64 d);
f64 composite_multiply(const JGadget::TVector_pointer<TFunctionValue*>& pv, const TData& data,
f64 d);
f64 composite_divide(const JGadget::TVector_pointer<TFunctionValue*>& pv, const TData& data,
f64 d);
UnkFunc pfn_;
TData data;
};
struct TFunctionValue_constant : TFunctionValue {
TFunctionValue_constant();
// virtuals
virtual u32 getType() const;
virtual TFunctionValueAttributeSet getAttributeSet();
virtual void initialize();
virtual void prepare();
virtual f64 getValue(f64 arg1);
// inlines
void data_set(f64 value) { _0 = value; }
/* 0x00 */ f64 _0;
};
struct TFunctionValue_transition : TFunctionValue,
TFunctionValueAttribute_range,
TFunctionValueAttribute_interpolate {
TFunctionValue_transition();
// virtuals
u32 getType() const;
TFunctionValueAttributeSet getAttributeSet();
void initialize();
void prepare();
f64 getValue(f64 arg1);
void data_set(f64 a1, f64 a2) {
_48 = a1;
_50 = a2;
}
/* 0x48 */ f64 _48;
/* 0x50 */ f64 _50;
};
struct TFunctionValue_list : TFunctionValue,
TFunctionValueAttribute_range,
TFunctionValueAttribute_interpolate {
struct TIndexData_ {
f64 _0;
f64 _8;
u32 _10;
};
typedef f64 (*update_INTERPOLATE)(const TFunctionValue_list&, const TIndexData_&);
TFunctionValue_list();
// virtuals
virtual u32 getType() const;
virtual TFunctionValueAttributeSet getAttributeSet();
virtual void initialize();
virtual void prepare();
virtual f64 getValue(f64 arg1);
void data_set(const f32* pf, u32 u) {
JUT_ASSERT((pf != NULL) || (u == 0));
_44 = pf;
_48 = u;
}
void data_setInterval(f64 f) {
JUT_ASSERT(f > TValue(0));
_50 = f;
}
static f64 update_INTERPOLATE_NONE_(const TFunctionValue_list& rThis, const TIndexData_& data);
static f64 update_INTERPOLATE_LINEAR_(const TFunctionValue_list& rThis,
const TIndexData_& data);
static f64 update_INTERPOLATE_PLATEAU_(const TFunctionValue_list& rThis,
const TIndexData_& data);
static f64 update_INTERPOLATE_BSPLINE_dataMore3_(const TFunctionValue_list& rThis,
const TIndexData_& data);
/* 0x44 */ const f32* _44;
/* 0x48 */ u32 _48;
/* 0x50 */ f64 _50;
/* 0x58 */ update_INTERPOLATE _58;
};
struct TFunctionValue_list_parameter : TFunctionValue,
TFunctionValueAttribute_range,
TFunctionValueAttribute_interpolate {
struct TIterator_data_ {
TIterator_data_(const f32* value) : value_(value) {}
TIterator_data_(const TIterator_data_& other) : value_(other.value_) {}
void operator=(const TIterator_data_& rhs) { value_ = rhs.value_; }
const f32* get() const { return value_; }
void set(const f32* value) { value_ = value; }
const f32* value_;
};
typedef f64 (*update_INTERPOLATE)(const TFunctionValue_list_parameter&, f64);
TFunctionValue_list_parameter();
// virtuals
virtual u32 getType() const;
virtual TFunctionValueAttributeSet getAttributeSet();
virtual void initialize();
virtual void prepare();
virtual f64 getValue(f64 arg1);
// member functions
void data_set(const f32* pf, u32 u);
static f64 update_INTERPOLATE_NONE_(const TFunctionValue_list_parameter& rThis, f64 d);
static f64 update_INTERPOLATE_LINEAR_(const TFunctionValue_list_parameter& rThis, f64 d);
static f64 update_INTERPOLATE_PLATEAU_(const TFunctionValue_list_parameter& rThis, f64 d);
static f64 update_INTERPOLATE_BSPLINE_dataMore3_(const TFunctionValue_list_parameter& rThis,
f64 d);
/* 0x44 */ const f32* _44;
/* 0x48 */ u32 _48;
/* 0x4c */ TIterator_data_ dat1;
/* 0x50 */ TIterator_data_ dat2;
/* 0x54 */ TIterator_data_ dat3;
/* 0x58 */ update_INTERPOLATE _58;
};
struct TFunctionValue_hermite : TFunctionValue, TFunctionValueAttribute_range {
struct TIterator_data_ {
TIterator_data_(const TFunctionValue_hermite& rParent, const f32* value) {
value_ = value;
size_ = rParent.data_getSize();
}
TIterator_data_(const TIterator_data_& other) {
value_ = other.value_;
size_ = other.size_;
}
void set(const f32* value, u32 size) {
value_ = value;
size_ = size;
}
void operator=(const TIterator_data_& rhs) {
value_ = rhs.value_;
size_ = rhs.size_;
}
/* 0x00 */ const f32* value_;
/* 0x04 */ u32 size_;
};
TFunctionValue_hermite();
// virtuals
virtual u32 getType() const;
virtual TFunctionValueAttributeSet getAttributeSet();
virtual void initialize();
virtual void prepare();
virtual f64 getValue(f64 arg1);
// inlines
u32 data_getSize() const { return uSize_; }
// member functions
void data_set(const f32* pf, u32 u, u32 uSize);
/* 0x40 */ const f32* pf_;
/* 0x44 */ u32 u_;
/* 0x48 */ u32 uSize_;
/* 0x4c */ TIterator_data_ dat1;
/* 0x50 */ TIterator_data_ dat2;
/* 0x54 */ TIterator_data_ dat3;
};
} // namespace JStudio
#endif // JSTUDIO_FUNCTIONVALUE_H
+163
View File
@@ -0,0 +1,163 @@
#ifndef JSTUDIO_FVB_H
#define JSTUDIO_FVB_H
#include "JSystem/JGadget/binary.h"
#include "JSystem/JGadget/linklist.h"
#include "JSystem/JStudio/functionvalue.h"
#include "JSystem/JStudio/object-id.h"
#include "global.h"
using namespace JGadget::binary;
namespace JStudio {
namespace fvb {
namespace data {
const int PARAGRAPH_DATA = 1;
typedef enum TEComposite {
NONE = 0,
RAW = 1,
IDX = 2,
PARAM = 3,
ADD = 4,
SUB = 5,
MUL = 6,
DIV = 7,
};
typedef const void* (*CompositeOperation)(TFunctionValue_composite::TData);
struct TBlock {
/* 0x0 */ u32 _0;
/* 0x4 */ u16 _4;
/* 0x6 */ u16 id_size;
};
struct TParse_TBlock : public TParseData_aligned<4> {
TParse_TBlock(const void* content) : TParseData_aligned<4>(content) {}
const TBlock* get() const { return (TBlock*)getRaw(); }
u16 get_IDSize() const { return get()->id_size; }
const void* getBlockEnd_() const { return (u8*)getRaw() + sizeof(TBlock); }
const void* get_ID() const {
const void* ret = 0;
if (get_IDSize())
ret = getBlockEnd_();
return ret;
}
};
struct TParse_TParagraph {
struct TData {
u32 u32Size;
u32 u32Type;
const void* pContent;
};
};
} // namespace data
struct TControl;
struct TObject : object::TObject_ID {
public:
TObject(const data::TParse_TBlock& block);
TObject(void const* id, u32 id_size, TFunctionValue* value);
explicit TObject(const data::TParse_TBlock& block, TFunctionValue* value)
: TObject_ID(block.get_ID(), block.get_IDSize()) {
JUT_ASSERT(pfv_ != NULL);
pfv_ = value;
}
virtual ~TObject();
virtual void prepare_data_(const data::TParse_TParagraph::TData& data, TControl* control) = 0;
void prepare(const data::TParse_TBlock& block, TControl* control);
private:
/* 0x0c */ JGadget::TLinkListNode mNode;
///* 0x10 */ void* _10;
/* 0x14 */ TFunctionValue* pfv_;
};
struct TControl {
TControl();
virtual ~TControl() = 0;
u32 _4;
JGadget::TLinkList<TObject, -12> ocObject_;
};
struct TObject_composite : TObject, TFunctionValue_composite {
TObject_composite(const data::TParse_TBlock& block);
virtual void prepare_data_(const data::TParse_TParagraph::TData& rData, TControl* control);
TFunctionValue_composite fnValue;
};
struct TObject_constant : TObject {
TObject_constant(const data::TParse_TBlock& block);
void prepare_data_(const data::TParse_TParagraph::TData& rData, TControl* control);
TFunctionValue_constant fnValue;
};
struct TObject_transition : TObject {
TObject_transition(const data::TParse_TBlock& block);
void prepare_data_(const data::TParse_TParagraph::TData& rData, TControl* control);
TFunctionValue_transition fnValue;
};
struct TObject_list : TObject {
struct ListData {
f32 _0;
u32 _4;
f32 _8[0];
};
TObject_list(const data::TParse_TBlock& block);
void prepare_data_(const data::TParse_TParagraph::TData& rData, TControl* control);
TFunctionValue_list fnValue;
};
struct TObject_list_parameter : TObject {
struct ListData {
u32 _0;
f32 _4[0];
};
TObject_list_parameter(const data::TParse_TBlock& block);
void prepare_data_(const data::TParse_TParagraph::TData& rData, TControl* control);
TFunctionValue_list_parameter fnValue;
};
struct TObject_hermite : TObject {
struct ListData {
u32 _0; // u : 28, uSize : 4
f32 _4[0];
};
TObject_hermite(const data::TParse_TBlock& block);
void prepare_data_(const data::TParse_TParagraph::TData& rData, TControl* control);
TFunctionValue_hermite fnValue;
};
} // namespace fvb
} // namespace JStudio
#endif // JSTUDIO_FVB_H
+25
View File
@@ -0,0 +1,25 @@
#ifndef JSTUDIO_OBJECT_ID_H
#define JSTUDIO_OBJECT_ID_H
#include "dolphin/types.h"
namespace JStudio {
namespace object {
class TIDData {
public:
TIDData(const void* id, u32 id_size) : mID(id), mID_size(id_size) {}
private:
const void* mID;
u32 mID_size;
};
struct TObject_ID : public TIDData {
TObject_ID(const void* id, u32 id_size) : TIDData(id, id_size) {}
};
} // namespace object
} // namespace JStudio
#endif // JSTUDIO_OBJECT_ID_H
+18 -28
View File
@@ -3,6 +3,7 @@
#include "JSystem/JGadget/binary.h"
#include "JSystem/JGadget/linklist.h"
#include "JSystem/JStudio/object-id.h"
#include "global.h"
using namespace JGadget::binary;
@@ -12,23 +13,23 @@ namespace stb {
class TControl;
static const int STATUS_STILL = 0;
static const int STATUS_UNK1 = 1;
static const int STATUS_WAIT = 2;
static const int STATUS_SUSPEND = 4;
static const int STATUS_INACTIVE = 8;
const int STATUS_STILL = 0;
const int STATUS_UNK1 = 1;
const int STATUS_WAIT = 2;
const int STATUS_SUSPEND = 4;
const int STATUS_INACTIVE = 8;
namespace data {
static const int BLOCK_SOUND = 'JSND';
static const int BLOCK_ACTOR = 'JACT';
static const int BLOCK_AMBIENTLIGHT = 'JABL';
static const int BLOCK_CAMERA = 'JCMR';
static const int BLOCK_FOG = 'JFOG';
static const int BLOCK_LIGHT = 'JLIT';
static const int BLOCK_MESSAGE = 'JMSG';
static const int BLOCK_PARTICLE = 'JPTC';
static const int BLOCK_NONE = -1;
const int BLOCK_SOUND = 'JSND';
const int BLOCK_ACTOR = 'JACT';
const int BLOCK_AMBIENTLIGHT = 'JABL';
const int BLOCK_CAMERA = 'JCMR';
const int BLOCK_FOG = 'JFOG';
const int BLOCK_LIGHT = 'JLIT';
const int BLOCK_MESSAGE = 'JMSG';
const int BLOCK_PARTICLE = 'JPTC';
const int BLOCK_NONE = -1;
struct THeader {
struct Target {
@@ -121,20 +122,9 @@ private:
TControl* pControl;
};
struct TIDData {
TIDData(const void* arg1, u32 arg2) : _0(arg1), _4(arg2) {}
const void* _0;
u32 _4;
};
struct TObject_ID : public TIDData {
TObject_ID(const void* arg1, u32 arg2) : TIDData(arg1, arg2) {}
};
class TObject : public TObject_ID {
class TObject : public object::TObject_ID {
public:
TObject(u32 arg1, const void* arg2, u32 arg3);
TObject(u32 arg1, const void* id, u32 id_size);
explicit TObject(const data::TParse_TBlock_object& object);
virtual ~TObject();
@@ -235,7 +225,7 @@ private:
/* 0x04 */ u32 _4;
/* 0x08 */ u32 _8;
/* 0x0c */ TFactory* pFactory;
/* 0x10 */ JGadget::TLinkList<TObject, 0, 2> mObjectContainer;
/* 0x10 */ JGadget::TLinkList<TObject, -12> mObjectContainer;
/* 0x1c */ u32 mStatus;
/* 0x20 */ TObject_control mObject_control;
/* 0x54 */ u32 _54; // "second per frame"?
+7
View File
@@ -11,10 +11,17 @@
#define IS_NOT_ALIGNED(X, N) (((X) & ((N)-1)) != 0)
#define JUT_ASSERT(...)
#define JUT_EXPECT(...)
#define JUTReport(...)
#define ASSERT(...)
#define LOGF(FMT, ...)
#define FLAG_ON(V, F) (((V) & (F)) == 0)
struct JUTWarn {
JUTWarn& operator<<(const char*) { return *this; }
JUTWarn& operator<<(long) { return *this; }
};
extern float __fabsf(float);
inline double fabsf(double d) {
+1 -1
View File
@@ -130,7 +130,7 @@ extern u8 lbl_80455CA0[8];
extern u8 lbl_80455CA8[8];
extern u8 lbl_80455CB0[8];
extern u8 lbl_80455CB8[8];
extern u32 lbl_80450AE0;
extern f32 lbl_80450AE0[4];
// func_802C3A6C
extern u32 lbl_80455CC0;