prime/asm/Dolphin/gx/GXTexture.s

1546 lines
68 KiB
ArmAsm

.include "macros.inc"
.section .sdata
.balign 8
.global lbl_805A8AE0
lbl_805A8AE0:
# ROM: 0x3F6480
.4byte 0x80818283
.4byte 0xA0A1A2A3
.global lbl_805A8AE8
lbl_805A8AE8:
# ROM: 0x3F6488
.4byte 0x84858687
.4byte 0xA4A5A6A7
.global lbl_805A8AF0
lbl_805A8AF0:
# ROM: 0x3F6490
.4byte 0x88898A8B
.4byte 0xA8A9AAAB
.global lbl_805A8AF8
lbl_805A8AF8:
# ROM: 0x3F6498
.4byte 0x8C8D8E8F
.4byte 0xACADAEAF
.global lbl_805A8B00
lbl_805A8B00:
# ROM: 0x3F64A0
.4byte 0x90919293
.4byte 0xB0B1B2B3
.global lbl_805A8B08
lbl_805A8B08:
# ROM: 0x3F64A8
.4byte 0x94959697
.4byte 0xB4B5B6B7
.global lbl_805A8B10
lbl_805A8B10:
# ROM: 0x3F64B0
.4byte 0x98999A9B
.4byte 0xB8B9BABB
.global lbl_805A8B18
lbl_805A8B18:
# ROM: 0x3F64B8
.4byte 0x00040105
.4byte 0x02060000
.section .sdata2
.balign 8
.global lbl_805AEB88
lbl_805AEB88:
# ROM: 0x3FB428
.4byte 0x41800000
.4byte 0
.global lbl_805AEB90
lbl_805AEB90:
# ROM: 0x3FB430
.4byte 0x43300000
.4byte 0
.global lbl_805AEB98
lbl_805AEB98:
# ROM: 0x3FB438
.4byte 0xC0800000
.global lbl_805AEB9C
lbl_805AEB9C:
# ROM: 0x3FB43C
.float 4.0
.global lbl_805AEBA0
lbl_805AEBA0:
# ROM: 0x3FB440
.4byte 0x407F5C29
.global lbl_805AEBA4
lbl_805AEBA4:
# ROM: 0x3FB444
.4byte 0x42000000
.global lbl_805AEBA8
lbl_805AEBA8:
# ROM: 0x3FB448
.4byte 0
.global lbl_805AEBAC
lbl_805AEBAC:
# ROM: 0x3FB44C
.4byte 0x41200000
.section .data
.balign 8
.global lbl_803F09F0
lbl_803F09F0:
# ROM: 0x3ED9F0
.4byte 0x80379C68
.4byte 0x80379C74
.4byte 0x80379C74
.4byte 0x80379C80
.4byte 0x80379C80
.4byte 0x80379C80
.4byte 0x80379C80
.4byte 0x80379C8C
.4byte 0x80379C68
.4byte 0x80379C74
.4byte 0x80379C80
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C68
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C74
.4byte 0x80379C8C
.4byte 0x80379C80
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C80
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C68
.4byte 0x80379C8C
.4byte 0x80379C74
.4byte 0x80379C80
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C74
.4byte 0x80379C74
.4byte 0x80379C74
.4byte 0x80379C74
.4byte 0x80379C80
.4byte 0x80379C80
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C68
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C8C
.4byte 0x80379C74
.4byte 0x80379C74
.4byte 0x80379C8C
.4byte 0x80379C80
.global lbl_803F0AE4
lbl_803F0AE4:
# ROM: 0x3EDAE4
.4byte 0x80379DBC
.4byte 0x80379DC8
.4byte 0x80379DC8
.4byte 0x80379DD4
.4byte 0x80379DD4
.4byte 0x80379DD4
.4byte 0x80379DD4
.4byte 0x80379DE0
.4byte 0x80379DBC
.4byte 0x80379DC8
.4byte 0x80379DD4
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DBC
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DC8
.4byte 0x80379DE0
.4byte 0x80379DD4
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DD4
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DBC
.4byte 0x80379DE0
.4byte 0x80379DC8
.4byte 0x80379DD4
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DC8
.4byte 0x80379DC8
.4byte 0x80379DC8
.4byte 0x80379DC8
.4byte 0x80379DD4
.4byte 0x80379DD4
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DBC
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DE0
.4byte 0x80379DC8
.4byte 0x80379DC8
.4byte 0x80379DE0
.4byte 0x80379DD4
.global lbl_803F0BD8
lbl_803F0BD8:
# ROM: 0x3EDBD8
.4byte 0x8037A00C
.4byte 0x8037A020
.4byte 0x8037A020
.4byte 0x8037A034
.4byte 0x8037A034
.4byte 0x8037A034
.4byte 0x8037A048
.4byte 0x8037A070
.4byte 0x8037A00C
.4byte 0x8037A020
.4byte 0x8037A034
.4byte 0x8037A070
.4byte 0x8037A070
.4byte 0x8037A070
.4byte 0x8037A05C
.4byte 0
.section .text, "ax"
.global GXGetTexBufferSize
GXGetTexBufferSize:
/* 80379C40 00376BA0 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80379C44 00376BA4 28 05 00 3C */ cmplwi r5, 0x3c
/* 80379C48 00376BA8 93 E1 00 24 */ stw r31, 0x24(r1)
/* 80379C4C 00376BAC 41 81 00 40 */ bgt lbl_80379C8C
/* 80379C50 00376BB0 3D 00 80 3F */ lis r8, lbl_803F09F0@ha
/* 80379C54 00376BB4 39 08 09 F0 */ addi r8, r8, lbl_803F09F0@l
/* 80379C58 00376BB8 54 A0 10 3A */ slwi r0, r5, 2
/* 80379C5C 00376BBC 7C 08 00 2E */ lwzx r0, r8, r0
/* 80379C60 00376BC0 7C 09 03 A6 */ mtctr r0
/* 80379C64 00376BC4 4E 80 04 20 */ bctr
/* 80379C68 00376BC8 38 00 00 03 */ li r0, 3
/* 80379C6C 00376BCC 39 00 00 03 */ li r8, 3
/* 80379C70 00376BD0 48 00 00 24 */ b lbl_80379C94
/* 80379C74 00376BD4 38 00 00 03 */ li r0, 3
/* 80379C78 00376BD8 39 00 00 02 */ li r8, 2
/* 80379C7C 00376BDC 48 00 00 18 */ b lbl_80379C94
/* 80379C80 00376BE0 38 00 00 02 */ li r0, 2
/* 80379C84 00376BE4 39 00 00 02 */ li r8, 2
/* 80379C88 00376BE8 48 00 00 0C */ b lbl_80379C94
lbl_80379C8C:
/* 80379C8C 00376BEC 39 00 00 00 */ li r8, 0
/* 80379C90 00376BF0 38 00 00 00 */ li r0, 0
lbl_80379C94:
/* 80379C94 00376BF4 28 05 00 06 */ cmplwi r5, 6
/* 80379C98 00376BF8 41 82 00 0C */ beq lbl_80379CA4
/* 80379C9C 00376BFC 28 05 00 16 */ cmplwi r5, 0x16
/* 80379CA0 00376C00 40 82 00 0C */ bne lbl_80379CAC
lbl_80379CA4:
/* 80379CA4 00376C04 38 A0 00 40 */ li r5, 0x40
/* 80379CA8 00376C08 48 00 00 08 */ b lbl_80379CB0
lbl_80379CAC:
/* 80379CAC 00376C0C 38 A0 00 20 */ li r5, 0x20
lbl_80379CB0:
/* 80379CB0 00376C10 54 C6 06 3E */ clrlwi r6, r6, 0x18
/* 80379CB4 00376C14 28 06 00 01 */ cmplwi r6, 1
/* 80379CB8 00376C18 40 82 00 A0 */ bne lbl_80379D58
/* 80379CBC 00376C1C 54 E9 06 3E */ clrlwi r9, r7, 0x18
/* 80379CC0 00376C20 38 C0 00 01 */ li r6, 1
/* 80379CC4 00376C24 7D 29 03 A6 */ mtctr r9
/* 80379CC8 00376C28 7C C7 40 30 */ slw r7, r6, r8
/* 80379CCC 00376C2C 7C C6 00 30 */ slw r6, r6, r0
/* 80379CD0 00376C30 28 09 00 00 */ cmplwi r9, 0
/* 80379CD4 00376C34 39 46 FF FF */ addi r10, r6, -1
/* 80379CD8 00376C38 38 E7 FF FF */ addi r7, r7, -1
/* 80379CDC 00376C3C 3B E0 00 00 */ li r31, 0
/* 80379CE0 00376C40 40 81 00 AC */ ble lbl_80379D8C
lbl_80379CE4:
/* 80379CE4 00376C44 54 6B 04 3E */ clrlwi r11, r3, 0x10
/* 80379CE8 00376C48 7C CB 52 14 */ add r6, r11, r10
/* 80379CEC 00376C4C 54 8C 04 3E */ clrlwi r12, r4, 0x10
/* 80379CF0 00376C50 7C C9 06 30 */ sraw r9, r6, r0
/* 80379CF4 00376C54 7C CC 3A 14 */ add r6, r12, r7
/* 80379CF8 00376C58 7C C6 46 30 */ sraw r6, r6, r8
/* 80379CFC 00376C5C 7C C9 31 D6 */ mullw r6, r9, r6
/* 80379D00 00376C60 7C C5 31 D6 */ mullw r6, r5, r6
/* 80379D04 00376C64 28 0B 00 01 */ cmplwi r11, 1
/* 80379D08 00376C68 7F FF 32 14 */ add r31, r31, r6
/* 80379D0C 00376C6C 40 82 00 0C */ bne lbl_80379D18
/* 80379D10 00376C70 28 0C 00 01 */ cmplwi r12, 1
/* 80379D14 00376C74 41 82 00 78 */ beq lbl_80379D8C
lbl_80379D18:
/* 80379D18 00376C78 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 80379D1C 00376C7C 28 03 00 01 */ cmplwi r3, 1
/* 80379D20 00376C80 40 81 00 0C */ ble lbl_80379D2C
/* 80379D24 00376C84 7D 66 0E 70 */ srawi r6, r11, 1
/* 80379D28 00376C88 48 00 00 08 */ b lbl_80379D30
lbl_80379D2C:
/* 80379D2C 00376C8C 38 C0 00 01 */ li r6, 1
lbl_80379D30:
/* 80379D30 00376C90 54 83 04 3E */ clrlwi r3, r4, 0x10
/* 80379D34 00376C94 28 03 00 01 */ cmplwi r3, 1
/* 80379D38 00376C98 54 C3 04 3E */ clrlwi r3, r6, 0x10
/* 80379D3C 00376C9C 40 81 00 0C */ ble lbl_80379D48
/* 80379D40 00376CA0 7D 84 0E 70 */ srawi r4, r12, 1
/* 80379D44 00376CA4 48 00 00 08 */ b lbl_80379D4C
lbl_80379D48:
/* 80379D48 00376CA8 38 80 00 01 */ li r4, 1
lbl_80379D4C:
/* 80379D4C 00376CAC 54 84 04 3E */ clrlwi r4, r4, 0x10
/* 80379D50 00376CB0 42 00 FF 94 */ bdnz lbl_80379CE4
/* 80379D54 00376CB4 48 00 00 38 */ b lbl_80379D8C
lbl_80379D58:
/* 80379D58 00376CB8 38 C0 00 01 */ li r6, 1
/* 80379D5C 00376CBC 7C C7 00 30 */ slw r7, r6, r0
/* 80379D60 00376CC0 7C C6 40 30 */ slw r6, r6, r8
/* 80379D64 00376CC4 54 69 04 3E */ clrlwi r9, r3, 0x10
/* 80379D68 00376CC8 38 67 FF FF */ addi r3, r7, -1
/* 80379D6C 00376CCC 7C E9 1A 14 */ add r7, r9, r3
/* 80379D70 00376CD0 54 84 04 3E */ clrlwi r4, r4, 0x10
/* 80379D74 00376CD4 38 66 FF FF */ addi r3, r6, -1
/* 80379D78 00376CD8 7C E6 06 30 */ sraw r6, r7, r0
/* 80379D7C 00376CDC 7C 04 1A 14 */ add r0, r4, r3
/* 80379D80 00376CE0 7C 00 46 30 */ sraw r0, r0, r8
/* 80379D84 00376CE4 7C 06 01 D6 */ mullw r0, r6, r0
/* 80379D88 00376CE8 7F E5 01 D6 */ mullw r31, r5, r0
lbl_80379D8C:
/* 80379D8C 00376CEC 7F E3 FB 78 */ mr r3, r31
/* 80379D90 00376CF0 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 80379D94 00376CF4 38 21 00 28 */ addi r1, r1, 0x28
/* 80379D98 00376CF8 4E 80 00 20 */ blr
.global __GetImageTileCount
__GetImageTileCount:
/* 80379D9C 00376CFC 28 03 00 3C */ cmplwi r3, 0x3c
/* 80379DA0 00376D00 41 81 00 40 */ bgt lbl_80379DE0
/* 80379DA4 00376D04 3D 20 80 3F */ lis r9, lbl_803F0AE4@ha
/* 80379DA8 00376D08 39 29 0A E4 */ addi r9, r9, lbl_803F0AE4@l
/* 80379DAC 00376D0C 54 60 10 3A */ slwi r0, r3, 2
/* 80379DB0 00376D10 7C 09 00 2E */ lwzx r0, r9, r0
/* 80379DB4 00376D14 7C 09 03 A6 */ mtctr r0
/* 80379DB8 00376D18 4E 80 04 20 */ bctr
/* 80379DBC 00376D1C 39 60 00 03 */ li r11, 3
/* 80379DC0 00376D20 39 80 00 03 */ li r12, 3
/* 80379DC4 00376D24 48 00 00 24 */ b lbl_80379DE8
/* 80379DC8 00376D28 39 60 00 03 */ li r11, 3
/* 80379DCC 00376D2C 39 80 00 02 */ li r12, 2
/* 80379DD0 00376D30 48 00 00 18 */ b lbl_80379DE8
/* 80379DD4 00376D34 39 60 00 02 */ li r11, 2
/* 80379DD8 00376D38 39 80 00 02 */ li r12, 2
/* 80379DDC 00376D3C 48 00 00 0C */ b lbl_80379DE8
lbl_80379DE0:
/* 80379DE0 00376D40 39 80 00 00 */ li r12, 0
/* 80379DE4 00376D44 39 60 00 00 */ li r11, 0
lbl_80379DE8:
/* 80379DE8 00376D48 54 80 04 3F */ clrlwi. r0, r4, 0x10
/* 80379DEC 00376D4C 40 82 00 08 */ bne lbl_80379DF4
/* 80379DF0 00376D50 38 80 00 01 */ li r4, 1
lbl_80379DF4:
/* 80379DF4 00376D54 54 A0 04 3F */ clrlwi. r0, r5, 0x10
/* 80379DF8 00376D58 40 82 00 08 */ bne lbl_80379E00
/* 80379DFC 00376D5C 38 A0 00 01 */ li r5, 1
lbl_80379E00:
/* 80379E00 00376D60 39 40 00 01 */ li r10, 1
/* 80379E04 00376D64 7D 49 58 30 */ slw r9, r10, r11
/* 80379E08 00376D68 54 84 04 3E */ clrlwi r4, r4, 0x10
/* 80379E0C 00376D6C 38 09 FF FF */ addi r0, r9, -1
/* 80379E10 00376D70 7C 04 02 14 */ add r0, r4, r0
/* 80379E14 00376D74 7C 00 5E 30 */ sraw r0, r0, r11
/* 80379E18 00376D78 7D 44 60 30 */ slw r4, r10, r12
/* 80379E1C 00376D7C 90 06 00 00 */ stw r0, 0(r6)
/* 80379E20 00376D80 54 A5 04 3E */ clrlwi r5, r5, 0x10
/* 80379E24 00376D84 38 04 FF FF */ addi r0, r4, -1
/* 80379E28 00376D88 7C 05 02 14 */ add r0, r5, r0
/* 80379E2C 00376D8C 7C 00 66 30 */ sraw r0, r0, r12
/* 80379E30 00376D90 2C 03 00 06 */ cmpwi r3, 6
/* 80379E34 00376D94 90 07 00 00 */ stw r0, 0(r7)
/* 80379E38 00376D98 41 82 00 10 */ beq lbl_80379E48
/* 80379E3C 00376D9C 2C 03 00 16 */ cmpwi r3, 0x16
/* 80379E40 00376DA0 41 82 00 08 */ beq lbl_80379E48
/* 80379E44 00376DA4 39 40 00 00 */ li r10, 0
lbl_80379E48:
/* 80379E48 00376DA8 2C 0A 00 00 */ cmpwi r10, 0
/* 80379E4C 00376DAC 41 82 00 0C */ beq lbl_80379E58
/* 80379E50 00376DB0 38 00 00 02 */ li r0, 2
/* 80379E54 00376DB4 48 00 00 08 */ b lbl_80379E5C
lbl_80379E58:
/* 80379E58 00376DB8 38 00 00 01 */ li r0, 1
lbl_80379E5C:
/* 80379E5C 00376DBC 90 08 00 00 */ stw r0, 0(r8)
/* 80379E60 00376DC0 4E 80 00 20 */ blr
.global GXInitTexObj
GXInitTexObj:
/* 80379E64 00376DC4 7C 08 02 A6 */ mflr r0
/* 80379E68 00376DC8 90 01 00 04 */ stw r0, 4(r1)
/* 80379E6C 00376DCC 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 80379E70 00376DD0 BF 01 00 40 */ stmw r24, 0x40(r1)
/* 80379E74 00376DD4 3B 64 00 00 */ addi r27, r4, 0
/* 80379E78 00376DD8 3B 85 00 00 */ addi r28, r5, 0
/* 80379E7C 00376DDC 3B E3 00 00 */ addi r31, r3, 0
/* 80379E80 00376DE0 3B A6 00 00 */ addi r29, r6, 0
/* 80379E84 00376DE4 3B C7 00 00 */ addi r30, r7, 0
/* 80379E88 00376DE8 3B 08 00 00 */ addi r24, r8, 0
/* 80379E8C 00376DEC 3B 29 00 00 */ addi r25, r9, 0
/* 80379E90 00376DF0 3B 4A 00 00 */ addi r26, r10, 0
/* 80379E94 00376DF4 38 80 00 00 */ li r4, 0
/* 80379E98 00376DF8 38 A0 00 20 */ li r5, 0x20
/* 80379E9C 00376DFC 4B C8 95 0D */ bl memset
/* 80379EA0 00376E00 80 9F 00 00 */ lwz r4, 0(r31)
/* 80379EA4 00376E04 57 40 06 3F */ clrlwi. r0, r26, 0x18
/* 80379EA8 00376E08 57 23 10 3A */ slwi r3, r25, 2
/* 80379EAC 00376E0C 54 84 00 3A */ rlwinm r4, r4, 0, 0, 0x1d
/* 80379EB0 00376E10 7C 84 C3 78 */ or r4, r4, r24
/* 80379EB4 00376E14 90 9F 00 00 */ stw r4, 0(r31)
/* 80379EB8 00376E18 80 1F 00 00 */ lwz r0, 0(r31)
/* 80379EBC 00376E1C 54 00 07 B6 */ rlwinm r0, r0, 0, 0x1e, 0x1b
/* 80379EC0 00376E20 7C 00 1B 78 */ or r0, r0, r3
/* 80379EC4 00376E24 90 1F 00 00 */ stw r0, 0(r31)
/* 80379EC8 00376E28 80 1F 00 00 */ lwz r0, 0(r31)
/* 80379ECC 00376E2C 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a
/* 80379ED0 00376E30 60 00 00 10 */ ori r0, r0, 0x10
/* 80379ED4 00376E34 90 1F 00 00 */ stw r0, 0(r31)
/* 80379ED8 00376E38 41 82 00 A4 */ beq lbl_80379F7C
/* 80379EDC 00376E3C 88 7F 00 1F */ lbz r3, 0x1f(r31)
/* 80379EE0 00376E40 38 1E FF F8 */ addi r0, r30, -8
/* 80379EE4 00376E44 28 00 00 02 */ cmplwi r0, 2
/* 80379EE8 00376E48 60 60 00 01 */ ori r0, r3, 1
/* 80379EEC 00376E4C 98 1F 00 1F */ stb r0, 0x1f(r31)
/* 80379EF0 00376E50 41 81 00 18 */ bgt lbl_80379F08
/* 80379EF4 00376E54 80 1F 00 00 */ lwz r0, 0(r31)
/* 80379EF8 00376E58 54 00 06 EE */ rlwinm r0, r0, 0, 0x1b, 0x17
/* 80379EFC 00376E5C 60 00 00 A0 */ ori r0, r0, 0xa0
/* 80379F00 00376E60 90 1F 00 00 */ stw r0, 0(r31)
/* 80379F04 00376E64 48 00 00 14 */ b lbl_80379F18
lbl_80379F08:
/* 80379F08 00376E68 80 1F 00 00 */ lwz r0, 0(r31)
/* 80379F0C 00376E6C 54 00 06 EE */ rlwinm r0, r0, 0, 0x1b, 0x17
/* 80379F10 00376E70 60 00 00 C0 */ ori r0, r0, 0xc0
/* 80379F14 00376E74 90 1F 00 00 */ stw r0, 0(r31)
lbl_80379F18:
/* 80379F18 00376E78 57 83 04 3E */ clrlwi r3, r28, 0x10
/* 80379F1C 00376E7C 57 A0 04 3E */ clrlwi r0, r29, 0x10
/* 80379F20 00376E80 7C 03 00 40 */ cmplw r3, r0
/* 80379F24 00376E84 40 81 00 10 */ ble lbl_80379F34
/* 80379F28 00376E88 7C 60 00 34 */ cntlzw r0, r3
/* 80379F2C 00376E8C 20 00 00 1F */ subfic r0, r0, 0x1f
/* 80379F30 00376E90 48 00 00 0C */ b lbl_80379F3C
lbl_80379F34:
/* 80379F34 00376E94 7C 00 00 34 */ cntlzw r0, r0
/* 80379F38 00376E98 20 00 00 1F */ subfic r0, r0, 0x1f
lbl_80379F3C:
/* 80379F3C 00376E9C 90 01 00 3C */ stw r0, 0x3c(r1)
/* 80379F40 00376EA0 3C 00 43 30 */ lis r0, 0x4330
/* 80379F44 00376EA4 80 7F 00 04 */ lwz r3, 4(r31)
/* 80379F48 00376EA8 90 01 00 38 */ stw r0, 0x38(r1)
/* 80379F4C 00376EAC C8 22 CE 70 */ lfd f1, lbl_805AEB90@sda21(r2)
/* 80379F50 00376EB0 54 63 06 1E */ rlwinm r3, r3, 0, 0x18, 0xf
/* 80379F54 00376EB4 C8 01 00 38 */ lfd f0, 0x38(r1)
/* 80379F58 00376EB8 C0 42 CE 68 */ lfs f2, lbl_805AEB88@sda21(r2)
/* 80379F5C 00376EBC EC 00 08 28 */ fsubs f0, f0, f1
/* 80379F60 00376EC0 EC 02 00 32 */ fmuls f0, f2, f0
/* 80379F64 00376EC4 FC 00 00 1E */ fctiwz f0, f0
/* 80379F68 00376EC8 D8 01 00 30 */ stfd f0, 0x30(r1)
/* 80379F6C 00376ECC 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80379F70 00376ED0 50 03 44 2E */ rlwimi r3, r0, 8, 0x10, 0x17
/* 80379F74 00376ED4 90 7F 00 04 */ stw r3, 4(r31)
/* 80379F78 00376ED8 48 00 00 14 */ b lbl_80379F8C
lbl_80379F7C:
/* 80379F7C 00376EDC 80 1F 00 00 */ lwz r0, 0(r31)
/* 80379F80 00376EE0 54 00 06 EE */ rlwinm r0, r0, 0, 0x1b, 0x17
/* 80379F84 00376EE4 60 00 00 80 */ ori r0, r0, 0x80
/* 80379F88 00376EE8 90 1F 00 00 */ stw r0, 0(r31)
lbl_80379F8C:
/* 80379F8C 00376EEC 93 DF 00 14 */ stw r30, 0x14(r31)
/* 80379F90 00376EF0 57 A3 04 3E */ clrlwi r3, r29, 0x10
/* 80379F94 00376EF4 57 C7 07 3E */ clrlwi r7, r30, 0x1c
/* 80379F98 00376EF8 80 BF 00 08 */ lwz r5, 8(r31)
/* 80379F9C 00376EFC 57 84 04 3E */ clrlwi r4, r28, 0x10
/* 80379FA0 00376F00 38 03 FF FF */ addi r0, r3, -1
/* 80379FA4 00376F04 54 A6 00 2A */ rlwinm r6, r5, 0, 0, 0x15
/* 80379FA8 00376F08 38 A4 FF FF */ addi r5, r4, -1
/* 80379FAC 00376F0C 7C C5 2B 78 */ or r5, r6, r5
/* 80379FB0 00376F10 90 BF 00 08 */ stw r5, 8(r31)
/* 80379FB4 00376F14 54 05 50 2A */ slwi r5, r0, 0xa
/* 80379FB8 00376F18 57 60 D9 FE */ rlwinm r0, r27, 0x1b, 7, 0x1f
/* 80379FBC 00376F1C 80 DF 00 08 */ lwz r6, 8(r31)
/* 80379FC0 00376F20 28 07 00 0E */ cmplwi r7, 0xe
/* 80379FC4 00376F24 54 C6 05 96 */ rlwinm r6, r6, 0, 0x16, 0xb
/* 80379FC8 00376F28 7C C5 2B 78 */ or r5, r6, r5
/* 80379FCC 00376F2C 90 BF 00 08 */ stw r5, 8(r31)
/* 80379FD0 00376F30 80 BF 00 08 */ lwz r5, 8(r31)
/* 80379FD4 00376F34 54 A5 03 0E */ rlwinm r5, r5, 0, 0xc, 7
/* 80379FD8 00376F38 53 C5 A2 16 */ rlwimi r5, r30, 0x14, 8, 0xb
/* 80379FDC 00376F3C 90 BF 00 08 */ stw r5, 8(r31)
/* 80379FE0 00376F40 80 BF 00 0C */ lwz r5, 0xc(r31)
/* 80379FE4 00376F44 54 A5 00 14 */ rlwinm r5, r5, 0, 0, 0xa
/* 80379FE8 00376F48 7C A0 03 78 */ or r0, r5, r0
/* 80379FEC 00376F4C 90 1F 00 0C */ stw r0, 0xc(r31)
/* 80379FF0 00376F50 41 81 00 80 */ bgt lbl_8037A070
/* 80379FF4 00376F54 3C A0 80 3F */ lis r5, lbl_803F0BD8@ha
/* 80379FF8 00376F58 38 A5 0B D8 */ addi r5, r5, lbl_803F0BD8@l
/* 80379FFC 00376F5C 54 E0 10 3A */ slwi r0, r7, 2
/* 8037A000 00376F60 7C 05 00 2E */ lwzx r0, r5, r0
/* 8037A004 00376F64 7C 09 03 A6 */ mtctr r0
/* 8037A008 00376F68 4E 80 04 20 */ bctr
/* 8037A00C 00376F6C 38 00 00 01 */ li r0, 1
/* 8037A010 00376F70 98 1F 00 1E */ stb r0, 0x1e(r31)
/* 8037A014 00376F74 38 00 00 03 */ li r0, 3
/* 8037A018 00376F78 38 E0 00 03 */ li r7, 3
/* 8037A01C 00376F7C 48 00 00 64 */ b lbl_8037A080
/* 8037A020 00376F80 38 00 00 02 */ li r0, 2
/* 8037A024 00376F84 98 1F 00 1E */ stb r0, 0x1e(r31)
/* 8037A028 00376F88 38 00 00 03 */ li r0, 3
/* 8037A02C 00376F8C 38 E0 00 02 */ li r7, 2
/* 8037A030 00376F90 48 00 00 50 */ b lbl_8037A080
/* 8037A034 00376F94 38 00 00 02 */ li r0, 2
/* 8037A038 00376F98 98 1F 00 1E */ stb r0, 0x1e(r31)
/* 8037A03C 00376F9C 38 00 00 02 */ li r0, 2
/* 8037A040 00376FA0 38 E0 00 02 */ li r7, 2
/* 8037A044 00376FA4 48 00 00 3C */ b lbl_8037A080
/* 8037A048 00376FA8 38 00 00 03 */ li r0, 3
/* 8037A04C 00376FAC 98 1F 00 1E */ stb r0, 0x1e(r31)
/* 8037A050 00376FB0 38 00 00 02 */ li r0, 2
/* 8037A054 00376FB4 38 E0 00 02 */ li r7, 2
/* 8037A058 00376FB8 48 00 00 28 */ b lbl_8037A080
/* 8037A05C 00376FBC 38 00 00 00 */ li r0, 0
/* 8037A060 00376FC0 98 1F 00 1E */ stb r0, 0x1e(r31)
/* 8037A064 00376FC4 38 00 00 03 */ li r0, 3
/* 8037A068 00376FC8 38 E0 00 03 */ li r7, 3
/* 8037A06C 00376FCC 48 00 00 14 */ b lbl_8037A080
lbl_8037A070:
/* 8037A070 00376FD0 38 00 00 02 */ li r0, 2
/* 8037A074 00376FD4 98 1F 00 1E */ stb r0, 0x1e(r31)
/* 8037A078 00376FD8 38 00 00 02 */ li r0, 2
/* 8037A07C 00376FDC 38 E0 00 02 */ li r7, 2
lbl_8037A080:
/* 8037A080 00376FE0 54 08 04 3E */ clrlwi r8, r0, 0x10
/* 8037A084 00376FE4 38 C0 00 01 */ li r6, 1
/* 8037A088 00376FE8 7C C5 40 30 */ slw r5, r6, r8
/* 8037A08C 00376FEC 54 E7 04 3E */ clrlwi r7, r7, 0x10
/* 8037A090 00376FF0 38 05 FF FF */ addi r0, r5, -1
/* 8037A094 00376FF4 7C C5 38 30 */ slw r5, r6, r7
/* 8037A098 00376FF8 7C 84 02 14 */ add r4, r4, r0
/* 8037A09C 00376FFC 38 05 FF FF */ addi r0, r5, -1
/* 8037A0A0 00377000 7C 84 46 30 */ sraw r4, r4, r8
/* 8037A0A4 00377004 7C 03 02 14 */ add r0, r3, r0
/* 8037A0A8 00377008 7C 00 3E 30 */ sraw r0, r0, r7
/* 8037A0AC 0037700C 7C 04 01 D6 */ mullw r0, r4, r0
/* 8037A0B0 00377010 54 00 04 7E */ clrlwi r0, r0, 0x11
/* 8037A0B4 00377014 B0 1F 00 1C */ sth r0, 0x1c(r31)
/* 8037A0B8 00377018 88 1F 00 1F */ lbz r0, 0x1f(r31)
/* 8037A0BC 0037701C 60 00 00 02 */ ori r0, r0, 2
/* 8037A0C0 00377020 98 1F 00 1F */ stb r0, 0x1f(r31)
/* 8037A0C4 00377024 80 01 00 64 */ lwz r0, 0x64(r1)
/* 8037A0C8 00377028 BB 01 00 40 */ lmw r24, 0x40(r1)
/* 8037A0CC 0037702C 38 21 00 60 */ addi r1, r1, 0x60
/* 8037A0D0 00377030 7C 08 03 A6 */ mtlr r0
/* 8037A0D4 00377034 4E 80 00 20 */ blr
.global GXInitTexObjCI
GXInitTexObjCI:
/* 8037A0D8 00377038 7C 08 02 A6 */ mflr r0
/* 8037A0DC 0037703C 90 01 00 04 */ stw r0, 4(r1)
/* 8037A0E0 00377040 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8037A0E4 00377044 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8037A0E8 00377048 83 E1 00 38 */ lwz r31, 0x38(r1)
/* 8037A0EC 0037704C 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8037A0F0 00377050 7C 7E 1B 78 */ mr r30, r3
/* 8037A0F4 00377054 4B FF FD 71 */ bl GXInitTexObj
/* 8037A0F8 00377058 88 1E 00 1F */ lbz r0, 0x1f(r30)
/* 8037A0FC 0037705C 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
/* 8037A100 00377060 98 1E 00 1F */ stb r0, 0x1f(r30)
/* 8037A104 00377064 93 FE 00 18 */ stw r31, 0x18(r30)
/* 8037A108 00377068 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8037A10C 0037706C 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8037A110 00377070 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 8037A114 00377074 38 21 00 30 */ addi r1, r1, 0x30
/* 8037A118 00377078 7C 08 03 A6 */ mtlr r0
/* 8037A11C 0037707C 4E 80 00 20 */ blr
.global GXInitTexObjLOD
GXInitTexObjLOD:
/* 8037A120 00377080 94 21 FF C8 */ stwu r1, -0x38(r1)
/* 8037A124 00377084 C0 02 CE 78 */ lfs f0, lbl_805AEB98@sda21(r2)
/* 8037A128 00377088 FC 03 00 40 */ fcmpo cr0, f3, f0
/* 8037A12C 0037708C 40 80 00 0C */ bge lbl_8037A138
/* 8037A130 00377090 FC 60 00 90 */ fmr f3, f0
/* 8037A134 00377094 48 00 00 18 */ b lbl_8037A14C
lbl_8037A138:
/* 8037A138 00377098 C0 02 CE 7C */ lfs f0, lbl_805AEB9C@sda21(r2)
/* 8037A13C 0037709C FC 03 00 40 */ fcmpo cr0, f3, f0
/* 8037A140 003770A0 4C 41 13 82 */ cror 2, 1, 2
/* 8037A144 003770A4 40 82 00 08 */ bne lbl_8037A14C
/* 8037A148 003770A8 C0 62 CE 80 */ lfs f3, lbl_805AEBA0@sda21(r2)
lbl_8037A14C:
/* 8037A14C 003770AC C0 02 CE 84 */ lfs f0, lbl_805AEBA4@sda21(r2)
/* 8037A150 003770B0 2C 05 00 01 */ cmpwi r5, 1
/* 8037A154 003770B4 80 03 00 00 */ lwz r0, 0(r3)
/* 8037A158 003770B8 EC 00 00 F2 */ fmuls f0, f0, f3
/* 8037A15C 003770BC 54 05 05 DC */ rlwinm r5, r0, 0, 0x17, 0xe
/* 8037A160 003770C0 FC 00 00 1E */ fctiwz f0, f0
/* 8037A164 003770C4 D8 01 00 30 */ stfd f0, 0x30(r1)
/* 8037A168 003770C8 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8037A16C 003770CC 50 05 4B EC */ rlwimi r5, r0, 9, 0xf, 0x16
/* 8037A170 003770D0 90 A3 00 00 */ stw r5, 0(r3)
/* 8037A174 003770D4 40 82 00 0C */ bne lbl_8037A180
/* 8037A178 003770D8 38 A0 00 01 */ li r5, 1
/* 8037A17C 003770DC 48 00 00 08 */ b lbl_8037A184
lbl_8037A180:
/* 8037A180 003770E0 38 A0 00 00 */ li r5, 0
lbl_8037A184:
/* 8037A184 003770E4 81 23 00 00 */ lwz r9, 0(r3)
/* 8037A188 003770E8 54 E0 06 3F */ clrlwi. r0, r7, 0x18
/* 8037A18C 003770EC 54 A5 20 36 */ slwi r5, r5, 4
/* 8037A190 003770F0 55 27 07 34 */ rlwinm r7, r9, 0, 0x1c, 0x1a
/* 8037A194 003770F4 7C E5 2B 78 */ or r5, r7, r5
/* 8037A198 003770F8 90 A3 00 00 */ stw r5, 0(r3)
/* 8037A19C 003770FC 38 AD 9F 58 */ addi r5, r13, lbl_805A8B18@sda21
/* 8037A1A0 00377100 7C 05 20 AE */ lbzx r0, r5, r4
/* 8037A1A4 00377104 80 E3 00 00 */ lwz r7, 0(r3)
/* 8037A1A8 00377108 54 00 28 34 */ slwi r0, r0, 5
/* 8037A1AC 0037710C 54 E4 06 EE */ rlwinm r4, r7, 0, 0x1b, 0x17
/* 8037A1B0 00377110 7C 80 03 78 */ or r0, r4, r0
/* 8037A1B4 00377114 90 03 00 00 */ stw r0, 0(r3)
/* 8037A1B8 00377118 41 82 00 0C */ beq lbl_8037A1C4
/* 8037A1BC 0037711C 38 00 00 00 */ li r0, 0
/* 8037A1C0 00377120 48 00 00 08 */ b lbl_8037A1C8
lbl_8037A1C4:
/* 8037A1C4 00377124 38 00 00 01 */ li r0, 1
lbl_8037A1C8:
/* 8037A1C8 00377128 80 83 00 00 */ lwz r4, 0(r3)
/* 8037A1CC 0037712C 54 00 40 2E */ slwi r0, r0, 8
/* 8037A1D0 00377130 54 84 06 2C */ rlwinm r4, r4, 0, 0x18, 0x16
/* 8037A1D4 00377134 7C 80 03 78 */ or r0, r4, r0
/* 8037A1D8 00377138 90 03 00 00 */ stw r0, 0(r3)
/* 8037A1DC 0037713C 55 04 98 18 */ slwi r4, r8, 0x13
/* 8037A1E0 00377140 54 C0 A8 D4 */ rlwinm r0, r6, 0x15, 3, 0xa
/* 8037A1E4 00377144 80 A3 00 00 */ lwz r5, 0(r3)
/* 8037A1E8 00377148 54 A5 03 DA */ rlwinm r5, r5, 0, 0xf, 0xd
/* 8037A1EC 0037714C 90 A3 00 00 */ stw r5, 0(r3)
/* 8037A1F0 00377150 80 A3 00 00 */ lwz r5, 0(r3)
/* 8037A1F4 00377154 54 A5 03 98 */ rlwinm r5, r5, 0, 0xe, 0xc
/* 8037A1F8 00377158 90 A3 00 00 */ stw r5, 0(r3)
/* 8037A1FC 0037715C 80 A3 00 00 */ lwz r5, 0(r3)
/* 8037A200 00377160 54 A5 03 54 */ rlwinm r5, r5, 0, 0xd, 0xa
/* 8037A204 00377164 7C A4 23 78 */ or r4, r5, r4
/* 8037A208 00377168 90 83 00 00 */ stw r4, 0(r3)
/* 8037A20C 0037716C 80 83 00 00 */ lwz r4, 0(r3)
/* 8037A210 00377170 54 84 02 D2 */ rlwinm r4, r4, 0, 0xb, 9
/* 8037A214 00377174 7C 80 03 78 */ or r0, r4, r0
/* 8037A218 00377178 90 03 00 00 */ stw r0, 0(r3)
/* 8037A21C 0037717C C0 02 CE 88 */ lfs f0, lbl_805AEBA8@sda21(r2)
/* 8037A220 00377180 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8037A224 00377184 40 80 00 0C */ bge lbl_8037A230
/* 8037A228 00377188 FC 20 00 90 */ fmr f1, f0
/* 8037A22C 0037718C 48 00 00 14 */ b lbl_8037A240
lbl_8037A230:
/* 8037A230 00377190 C0 02 CE 8C */ lfs f0, lbl_805AEBAC@sda21(r2)
/* 8037A234 00377194 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8037A238 00377198 40 81 00 08 */ ble lbl_8037A240
/* 8037A23C 0037719C FC 20 00 90 */ fmr f1, f0
lbl_8037A240:
/* 8037A240 003771A0 C0 62 CE 68 */ lfs f3, lbl_805AEB88@sda21(r2)
/* 8037A244 003771A4 C0 02 CE 88 */ lfs f0, lbl_805AEBA8@sda21(r2)
/* 8037A248 003771A8 EC 23 00 72 */ fmuls f1, f3, f1
/* 8037A24C 003771AC FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8037A250 003771B0 FC 20 08 1E */ fctiwz f1, f1
/* 8037A254 003771B4 D8 21 00 30 */ stfd f1, 0x30(r1)
/* 8037A258 003771B8 80 81 00 34 */ lwz r4, 0x34(r1)
/* 8037A25C 003771BC 40 80 00 0C */ bge lbl_8037A268
/* 8037A260 003771C0 FC 40 00 90 */ fmr f2, f0
/* 8037A264 003771C4 48 00 00 14 */ b lbl_8037A278
lbl_8037A268:
/* 8037A268 003771C8 C0 02 CE 8C */ lfs f0, lbl_805AEBAC@sda21(r2)
/* 8037A26C 003771CC FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8037A270 003771D0 40 81 00 08 */ ble lbl_8037A278
/* 8037A274 003771D4 FC 40 00 90 */ fmr f2, f0
lbl_8037A278:
/* 8037A278 003771D8 80 03 00 04 */ lwz r0, 4(r3)
/* 8037A27C 003771DC 54 00 00 2E */ rlwinm r0, r0, 0, 0, 0x17
/* 8037A280 003771E0 50 80 06 3E */ rlwimi r0, r4, 0, 0x18, 0x1f
/* 8037A284 003771E4 90 03 00 04 */ stw r0, 4(r3)
/* 8037A288 003771E8 C0 02 CE 68 */ lfs f0, lbl_805AEB88@sda21(r2)
/* 8037A28C 003771EC 80 03 00 04 */ lwz r0, 4(r3)
/* 8037A290 003771F0 EC 00 00 B2 */ fmuls f0, f0, f2
/* 8037A294 003771F4 54 04 06 1E */ rlwinm r4, r0, 0, 0x18, 0xf
/* 8037A298 003771F8 FC 00 00 1E */ fctiwz f0, f0
/* 8037A29C 003771FC D8 01 00 30 */ stfd f0, 0x30(r1)
/* 8037A2A0 00377200 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8037A2A4 00377204 50 04 44 2E */ rlwimi r4, r0, 8, 0x10, 0x17
/* 8037A2A8 00377208 90 83 00 04 */ stw r4, 4(r3)
/* 8037A2AC 0037720C 38 21 00 38 */ addi r1, r1, 0x38
/* 8037A2B0 00377210 4E 80 00 20 */ blr
.global GXInitTexObjData
GXInitTexObjData:
/* 8037A2B4 00377214 80 A3 00 0C */ lwz r5, 0xc(r3)
/* 8037A2B8 00377218 54 80 D9 FE */ rlwinm r0, r4, 0x1b, 7, 0x1f
/* 8037A2BC 0037721C 54 A4 00 14 */ rlwinm r4, r5, 0, 0, 0xa
/* 8037A2C0 00377220 7C 80 03 78 */ or r0, r4, r0
/* 8037A2C4 00377224 90 03 00 0C */ stw r0, 0xc(r3)
/* 8037A2C8 00377228 4E 80 00 20 */ blr
.global GXInitTexObjWrapMode
GXInitTexObjWrapMode:
/* 8037A2CC 0037722C 80 C3 00 00 */ lwz r6, 0(r3)
/* 8037A2D0 00377230 54 A0 10 3A */ slwi r0, r5, 2
/* 8037A2D4 00377234 54 C5 00 3A */ rlwinm r5, r6, 0, 0, 0x1d
/* 8037A2D8 00377238 7C A4 23 78 */ or r4, r5, r4
/* 8037A2DC 0037723C 90 83 00 00 */ stw r4, 0(r3)
/* 8037A2E0 00377240 80 83 00 00 */ lwz r4, 0(r3)
/* 8037A2E4 00377244 54 84 07 B6 */ rlwinm r4, r4, 0, 0x1e, 0x1b
/* 8037A2E8 00377248 7C 80 03 78 */ or r0, r4, r0
/* 8037A2EC 0037724C 90 03 00 00 */ stw r0, 0(r3)
/* 8037A2F0 00377250 4E 80 00 20 */ blr
.global GXGetTexObjFmt
GXGetTexObjFmt:
/* 8037A2F4 00377254 80 63 00 14 */ lwz r3, 0x14(r3)
/* 8037A2F8 00377258 4E 80 00 20 */ blr
.global GXLoadTexObjPreLoaded
GXLoadTexObjPreLoaded:
/* 8037A2FC 0037725C 7C 08 02 A6 */ mflr r0
/* 8037A300 00377260 38 ED 9F 30 */ addi r7, r13, lbl_805A8AF0@sda21
/* 8037A304 00377264 90 01 00 04 */ stw r0, 4(r1)
/* 8037A308 00377268 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8037A30C 0037726C 93 E1 00 24 */ stw r31, 0x24(r1)
/* 8037A310 00377270 3F E0 CC 01 */ lis r31, 0xCC008000@ha
/* 8037A314 00377274 93 C1 00 20 */ stw r30, 0x20(r1)
/* 8037A318 00377278 3B C0 00 61 */ li r30, 0x61
/* 8037A31C 0037727C 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 8037A320 00377280 3B A5 00 00 */ addi r29, r5, 0
/* 8037A324 00377284 38 AD 9F 40 */ addi r5, r13, lbl_805A8B00@sda21
/* 8037A328 00377288 93 81 00 18 */ stw r28, 0x18(r1)
/* 8037A32C 0037728C 7C 7C 1B 78 */ mr r28, r3
/* 8037A330 00377290 80 C3 00 00 */ lwz r6, 0(r3)
/* 8037A334 00377294 38 6D 9F 20 */ addi r3, r13, lbl_805A8AE0@sda21
/* 8037A338 00377298 7C 03 E8 AE */ lbzx r0, r3, r29
/* 8037A33C 0037729C 38 6D 9F 28 */ addi r3, r13, lbl_805A8AE8@sda21
/* 8037A340 003772A0 54 00 C0 0E */ slwi r0, r0, 0x18
/* 8037A344 003772A4 50 C0 02 3E */ rlwimi r0, r6, 0, 8, 0x1f
/* 8037A348 003772A8 90 1C 00 00 */ stw r0, 0(r28)
/* 8037A34C 003772AC 38 CD 9F 38 */ addi r6, r13, lbl_805A8AF8@sda21
/* 8037A350 003772B0 7C 03 E8 AE */ lbzx r0, r3, r29
/* 8037A354 003772B4 38 6D 9F 48 */ addi r3, r13, lbl_805A8B08@sda21
/* 8037A358 003772B8 81 1C 00 04 */ lwz r8, 4(r28)
/* 8037A35C 003772BC 54 00 C0 0E */ slwi r0, r0, 0x18
/* 8037A360 003772C0 51 00 02 3E */ rlwimi r0, r8, 0, 8, 0x1f
/* 8037A364 003772C4 90 1C 00 04 */ stw r0, 4(r28)
/* 8037A368 003772C8 7C 07 E8 AE */ lbzx r0, r7, r29
/* 8037A36C 003772CC 81 1C 00 08 */ lwz r8, 8(r28)
/* 8037A370 003772D0 54 00 C0 0E */ slwi r0, r0, 0x18
/* 8037A374 003772D4 51 00 02 3E */ rlwimi r0, r8, 0, 8, 0x1f
/* 8037A378 003772D8 90 1C 00 08 */ stw r0, 8(r28)
/* 8037A37C 003772DC 7C 06 E8 AE */ lbzx r0, r6, r29
/* 8037A380 003772E0 80 E4 00 00 */ lwz r7, 0(r4)
/* 8037A384 003772E4 54 00 C0 0E */ slwi r0, r0, 0x18
/* 8037A388 003772E8 50 E0 02 3E */ rlwimi r0, r7, 0, 8, 0x1f
/* 8037A38C 003772EC 90 04 00 00 */ stw r0, 0(r4)
/* 8037A390 003772F0 7C 05 E8 AE */ lbzx r0, r5, r29
/* 8037A394 003772F4 80 C4 00 04 */ lwz r6, 4(r4)
/* 8037A398 003772F8 54 00 C0 0E */ slwi r0, r0, 0x18
/* 8037A39C 003772FC 50 C0 02 3E */ rlwimi r0, r6, 0, 8, 0x1f
/* 8037A3A0 00377300 90 04 00 04 */ stw r0, 4(r4)
/* 8037A3A4 00377304 7C 03 E8 AE */ lbzx r0, r3, r29
/* 8037A3A8 00377308 80 BC 00 0C */ lwz r5, 0xc(r28)
/* 8037A3AC 0037730C 54 00 C0 0E */ slwi r0, r0, 0x18
/* 8037A3B0 00377310 50 A0 02 3E */ rlwimi r0, r5, 0, 8, 0x1f
/* 8037A3B4 00377314 90 1C 00 0C */ stw r0, 0xc(r28)
/* 8037A3B8 00377318 9B DF 80 00 */ stb r30, 0xCC008000@l(r31)
/* 8037A3BC 0037731C 80 1C 00 00 */ lwz r0, 0(r28)
/* 8037A3C0 00377320 90 1F 80 00 */ stw r0, 0xCC008000@l(r31)
/* 8037A3C4 00377324 9B DF 80 00 */ stb r30, 0xCC008000@l(r31)
/* 8037A3C8 00377328 80 1C 00 04 */ lwz r0, 4(r28)
/* 8037A3CC 0037732C 90 1F 80 00 */ stw r0, 0xCC008000@l(r31)
/* 8037A3D0 00377330 9B DF 80 00 */ stb r30, 0xCC008000@l(r31)
/* 8037A3D4 00377334 80 1C 00 08 */ lwz r0, 8(r28)
/* 8037A3D8 00377338 90 1F 80 00 */ stw r0, 0xCC008000@l(r31)
/* 8037A3DC 0037733C 9B DF 80 00 */ stb r30, 0xCC008000@l(r31)
/* 8037A3E0 00377340 80 04 00 00 */ lwz r0, 0(r4)
/* 8037A3E4 00377344 90 1F 80 00 */ stw r0, 0xCC008000@l(r31)
/* 8037A3E8 00377348 9B DF 80 00 */ stb r30, 0xCC008000@l(r31)
/* 8037A3EC 0037734C 80 04 00 04 */ lwz r0, 4(r4)
/* 8037A3F0 00377350 90 1F 80 00 */ stw r0, 0xCC008000@l(r31)
/* 8037A3F4 00377354 9B DF 80 00 */ stb r30, 0xCC008000@l(r31)
/* 8037A3F8 00377358 80 1C 00 0C */ lwz r0, 0xc(r28)
/* 8037A3FC 0037735C 90 1F 80 00 */ stw r0, 0xCC008000@l(r31)
/* 8037A400 00377360 88 1C 00 1F */ lbz r0, 0x1f(r28)
/* 8037A404 00377364 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 8037A408 00377368 40 82 00 3C */ bne lbl_8037A444
/* 8037A40C 0037736C 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037A410 00377370 80 7C 00 18 */ lwz r3, 0x18(r28)
/* 8037A414 00377374 81 84 04 14 */ lwz r12, 0x414(r4)
/* 8037A418 00377378 7D 88 03 A6 */ mtlr r12
/* 8037A41C 0037737C 4E 80 00 21 */ blrl
/* 8037A420 00377380 38 8D 9F 50 */ addi r4, r13, lbl_805A8B10@sda21
/* 8037A424 00377384 80 A3 00 04 */ lwz r5, 4(r3)
/* 8037A428 00377388 7C 04 E8 AE */ lbzx r0, r4, r29
/* 8037A42C 0037738C 54 00 C0 0E */ slwi r0, r0, 0x18
/* 8037A430 00377390 50 A0 02 3E */ rlwimi r0, r5, 0, 8, 0x1f
/* 8037A434 00377394 90 03 00 04 */ stw r0, 4(r3)
/* 8037A438 00377398 9B DF 80 00 */ stb r30, 0xCC008000@l(r31)
/* 8037A43C 0037739C 80 03 00 04 */ lwz r0, 4(r3)
/* 8037A440 003773A0 90 1F 80 00 */ stw r0, 0xCC008000@l(r31)
lbl_8037A444:
/* 8037A444 003773A4 80 A2 CE 08 */ lwz r5, lbl_805AEB28@sda21(r2)
/* 8037A448 003773A8 57 A4 10 3A */ slwi r4, r29, 2
/* 8037A44C 003773AC 80 7C 00 08 */ lwz r3, 8(r28)
/* 8037A450 003773B0 38 00 00 00 */ li r0, 0
/* 8037A454 003773B4 7C 85 22 14 */ add r4, r5, r4
/* 8037A458 003773B8 90 64 04 5C */ stw r3, 0x45c(r4)
/* 8037A45C 003773BC 80 7C 00 00 */ lwz r3, 0(r28)
/* 8037A460 003773C0 90 64 04 7C */ stw r3, 0x47c(r4)
/* 8037A464 003773C4 80 65 04 F4 */ lwz r3, 0x4f4(r5)
/* 8037A468 003773C8 60 63 00 01 */ ori r3, r3, 1
/* 8037A46C 003773CC 90 65 04 F4 */ stw r3, 0x4f4(r5)
/* 8037A470 003773D0 B0 05 00 02 */ sth r0, 2(r5)
/* 8037A474 003773D4 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8037A478 003773D8 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8037A47C 003773DC 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 8037A480 003773E0 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 8037A484 003773E4 83 81 00 18 */ lwz r28, 0x18(r1)
/* 8037A488 003773E8 38 21 00 28 */ addi r1, r1, 0x28
/* 8037A48C 003773EC 7C 08 03 A6 */ mtlr r0
/* 8037A490 003773F0 4E 80 00 20 */ blr
.global GXLoadTexObj
GXLoadTexObj:
/* 8037A494 003773F4 7C 08 02 A6 */ mflr r0
/* 8037A498 003773F8 90 01 00 04 */ stw r0, 4(r1)
/* 8037A49C 003773FC 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8037A4A0 00377400 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8037A4A4 00377404 3B E4 00 00 */ addi r31, r4, 0
/* 8037A4A8 00377408 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8037A4AC 0037740C 3B C3 00 00 */ addi r30, r3, 0
/* 8037A4B0 00377410 80 A2 CE 08 */ lwz r5, lbl_805AEB28@sda21(r2)
/* 8037A4B4 00377414 81 85 04 10 */ lwz r12, 0x410(r5)
/* 8037A4B8 00377418 7D 88 03 A6 */ mtlr r12
/* 8037A4BC 0037741C 4E 80 00 21 */ blrl
/* 8037A4C0 00377420 38 83 00 00 */ addi r4, r3, 0
/* 8037A4C4 00377424 38 7E 00 00 */ addi r3, r30, 0
/* 8037A4C8 00377428 38 BF 00 00 */ addi r5, r31, 0
/* 8037A4CC 0037742C 4B FF FE 31 */ bl GXLoadTexObjPreLoaded
/* 8037A4D0 00377430 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8037A4D4 00377434 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8037A4D8 00377438 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8037A4DC 0037743C 38 21 00 18 */ addi r1, r1, 0x18
/* 8037A4E0 00377440 7C 08 03 A6 */ mtlr r0
/* 8037A4E4 00377444 4E 80 00 20 */ blr
.global GXInitTlutObj
GXInitTlutObj:
/* 8037A4E8 00377448 38 00 00 00 */ li r0, 0
/* 8037A4EC 0037744C 90 03 00 00 */ stw r0, 0(r3)
/* 8037A4F0 00377450 54 A5 50 2A */ slwi r5, r5, 0xa
/* 8037A4F4 00377454 54 80 D9 FE */ rlwinm r0, r4, 0x1b, 7, 0x1f
/* 8037A4F8 00377458 80 E3 00 00 */ lwz r7, 0(r3)
/* 8037A4FC 0037745C 54 E4 05 A6 */ rlwinm r4, r7, 0, 0x16, 0x13
/* 8037A500 00377460 7C 84 2B 78 */ or r4, r4, r5
/* 8037A504 00377464 90 83 00 00 */ stw r4, 0(r3)
/* 8037A508 00377468 80 83 00 04 */ lwz r4, 4(r3)
/* 8037A50C 0037746C 54 84 00 14 */ rlwinm r4, r4, 0, 0, 0xa
/* 8037A510 00377470 7C 80 03 78 */ or r0, r4, r0
/* 8037A514 00377474 90 03 00 04 */ stw r0, 4(r3)
/* 8037A518 00377478 80 03 00 04 */ lwz r0, 4(r3)
/* 8037A51C 0037747C 54 00 02 3E */ clrlwi r0, r0, 8
/* 8037A520 00377480 64 00 64 00 */ oris r0, r0, 0x6400
/* 8037A524 00377484 90 03 00 04 */ stw r0, 4(r3)
/* 8037A528 00377488 B0 C3 00 08 */ sth r6, 8(r3)
/* 8037A52C 0037748C 4E 80 00 20 */ blr
.global GXLoadTlut
GXLoadTlut:
/* 8037A530 00377490 7C 08 02 A6 */ mflr r0
/* 8037A534 00377494 90 01 00 04 */ stw r0, 4(r1)
/* 8037A538 00377498 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8037A53C 0037749C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8037A540 003774A0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8037A544 003774A4 7C 7E 1B 78 */ mr r30, r3
/* 8037A548 003774A8 38 64 00 00 */ addi r3, r4, 0
/* 8037A54C 003774AC 80 A2 CE 08 */ lwz r5, lbl_805AEB28@sda21(r2)
/* 8037A550 003774B0 81 85 04 14 */ lwz r12, 0x414(r5)
/* 8037A554 003774B4 7D 88 03 A6 */ mtlr r12
/* 8037A558 003774B8 4E 80 00 21 */ blrl
/* 8037A55C 003774BC 7C 7F 1B 78 */ mr r31, r3
/* 8037A560 003774C0 48 00 0E 95 */ bl __GXFlushTextureState
/* 8037A564 003774C4 38 80 00 61 */ li r4, 0x61
/* 8037A568 003774C8 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8037A56C 003774CC 98 83 80 00 */ stb r4, 0xCC008000@l(r3)
/* 8037A570 003774D0 80 1E 00 04 */ lwz r0, 4(r30)
/* 8037A574 003774D4 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
/* 8037A578 003774D8 98 83 80 00 */ stb r4, 0xCC008000@l(r3)
/* 8037A57C 003774DC 80 1F 00 00 */ lwz r0, 0(r31)
/* 8037A580 003774E0 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
/* 8037A584 003774E4 48 00 0E 71 */ bl __GXFlushTextureState
/* 8037A588 003774E8 80 1F 00 00 */ lwz r0, 0(r31)
/* 8037A58C 003774EC 80 7E 00 00 */ lwz r3, 0(r30)
/* 8037A590 003774F0 54 00 05 BE */ clrlwi r0, r0, 0x16
/* 8037A594 003774F4 50 60 00 2A */ rlwimi r0, r3, 0, 0, 0x15
/* 8037A598 003774F8 90 1E 00 00 */ stw r0, 0(r30)
/* 8037A59C 003774FC 80 7E 00 00 */ lwz r3, 0(r30)
/* 8037A5A0 00377500 80 1E 00 04 */ lwz r0, 4(r30)
/* 8037A5A4 00377504 90 7F 00 04 */ stw r3, 4(r31)
/* 8037A5A8 00377508 90 1F 00 08 */ stw r0, 8(r31)
/* 8037A5AC 0037750C 80 1E 00 08 */ lwz r0, 8(r30)
/* 8037A5B0 00377510 90 1F 00 0C */ stw r0, 0xc(r31)
/* 8037A5B4 00377514 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8037A5B8 00377518 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8037A5BC 0037751C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8037A5C0 00377520 38 21 00 20 */ addi r1, r1, 0x20
/* 8037A5C4 00377524 7C 08 03 A6 */ mtlr r0
/* 8037A5C8 00377528 4E 80 00 20 */ blr
.global GXInitTexCacheRegion
GXInitTexCacheRegion:
/* 8037A5CC 0037752C 2C 06 00 01 */ cmpwi r6, 1
/* 8037A5D0 00377530 41 82 00 28 */ beq lbl_8037A5F8
/* 8037A5D4 00377534 40 80 00 10 */ bge lbl_8037A5E4
/* 8037A5D8 00377538 2C 06 00 00 */ cmpwi r6, 0
/* 8037A5DC 0037753C 40 80 00 14 */ bge lbl_8037A5F0
/* 8037A5E0 00377540 48 00 00 24 */ b lbl_8037A604
lbl_8037A5E4:
/* 8037A5E4 00377544 2C 06 00 03 */ cmpwi r6, 3
/* 8037A5E8 00377548 40 80 00 1C */ bge lbl_8037A604
/* 8037A5EC 0037754C 48 00 00 14 */ b lbl_8037A600
lbl_8037A5F0:
/* 8037A5F0 00377550 39 40 00 03 */ li r10, 3
/* 8037A5F4 00377554 48 00 00 10 */ b lbl_8037A604
lbl_8037A5F8:
/* 8037A5F8 00377558 39 40 00 04 */ li r10, 4
/* 8037A5FC 0037755C 48 00 00 08 */ b lbl_8037A604
lbl_8037A600:
/* 8037A600 00377560 39 40 00 05 */ li r10, 5
lbl_8037A604:
/* 8037A604 00377564 38 00 00 00 */ li r0, 0
/* 8037A608 00377568 90 03 00 00 */ stw r0, 0(r3)
/* 8037A60C 0037756C 54 A6 D9 7E */ srwi r6, r5, 5
/* 8037A610 00377570 55 45 78 20 */ slwi r5, r10, 0xf
/* 8037A614 00377574 81 23 00 00 */ lwz r9, 0(r3)
/* 8037A618 00377578 55 40 90 1A */ slwi r0, r10, 0x12
/* 8037A61C 0037757C 2C 08 00 02 */ cmpwi r8, 2
/* 8037A620 00377580 55 29 00 20 */ rlwinm r9, r9, 0, 0, 0x10
/* 8037A624 00377584 7D 26 33 78 */ or r6, r9, r6
/* 8037A628 00377588 90 C3 00 00 */ stw r6, 0(r3)
/* 8037A62C 0037758C 80 C3 00 00 */ lwz r6, 0(r3)
/* 8037A630 00377590 54 C6 04 5A */ rlwinm r6, r6, 0, 0x11, 0xd
/* 8037A634 00377594 7C C5 2B 78 */ or r5, r6, r5
/* 8037A638 00377598 90 A3 00 00 */ stw r5, 0(r3)
/* 8037A63C 0037759C 80 A3 00 00 */ lwz r5, 0(r3)
/* 8037A640 003775A0 54 A5 03 94 */ rlwinm r5, r5, 0, 0xe, 0xa
/* 8037A644 003775A4 7C A0 03 78 */ or r0, r5, r0
/* 8037A648 003775A8 90 03 00 00 */ stw r0, 0(r3)
/* 8037A64C 003775AC 80 03 00 00 */ lwz r0, 0(r3)
/* 8037A650 003775B0 54 00 02 D2 */ rlwinm r0, r0, 0, 0xb, 9
/* 8037A654 003775B4 90 03 00 00 */ stw r0, 0(r3)
/* 8037A658 003775B8 41 82 00 34 */ beq lbl_8037A68C
/* 8037A65C 003775BC 40 80 00 14 */ bge lbl_8037A670
/* 8037A660 003775C0 2C 08 00 00 */ cmpwi r8, 0
/* 8037A664 003775C4 41 82 00 18 */ beq lbl_8037A67C
/* 8037A668 003775C8 40 80 00 1C */ bge lbl_8037A684
/* 8037A66C 003775CC 48 00 00 2C */ b lbl_8037A698
lbl_8037A670:
/* 8037A670 003775D0 2C 08 00 04 */ cmpwi r8, 4
/* 8037A674 003775D4 40 80 00 24 */ bge lbl_8037A698
/* 8037A678 003775D8 48 00 00 1C */ b lbl_8037A694
lbl_8037A67C:
/* 8037A67C 003775DC 39 40 00 03 */ li r10, 3
/* 8037A680 003775E0 48 00 00 18 */ b lbl_8037A698
lbl_8037A684:
/* 8037A684 003775E4 39 40 00 04 */ li r10, 4
/* 8037A688 003775E8 48 00 00 10 */ b lbl_8037A698
lbl_8037A68C:
/* 8037A68C 003775EC 39 40 00 05 */ li r10, 5
/* 8037A690 003775F0 48 00 00 08 */ b lbl_8037A698
lbl_8037A694:
/* 8037A694 003775F4 39 40 00 00 */ li r10, 0
lbl_8037A698:
/* 8037A698 003775F8 38 00 00 00 */ li r0, 0
/* 8037A69C 003775FC 90 03 00 04 */ stw r0, 4(r3)
/* 8037A6A0 00377600 54 E7 D9 7E */ srwi r7, r7, 5
/* 8037A6A4 00377604 55 46 78 20 */ slwi r6, r10, 0xf
/* 8037A6A8 00377608 81 03 00 04 */ lwz r8, 4(r3)
/* 8037A6AC 0037760C 55 45 90 1A */ slwi r5, r10, 0x12
/* 8037A6B0 00377610 38 00 00 01 */ li r0, 1
/* 8037A6B4 00377614 55 08 00 20 */ rlwinm r8, r8, 0, 0, 0x10
/* 8037A6B8 00377618 7D 07 3B 78 */ or r7, r8, r7
/* 8037A6BC 0037761C 90 E3 00 04 */ stw r7, 4(r3)
/* 8037A6C0 00377620 80 E3 00 04 */ lwz r7, 4(r3)
/* 8037A6C4 00377624 54 E7 04 5A */ rlwinm r7, r7, 0, 0x11, 0xd
/* 8037A6C8 00377628 7C E6 33 78 */ or r6, r7, r6
/* 8037A6CC 0037762C 90 C3 00 04 */ stw r6, 4(r3)
/* 8037A6D0 00377630 80 C3 00 04 */ lwz r6, 4(r3)
/* 8037A6D4 00377634 54 C6 03 94 */ rlwinm r6, r6, 0, 0xe, 0xa
/* 8037A6D8 00377638 7C C5 2B 78 */ or r5, r6, r5
/* 8037A6DC 0037763C 90 A3 00 04 */ stw r5, 4(r3)
/* 8037A6E0 00377640 98 83 00 0C */ stb r4, 0xc(r3)
/* 8037A6E4 00377644 98 03 00 0D */ stb r0, 0xd(r3)
/* 8037A6E8 00377648 4E 80 00 20 */ blr
.global GXInitTlutRegion
GXInitTlutRegion:
/* 8037A6EC 0037764C 38 00 00 00 */ li r0, 0
/* 8037A6F0 00377650 90 03 00 00 */ stw r0, 0(r3)
/* 8037A6F4 00377654 3C 04 FF F8 */ addis r0, r4, 0xfff8
/* 8037A6F8 00377658 54 04 BA 7E */ srwi r4, r0, 9
/* 8037A6FC 0037765C 80 C3 00 00 */ lwz r6, 0(r3)
/* 8037A700 00377660 54 A0 50 2A */ slwi r0, r5, 0xa
/* 8037A704 00377664 54 C5 00 2A */ rlwinm r5, r6, 0, 0, 0x15
/* 8037A708 00377668 7C A4 23 78 */ or r4, r5, r4
/* 8037A70C 0037766C 90 83 00 00 */ stw r4, 0(r3)
/* 8037A710 00377670 80 83 00 00 */ lwz r4, 0(r3)
/* 8037A714 00377674 54 84 05 94 */ rlwinm r4, r4, 0, 0x16, 0xa
/* 8037A718 00377678 7C 80 03 78 */ or r0, r4, r0
/* 8037A71C 0037767C 90 03 00 00 */ stw r0, 0(r3)
/* 8037A720 00377680 80 03 00 00 */ lwz r0, 0(r3)
/* 8037A724 00377684 54 00 02 3E */ clrlwi r0, r0, 8
/* 8037A728 00377688 64 00 65 00 */ oris r0, r0, 0x6500
/* 8037A72C 0037768C 90 03 00 00 */ stw r0, 0(r3)
/* 8037A730 00377690 4E 80 00 20 */ blr
.global GXInvalidateTexRegion
GXInvalidateTexRegion:
/* 8037A734 00377694 7C 08 02 A6 */ mflr r0
/* 8037A738 00377698 90 01 00 04 */ stw r0, 4(r1)
/* 8037A73C 0037769C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8037A740 003776A0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8037A744 003776A4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8037A748 003776A8 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8037A74C 003776AC 80 E3 00 00 */ lwz r7, 0(r3)
/* 8037A750 003776B0 81 03 00 04 */ lwz r8, 4(r3)
/* 8037A754 003776B4 54 E4 8F 7E */ rlwinm r4, r7, 0x11, 0x1d, 0x1f
/* 8037A758 003776B8 34 04 FF FF */ addic. r0, r4, -1
/* 8037A75C 003776BC 54 E6 77 7E */ rlwinm r6, r7, 0xe, 0x1d, 0x1f
/* 8037A760 003776C0 55 05 8F 7E */ rlwinm r5, r8, 0x11, 0x1d, 0x1f
/* 8037A764 003776C4 55 04 77 7E */ rlwinm r4, r8, 0xe, 0x1d, 0x1f
/* 8037A768 003776C8 3B E5 FF FF */ addi r31, r5, -1
/* 8037A76C 003776CC 38 C6 FF FF */ addi r6, r6, -1
/* 8037A770 003776D0 38 A4 FF FF */ addi r5, r4, -1
/* 8037A774 003776D4 40 80 00 08 */ bge lbl_8037A77C
/* 8037A778 003776D8 38 00 00 00 */ li r0, 0
lbl_8037A77C:
/* 8037A77C 003776DC 2C 06 00 00 */ cmpwi r6, 0
/* 8037A780 003776E0 40 80 00 08 */ bge lbl_8037A788
/* 8037A784 003776E4 38 C0 00 00 */ li r6, 0
lbl_8037A788:
/* 8037A788 003776E8 2C 1F 00 00 */ cmpwi r31, 0
/* 8037A78C 003776EC 40 80 00 08 */ bge lbl_8037A794
/* 8037A790 003776F0 3B E0 00 00 */ li r31, 0
lbl_8037A794:
/* 8037A794 003776F4 2C 05 00 00 */ cmpwi r5, 0
/* 8037A798 003776F8 40 80 00 08 */ bge lbl_8037A7A0
/* 8037A79C 003776FC 38 A0 00 00 */ li r5, 0
lbl_8037A7A0:
/* 8037A7A0 00377700 88 63 00 0C */ lbz r3, 0xc(r3)
/* 8037A7A4 00377704 7C 80 32 14 */ add r4, r0, r6
/* 8037A7A8 00377708 38 C4 00 00 */ addi r6, r4, 0
/* 8037A7AC 0037770C 28 03 00 00 */ cmplwi r3, 0
/* 8037A7B0 00377710 41 82 00 10 */ beq lbl_8037A7C0
/* 8037A7B4 00377714 38 05 FF FE */ addi r0, r5, -2
/* 8037A7B8 00377718 7C C0 32 14 */ add r6, r0, r6
/* 8037A7BC 0037771C 7C DF 32 14 */ add r6, r31, r6
lbl_8037A7C0:
/* 8037A7C0 00377720 54 C0 48 2C */ slwi r0, r6, 9
/* 8037A7C4 00377724 50 E0 D5 FE */ rlwimi r0, r7, 0x1a, 0x17, 0x1f
/* 8037A7C8 00377728 54 00 02 3E */ clrlwi r0, r0, 8
/* 8037A7CC 0037772C 2C 1F 00 00 */ cmpwi r31, 0
/* 8037A7D0 00377730 64 1D 66 00 */ oris r29, r0, 0x6600
/* 8037A7D4 00377734 41 82 00 28 */ beq lbl_8037A7FC
/* 8037A7D8 00377738 28 03 00 00 */ cmplwi r3, 0
/* 8037A7DC 0037773C 7C 7F 2A 14 */ add r3, r31, r5
/* 8037A7E0 00377740 41 82 00 0C */ beq lbl_8037A7EC
/* 8037A7E4 00377744 7C 64 1A 14 */ add r3, r4, r3
/* 8037A7E8 00377748 38 63 FF FE */ addi r3, r3, -2
lbl_8037A7EC:
/* 8037A7EC 0037774C 54 60 48 2C */ slwi r0, r3, 9
/* 8037A7F0 00377750 51 00 D5 FE */ rlwimi r0, r8, 0x1a, 0x17, 0x1f
/* 8037A7F4 00377754 54 00 02 3E */ clrlwi r0, r0, 8
/* 8037A7F8 00377758 64 1E 66 00 */ oris r30, r0, 0x6600
lbl_8037A7FC:
/* 8037A7FC 0037775C 48 00 0B F9 */ bl __GXFlushTextureState
/* 8037A800 00377760 38 00 00 61 */ li r0, 0x61
/* 8037A804 00377764 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8037A808 00377768 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037A80C 0037776C 2C 1F 00 00 */ cmpwi r31, 0
/* 8037A810 00377770 93 A3 80 00 */ stw r29, 0xCC008000@l(r3)
/* 8037A814 00377774 41 82 00 0C */ beq lbl_8037A820
/* 8037A818 00377778 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037A81C 0037777C 93 C3 80 00 */ stw r30, 0xCC008000@l(r3)
lbl_8037A820:
/* 8037A820 00377780 48 00 0B D5 */ bl __GXFlushTextureState
/* 8037A824 00377784 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8037A828 00377788 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8037A82C 0037778C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8037A830 00377790 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8037A834 00377794 38 21 00 20 */ addi r1, r1, 0x20
/* 8037A838 00377798 7C 08 03 A6 */ mtlr r0
/* 8037A83C 0037779C 4E 80 00 20 */ blr
.global GXInvalidateTexAll
GXInvalidateTexAll:
/* 8037A840 003777A0 7C 08 02 A6 */ mflr r0
/* 8037A844 003777A4 90 01 00 04 */ stw r0, 4(r1)
/* 8037A848 003777A8 94 21 FF F8 */ stwu r1, -8(r1)
/* 8037A84C 003777AC 48 00 0B A9 */ bl __GXFlushTextureState
/* 8037A850 003777B0 38 C0 00 61 */ li r6, 0x61
/* 8037A854 003777B4 3C 60 66 00 */ lis r3, 0x66001000@ha
/* 8037A858 003777B8 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037A85C 003777BC 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
/* 8037A860 003777C0 38 83 10 00 */ addi r4, r3, 0x66001000@l
/* 8037A864 003777C4 38 03 11 00 */ addi r0, r3, 0x1100
/* 8037A868 003777C8 90 85 80 00 */ stw r4, 0xCC008000@l(r5)
/* 8037A86C 003777CC 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
/* 8037A870 003777D0 90 05 80 00 */ stw r0, 0xCC008000@l(r5)
/* 8037A874 003777D4 48 00 0B 81 */ bl __GXFlushTextureState
/* 8037A878 003777D8 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8037A87C 003777DC 38 21 00 08 */ addi r1, r1, 8
/* 8037A880 003777E0 7C 08 03 A6 */ mtlr r0
/* 8037A884 003777E4 4E 80 00 20 */ blr
.global GXSetTexRegionCallback
GXSetTexRegionCallback:
/* 8037A888 003777E8 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037A88C 003777EC 84 04 04 10 */ lwzu r0, 0x410(r4)
/* 8037A890 003777F0 90 64 00 00 */ stw r3, 0(r4)
/* 8037A894 003777F4 7C 03 03 78 */ mr r3, r0
/* 8037A898 003777F8 4E 80 00 20 */ blr
.global GXSetTlutRegionCallback
GXSetTlutRegionCallback:
/* 8037A89C 003777FC 80 82 CE 08 */ lwz r4, lbl_805AEB28@sda21(r2)
/* 8037A8A0 00377800 84 04 04 14 */ lwzu r0, 0x414(r4)
/* 8037A8A4 00377804 90 64 00 00 */ stw r3, 0(r4)
/* 8037A8A8 00377808 7C 03 03 78 */ mr r3, r0
/* 8037A8AC 0037780C 4E 80 00 20 */ blr
.global GXSetTexCoordCylWrap
GXSetTexCoordCylWrap:
/* 8037A8B0 00377810 81 02 CE 08 */ lwz r8, lbl_805AEB28@sda21(r2)
/* 8037A8B4 00377814 38 00 00 01 */ li r0, 1
/* 8037A8B8 00377818 54 84 06 3F */ clrlwi. r4, r4, 0x18
/* 8037A8BC 0037781C 80 E8 04 DC */ lwz r7, 0x4dc(r8)
/* 8037A8C0 00377820 7C 00 18 30 */ slw r0, r0, r3
/* 8037A8C4 00377824 7C E7 00 78 */ andc r7, r7, r0
/* 8037A8C8 00377828 7C 80 18 30 */ slw r0, r4, r3
/* 8037A8CC 0037782C 7C E0 03 78 */ or r0, r7, r0
/* 8037A8D0 00377830 90 08 04 DC */ stw r0, 0x4dc(r8)
/* 8037A8D4 00377834 4D 82 00 20 */ beqlr
/* 8037A8D8 00377838 54 67 10 3A */ slwi r7, r3, 2
/* 8037A8DC 0037783C 7C 88 3A 14 */ add r4, r8, r7
/* 8037A8E0 00377840 80 64 00 B8 */ lwz r3, 0xb8(r4)
/* 8037A8E4 00377844 38 05 FF FF */ addi r0, r5, -1
/* 8037A8E8 00377848 54 00 04 3E */ clrlwi r0, r0, 0x10
/* 8037A8EC 0037784C 50 60 00 1E */ rlwimi r0, r3, 0, 0, 0xf
/* 8037A8F0 00377850 90 04 00 B8 */ stw r0, 0xb8(r4)
/* 8037A8F4 00377854 7C A8 3A 14 */ add r5, r8, r7
/* 8037A8F8 00377858 38 06 FF FF */ addi r0, r6, -1
/* 8037A8FC 0037785C 80 65 00 D8 */ lwz r3, 0xd8(r5)
/* 8037A900 00377860 38 C0 00 61 */ li r6, 0x61
/* 8037A904 00377864 7C 88 3A 14 */ add r4, r8, r7
/* 8037A908 00377868 54 63 00 1E */ rlwinm r3, r3, 0, 0, 0xf
/* 8037A90C 0037786C 50 03 04 3E */ rlwimi r3, r0, 0, 0x10, 0x1f
/* 8037A910 00377870 90 65 00 D8 */ stw r3, 0xd8(r5)
/* 8037A914 00377874 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037A918 00377878 38 00 00 00 */ li r0, 0
/* 8037A91C 0037787C 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
/* 8037A920 00377880 80 64 00 B8 */ lwz r3, 0xb8(r4)
/* 8037A924 00377884 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037A928 00377888 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
/* 8037A92C 0037788C 80 64 00 D8 */ lwz r3, 0xd8(r4)
/* 8037A930 00377890 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037A934 00377894 B0 08 00 02 */ sth r0, 2(r8)
/* 8037A938 00377898 4E 80 00 20 */ blr
.global GXSetTexCoordBias
GXSetTexCoordBias:
/* 8037A93C 0037789C 80 E2 CE 08 */ lwz r7, lbl_805AEB28@sda21(r2)
/* 8037A940 003778A0 54 69 10 3A */ slwi r9, r3, 2
/* 8037A944 003778A4 7D 07 4A 14 */ add r8, r7, r9
/* 8037A948 003778A8 80 08 00 B8 */ lwz r0, 0xb8(r8)
/* 8037A94C 003778AC 7D 47 4A 14 */ add r10, r7, r9
/* 8037A950 003778B0 54 06 04 1C */ rlwinm r6, r0, 0, 0x10, 0xe
/* 8037A954 003778B4 54 80 82 1E */ rlwinm r0, r4, 0x10, 8, 0xf
/* 8037A958 003778B8 7C C0 03 78 */ or r0, r6, r0
/* 8037A95C 003778BC 90 08 00 B8 */ stw r0, 0xb8(r8)
/* 8037A960 003778C0 38 00 00 01 */ li r0, 1
/* 8037A964 003778C4 54 A4 82 1E */ rlwinm r4, r5, 0x10, 8, 0xf
/* 8037A968 003778C8 80 CA 00 D8 */ lwz r6, 0xd8(r10)
/* 8037A96C 003778CC 7C 00 18 30 */ slw r0, r0, r3
/* 8037A970 003778D0 54 C3 04 1C */ rlwinm r3, r6, 0, 0x10, 0xe
/* 8037A974 003778D4 7C 63 23 78 */ or r3, r3, r4
/* 8037A978 003778D8 90 6A 00 D8 */ stw r3, 0xd8(r10)
/* 8037A97C 003778DC 80 67 04 DC */ lwz r3, 0x4dc(r7)
/* 8037A980 003778E0 7C 60 00 39 */ and. r0, r3, r0
/* 8037A984 003778E4 4D 82 00 20 */ beqlr
/* 8037A988 003778E8 38 C0 00 61 */ li r6, 0x61
/* 8037A98C 003778EC 3C A0 CC 01 */ lis r5, 0xCC008000@ha
/* 8037A990 003778F0 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
/* 8037A994 003778F4 7C 87 4A 14 */ add r4, r7, r9
/* 8037A998 003778F8 38 00 00 00 */ li r0, 0
/* 8037A99C 003778FC 80 64 00 B8 */ lwz r3, 0xb8(r4)
/* 8037A9A0 00377900 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037A9A4 00377904 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
/* 8037A9A8 00377908 80 64 00 D8 */ lwz r3, 0xd8(r4)
/* 8037A9AC 0037790C 90 65 80 00 */ stw r3, 0xCC008000@l(r5)
/* 8037A9B0 00377910 B0 07 00 02 */ sth r0, 2(r7)
/* 8037A9B4 00377914 4E 80 00 20 */ blr
.global __SetSURegs
__SetSURegs:
/* 8037A9B8 00377918 80 A2 CE 08 */ lwz r5, lbl_805AEB28@sda21(r2)
/* 8037A9BC 0037791C 54 88 10 3A */ slwi r8, r4, 2
/* 8037A9C0 00377920 54 60 10 3A */ slwi r0, r3, 2
/* 8037A9C4 00377924 7C 65 02 14 */ add r3, r5, r0
/* 8037A9C8 00377928 7C C5 42 14 */ add r6, r5, r8
/* 8037A9CC 0037792C 80 83 04 5C */ lwz r4, 0x45c(r3)
/* 8037A9D0 00377930 80 06 00 B8 */ lwz r0, 0xb8(r6)
/* 8037A9D4 00377934 7C E5 42 14 */ add r7, r5, r8
/* 8037A9D8 00377938 7D 25 42 14 */ add r9, r5, r8
/* 8037A9DC 0037793C 54 00 00 1E */ rlwinm r0, r0, 0, 0, 0xf
/* 8037A9E0 00377940 50 80 05 BE */ rlwimi r0, r4, 0, 0x16, 0x1f
/* 8037A9E4 00377944 90 06 00 B8 */ stw r0, 0xb8(r6)
/* 8037A9E8 00377948 7D 45 42 14 */ add r10, r5, r8
/* 8037A9EC 0037794C 80 07 00 D8 */ lwz r0, 0xd8(r7)
/* 8037A9F0 00377950 54 00 00 1E */ rlwinm r0, r0, 0, 0, 0xf
/* 8037A9F4 00377954 50 80 B5 BE */ rlwimi r0, r4, 0x16, 0x16, 0x1f
/* 8037A9F8 00377958 90 07 00 D8 */ stw r0, 0xd8(r7)
/* 8037A9FC 0037795C 38 E0 00 61 */ li r7, 0x61
/* 8037AA00 00377960 80 C3 04 7C */ lwz r6, 0x47c(r3)
/* 8037AA04 00377964 80 69 00 B8 */ lwz r3, 0xb8(r9)
/* 8037AA08 00377968 54 C0 F7 BE */ rlwinm r0, r6, 0x1e, 0x1e, 0x1f
/* 8037AA0C 0037796C 20 80 00 01 */ subfic r4, r0, 1
/* 8037AA10 00377970 54 C0 07 BE */ clrlwi r0, r6, 0x1e
/* 8037AA14 00377974 20 00 00 01 */ subfic r0, r0, 1
/* 8037AA18 00377978 7C 00 00 34 */ cntlzw r0, r0
/* 8037AA1C 0037797C 54 63 04 1C */ rlwinm r3, r3, 0, 0x10, 0xe
/* 8037AA20 00377980 54 00 5A 1E */ rlwinm r0, r0, 0xb, 8, 0xf
/* 8037AA24 00377984 7C 60 03 78 */ or r0, r3, r0
/* 8037AA28 00377988 90 09 00 B8 */ stw r0, 0xb8(r9)
/* 8037AA2C 0037798C 7C 80 00 34 */ cntlzw r0, r4
/* 8037AA30 00377990 54 00 5A 1E */ rlwinm r0, r0, 0xb, 8, 0xf
/* 8037AA34 00377994 80 6A 00 D8 */ lwz r3, 0xd8(r10)
/* 8037AA38 00377998 3C C0 CC 01 */ lis r6, 0xCC008000@ha
/* 8037AA3C 0037799C 7C 85 42 14 */ add r4, r5, r8
/* 8037AA40 003779A0 54 63 04 1C */ rlwinm r3, r3, 0, 0x10, 0xe
/* 8037AA44 003779A4 7C 60 03 78 */ or r0, r3, r0
/* 8037AA48 003779A8 90 0A 00 D8 */ stw r0, 0xd8(r10)
/* 8037AA4C 003779AC 38 00 00 00 */ li r0, 0
/* 8037AA50 003779B0 98 E6 80 00 */ stb r7, 0xCC008000@l(r6)
/* 8037AA54 003779B4 80 64 00 B8 */ lwz r3, 0xb8(r4)
/* 8037AA58 003779B8 90 66 80 00 */ stw r3, 0xCC008000@l(r6)
/* 8037AA5C 003779BC 98 E6 80 00 */ stb r7, 0xCC008000@l(r6)
/* 8037AA60 003779C0 80 64 00 D8 */ lwz r3, 0xd8(r4)
/* 8037AA64 003779C4 90 66 80 00 */ stw r3, 0xCC008000@l(r6)
/* 8037AA68 003779C8 B0 05 00 02 */ sth r0, 2(r5)
/* 8037AA6C 003779CC 4E 80 00 20 */ blr
.global __GXSetSUTexRegs
__GXSetSUTexRegs:
/* 8037AA70 003779D0 7C 08 02 A6 */ mflr r0
/* 8037AA74 003779D4 90 01 00 04 */ stw r0, 4(r1)
/* 8037AA78 003779D8 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8037AA7C 003779DC BF 61 00 14 */ stmw r27, 0x14(r1)
/* 8037AA80 003779E0 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037AA84 003779E4 80 03 04 DC */ lwz r0, 0x4dc(r3)
/* 8037AA88 003779E8 28 00 00 FF */ cmplwi r0, 0xff
/* 8037AA8C 003779EC 41 82 01 4C */ beq lbl_8037ABD8
/* 8037AA90 003779F0 80 03 02 04 */ lwz r0, 0x204(r3)
/* 8037AA94 003779F4 3B E0 00 00 */ li r31, 0
/* 8037AA98 003779F8 54 03 B7 3E */ rlwinm r3, r0, 0x16, 0x1c, 0x1f
/* 8037AA9C 003779FC 3B C3 00 01 */ addi r30, r3, 1
/* 8037AAA0 00377A00 54 1B 87 7E */ rlwinm r27, r0, 0x10, 0x1d, 0x1f
/* 8037AAA4 00377A04 48 00 00 A0 */ b lbl_8037AB44
lbl_8037AAA8:
/* 8037AAA8 00377A08 2C 1F 00 02 */ cmpwi r31, 2
/* 8037AAAC 00377A0C 41 82 00 4C */ beq lbl_8037AAF8
/* 8037AAB0 00377A10 40 80 00 14 */ bge lbl_8037AAC4
/* 8037AAB4 00377A14 2C 1F 00 00 */ cmpwi r31, 0
/* 8037AAB8 00377A18 41 82 00 18 */ beq lbl_8037AAD0
/* 8037AABC 00377A1C 40 80 00 28 */ bge lbl_8037AAE4
/* 8037AAC0 00377A20 48 00 00 5C */ b lbl_8037AB1C
lbl_8037AAC4:
/* 8037AAC4 00377A24 2C 1F 00 04 */ cmpwi r31, 4
/* 8037AAC8 00377A28 40 80 00 54 */ bge lbl_8037AB1C
/* 8037AACC 00377A2C 48 00 00 40 */ b lbl_8037AB0C
lbl_8037AAD0:
/* 8037AAD0 00377A30 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037AAD4 00377A34 80 03 01 20 */ lwz r0, 0x120(r3)
/* 8037AAD8 00377A38 54 1D 07 7E */ clrlwi r29, r0, 0x1d
/* 8037AADC 00377A3C 54 1C EF 7E */ rlwinm r28, r0, 0x1d, 0x1d, 0x1f
/* 8037AAE0 00377A40 48 00 00 3C */ b lbl_8037AB1C
lbl_8037AAE4:
/* 8037AAE4 00377A44 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037AAE8 00377A48 80 03 01 20 */ lwz r0, 0x120(r3)
/* 8037AAEC 00377A4C 54 1D D7 7E */ rlwinm r29, r0, 0x1a, 0x1d, 0x1f
/* 8037AAF0 00377A50 54 1C BF 7E */ rlwinm r28, r0, 0x17, 0x1d, 0x1f
/* 8037AAF4 00377A54 48 00 00 28 */ b lbl_8037AB1C
lbl_8037AAF8:
/* 8037AAF8 00377A58 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037AAFC 00377A5C 80 03 01 20 */ lwz r0, 0x120(r3)
/* 8037AB00 00377A60 54 1D A7 7E */ rlwinm r29, r0, 0x14, 0x1d, 0x1f
/* 8037AB04 00377A64 54 1C 8F 7E */ rlwinm r28, r0, 0x11, 0x1d, 0x1f
/* 8037AB08 00377A68 48 00 00 14 */ b lbl_8037AB1C
lbl_8037AB0C:
/* 8037AB0C 00377A6C 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037AB10 00377A70 80 03 01 20 */ lwz r0, 0x120(r3)
/* 8037AB14 00377A74 54 1D 77 7E */ rlwinm r29, r0, 0xe, 0x1d, 0x1f
/* 8037AB18 00377A78 54 1C 5F 7E */ rlwinm r28, r0, 0xb, 0x1d, 0x1f
lbl_8037AB1C:
/* 8037AB1C 00377A7C 80 62 CE 08 */ lwz r3, lbl_805AEB28@sda21(r2)
/* 8037AB20 00377A80 38 00 00 01 */ li r0, 1
/* 8037AB24 00377A84 7C 00 E0 30 */ slw r0, r0, r28
/* 8037AB28 00377A88 80 63 04 DC */ lwz r3, 0x4dc(r3)
/* 8037AB2C 00377A8C 7C 60 00 39 */ and. r0, r3, r0
/* 8037AB30 00377A90 40 82 00 10 */ bne lbl_8037AB40
/* 8037AB34 00377A94 38 7D 00 00 */ addi r3, r29, 0
/* 8037AB38 00377A98 38 9C 00 00 */ addi r4, r28, 0
/* 8037AB3C 00377A9C 4B FF FE 7D */ bl __SetSURegs
lbl_8037AB40:
/* 8037AB40 00377AA0 3B FF 00 01 */ addi r31, r31, 1
lbl_8037AB44:
/* 8037AB44 00377AA4 7C 1F D8 40 */ cmplw r31, r27
/* 8037AB48 00377AA8 41 80 FF 60 */ blt lbl_8037AAA8
/* 8037AB4C 00377AAC 3B E0 00 00 */ li r31, 0
/* 8037AB50 00377AB0 3B 7F 00 00 */ addi r27, r31, 0
/* 8037AB54 00377AB4 48 00 00 7C */ b lbl_8037ABD0
lbl_8037AB58:
/* 8037AB58 00377AB8 80 A2 CE 08 */ lwz r5, lbl_805AEB28@sda21(r2)
/* 8037AB5C 00377ABC 38 7B 04 9C */ addi r3, r27, 0x49c
/* 8037AB60 00377AC0 57 E4 08 3A */ rlwinm r4, r31, 1, 0, 0x1d
/* 8037AB64 00377AC4 7C 65 18 2E */ lwzx r3, r5, r3
/* 8037AB68 00377AC8 57 E0 07 FF */ clrlwi. r0, r31, 0x1f
/* 8037AB6C 00377ACC 38 84 01 00 */ addi r4, r4, 0x100
/* 8037AB70 00377AD0 7C 85 22 14 */ add r4, r5, r4
/* 8037AB74 00377AD4 54 7D 06 2C */ rlwinm r29, r3, 0, 0x18, 0x16
/* 8037AB78 00377AD8 41 82 00 10 */ beq lbl_8037AB88
/* 8037AB7C 00377ADC 80 04 00 00 */ lwz r0, 0(r4)
/* 8037AB80 00377AE0 54 1C 8F 7E */ rlwinm r28, r0, 0x11, 0x1d, 0x1f
/* 8037AB84 00377AE4 48 00 00 0C */ b lbl_8037AB90
lbl_8037AB88:
/* 8037AB88 00377AE8 80 04 00 00 */ lwz r0, 0(r4)
/* 8037AB8C 00377AEC 54 1C EF 7E */ rlwinm r28, r0, 0x1d, 0x1d, 0x1f
lbl_8037AB90:
/* 8037AB90 00377AF0 28 1D 00 FF */ cmplwi r29, 0xff
/* 8037AB94 00377AF4 41 82 00 34 */ beq lbl_8037ABC8
/* 8037AB98 00377AF8 38 80 00 01 */ li r4, 1
/* 8037AB9C 00377AFC 80 65 04 DC */ lwz r3, 0x4dc(r5)
/* 8037ABA0 00377B00 7C 80 E0 30 */ slw r0, r4, r28
/* 8037ABA4 00377B04 7C 60 00 39 */ and. r0, r3, r0
/* 8037ABA8 00377B08 40 82 00 20 */ bne lbl_8037ABC8
/* 8037ABAC 00377B0C 80 65 04 E0 */ lwz r3, 0x4e0(r5)
/* 8037ABB0 00377B10 7C 80 F8 30 */ slw r0, r4, r31
/* 8037ABB4 00377B14 7C 60 00 39 */ and. r0, r3, r0
/* 8037ABB8 00377B18 41 82 00 10 */ beq lbl_8037ABC8
/* 8037ABBC 00377B1C 38 7D 00 00 */ addi r3, r29, 0
/* 8037ABC0 00377B20 38 9C 00 00 */ addi r4, r28, 0
/* 8037ABC4 00377B24 4B FF FD F5 */ bl __SetSURegs
lbl_8037ABC8:
/* 8037ABC8 00377B28 3B 7B 00 04 */ addi r27, r27, 4
/* 8037ABCC 00377B2C 3B FF 00 01 */ addi r31, r31, 1
lbl_8037ABD0:
/* 8037ABD0 00377B30 7C 1F F0 40 */ cmplw r31, r30
/* 8037ABD4 00377B34 41 80 FF 84 */ blt lbl_8037AB58
lbl_8037ABD8:
/* 8037ABD8 00377B38 BB 61 00 14 */ lmw r27, 0x14(r1)
/* 8037ABDC 00377B3C 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8037ABE0 00377B40 38 21 00 28 */ addi r1, r1, 0x28
/* 8037ABE4 00377B44 7C 08 03 A6 */ mtlr r0
/* 8037ABE8 00377B48 4E 80 00 20 */ blr
.global __GXSetTmemConfig
__GXSetTmemConfig:
/* 8037ABEC 00377B4C 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8037ABF0 00377B50 2C 03 00 01 */ cmpwi r3, 1
/* 8037ABF4 00377B54 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8037ABF8 00377B58 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8037ABFC 00377B5C 41 82 00 0C */ beq lbl_8037AC08
/* 8037AC00 00377B60 40 80 01 14 */ bge lbl_8037AD14
/* 8037AC04 00377B64 48 00 01 10 */ b lbl_8037AD14
lbl_8037AC08:
/* 8037AC08 00377B68 38 00 00 61 */ li r0, 0x61
/* 8037AC0C 00377B6C 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8037AC10 00377B70 3C 80 8C 0E */ lis r4, 0x8C0D8000@ha
/* 8037AC14 00377B74 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037AC18 00377B78 38 84 80 00 */ addi r4, r4, 0x8C0D8000@l
/* 8037AC1C 00377B7C 90 83 80 00 */ stw r4, 0xCC008000@l(r3)
/* 8037AC20 00377B80 3C 80 90 0E */ lis r4, 0x900DC000@ha
/* 8037AC24 00377B84 3C E0 8D 0E */ lis r7, 0x8D0D8800@ha
/* 8037AC28 00377B88 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037AC2C 00377B8C 38 84 C0 00 */ addi r4, r4, 0x900DC000@l
/* 8037AC30 00377B90 3C C0 91 0E */ lis r6, 0x910DC800@ha
/* 8037AC34 00377B94 90 83 80 00 */ stw r4, 0xCC008000@l(r3)
/* 8037AC38 00377B98 3C A0 8E 0E */ lis r5, 0x8E0D9000@ha
/* 8037AC3C 00377B9C 3C 80 92 0E */ lis r4, 0x920DD000@ha
/* 8037AC40 00377BA0 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037AC44 00377BA4 38 E7 88 00 */ addi r7, r7, 0x8D0D8800@l
/* 8037AC48 00377BA8 3F C0 8F 0E */ lis r30, 0x8F0D9800@ha
/* 8037AC4C 00377BAC 90 E3 80 00 */ stw r7, 0xCC008000@l(r3)
/* 8037AC50 00377BB0 3D 80 93 0E */ lis r12, 0x930DD800@ha
/* 8037AC54 00377BB4 3D 60 AC 0E */ lis r11, 0xAC0DA000@ha
/* 8037AC58 00377BB8 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037AC5C 00377BBC 38 C6 C8 00 */ addi r6, r6, 0x910DC800@l
/* 8037AC60 00377BC0 3D 40 B0 0E */ lis r10, 0xB00DE000@ha
/* 8037AC64 00377BC4 90 C3 80 00 */ stw r6, 0xCC008000@l(r3)
/* 8037AC68 00377BC8 3D 20 AD 0E */ lis r9, 0xAD0DA800@ha
/* 8037AC6C 00377BCC 3D 00 B1 0E */ lis r8, 0xB10DE800@ha
/* 8037AC70 00377BD0 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037AC74 00377BD4 38 A5 90 00 */ addi r5, r5, 0x8E0D9000@l
/* 8037AC78 00377BD8 3C E0 AE 0E */ lis r7, 0xAE0DB000@ha
/* 8037AC7C 00377BDC 90 A3 80 00 */ stw r5, 0xCC008000@l(r3)
/* 8037AC80 00377BE0 3C C0 B2 0E */ lis r6, 0xB20DF000@ha
/* 8037AC84 00377BE4 3C A0 AF 0E */ lis r5, 0xAF0DB800@ha
/* 8037AC88 00377BE8 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037AC8C 00377BEC 3B E4 D0 00 */ addi r31, r4, 0x920DD000@l
/* 8037AC90 00377BF0 3C 80 B3 0E */ lis r4, 0xB30DF800@ha
/* 8037AC94 00377BF4 93 E3 80 00 */ stw r31, 0xCC008000@l(r3)
/* 8037AC98 00377BF8 3B DE 98 00 */ addi r30, r30, 0x8F0D9800@l
/* 8037AC9C 00377BFC 39 8C D8 00 */ addi r12, r12, 0x930DD800@l
/* 8037ACA0 00377C00 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037ACA4 00377C04 39 6B A0 00 */ addi r11, r11, 0xAC0DA000@l
/* 8037ACA8 00377C08 39 4A E0 00 */ addi r10, r10, 0xB00DE000@l
/* 8037ACAC 00377C0C 93 C3 80 00 */ stw r30, 0xCC008000@l(r3)
/* 8037ACB0 00377C10 39 29 A8 00 */ addi r9, r9, 0xAD0DA800@l
/* 8037ACB4 00377C14 39 08 E8 00 */ addi r8, r8, 0xB10DE800@l
/* 8037ACB8 00377C18 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037ACBC 00377C1C 38 E7 B0 00 */ addi r7, r7, 0xAE0DB000@l
/* 8037ACC0 00377C20 38 C6 F0 00 */ addi r6, r6, 0xB20DF000@l
/* 8037ACC4 00377C24 91 83 80 00 */ stw r12, 0xCC008000@l(r3)
/* 8037ACC8 00377C28 38 A5 B8 00 */ addi r5, r5, 0xAF0DB800@l
/* 8037ACCC 00377C2C 38 84 F8 00 */ addi r4, r4, 0xB30DF800@l
/* 8037ACD0 00377C30 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037ACD4 00377C34 91 63 80 00 */ stw r11, 0xCC008000@l(r3)
/* 8037ACD8 00377C38 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037ACDC 00377C3C 91 43 80 00 */ stw r10, 0xCC008000@l(r3)
/* 8037ACE0 00377C40 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037ACE4 00377C44 91 23 80 00 */ stw r9, 0xCC008000@l(r3)
/* 8037ACE8 00377C48 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037ACEC 00377C4C 91 03 80 00 */ stw r8, 0xCC008000@l(r3)
/* 8037ACF0 00377C50 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037ACF4 00377C54 90 E3 80 00 */ stw r7, 0xCC008000@l(r3)
/* 8037ACF8 00377C58 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037ACFC 00377C5C 90 C3 80 00 */ stw r6, 0xCC008000@l(r3)
/* 8037AD00 00377C60 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037AD04 00377C64 90 A3 80 00 */ stw r5, 0xCC008000@l(r3)
/* 8037AD08 00377C68 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037AD0C 00377C6C 90 83 80 00 */ stw r4, 0xCC008000@l(r3)
/* 8037AD10 00377C70 48 00 01 0C */ b lbl_8037AE1C
lbl_8037AD14:
/* 8037AD14 00377C74 38 00 00 61 */ li r0, 0x61
/* 8037AD18 00377C78 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8037AD1C 00377C7C 3C 80 8C 0E */ lis r4, 0x8C0D8000@ha
/* 8037AD20 00377C80 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037AD24 00377C84 38 84 80 00 */ addi r4, r4, 0x8C0D8000@l
/* 8037AD28 00377C88 90 83 80 00 */ stw r4, 0xCC008000@l(r3)
/* 8037AD2C 00377C8C 3C 80 90 0E */ lis r4, 0x900DC000@ha
/* 8037AD30 00377C90 3C E0 8D 0E */ lis r7, 0x8D0D8400@ha
/* 8037AD34 00377C94 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037AD38 00377C98 38 84 C0 00 */ addi r4, r4, 0x900DC000@l
/* 8037AD3C 00377C9C 3C C0 91 0E */ lis r6, 0x910DC400@ha
/* 8037AD40 00377CA0 90 83 80 00 */ stw r4, 0xCC008000@l(r3)
/* 8037AD44 00377CA4 3C A0 8E 0E */ lis r5, 0x8E0D8800@ha
/* 8037AD48 00377CA8 3C 80 92 0E */ lis r4, 0x920DC800@ha
/* 8037AD4C 00377CAC 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037AD50 00377CB0 38 E7 84 00 */ addi r7, r7, 0x8D0D8400@l
/* 8037AD54 00377CB4 3F E0 8F 0E */ lis r31, 0x8F0D8C00@ha
/* 8037AD58 00377CB8 90 E3 80 00 */ stw r7, 0xCC008000@l(r3)
/* 8037AD5C 00377CBC 3D 80 93 0E */ lis r12, 0x930DCC00@ha
/* 8037AD60 00377CC0 3D 60 AC 0E */ lis r11, 0xAC0D9000@ha
/* 8037AD64 00377CC4 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037AD68 00377CC8 38 C6 C4 00 */ addi r6, r6, 0x910DC400@l
/* 8037AD6C 00377CCC 3D 40 B0 0E */ lis r10, 0xB00DD000@ha
/* 8037AD70 00377CD0 90 C3 80 00 */ stw r6, 0xCC008000@l(r3)
/* 8037AD74 00377CD4 3D 20 AD 0E */ lis r9, 0xAD0D9400@ha
/* 8037AD78 00377CD8 3D 00 B1 0E */ lis r8, 0xB10DD400@ha
/* 8037AD7C 00377CDC 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037AD80 00377CE0 38 A5 88 00 */ addi r5, r5, 0x8E0D8800@l
/* 8037AD84 00377CE4 3C E0 AE 0E */ lis r7, 0xAE0D9800@ha
/* 8037AD88 00377CE8 90 A3 80 00 */ stw r5, 0xCC008000@l(r3)
/* 8037AD8C 00377CEC 3C C0 B2 0E */ lis r6, 0xB20DD800@ha
/* 8037AD90 00377CF0 3C A0 AF 0E */ lis r5, 0xAF0D9C00@ha
/* 8037AD94 00377CF4 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037AD98 00377CF8 3B C4 C8 00 */ addi r30, r4, 0x920DC800@l
/* 8037AD9C 00377CFC 3C 80 B3 0E */ lis r4, 0xB30DDC00@ha
/* 8037ADA0 00377D00 93 C3 80 00 */ stw r30, 0xCC008000@l(r3)
/* 8037ADA4 00377D04 3B FF 8C 00 */ addi r31, r31, 0x8F0D8C00@l
/* 8037ADA8 00377D08 39 8C CC 00 */ addi r12, r12, 0x930DCC00@l
/* 8037ADAC 00377D0C 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037ADB0 00377D10 39 6B 90 00 */ addi r11, r11, 0xAC0D9000@l
/* 8037ADB4 00377D14 39 4A D0 00 */ addi r10, r10, 0xB00DD000@l
/* 8037ADB8 00377D18 93 E3 80 00 */ stw r31, 0xCC008000@l(r3)
/* 8037ADBC 00377D1C 39 29 94 00 */ addi r9, r9, 0xAD0D9400@l
/* 8037ADC0 00377D20 39 08 D4 00 */ addi r8, r8, 0xB10DD400@l
/* 8037ADC4 00377D24 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037ADC8 00377D28 38 E7 98 00 */ addi r7, r7, 0xAE0D9800@l
/* 8037ADCC 00377D2C 38 C6 D8 00 */ addi r6, r6, 0xB20DD800@l
/* 8037ADD0 00377D30 91 83 80 00 */ stw r12, 0xCC008000@l(r3)
/* 8037ADD4 00377D34 38 A5 9C 00 */ addi r5, r5, 0xAF0D9C00@l
/* 8037ADD8 00377D38 38 84 DC 00 */ addi r4, r4, 0xB30DDC00@l
/* 8037ADDC 00377D3C 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037ADE0 00377D40 91 63 80 00 */ stw r11, 0xCC008000@l(r3)
/* 8037ADE4 00377D44 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037ADE8 00377D48 91 43 80 00 */ stw r10, 0xCC008000@l(r3)
/* 8037ADEC 00377D4C 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037ADF0 00377D50 91 23 80 00 */ stw r9, 0xCC008000@l(r3)
/* 8037ADF4 00377D54 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037ADF8 00377D58 91 03 80 00 */ stw r8, 0xCC008000@l(r3)
/* 8037ADFC 00377D5C 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037AE00 00377D60 90 E3 80 00 */ stw r7, 0xCC008000@l(r3)
/* 8037AE04 00377D64 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037AE08 00377D68 90 C3 80 00 */ stw r6, 0xCC008000@l(r3)
/* 8037AE0C 00377D6C 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037AE10 00377D70 90 A3 80 00 */ stw r5, 0xCC008000@l(r3)
/* 8037AE14 00377D74 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 8037AE18 00377D78 90 83 80 00 */ stw r4, 0xCC008000@l(r3)
lbl_8037AE1C:
/* 8037AE1C 00377D7C 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8037AE20 00377D80 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8037AE24 00377D84 38 21 00 18 */ addi r1, r1, 0x18
/* 8037AE28 00377D88 4E 80 00 20 */ blr