Learn Abilities Menu

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
#   ROUTINE: LEARN ABILITIES MENU

8011f5f0: 3c028019 lui r2,0x8019
8011f5f4: 8042bae4 lb r2,-0x451c(r2)                #   *0x8018bae4
8011f5f8: 27bdfd38 addiu r29,r29,-0x02c8
8011f5fc: afbf02c0 sw r31,0x02c0(r29)
8011f600: afb102bc sw r17,0x02bc(r29)
8011f604: 1440007a bne r2,r0,0x8011f7f0             #   if (*0x8018bae4 == 0)       // On job selection screen
8011f608: afb002b8 sw r16,0x02b8(r29)               #   {
8011f60c: 3c028012 lui r2,0x8012
8011f610: 2442f350 addiu r2,r2,-0x0cb0
8011f614: 3c01801d lui r1,0x801d
8011f618: ac22d794 sw r2,-0x286c(r1)
8011f61c: 3c028012 lui r2,0x8012
8011f620: 2442f370 addiu r2,r2,-0x0c90
8011f624: 3c01801d lui r1,0x801d
8011f628: ac22d798 sw r2,-0x2868(r1)
8011f62c: 3c028012 lui r2,0x8012
8011f630: 2442f360 addiu r2,r2,-0x0ca0
8011f634: 3c01801d lui r1,0x801d
8011f638: ac22d79c sw r2,-0x2864(r1)
8011f63c: 3c028012 lui r2,0x8012
8011f640: 2442f31c addiu r2,r2,-0x0ce4
8011f644: 3c01801d lui r1,0x801d
8011f648: ac22d7a0 sw r2,-0x2860(r1)
8011f64c: 3c028012 lui r2,0x8012
8011f650: 2442f390 addiu r2,r2,-0x0c70
8011f654: 3c01801d lui r1,0x801d
8011f658: ac22d7a4 sw r2,-0x285c(r1)
8011f65c: 3c028012 lui r2,0x8012
8011f660: 2442f380 addiu r2,r2,-0x0c80
8011f664: 3c01801d lui r1,0x801d
8011f668: ac22d7a8 sw r2,-0x2858(r1)
8011f66c: 3c028012 lui r2,0x8012
8011f670: 2442f5a0 addiu r2,r2,-0x0a60
8011f674: 3c01801d lui r1,0x801d
8011f678: ac22d7ac sw r2,-0x2854(r1)
8011f67c: 3c028012 lui r2,0x8012
8011f680: 2442f448 addiu r2,r2,-0x0bb8
8011f684: 3c01801d lui r1,0x801d
8011f688: ac22d7b0 sw r2,-0x2850(r1)
8011f68c: 3c028012 lui r2,0x8012
8011f690: 2442f494 addiu r2,r2,-0x0b6c
8011f694: 3c01801d lui r1,0x801d
8011f698: ac22d7b4 sw r2,-0x284c(r1)
8011f69c: 3c028012 lui r2,0x8012
8011f6a0: 2442f4f8 addiu r2,r2,-0x0b08
8011f6a4: 3c01801d lui r1,0x801d
8011f6a8: ac22d7b8 sw r2,-0x2848(r1)
8011f6ac: 3c028012 lui r2,0x8012
8011f6b0: 2442f588 addiu r2,r2,-0x0a78
8011f6b4: 3c01801d lui r1,0x801d
8011f6b8: ac22d7bc sw r2,-0x2844(r1)
8011f6bc: 3c028012 lui r2,0x8012
8011f6c0: 2442f570 addiu r2,r2,-0x0a90
8011f6c4: 3c01801d lui r1,0x801d
8011f6c8: ac22d7c0 sw r2,-0x2840(r1)
8011f6cc: 3c028012 lui r2,0x8012
8011f6d0: 2442f558 addiu r2,r2,-0x0aa8
8011f6d4: 3c01801d lui r1,0x801d
8011f6d8: ac22d7c4 sw r2,-0x283c(r1)
8011f6dc: 3c028012 lui r2,0x8012
8011f6e0: 2442f548 addiu r2,r2,-0x0ab8
8011f6e4: 3c01801d lui r1,0x801d
8011f6e8: ac22d7c8 sw r2,-0x2838(r1)
8011f6ec: 3c028012 lui r2,0x8012
8011f6f0: 2442f400 addiu r2,r2,-0x0c00
8011f6f4: 3c01801d lui r1,0x801d
8011f6f8: ac22d7cc sw r2,-0x2834(r1)
8011f6fc: 3c028012 lui r2,0x8012
8011f700: 2442f438 addiu r2,r2,-0x0bc8
8011f704: 3c01801d lui r1,0x801d
8011f708: a0208550 sb r0,-0x7ab0(r1)
8011f70c: 3c01801d lui r1,0x801d
8011f710: ac22d7d0 sw r2,-0x2830(r1)
8011f714: 0c0462da jal 0x80118b68
8011f718: 3404000a ori r4,r0,0x000a
8011f71c: 0c0462da jal 0x80118b68
8011f720: 3404000b ori r4,r0,0x000b
8011f724: 0c0462da jal 0x80118b68
8011f728: 3404000c ori r4,r0,0x000c
8011f72c: 0c0462da jal 0x80118b68
8011f730: 3404000d ori r4,r0,0x000d
8011f734: 34040004 ori r4,r0,0x0004
8011f738: 34050008 ori r5,r0,0x0008
8011f73c: 0c04ae9f jal 0x8012ba7c
8011f740: 00003021 addu r6,r0,r0
8011f744: 00023400 sll r6,r2,0x10
8011f748: 00063403 sra r6,r6,0x10
8011f74c: 3c10801d lui r16,0x801d
8011f750: 26108594 addiu r16,r16,-0x7a6c
8011f754: 3c048019 lui r4,0x8019
8011f758: 8484ba20 lh r4,-0x45e0(r4)
8011f75c: 3c05801d lui r5,0x801d
8011f760: 84a58560 lh r5,-0x7aa0(r5)
8011f764: 02003821 addu r7,r16,r0
8011f768: 3c018019 lui r1,0x8019
8011f76c: a422d1a0 sh r2,-0x2e60(r1)
8011f770: 34020002 ori r2,r0,0x0002
8011f774: 0c048a3c jal 0x801228f0
8011f778: afa20010 sw r2,0x0010(r29)
8011f77c: 02002021 addu r4,r16,r0
8011f780: 3c06801d lui r6,0x801d
8011f784: 8cc6d8dc lw r6,-0x2724(r6)
8011f788: 0c0498f2 jal 0x801263c8
8011f78c: 00002821 addu r5,r0,r0
8011f790: 3c058019 lui r5,0x8019
8011f794: 24a5d4e8 addiu r5,r5,-0x2b18
8011f798: 27a602a0 addiu r6,r29,0x02a0
8011f79c: 00003821 addu r7,r0,r0
8011f7a0: 3c04801d lui r4,0x801d
8011f7a4: 8c84d8bc lw r4,-0x2744(r4)
8011f7a8: 3c03801d lui r3,0x801d
8011f7ac: 94638560 lhu r3,-0x7aa0(r3)
8011f7b0: 34020240 ori r2,r0,0x0240
8011f7b4: a7a202a0 sh r2,0x02a0(r29)
8011f7b8: 340201c8 ori r2,r0,0x01c8
8011f7bc: a7a202a2 sh r2,0x02a2(r29)
8011f7c0: 34020014 ori r2,r0,0x0014
8011f7c4: a7a202a4 sh r2,0x02a4(r29)
8011f7c8: 34020010 ori r2,r0,0x0010
8011f7cc: a7a202a6 sh r2,0x02a6(r29)
8011f7d0: 0c04a970 jal 0x8012a5c0
8011f7d4: a4a30000 sh r3,0x0000(r5)
8011f7d8: 34020001 ori r2,r0,0x0001
8011f7dc: 3c018019 lui r1,0x8019
8011f7e0: a022bae4 sb r2,-0x451c(r1)
8011f7e4: 3402003c ori r2,r0,0x003c
8011f7e8: 3c018019 lui r1,0x8019
8011f7ec: a022ba28 sb r2,-0x45d8(r1)
                                                    #   }
8011f7f0: 3c02801d lui r2,0x801d
8011f7f4: 8442d824 lh r2,-0x27dc(r2)                #   numOptions = *0x801cd824
8011f7f8: 00000000 nop
8011f7fc: 1040000b beq r2,r0,0x8011f82c             
8011f800: 2402ffff addiu r2,r0,-0x0001              #   abilityIDEntry = -1
                                                    #   if (numOptions != 0) {
8011f804: 3c02801d lui r2,0x801d
8011f808: 8442d20c lh r2,-0x2df4(r2)                #       *0x801cd20c
8011f80c: 00000000 nop
8011f810: 00021040 sll r2,r2,0x01                   #       *0x801cd20c * 2
8011f814: 3c01801d lui r1,0x801d
8011f818: 00220821 addu r1,r1,r2
8011f81c: 94228594 lhu r2,-0x7a6c(r1)               #       *(0x801c8594 + (*0x801cd20c * 2))
8011f820: 00000000 nop
8011f824: 304203ff andi r2,r2,0x03ff                #       *(0x801c8594 + (*0x801cd20c * 2)) & 0x3ff
8011f828: 24427800 addiu r2,r2,0x7800               #       abilityIDEntry = (*(0x801c8594 + (*0x801cd20c * 2)) & 0x3ff) + 0x7800
                                                    #   }
8011f82c: 3c01801d lui r1,0x801d
8011f830: ac22d754 sw r2,-0x28ac(r1)                #   *0x801cd754 = abilityIDEntry
8011f834: 3c02801d lui r2,0x801d
8011f838: 90428550 lbu r2,-0x7ab0(r2)               #   isOnConfirmDialog (*0x801c8550)
8011f83c: 00000000 nop
8011f840: 14400072 bne r2,r0,0x8011fa0c             #   if (!isOnConfirmDialog)
8011f844: 00000000 nop                              #   {
8011f848: 3c02801d lui r2,0x801d
8011f84c: 8c42d52c lw r2,-0x2ad4(r2)
8011f850: 00000000 nop
8011f854: 30420020 andi r2,r2,0x0020
8011f858: 1040002e beq r2,r0,0x8011f914
8011f85c: 00000000 nop
8011f860: 3c02801d lui r2,0x801d
8011f864: 8442d824 lh r2,-0x27dc(r2)
8011f868: 00000000 nop
8011f86c: 10400029 beq r2,r0,0x8011f914
8011f870: 00000000 nop
8011f874: 3c04801d lui r4,0x801d
8011f878: 8484d20c lh r4,-0x2df4(r4)
8011f87c: 00000000 nop
8011f880: 00041040 sll r2,r4,0x01
8011f884: 3c01801d lui r1,0x801d
8011f888: 00220821 addu r1,r1,r2
8011f88c: 94228594 lhu r2,-0x7a6c(r1)
8011f890: 00000000 nop
8011f894: 00021382 srl r2,r2,0x0e
8011f898: 10400006 beq r2,r0,0x8011f8b4
8011f89c: 00000000 nop
8011f8a0: 3404c009 ori r4,r0,0xc009
8011f8a4: 0c044d3a jal 0x801134e8
8011f8a8: 34050030 ori r5,r0,0x0030
8011f8ac: 08047e54 j 0x8011f950
8011f8b0: 34040004 ori r4,r0,0x0004
8011f8b4: 0c047d68 jal 0x8011f5a0
8011f8b8: 00000000 nop
8011f8bc: 10400005 beq r2,r0,0x8011f8d4             #  branch if ability is not already learned
8011f8c0: 34020005 ori r2,r0,0x0005
8011f8c4: 3c018019 lui r1,0x8019
8011f8c8: a022bacc sb r2,-0x4534(r1)
8011f8cc: 08047e54 j 0x8011f950
8011f8d0: 34040004 ori r4,r0,0x0004
8011f8d4: 3c058019 lui r5,0x8019
8011f8d8: 24a5d280 addiu r5,r5,-0x2d80
8011f8dc: 0c04aade jal 0x8012ab78
8011f8e0: 34040006 ori r4,r0,0x0006
8011f8e4: 3c01801d lui r1,0x801d
8011f8e8: a0228550 sb r2,-0x7ab0(r1)
8011f8ec: 34020001 ori r2,r0,0x0001
8011f8f0: 3c018019 lui r1,0x8019
8011f8f4: a022bacc sb r2,-0x4534(r1)
8011f8f8: 34020001 ori r2,r0,0x0001
8011f8fc: 3c018019 lui r1,0x8019
8011f900: a420d2f4 sh r0,-0x2d0c(r1)
8011f904: 3c018015 lui r1,0x8015
8011f908: ac2232a0 sw r2,0x32a0(r1)
8011f90c: 08047e54 j 0x8011f950
8011f910: 34040004 ori r4,r0,0x0004
8011f914: 3c02801d lui r2,0x801d
8011f918: 8c42d52c lw r2,-0x2ad4(r2)
8011f91c: 00000000 nop
8011f920: 30420040 andi r2,r2,0x0040
8011f924: 10400009 beq r2,r0,0x8011f94c
8011f928: 34030002 ori r3,r0,0x0002
8011f92c: 3c018019 lui r1,0x8019
8011f930: a020bae4 sb r0,-0x451c(r1)
8011f934: 3c018019 lui r1,0x8019
8011f938: a023bacc sb r3,-0x4534(r1)
8011f93c: 3c018019 lui r1,0x8019
8011f940: a020ba28 sb r0,-0x45d8(r1)
8011f944: 08047f00 j 0x8011fc00
8011f948: 00001021 addu r2,r0,r0
8011f94c: 34040004 ori r4,r0,0x0004
8011f950: 34050008 ori r5,r0,0x0008
8011f954: 3c06801d lui r6,0x801d
8011f958: 94c6d838 lhu r6,-0x27c8(r6)
8011f95c: 0c04aec8 jal 0x8012bb20
8011f960: 34070006 ori r7,r0,0x0006
8011f964: 3c048019 lui r4,0x8019
8011f968: 8484d1a0 lh r4,-0x2e60(r4)
8011f96c: 00408821 addu r17,r2,r0
8011f970: 12240079 beq r17,r4,0x8011fb58
8011f974: 2484000a addiu r4,r4,0x000a
8011f978: 3c10801d lui r16,0x801d
8011f97c: 26108594 addiu r16,r16,-0x7a6c
8011f980: 3c05801d lui r5,0x801d
8011f984: 84a5d20c lh r5,-0x2df4(r5)
8011f988: 3c06801d lui r6,0x801d
8011f98c: 84c6d54c lh r6,-0x2ab4(r6)
8011f990: 0c0462e9 jal 0x80118ba4
8011f994: 02003821 addu r7,r16,r0
8011f998: 00113400 sll r6,r17,0x10
8011f99c: 00063403 sra r6,r6,0x10
8011f9a0: 02003821 addu r7,r16,r0
8011f9a4: 3c048019 lui r4,0x8019
8011f9a8: 8484ba20 lh r4,-0x45e0(r4)
8011f9ac: 3c05801d lui r5,0x801d
8011f9b0: 84a58560 lh r5,-0x7aa0(r5)
8011f9b4: 34020002 ori r2,r0,0x0002
8011f9b8: 3c018019 lui r1,0x8019
8011f9bc: a431d1a0 sh r17,-0x2e60(r1)
8011f9c0: 0c048a3c jal 0x801228f0
8011f9c4: afa20010 sw r2,0x0010(r29)
8011f9c8: 27a502a8 addiu r5,r29,0x02a8
8011f9cc: 27a602aa addiu r6,r29,0x02aa
8011f9d0: 3c048019 lui r4,0x8019
8011f9d4: 8484d1a0 lh r4,-0x2e60(r4)
8011f9d8: 02003821 addu r7,r16,r0
8011f9dc: 0c0462fc jal 0x80118bf0
8011f9e0: 2484000a addiu r4,r4,0x000a
8011f9e4: 87a502a8 lh r5,0x02a8(r29)
8011f9e8: 87a602aa lh r6,0x02aa(r29)
8011f9ec: 3c07801d lui r7,0x801d
8011f9f0: 8ce7d8dc lw r7,-0x2724(r7)
8011f9f4: 0c04992a jal 0x801264a8
8011f9f8: 02002021 addu r4,r16,r0
8011f9fc: 0c04a6c5 jal 0x80129b14
8011fa00: 3404000a ori r4,r0,0x000a
8011fa04: 08047ed6 j 0x8011fb58
8011fa08: 00000000 nop
                                                    #   } else {            // Is on confirm dialog
8011fa0c: 3c058019 lui r5,0x8019
8011fa10: 24a5d280 addiu r5,r5,-0x2d80              #       0x8018d280      // Often, 0x00400180 as word....
8011fa14: 0c04aade jal 0x8012ab78                   #       result_0x12ab78 = ? 0x12ab78 (6, 0x8018d280);
8011fa18: 34040006 ori r4,r0,0x0006                 #       6
8011fa1c: 3c01801d lui r1,0x801d
8011fa20: a0228550 sb r2,-0x7ab0(r1)                #       isOnConfirmDialog = result_0x12ab78
8011fa24: 3c02801d lui r2,0x801d
8011fa28: 90428550 lbu r2,-0x7ab0(r2)               #       isOnConfirmDialog
8011fa2c: 00000000 nop
8011fa30: 14400049 bne r2,r0,0x8011fb58             #       if (!isOnConfirmDialog)     // We're leaving the confirm dialog - we must have either confirmed or cancelled
8011fa34: 00000000 nop                              #       {
8011fa38: 3c03801d lui r3,0x801d
8011fa3c: 8463d732 lh r3,-0x28ce(r3)                #           *0x801cd732
8011fa40: 00000000 nop
8011fa44: 14600028 bne r3,r0,0x8011fae8
8011fa48: 34020001 ori r2,r0,0x0001                 #           1
                                                    #           if (*0x801cd732 == 0) {     // If confirmed ("Yes" selected)?
8011fa4c: 3c048019 lui r4,0x8019
8011fa50: 8484ba20 lh r4,-0x45e0(r4)                #               *0x8018ba20
8011fa54: 3c02801d lui r2,0x801d
8011fa58: 8442d20c lh r2,-0x2df4(r2)                #               *0x801cd20c
8011fa5c: 3c05801d lui r5,0x801d
8011fa60: 84a58560 lh r5,-0x7aa0(r5)                #               *0x801c8560
8011fa64: 00021040 sll r2,r2,0x01                   #               *0x801cd20c * 2
8011fa68: 3c01801d lui r1,0x801d
8011fa6c: 00220821 addu r1,r1,r2
8011fa70: 84268594 lh r6,-0x7a6c(r1)                #               abilityIDEntry = *(0x801c8594 + (*0x801cd20c * 2))
8011fa74: 0c049579 jal 0x801255e4                   #               Learn Ability (*0x8018ba20, *0x801c8560, abilityIDEntry);
8011fa78: 00000000 nop
8011fa7c: 3c02801d lui r2,0x801d
8011fa80: 8442d20c lh r2,-0x2df4(r2)                #               *0x801cd20c
8011fa84: 3c038019 lui r3,0x8019
8011fa88: 8463ba20 lh r3,-0x45e0(r3)                #               *0x8018ba20
8011fa8c: 3c05801d lui r5,0x801d
8011fa90: 84a58564 lh r5,-0x7a9c(r5)                #               *0x801c8564
8011fa94: 00021040 sll r2,r2,0x01                   #               *0x801cd20c * 2
8011fa98: 3c01801d lui r1,0x801d
8011fa9c: 00220821 addu r1,r1,r2
8011faa0: 84228594 lh r2,-0x7a6c(r1)                #               abilityIDEntry
8011faa4: 00031880 sll r3,r3,0x02                   #               *0x8018ba20 * 4
8011faa8: 000210c0 sll r2,r2,0x03                   #               abilityIDEntry * 8
8011faac: 3c018006 lui r1,0x8006
8011fab0: 00220821 addu r1,r1,r2
8011fab4: 9431ebf0 lhu r17,-0x1410(r1)              #               jpCost = *(abilitiesBasePointer + (abilityIDEntry * 8)).JpCost      // 0x00
8011fab8: 3c01801d lui r1,0x801d
8011fabc: 00230821 addu r1,r1,r3
8011fac0: 8c22d5ec lw r2,-0x2a14(r1)                #               *(0x801cd5ec + (*0x8018ba20 * 4))
8011fac4: 00052840 sll r5,r5,0x01                   #               *0x801c8564 * 2
8011fac8: 00a22821 addu r5,r5,r2                    #               (*0x801c8564 * 2) + *(0x801cd5ec + (*0x8018ba20 * 4))
8011facc: 94a200be lhu r2,0x00be(r5)                #               tempAvailableJp     (*((*0x801c8564 * 2) + *(0x801cd5ec + (*0x8018ba20 * 4)) + 0xbe))
8011fad0: 34040098 ori r4,r0,0x0098                 #               SoundEffectByte. 0x98 is "Ability Learned", as seen here.
8011fad4: 00511023 subu r2,r2,r17                   #               tempAvailableJp - jpCost     
8011fad8: 0c011006 jal 0x80044018                   #               Play Sound Effect (Ability Learned)
8011fadc: a4a200be sh r2,0x00be(r5)                 #               tempAvailableJp = tempAvailableJp - jpCost  
8011fae0: 08047ebe j 0x8011faf8
8011fae4: 00000000 nop                              #           }
8011fae8: 14620003 bne r3,r2,0x8011faf8             #           else if (*0x801cd732 == 1) {        // "No" selected, or cancelled out?
8011faec: 34020001 ori r2,r0,0x0001
8011faf0: 3c018019 lui r1,0x8019
8011faf4: a022bacc sb r2,-0x4534(r1)                #               *0x8018bacc = 1
                                                    #           }
8011faf8: 3c10801d lui r16,0x801d
8011fafc: 26108594 addiu r16,r16,-0x7a6c
8011fb00: 02003821 addu r7,r16,r0
8011fb04: 3c048019 lui r4,0x8019
8011fb08: 8484ba20 lh r4,-0x45e0(r4)
8011fb0c: 3c05801d lui r5,0x801d
8011fb10: 84a58560 lh r5,-0x7aa0(r5)
8011fb14: 3c068019 lui r6,0x8019
8011fb18: 84c6d1a0 lh r6,-0x2e60(r6)
8011fb1c: 34020002 ori r2,r0,0x0002
8011fb20: 3c018015 lui r1,0x8015
8011fb24: ac2032a0 sw r0,0x32a0(r1)
8011fb28: 0c048a3c jal 0x801228f0
8011fb2c: afa20010 sw r2,0x0010(r29)
8011fb30: 3c05801d lui r5,0x801d
8011fb34: 84a5d20c lh r5,-0x2df4(r5)
8011fb38: 3c06801d lui r6,0x801d
8011fb3c: 8cc6d8dc lw r6,-0x2724(r6)
8011fb40: 0c0498f2 jal 0x801263c8
8011fb44: 02002021 addu r4,r16,r0
8011fb48: 0c04a6c5 jal 0x80129b14
8011fb4c: 3404000a ori r4,r0,0x000a
8011fb50: 0c045022 jal 0x80114088
8011fb54: 00000000 nop                              #       }
                                                    #   }
8011fb58: 3c03801d lui r3,0x801d
8011fb5c: 90638550 lbu r3,-0x7ab0(r3)               #   *0x801c8550
8011fb60: 00000000 nop
8011fb64: 14600003 bne r3,r0,0x8011fb74
8011fb68: 00002821 addu r5,r0,r0
8011fb6c: 3c05801d lui r5,0x801d
8011fb70: 8ca5d52c lw r5,-0x2ad4(r5)
8011fb74: 3c028015 lui r2,0x8015
8011fb78: 8c42330c lw r2,0x330c(r2)
8011fb7c: 00000000 nop
8011fb80: 14400003 bne r2,r0,0x8011fb90
8011fb84: 00003021 addu r6,r0,r0
8011fb88: 10600002 beq r3,r0,0x8011fb94
8011fb8c: 00000000 nop
8011fb90: 34060001 ori r6,r0,0x0001
8011fb94: 3c048019 lui r4,0x8019
8011fb98: 2484d2f8 addiu r4,r4,-0x2d08
8011fb9c: 0c04995c jal 0x80126570
8011fba0: 00000000 nop
8011fba4: 27a402a0 addiu r4,r29,0x02a0
8011fba8: 00002821 addu r5,r0,r0
8011fbac: 340600c8 ori r6,r0,0x00c8
8011fbb0: 00003821 addu r7,r0,r0
8011fbb4: 3c038019 lui r3,0x8019
8011fbb8: 9463df88 lhu r3,-0x2078(r3)
8011fbbc: 3c08801d lui r8,0x801d
8011fbc0: 9508d5d8 lhu r8,-0x2a28(r8)
8011fbc4: 34020026 ori r2,r0,0x0026
8011fbc8: a7a202a0 sh r2,0x02a0(r29)
8011fbcc: 3402002d ori r2,r0,0x002d
8011fbd0: a7a202a2 sh r2,0x02a2(r29)
8011fbd4: 34020050 ori r2,r0,0x0050
8011fbd8: a7a202a4 sh r2,0x02a4(r29)
8011fbdc: 34020010 ori r2,r0,0x0010
8011fbe0: a7a202a6 sh r2,0x02a6(r29)
8011fbe4: 3402000b ori r2,r0,0x000b
8011fbe8: afa00010 sw r0,0x0010(r29)
8011fbec: afa2001c sw r2,0x001c(r29)
8011fbf0: afa30014 sw r3,0x0014(r29)
8011fbf4: 0c04b1aa jal 0x8012c6a8
8011fbf8: afa80018 sw r8,0x0018(r29)
8011fbfc: 34020001 ori r2,r0,0x0001
8011fc00: 8fbf02c0 lw r31,0x02c0(r29)
8011fc04: 8fb102bc lw r17,0x02bc(r29)
8011fc08: 8fb002b8 lw r16,0x02b8(r29)
8011fc0c: 27bd02c8 addiu r29,r29,0x02c8
8011fc10: 03e00008 jr r31
8011fc14: 00000000 nop