prime/asm/Dolphin/OS/OSFont.s

737 lines
35 KiB
ArmAsm
Raw Normal View History

.include "macros.inc"
.section .text, "ax"
.global sub_80380c34
sub_80380c34:
/* 80380C34 0037DB94 7C 08 02 A6 */ mflr r0
/* 80380C38 0037DB98 90 01 00 04 */ stw r0, 4(r1)
/* 80380C3C 0037DB9C 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80380C40 0037DBA0 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80380C44 0037DBA4 7C 7F 1B 78 */ mr r31, r3
/* 80380C48 0037DBA8 48 00 02 FD */ bl OSGetFontEncode
/* 80380C4C 0037DBAC 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 80380C50 0037DBB0 28 00 00 01 */ cmplwi r0, 1
/* 80380C54 0037DBB4 40 82 01 48 */ bne lbl_80380D9C
/* 80380C58 0037DBB8 57 E0 04 3E */ clrlwi r0, r31, 0x10
/* 80380C5C 0037DBBC 28 00 00 20 */ cmplwi r0, 0x20
/* 80380C60 0037DBC0 41 80 00 24 */ blt lbl_80380C84
/* 80380C64 0037DBC4 28 00 00 DF */ cmplwi r0, 0xdf
/* 80380C68 0037DBC8 41 81 00 1C */ bgt lbl_80380C84
/* 80380C6C 0037DBCC 3C 60 80 3F */ lis r3, lbl_803F1750@ha
/* 80380C70 0037DBD0 38 63 17 50 */ addi r3, r3, lbl_803F1750@l
/* 80380C74 0037DBD4 54 00 08 3C */ slwi r0, r0, 1
/* 80380C78 0037DBD8 7C 63 02 14 */ add r3, r3, r0
/* 80380C7C 0037DBDC A0 63 FF C0 */ lhz r3, -0x40(r3)
/* 80380C80 0037DBE0 48 00 01 3C */ b lbl_80380DBC
lbl_80380C84:
/* 80380C84 0037DBE4 57 E0 04 3E */ clrlwi r0, r31, 0x10
/* 80380C88 0037DBE8 28 00 88 9E */ cmplwi r0, 0x889e
/* 80380C8C 0037DBEC 40 81 00 7C */ ble lbl_80380D08
/* 80380C90 0037DBF0 28 00 98 72 */ cmplwi r0, 0x9872
/* 80380C94 0037DBF4 41 81 00 74 */ bgt lbl_80380D08
/* 80380C98 0037DBF8 7C 03 46 70 */ srawi r3, r0, 8
/* 80380C9C 0037DBFC 54 04 06 3E */ clrlwi r4, r0, 0x18
/* 80380CA0 0037DC00 38 03 FF 78 */ addi r0, r3, -136
/* 80380CA4 0037DC04 28 04 00 40 */ cmplwi r4, 0x40
/* 80380CA8 0037DC08 1C A0 00 BC */ mulli r5, r0, 0xbc
/* 80380CAC 0037DC0C 38 60 00 00 */ li r3, 0
/* 80380CB0 0037DC10 38 03 00 00 */ addi r0, r3, 0
/* 80380CB4 0037DC14 41 80 00 10 */ blt lbl_80380CC4
/* 80380CB8 0037DC18 28 04 00 FC */ cmplwi r4, 0xfc
/* 80380CBC 0037DC1C 41 81 00 08 */ bgt lbl_80380CC4
/* 80380CC0 0037DC20 38 00 00 01 */ li r0, 1
lbl_80380CC4:
/* 80380CC4 0037DC24 2C 00 00 00 */ cmpwi r0, 0
/* 80380CC8 0037DC28 41 82 00 14 */ beq lbl_80380CDC
/* 80380CCC 0037DC2C 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 80380CD0 0037DC30 28 00 00 7F */ cmplwi r0, 0x7f
/* 80380CD4 0037DC34 41 82 00 08 */ beq lbl_80380CDC
/* 80380CD8 0037DC38 38 60 00 01 */ li r3, 1
lbl_80380CDC:
/* 80380CDC 0037DC3C 2C 03 00 00 */ cmpwi r3, 0
/* 80380CE0 0037DC40 40 82 00 0C */ bne lbl_80380CEC
/* 80380CE4 0037DC44 38 60 00 00 */ li r3, 0
/* 80380CE8 0037DC48 48 00 00 D4 */ b lbl_80380DBC
lbl_80380CEC:
/* 80380CEC 0037DC4C 38 64 FF C0 */ addi r3, r4, -64
/* 80380CF0 0037DC50 2C 03 00 40 */ cmpwi r3, 0x40
/* 80380CF4 0037DC54 41 80 00 08 */ blt lbl_80380CFC
/* 80380CF8 0037DC58 38 63 FF FF */ addi r3, r3, -1
lbl_80380CFC:
/* 80380CFC 0037DC5C 38 63 02 BE */ addi r3, r3, 0x2be
/* 80380D00 0037DC60 7C 65 1A 14 */ add r3, r5, r3
/* 80380D04 0037DC64 48 00 00 B8 */ b lbl_80380DBC
lbl_80380D08:
/* 80380D08 0037DC68 57 E0 04 3E */ clrlwi r0, r31, 0x10
/* 80380D0C 0037DC6C 28 00 81 40 */ cmplwi r0, 0x8140
/* 80380D10 0037DC70 41 80 00 A8 */ blt lbl_80380DB8
/* 80380D14 0037DC74 28 00 87 9E */ cmplwi r0, 0x879e
/* 80380D18 0037DC78 40 80 00 A0 */ bge lbl_80380DB8
/* 80380D1C 0037DC7C 7C 03 46 70 */ srawi r3, r0, 8
/* 80380D20 0037DC80 54 04 06 3E */ clrlwi r4, r0, 0x18
/* 80380D24 0037DC84 38 03 FF 7F */ addi r0, r3, -129
/* 80380D28 0037DC88 28 04 00 40 */ cmplwi r4, 0x40
/* 80380D2C 0037DC8C 1C A0 00 BC */ mulli r5, r0, 0xbc
/* 80380D30 0037DC90 38 60 00 00 */ li r3, 0
/* 80380D34 0037DC94 38 03 00 00 */ addi r0, r3, 0
/* 80380D38 0037DC98 41 80 00 10 */ blt lbl_80380D48
/* 80380D3C 0037DC9C 28 04 00 FC */ cmplwi r4, 0xfc
/* 80380D40 0037DCA0 41 81 00 08 */ bgt lbl_80380D48
/* 80380D44 0037DCA4 38 00 00 01 */ li r0, 1
lbl_80380D48:
/* 80380D48 0037DCA8 2C 00 00 00 */ cmpwi r0, 0
/* 80380D4C 0037DCAC 41 82 00 14 */ beq lbl_80380D60
/* 80380D50 0037DCB0 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 80380D54 0037DCB4 28 00 00 7F */ cmplwi r0, 0x7f
/* 80380D58 0037DCB8 41 82 00 08 */ beq lbl_80380D60
/* 80380D5C 0037DCBC 38 60 00 01 */ li r3, 1
lbl_80380D60:
/* 80380D60 0037DCC0 2C 03 00 00 */ cmpwi r3, 0
/* 80380D64 0037DCC4 40 82 00 0C */ bne lbl_80380D70
/* 80380D68 0037DCC8 38 60 00 00 */ li r3, 0
/* 80380D6C 0037DCCC 48 00 00 50 */ b lbl_80380DBC
lbl_80380D70:
/* 80380D70 0037DCD0 38 64 FF C0 */ addi r3, r4, -64
/* 80380D74 0037DCD4 2C 03 00 40 */ cmpwi r3, 0x40
/* 80380D78 0037DCD8 41 80 00 08 */ blt lbl_80380D80
/* 80380D7C 0037DCDC 38 63 FF FF */ addi r3, r3, -1
lbl_80380D80:
/* 80380D80 0037DCE0 7C 05 1A 14 */ add r0, r5, r3
/* 80380D84 0037DCE4 3C 60 80 3F */ lis r3, lbl_803F18D0@ha
/* 80380D88 0037DCE8 54 04 08 3C */ slwi r4, r0, 1
/* 80380D8C 0037DCEC 38 03 18 D0 */ addi r0, r3, lbl_803F18D0@l
/* 80380D90 0037DCF0 7C 60 22 14 */ add r3, r0, r4
/* 80380D94 0037DCF4 A0 63 00 00 */ lhz r3, 0(r3)
/* 80380D98 0037DCF8 48 00 00 24 */ b lbl_80380DBC
lbl_80380D9C:
/* 80380D9C 0037DCFC 57 E3 04 3E */ clrlwi r3, r31, 0x10
/* 80380DA0 0037DD00 28 03 00 20 */ cmplwi r3, 0x20
/* 80380DA4 0037DD04 40 81 00 14 */ ble lbl_80380DB8
/* 80380DA8 0037DD08 28 03 00 FF */ cmplwi r3, 0xff
/* 80380DAC 0037DD0C 41 81 00 0C */ bgt lbl_80380DB8
/* 80380DB0 0037DD10 38 63 FF E0 */ addi r3, r3, -32
/* 80380DB4 0037DD14 48 00 00 08 */ b lbl_80380DBC
lbl_80380DB8:
/* 80380DB8 0037DD18 38 60 00 00 */ li r3, 0
lbl_80380DBC:
/* 80380DBC 0037DD1C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80380DC0 0037DD20 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80380DC4 0037DD24 38 21 00 18 */ addi r1, r1, 0x18
/* 80380DC8 0037DD28 7C 08 03 A6 */ mtlr r0
/* 80380DCC 0037DD2C 4E 80 00 20 */ blr
.global sub_80380dd0
sub_80380dd0:
/* 80380DD0 0037DD30 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80380DD4 0037DD34 38 C3 00 10 */ addi r6, r3, 0x10
/* 80380DD8 0037DD38 39 40 00 00 */ li r10, 0
/* 80380DDC 0037DD3C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80380DE0 0037DD40 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80380DE4 0037DD44 3B C0 00 00 */ li r30, 0
/* 80380DE8 0037DD48 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80380DEC 0037DD4C 83 E3 00 04 */ lwz r31, 4(r3)
/* 80380DF0 0037DD50 81 63 00 08 */ lwz r11, 8(r3)
/* 80380DF4 0037DD54 81 83 00 0C */ lwz r12, 0xc(r3)
lbl_80380DF8:
/* 80380DF8 0037DD58 28 1E 00 00 */ cmplwi r30, 0
/* 80380DFC 0037DD5C 40 82 00 10 */ bne lbl_80380E0C
/* 80380E00 0037DD60 83 A6 00 00 */ lwz r29, 0(r6)
/* 80380E04 0037DD64 3B C0 00 20 */ li r30, 0x20
/* 80380E08 0037DD68 38 C6 00 04 */ addi r6, r6, 4
lbl_80380E0C:
/* 80380E0C 0037DD6C 57 A0 00 01 */ rlwinm. r0, r29, 0, 0, 0
/* 80380E10 0037DD70 41 82 00 20 */ beq lbl_80380E30
/* 80380E14 0037DD74 7D 80 63 78 */ mr r0, r12
/* 80380E18 0037DD78 7C A3 00 AE */ lbzx r5, r3, r0
/* 80380E1C 0037DD7C 7D 40 53 78 */ mr r0, r10
/* 80380E20 0037DD80 39 4A 00 01 */ addi r10, r10, 1
/* 80380E24 0037DD84 7C A4 01 AE */ stbx r5, r4, r0
/* 80380E28 0037DD88 39 8C 00 01 */ addi r12, r12, 1
/* 80380E2C 0037DD8C 48 00 00 F4 */ b lbl_80380F20
lbl_80380E30:
/* 80380E30 0037DD90 7C E3 5A 14 */ add r7, r3, r11
/* 80380E34 0037DD94 88 A7 00 00 */ lbz r5, 0(r7)
/* 80380E38 0037DD98 39 6B 00 02 */ addi r11, r11, 2
/* 80380E3C 0037DD9C 88 07 00 01 */ lbz r0, 1(r7)
/* 80380E40 0037DDA0 50 A0 44 2E */ rlwimi r0, r5, 8, 0x10, 0x17
/* 80380E44 0037DDA4 7C 05 66 71 */ srawi. r5, r0, 0xc
/* 80380E48 0037DDA8 54 00 05 3E */ clrlwi r0, r0, 0x14
/* 80380E4C 0037DDAC 7D 20 50 50 */ subf r9, r0, r10
/* 80380E50 0037DDB0 40 82 00 18 */ bne lbl_80380E68
/* 80380E54 0037DDB4 7D 80 63 78 */ mr r0, r12
/* 80380E58 0037DDB8 7C A3 00 AE */ lbzx r5, r3, r0
/* 80380E5C 0037DDBC 39 8C 00 01 */ addi r12, r12, 1
/* 80380E60 0037DDC0 38 05 00 12 */ addi r0, r5, 0x12
/* 80380E64 0037DDC4 48 00 00 08 */ b lbl_80380E6C
lbl_80380E68:
/* 80380E68 0037DDC8 38 05 00 02 */ addi r0, r5, 2
lbl_80380E6C:
/* 80380E6C 0037DDCC 2C 00 00 00 */ cmpwi r0, 0
/* 80380E70 0037DDD0 7C 05 03 78 */ mr r5, r0
/* 80380E74 0037DDD4 7C E4 52 14 */ add r7, r4, r10
/* 80380E78 0037DDD8 40 81 00 A8 */ ble lbl_80380F20
/* 80380E7C 0037DDDC 54 A0 E8 FF */ rlwinm. r0, r5, 0x1d, 3, 0x1f
/* 80380E80 0037DDE0 7C 09 03 A6 */ mtctr r0
/* 80380E84 0037DDE4 41 82 00 7C */ beq lbl_80380F00
lbl_80380E88:
/* 80380E88 0037DDE8 39 09 FF FF */ addi r8, r9, -1
/* 80380E8C 0037DDEC 7C 04 40 AE */ lbzx r0, r4, r8
/* 80380E90 0037DDF0 39 09 00 00 */ addi r8, r9, 0
/* 80380E94 0037DDF4 39 4A 00 08 */ addi r10, r10, 8
/* 80380E98 0037DDF8 98 07 00 00 */ stb r0, 0(r7)
/* 80380E9C 0037DDFC 7C 04 40 AE */ lbzx r0, r4, r8
/* 80380EA0 0037DE00 39 09 00 01 */ addi r8, r9, 1
/* 80380EA4 0037DE04 98 07 00 01 */ stb r0, 1(r7)
/* 80380EA8 0037DE08 7C 04 40 AE */ lbzx r0, r4, r8
/* 80380EAC 0037DE0C 39 09 00 02 */ addi r8, r9, 2
/* 80380EB0 0037DE10 98 07 00 02 */ stb r0, 2(r7)
/* 80380EB4 0037DE14 7C 04 40 AE */ lbzx r0, r4, r8
/* 80380EB8 0037DE18 39 09 00 03 */ addi r8, r9, 3
/* 80380EBC 0037DE1C 98 07 00 03 */ stb r0, 3(r7)
/* 80380EC0 0037DE20 7C 04 40 AE */ lbzx r0, r4, r8
/* 80380EC4 0037DE24 39 09 00 04 */ addi r8, r9, 4
/* 80380EC8 0037DE28 98 07 00 04 */ stb r0, 4(r7)
/* 80380ECC 0037DE2C 7C 04 40 AE */ lbzx r0, r4, r8
/* 80380ED0 0037DE30 39 09 00 05 */ addi r8, r9, 5
/* 80380ED4 0037DE34 98 07 00 05 */ stb r0, 5(r7)
/* 80380ED8 0037DE38 7C 04 40 AE */ lbzx r0, r4, r8
/* 80380EDC 0037DE3C 39 09 00 06 */ addi r8, r9, 6
/* 80380EE0 0037DE40 39 29 00 08 */ addi r9, r9, 8
/* 80380EE4 0037DE44 98 07 00 06 */ stb r0, 6(r7)
/* 80380EE8 0037DE48 7C 04 40 AE */ lbzx r0, r4, r8
/* 80380EEC 0037DE4C 98 07 00 07 */ stb r0, 7(r7)
/* 80380EF0 0037DE50 38 E7 00 08 */ addi r7, r7, 8
/* 80380EF4 0037DE54 42 00 FF 94 */ bdnz lbl_80380E88
/* 80380EF8 0037DE58 70 A5 00 07 */ andi. r5, r5, 7
/* 80380EFC 0037DE5C 41 82 00 24 */ beq lbl_80380F20
lbl_80380F00:
/* 80380F00 0037DE60 7C A9 03 A6 */ mtctr r5
lbl_80380F04:
/* 80380F04 0037DE64 39 09 FF FF */ addi r8, r9, -1
/* 80380F08 0037DE68 7C 04 40 AE */ lbzx r0, r4, r8
/* 80380F0C 0037DE6C 39 4A 00 01 */ addi r10, r10, 1
/* 80380F10 0037DE70 39 29 00 01 */ addi r9, r9, 1
/* 80380F14 0037DE74 98 07 00 00 */ stb r0, 0(r7)
/* 80380F18 0037DE78 38 E7 00 01 */ addi r7, r7, 1
/* 80380F1C 0037DE7C 42 00 FF E8 */ bdnz lbl_80380F04
lbl_80380F20:
/* 80380F20 0037DE80 7C 0A F8 00 */ cmpw r10, r31
/* 80380F24 0037DE84 57 BD 08 3C */ slwi r29, r29, 1
/* 80380F28 0037DE88 3B DE FF FF */ addi r30, r30, -1
/* 80380F2C 0037DE8C 41 80 FE CC */ blt lbl_80380DF8
/* 80380F30 0037DE90 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80380F34 0037DE94 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80380F38 0037DE98 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80380F3C 0037DE9C 38 21 00 20 */ addi r1, r1, 0x20
/* 80380F40 0037DEA0 4E 80 00 20 */ blr
.global OSGetFontEncode
OSGetFontEncode:
/* 80380F44 0037DEA4 A0 6D 9F 88 */ lhz r3, lbl_805A8B48@sda21(r13)
/* 80380F48 0037DEA8 28 03 00 01 */ cmplwi r3, 1
/* 80380F4C 0037DEAC 4C 81 00 20 */ blelr
/* 80380F50 0037DEB0 3C 60 80 00 */ lis r3, 0x800000CC@ha
/* 80380F54 0037DEB4 80 03 00 CC */ lwz r0, 0x800000CC@l(r3)
/* 80380F58 0037DEB8 2C 00 00 00 */ cmpwi r0, 0
/* 80380F5C 0037DEBC 41 82 00 0C */ beq lbl_80380F68
/* 80380F60 0037DEC0 41 80 00 2C */ blt lbl_80380F8C
/* 80380F64 0037DEC4 48 00 00 28 */ b lbl_80380F8C
lbl_80380F68:
/* 80380F68 0037DEC8 3C 60 CC 00 */ lis r3, 0xCC00206E@ha
/* 80380F6C 0037DECC A0 03 20 6E */ lhz r0, 0xCC00206E@l(r3)
/* 80380F70 0037DED0 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80380F74 0037DED4 41 82 00 0C */ beq lbl_80380F80
/* 80380F78 0037DED8 38 00 00 01 */ li r0, 1
/* 80380F7C 0037DEDC 48 00 00 08 */ b lbl_80380F84
lbl_80380F80:
/* 80380F80 0037DEE0 38 00 00 00 */ li r0, 0
lbl_80380F84:
/* 80380F84 0037DEE4 B0 0D 9F 88 */ sth r0, lbl_805A8B48@sda21(r13)
/* 80380F88 0037DEE8 48 00 00 0C */ b lbl_80380F94
lbl_80380F8C:
/* 80380F8C 0037DEEC 38 00 00 00 */ li r0, 0
/* 80380F90 0037DEF0 B0 0D 9F 88 */ sth r0, lbl_805A8B48@sda21(r13)
lbl_80380F94:
/* 80380F94 0037DEF4 A0 6D 9F 88 */ lhz r3, lbl_805A8B48@sda21(r13)
/* 80380F98 0037DEF8 4E 80 00 20 */ blr
.global sub_80380f9c
sub_80380f9c:
/* 80380F9C 0037DEFC 7C 08 02 A6 */ mflr r0
/* 80380FA0 0037DF00 90 01 00 04 */ stw r0, 4(r1)
/* 80380FA4 0037DF04 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80380FA8 0037DF08 93 E1 00 24 */ stw r31, 0x24(r1)
/* 80380FAC 0037DF0C 93 C1 00 20 */ stw r30, 0x20(r1)
/* 80380FB0 0037DF10 3B C5 00 00 */ addi r30, r5, 0
/* 80380FB4 0037DF14 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 80380FB8 0037DF18 3B A4 00 00 */ addi r29, r4, 0
/* 80380FBC 0037DF1C 93 81 00 18 */ stw r28, 0x18(r1)
/* 80380FC0 0037DF20 3B 83 00 00 */ addi r28, r3, 0
/* 80380FC4 0037DF24 48 00 00 3C */ b lbl_80381000
lbl_80380FC8:
/* 80380FC8 0037DF28 2C 1D 01 00 */ cmpwi r29, 0x100
/* 80380FCC 0037DF2C 41 81 00 0C */ bgt lbl_80380FD8
/* 80380FD0 0037DF30 7F BF EB 78 */ mr r31, r29
/* 80380FD4 0037DF34 48 00 00 08 */ b lbl_80380FDC
lbl_80380FD8:
/* 80380FD8 0037DF38 3B E0 01 00 */ li r31, 0x100
lbl_80380FDC:
/* 80380FDC 0037DF3C 7F BF E8 50 */ subf r29, r31, r29
lbl_80380FE0:
/* 80380FE0 0037DF40 38 7C 00 00 */ addi r3, r28, 0
/* 80380FE4 0037DF44 38 9F 00 00 */ addi r4, r31, 0
/* 80380FE8 0037DF48 38 BE 00 00 */ addi r5, r30, 0
/* 80380FEC 0037DF4C 48 00 2F 01 */ bl sub_80383eec
/* 80380FF0 0037DF50 2C 03 00 00 */ cmpwi r3, 0
/* 80380FF4 0037DF54 41 82 FF EC */ beq lbl_80380FE0
/* 80380FF8 0037DF58 7F DE FA 14 */ add r30, r30, r31
/* 80380FFC 0037DF5C 7F 9C FA 14 */ add r28, r28, r31
lbl_80381000:
/* 80381000 0037DF60 2C 1D 00 00 */ cmpwi r29, 0
/* 80381004 0037DF64 41 81 FF C4 */ bgt lbl_80380FC8
/* 80381008 0037DF68 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8038100C 0037DF6C 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 80381010 0037DF70 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 80381014 0037DF74 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 80381018 0037DF78 83 81 00 18 */ lwz r28, 0x18(r1)
/* 8038101C 0037DF7C 38 21 00 28 */ addi r1, r1, 0x28
/* 80381020 0037DF80 7C 08 03 A6 */ mtlr r0
/* 80381024 0037DF84 4E 80 00 20 */ blr
.global sub_80381028
sub_80381028:
/* 80381028 0037DF88 7C 08 02 A6 */ mflr r0
/* 8038102C 0037DF8C 90 01 00 04 */ stw r0, 4(r1)
/* 80381030 0037DF90 38 00 00 00 */ li r0, 0
/* 80381034 0037DF94 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80381038 0037DF98 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 8038103C 0037DF9C 93 C1 00 38 */ stw r30, 0x38(r1)
/* 80381040 0037DFA0 3B C4 00 00 */ addi r30, r4, 0
/* 80381044 0037DFA4 93 A1 00 34 */ stw r29, 0x34(r1)
/* 80381048 0037DFA8 3B A3 00 00 */ addi r29, r3, 0
/* 8038104C 0037DFAC 90 0D AD 04 */ stw r0, lbl_805A98C4@sda21(r13)
/* 80381050 0037DFB0 4B FF FE F5 */ bl OSGetFontEncode
/* 80381054 0037DFB4 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 80381058 0037DFB8 28 00 00 01 */ cmplwi r0, 1
/* 8038105C 0037DFBC 40 82 00 20 */ bne lbl_8038107C
/* 80381060 0037DFC0 3C 80 00 05 */ lis r4, 0x0004D000@ha
/* 80381064 0037DFC4 3C A0 00 1B */ lis r5, 0x001AFF00@ha
/* 80381068 0037DFC8 38 7E 00 00 */ addi r3, r30, 0
/* 8038106C 0037DFCC 38 84 D0 00 */ addi r4, r4, 0x0004D000@l
/* 80381070 0037DFD0 38 A5 FF 00 */ addi r5, r5, 0x001AFF00@l
/* 80381074 0037DFD4 4B FF FF 29 */ bl sub_80380f9c
/* 80381078 0037DFD8 48 00 00 18 */ b lbl_80381090
lbl_8038107C:
/* 8038107C 0037DFDC 3C 80 00 20 */ lis r4, 0x001FCF00@ha
/* 80381080 0037DFE0 38 7E 00 00 */ addi r3, r30, 0
/* 80381084 0037DFE4 38 A4 CF 00 */ addi r5, r4, 0x001FCF00@l
/* 80381088 0037DFE8 38 80 30 00 */ li r4, 0x3000
/* 8038108C 0037DFEC 4B FF FF 11 */ bl sub_80380f9c
lbl_80381090:
/* 80381090 0037DFF0 88 1E 00 00 */ lbz r0, 0(r30)
/* 80381094 0037DFF4 28 00 00 59 */ cmplwi r0, 0x59
/* 80381098 0037DFF8 40 82 00 24 */ bne lbl_803810BC
/* 8038109C 0037DFFC 88 1E 00 01 */ lbz r0, 1(r30)
/* 803810A0 0037E000 28 00 00 61 */ cmplwi r0, 0x61
/* 803810A4 0037E004 40 82 00 18 */ bne lbl_803810BC
/* 803810A8 0037E008 88 1E 00 02 */ lbz r0, 2(r30)
/* 803810AC 0037E00C 28 00 00 79 */ cmplwi r0, 0x79
/* 803810B0 0037E010 40 82 00 0C */ bne lbl_803810BC
/* 803810B4 0037E014 83 FE 00 04 */ lwz r31, 4(r30)
/* 803810B8 0037E018 48 00 00 08 */ b lbl_803810C0
lbl_803810BC:
/* 803810BC 0037E01C 3B E0 00 00 */ li r31, 0
lbl_803810C0:
/* 803810C0 0037E020 28 1F 00 00 */ cmplwi r31, 0
/* 803810C4 0037E024 41 82 02 78 */ beq lbl_8038133C
/* 803810C8 0037E028 38 7E 00 00 */ addi r3, r30, 0
/* 803810CC 0037E02C 38 9D 00 00 */ addi r4, r29, 0
/* 803810D0 0037E030 4B FF FD 01 */ bl sub_80380dd0
/* 803810D4 0037E034 93 AD AD 00 */ stw r29, lbl_805A98C0@sda21(r13)
/* 803810D8 0037E038 A0 8D 9F 88 */ lhz r4, lbl_805A8B48@sda21(r13)
/* 803810DC 0037E03C A0 1D 00 22 */ lhz r0, 0x22(r29)
/* 803810E0 0037E040 28 04 00 01 */ cmplwi r4, 1
/* 803810E4 0037E044 7C 1D 02 14 */ add r0, r29, r0
/* 803810E8 0037E048 90 0D AD 08 */ stw r0, lbl_805A98C8@sda21(r13)
/* 803810EC 0037E04C A0 7D 00 1A */ lhz r3, 0x1a(r29)
/* 803810F0 0037E050 A0 1D 00 1C */ lhz r0, 0x1c(r29)
/* 803810F4 0037E054 7C 03 01 D6 */ mullw r0, r3, r0
/* 803810F8 0037E058 90 0D AD 0C */ stw r0, lbl_805A98CC@sda21(r13)
/* 803810FC 0037E05C 41 81 00 08 */ bgt lbl_80381104
/* 80381100 0037E060 48 00 00 4C */ b lbl_8038114C
lbl_80381104:
/* 80381104 0037E064 3C 60 80 00 */ lis r3, 0x800000CC@ha
/* 80381108 0037E068 80 03 00 CC */ lwz r0, 0x800000CC@l(r3)
/* 8038110C 0037E06C 2C 00 00 00 */ cmpwi r0, 0
/* 80381110 0037E070 41 82 00 0C */ beq lbl_8038111C
/* 80381114 0037E074 41 80 00 2C */ blt lbl_80381140
/* 80381118 0037E078 48 00 00 28 */ b lbl_80381140
lbl_8038111C:
/* 8038111C 0037E07C 3C 60 CC 00 */ lis r3, 0xCC00206E@ha
/* 80381120 0037E080 A0 03 20 6E */ lhz r0, 0xCC00206E@l(r3)
/* 80381124 0037E084 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80381128 0037E088 41 82 00 0C */ beq lbl_80381134
/* 8038112C 0037E08C 38 00 00 01 */ li r0, 1
/* 80381130 0037E090 48 00 00 08 */ b lbl_80381138
lbl_80381134:
/* 80381134 0037E094 38 00 00 00 */ li r0, 0
lbl_80381138:
/* 80381138 0037E098 B0 0D 9F 88 */ sth r0, lbl_805A8B48@sda21(r13)
/* 8038113C 0037E09C 48 00 00 0C */ b lbl_80381148
lbl_80381140:
/* 80381140 0037E0A0 38 00 00 00 */ li r0, 0
/* 80381144 0037E0A4 B0 0D 9F 88 */ sth r0, lbl_805A8B48@sda21(r13)
lbl_80381148:
/* 80381148 0037E0A8 A0 8D 9F 88 */ lhz r4, lbl_805A8B48@sda21(r13)
lbl_8038114C:
/* 8038114C 0037E0AC 54 80 04 3E */ clrlwi r0, r4, 0x10
/* 80381150 0037E0B0 28 00 00 01 */ cmplwi r0, 1
/* 80381154 0037E0B4 40 82 01 E8 */ bne lbl_8038133C
/* 80381158 0037E0B8 80 82 CF 38 */ lwz r4, lbl_805AEC58@sda21(r2)
/* 8038115C 0037E0BC 38 60 00 54 */ li r3, 0x54
/* 80381160 0037E0C0 80 02 CF 3C */ lwz r0, lbl_805AEC5C@sda21(r2)
/* 80381164 0037E0C4 90 81 00 1C */ stw r4, 0x1c(r1)
/* 80381168 0037E0C8 90 01 00 20 */ stw r0, 0x20(r1)
/* 8038116C 0037E0CC 4B FF FA C9 */ bl sub_80380c34
/* 80381170 0037E0D0 80 AD AD 0C */ lwz r5, lbl_805A98CC@sda21(r13)
/* 80381174 0037E0D4 81 8D AD 00 */ lwz r12, lbl_805A98C0@sda21(r13)
/* 80381178 0037E0D8 7D 43 2B D6 */ divw r10, r3, r5
/* 8038117C 0037E0DC A0 C1 00 1C */ lhz r6, 0x1c(r1)
/* 80381180 0037E0E0 A0 0C 00 1E */ lhz r0, 0x1e(r12)
/* 80381184 0037E0E4 80 8C 00 14 */ lwz r4, 0x14(r12)
/* 80381188 0037E0E8 81 6C 00 24 */ lwz r11, 0x24(r12)
/* 8038118C 0037E0EC 7D 0A 29 D6 */ mullw r8, r10, r5
/* 80381190 0037E0F0 A1 2C 00 1A */ lhz r9, 0x1a(r12)
/* 80381194 0037E0F4 A0 AC 00 12 */ lhz r5, 0x12(r12)
/* 80381198 0037E0F8 A0 EC 00 10 */ lhz r7, 0x10(r12)
/* 8038119C 0037E0FC 7F C8 18 50 */ subf r30, r8, r3
/* 803811A0 0037E100 7D 1E 4B D6 */ divw r8, r30, r9
/* 803811A4 0037E104 7C 68 49 D6 */ mullw r3, r8, r9
/* 803811A8 0037E108 7C A8 29 D6 */ mullw r5, r8, r5
/* 803811AC 0037E10C 7C 00 1E 70 */ srawi r0, r0, 3
/* 803811B0 0037E110 7C 63 F0 50 */ subf r3, r3, r30
/* 803811B4 0037E114 7C 00 01 94 */ addze r0, r0
/* 803811B8 0037E118 54 00 28 34 */ slwi r0, r0, 5
/* 803811BC 0037E11C 7C 09 0E 70 */ srawi r9, r0, 1
/* 803811C0 0037E120 7D 4A 21 D6 */ mullw r10, r10, r4
/* 803811C4 0037E124 7C 63 39 D6 */ mullw r3, r3, r7
/* 803811C8 0037E128 7D 29 01 94 */ addze r9, r9
/* 803811CC 0037E12C 38 05 00 04 */ addi r0, r5, 4
/* 803811D0 0037E130 7C 04 1E 70 */ srawi r4, r0, 3
/* 803811D4 0037E134 7C 84 01 94 */ addze r4, r4
/* 803811D8 0037E138 7C 68 1E 70 */ srawi r8, r3, 3
/* 803811DC 0037E13C 7D 08 01 94 */ addze r8, r8
/* 803811E0 0037E140 7C 07 1E 70 */ srawi r7, r0, 3
/* 803811E4 0037E144 7C E7 01 94 */ addze r7, r7
/* 803811E8 0037E148 54 E7 18 38 */ slwi r7, r7, 3
/* 803811EC 0037E14C 7C E7 00 10 */ subfc r7, r7, r0
/* 803811F0 0037E150 7C 60 1E 70 */ srawi r0, r3, 3
/* 803811F4 0037E154 7C 00 01 94 */ addze r0, r0
/* 803811F8 0037E158 54 00 18 38 */ slwi r0, r0, 3
/* 803811FC 0037E15C 7C 00 18 10 */ subfc r0, r0, r3
/* 80381200 0037E160 7C 03 16 70 */ srawi r3, r0, 2
/* 80381204 0037E164 7C 09 21 D6 */ mullw r0, r9, r4
/* 80381208 0037E168 7C 8C 5A 14 */ add r4, r12, r11
/* 8038120C 0037E16C 55 49 F8 7E */ srwi r9, r10, 1
/* 80381210 0037E170 7C 84 4A 14 */ add r4, r4, r9
/* 80381214 0037E174 7D 24 02 14 */ add r9, r4, r0
/* 80381218 0037E178 55 00 20 36 */ slwi r0, r8, 4
/* 8038121C 0037E17C 7D 29 02 14 */ add r9, r9, r0
/* 80381220 0037E180 54 E7 08 3C */ slwi r7, r7, 1
/* 80381224 0037E184 7D 29 3A 14 */ add r9, r9, r7
/* 80381228 0037E188 7C 63 01 94 */ addze r3, r3
/* 8038122C 0037E18C 7D 29 1A 14 */ add r9, r9, r3
/* 80381230 0037E190 B0 C9 00 00 */ sth r6, 0(r9)
/* 80381234 0037E194 39 45 00 05 */ addi r10, r5, 5
/* 80381238 0037E198 39 25 00 06 */ addi r9, r5, 6
/* 8038123C 0037E19C 80 ED AD 00 */ lwz r7, lbl_805A98C0@sda21(r13)
/* 80381240 0037E1A0 38 C5 00 07 */ addi r6, r5, 7
/* 80381244 0037E1A4 A0 A1 00 1E */ lhz r5, 0x1e(r1)
/* 80381248 0037E1A8 A0 E7 00 1E */ lhz r7, 0x1e(r7)
/* 8038124C 0037E1AC 7C E7 1E 70 */ srawi r7, r7, 3
/* 80381250 0037E1B0 7C E7 01 94 */ addze r7, r7
/* 80381254 0037E1B4 54 E7 28 34 */ slwi r7, r7, 5
/* 80381258 0037E1B8 7C E8 0E 70 */ srawi r8, r7, 1
/* 8038125C 0037E1BC 7D 08 01 94 */ addze r8, r8
/* 80381260 0037E1C0 7D 47 1E 70 */ srawi r7, r10, 3
/* 80381264 0037E1C4 7C E7 01 94 */ addze r7, r7
/* 80381268 0037E1C8 7D 08 39 D6 */ mullw r8, r8, r7
/* 8038126C 0037E1CC 7D 47 1E 70 */ srawi r7, r10, 3
/* 80381270 0037E1D0 7C E7 01 94 */ addze r7, r7
/* 80381274 0037E1D4 54 E7 18 38 */ slwi r7, r7, 3
/* 80381278 0037E1D8 7D 04 42 14 */ add r8, r4, r8
/* 8038127C 0037E1DC 7C E7 50 10 */ subfc r7, r7, r10
/* 80381280 0037E1E0 7D 08 02 14 */ add r8, r8, r0
/* 80381284 0037E1E4 54 E7 08 3C */ slwi r7, r7, 1
/* 80381288 0037E1E8 7D 08 3A 14 */ add r8, r8, r7
/* 8038128C 0037E1EC 7D 08 1A 14 */ add r8, r8, r3
/* 80381290 0037E1F0 B0 A8 00 00 */ sth r5, 0(r8)
/* 80381294 0037E1F4 80 ED AD 00 */ lwz r7, lbl_805A98C0@sda21(r13)
/* 80381298 0037E1F8 A0 A1 00 20 */ lhz r5, 0x20(r1)
/* 8038129C 0037E1FC A0 E7 00 1E */ lhz r7, 0x1e(r7)
/* 803812A0 0037E200 7C E7 1E 70 */ srawi r7, r7, 3
/* 803812A4 0037E204 7C E7 01 94 */ addze r7, r7
/* 803812A8 0037E208 54 E7 28 34 */ slwi r7, r7, 5
/* 803812AC 0037E20C 7C E8 0E 70 */ srawi r8, r7, 1
/* 803812B0 0037E210 7D 08 01 94 */ addze r8, r8
/* 803812B4 0037E214 7D 27 1E 70 */ srawi r7, r9, 3
/* 803812B8 0037E218 7C E7 01 94 */ addze r7, r7
/* 803812BC 0037E21C 7D 08 39 D6 */ mullw r8, r8, r7
/* 803812C0 0037E220 7D 27 1E 70 */ srawi r7, r9, 3
/* 803812C4 0037E224 7C E7 01 94 */ addze r7, r7
/* 803812C8 0037E228 54 E7 18 38 */ slwi r7, r7, 3
/* 803812CC 0037E22C 7D 04 42 14 */ add r8, r4, r8
/* 803812D0 0037E230 7C E7 48 10 */ subfc r7, r7, r9
/* 803812D4 0037E234 7D 08 02 14 */ add r8, r8, r0
/* 803812D8 0037E238 54 E7 08 3C */ slwi r7, r7, 1
/* 803812DC 0037E23C 7D 08 3A 14 */ add r8, r8, r7
/* 803812E0 0037E240 7D 08 1A 14 */ add r8, r8, r3
/* 803812E4 0037E244 B0 A8 00 00 */ sth r5, 0(r8)
/* 803812E8 0037E248 80 AD AD 00 */ lwz r5, lbl_805A98C0@sda21(r13)
/* 803812EC 0037E24C A0 A5 00 1E */ lhz r5, 0x1e(r5)
/* 803812F0 0037E250 7C A5 1E 70 */ srawi r5, r5, 3
/* 803812F4 0037E254 7C A5 01 94 */ addze r5, r5
/* 803812F8 0037E258 54 A5 28 34 */ slwi r5, r5, 5
/* 803812FC 0037E25C 7C A7 0E 70 */ srawi r7, r5, 1
/* 80381300 0037E260 7C E7 01 94 */ addze r7, r7
/* 80381304 0037E264 7C C5 1E 70 */ srawi r5, r6, 3
/* 80381308 0037E268 7C A5 01 94 */ addze r5, r5
/* 8038130C 0037E26C 7C A7 29 D6 */ mullw r5, r7, r5
/* 80381310 0037E270 7C E4 2A 14 */ add r7, r4, r5
/* 80381314 0037E274 7C C5 1E 70 */ srawi r5, r6, 3
/* 80381318 0037E278 A0 81 00 22 */ lhz r4, 0x22(r1)
/* 8038131C 0037E27C 7C A5 01 94 */ addze r5, r5
/* 80381320 0037E280 54 A5 18 38 */ slwi r5, r5, 3
/* 80381324 0037E284 7C A5 30 10 */ subfc r5, r5, r6
/* 80381328 0037E288 7C E7 02 14 */ add r7, r7, r0
/* 8038132C 0037E28C 54 A0 08 3C */ slwi r0, r5, 1
/* 80381330 0037E290 7C E7 02 14 */ add r7, r7, r0
/* 80381334 0037E294 7C E7 1A 14 */ add r7, r7, r3
/* 80381338 0037E298 B0 87 00 00 */ sth r4, 0(r7)
lbl_8038133C:
/* 8038133C 0037E29C 7F E3 FB 78 */ mr r3, r31
/* 80381340 0037E2A0 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80381344 0037E2A4 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 80381348 0037E2A8 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 8038134C 0037E2AC 83 A1 00 34 */ lwz r29, 0x34(r1)
/* 80381350 0037E2B0 38 21 00 40 */ addi r1, r1, 0x40
/* 80381354 0037E2B4 7C 08 03 A6 */ mtlr r0
/* 80381358 0037E2B8 4E 80 00 20 */ blr
.global sub_8038135c
sub_8038135c:
/* 8038135C 0037E2BC 7C 08 02 A6 */ mflr r0
/* 80381360 0037E2C0 90 01 00 04 */ stw r0, 4(r1)
/* 80381364 0037E2C4 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 80381368 0037E2C8 BE 21 00 24 */ stmw r17, 0x24(r1)
/* 8038136C 0037E2CC 7C 7C 1B 78 */ mr r28, r3
/* 80381370 0037E2D0 3B A4 00 00 */ addi r29, r4, 0
/* 80381374 0037E2D4 3B C5 00 00 */ addi r30, r5, 0
/* 80381378 0037E2D8 3B 06 00 00 */ addi r24, r6, 0
/* 8038137C 0037E2DC 3B E7 00 00 */ addi r31, r7, 0
/* 80381380 0037E2E0 88 03 00 00 */ lbz r0, 0(r3)
/* 80381384 0037E2E4 28 00 00 00 */ cmplwi r0, 0
/* 80381388 0037E2E8 7C 03 03 78 */ mr r3, r0
/* 8038138C 0037E2EC 40 82 00 0C */ bne lbl_80381398
/* 80381390 0037E2F0 7F 83 E3 78 */ mr r3, r28
/* 80381394 0037E2F4 48 00 02 B8 */ b lbl_8038164C
lbl_80381398:
/* 80381398 0037E2F8 A0 0D 9F 88 */ lhz r0, lbl_805A8B48@sda21(r13)
/* 8038139C 0037E2FC 3B 9C 00 01 */ addi r28, r28, 1
/* 803813A0 0037E300 28 00 00 01 */ cmplwi r0, 1
/* 803813A4 0037E304 41 81 00 08 */ bgt lbl_803813AC
/* 803813A8 0037E308 48 00 00 4C */ b lbl_803813F4
lbl_803813AC:
/* 803813AC 0037E30C 3C 80 80 00 */ lis r4, 0x800000CC@ha
/* 803813B0 0037E310 80 04 00 CC */ lwz r0, 0x800000CC@l(r4)
/* 803813B4 0037E314 2C 00 00 00 */ cmpwi r0, 0
/* 803813B8 0037E318 41 82 00 0C */ beq lbl_803813C4
/* 803813BC 0037E31C 41 80 00 2C */ blt lbl_803813E8
/* 803813C0 0037E320 48 00 00 28 */ b lbl_803813E8
lbl_803813C4:
/* 803813C4 0037E324 3C 80 CC 00 */ lis r4, 0xCC00206E@ha
/* 803813C8 0037E328 A0 04 20 6E */ lhz r0, 0xCC00206E@l(r4)
/* 803813CC 0037E32C 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 803813D0 0037E330 41 82 00 0C */ beq lbl_803813DC
/* 803813D4 0037E334 38 00 00 01 */ li r0, 1
/* 803813D8 0037E338 48 00 00 08 */ b lbl_803813E0
lbl_803813DC:
/* 803813DC 0037E33C 38 00 00 00 */ li r0, 0
lbl_803813E0:
/* 803813E0 0037E340 B0 0D 9F 88 */ sth r0, lbl_805A8B48@sda21(r13)
/* 803813E4 0037E344 48 00 00 0C */ b lbl_803813F0
lbl_803813E8:
/* 803813E8 0037E348 38 00 00 00 */ li r0, 0
/* 803813EC 0037E34C B0 0D 9F 88 */ sth r0, lbl_805A8B48@sda21(r13)
lbl_803813F0:
/* 803813F0 0037E350 A0 0D 9F 88 */ lhz r0, lbl_805A8B48@sda21(r13)
lbl_803813F4:
/* 803813F4 0037E354 54 00 04 3E */ clrlwi r0, r0, 0x10
/* 803813F8 0037E358 28 00 00 01 */ cmplwi r0, 1
/* 803813FC 0037E35C 40 82 00 74 */ bne lbl_80381470
/* 80381400 0037E360 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 80381404 0037E364 28 00 00 81 */ cmplwi r0, 0x81
/* 80381408 0037E368 38 80 00 01 */ li r4, 1
/* 8038140C 0037E36C 38 A0 00 00 */ li r5, 0
/* 80381410 0037E370 41 80 00 10 */ blt lbl_80381420
/* 80381414 0037E374 28 00 00 9F */ cmplwi r0, 0x9f
/* 80381418 0037E378 41 81 00 08 */ bgt lbl_80381420
/* 8038141C 0037E37C 7C 85 23 78 */ mr r5, r4
lbl_80381420:
/* 80381420 0037E380 2C 05 00 00 */ cmpwi r5, 0
/* 80381424 0037E384 40 82 00 2C */ bne lbl_80381450
/* 80381428 0037E388 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8038142C 0037E38C 28 00 00 E0 */ cmplwi r0, 0xe0
/* 80381430 0037E390 38 A0 00 00 */ li r5, 0
/* 80381434 0037E394 41 80 00 10 */ blt lbl_80381444
/* 80381438 0037E398 28 00 00 FC */ cmplwi r0, 0xfc
/* 8038143C 0037E39C 41 81 00 08 */ bgt lbl_80381444
/* 80381440 0037E3A0 38 A0 00 01 */ li r5, 1
lbl_80381444:
/* 80381444 0037E3A4 2C 05 00 00 */ cmpwi r5, 0
/* 80381448 0037E3A8 40 82 00 08 */ bne lbl_80381450
/* 8038144C 0037E3AC 38 80 00 00 */ li r4, 0
lbl_80381450:
/* 80381450 0037E3B0 2C 04 00 00 */ cmpwi r4, 0
/* 80381454 0037E3B4 41 82 00 1C */ beq lbl_80381470
/* 80381458 0037E3B8 88 9C 00 00 */ lbz r4, 0(r28)
/* 8038145C 0037E3BC 7C 80 07 75 */ extsb. r0, r4
/* 80381460 0037E3C0 41 82 00 10 */ beq lbl_80381470
/* 80381464 0037E3C4 54 60 42 2E */ rlwinm r0, r3, 8, 8, 0x17
/* 80381468 0037E3C8 7C 03 23 78 */ or r3, r0, r4
/* 8038146C 0037E3CC 3B 9C 00 01 */ addi r28, r28, 1
lbl_80381470:
/* 80381470 0037E3D0 80 8D AD 00 */ lwz r4, lbl_805A98C0@sda21(r13)
/* 80381474 0037E3D4 3B 24 00 2C */ addi r25, r4, 0x2c
/* 80381478 0037E3D8 4B FF F7 BD */ bl sub_80380c34
/* 8038147C 0037E3DC 80 CD AD 0C */ lwz r6, lbl_805A98CC@sda21(r13)
/* 80381480 0037E3E0 57 00 10 3A */ slwi r0, r24, 2
/* 80381484 0037E3E4 81 8D AD 00 */ lwz r12, lbl_805A98C0@sda21(r13)
/* 80381488 0037E3E8 7C 00 1E 70 */ srawi r0, r0, 3
/* 8038148C 0037E3EC 7D 63 33 D6 */ divw r11, r3, r6
/* 80381490 0037E3F0 80 8C 00 14 */ lwz r4, 0x14(r12)
/* 80381494 0037E3F4 80 AC 00 24 */ lwz r5, 0x24(r12)
/* 80381498 0037E3F8 A1 2C 00 1A */ lhz r9, 0x1a(r12)
/* 8038149C 0037E3FC A0 EC 00 12 */ lhz r7, 0x12(r12)
/* 803814A0 0037E400 7D 0B 31 D6 */ mullw r8, r11, r6
/* 803814A4 0037E404 A0 CC 00 10 */ lhz r6, 0x10(r12)
/* 803814A8 0037E408 7E 28 18 50 */ subf r17, r8, r3
/* 803814AC 0037E40C 7D 51 4B D6 */ divw r10, r17, r9
/* 803814B0 0037E410 7D 0A 49 D6 */ mullw r8, r10, r9
/* 803814B4 0037E414 7C 8B 21 D6 */ mullw r4, r11, r4
/* 803814B8 0037E418 7D 68 88 50 */ subf r11, r8, r17
/* 803814BC 0037E41C 7C 00 01 94 */ addze r0, r0
/* 803814C0 0037E420 7D 4A 39 D6 */ mullw r10, r10, r7
/* 803814C4 0037E424 7D 6B 31 D6 */ mullw r11, r11, r6
/* 803814C8 0037E428 7F 0C 2A 14 */ add r24, r12, r5
/* 803814CC 0037E42C 54 84 F8 7E */ srwi r4, r4, 1
/* 803814D0 0037E430 7F 18 22 14 */ add r24, r24, r4
/* 803814D4 0037E434 54 07 28 34 */ slwi r7, r0, 5
/* 803814D8 0037E438 3B 60 00 00 */ li r27, 0
/* 803814DC 0037E43C 48 00 01 48 */ b lbl_80381624
lbl_803814E0:
/* 803814E0 0037E440 7C 8A DA 14 */ add r4, r10, r27
/* 803814E4 0037E444 7C 80 1E 70 */ srawi r0, r4, 3
/* 803814E8 0037E448 7C 00 01 94 */ addze r0, r0
/* 803814EC 0037E44C 7C 88 1E 70 */ srawi r8, r4, 3
/* 803814F0 0037E450 7D 08 01 94 */ addze r8, r8
/* 803814F4 0037E454 55 08 18 38 */ slwi r8, r8, 3
/* 803814F8 0037E458 7D 08 20 10 */ subfc r8, r8, r4
/* 803814FC 0037E45C 7F 64 1E 70 */ srawi r4, r27, 3
/* 80381500 0037E460 7C 84 01 94 */ addze r4, r4
/* 80381504 0037E464 7C A4 39 D6 */ mullw r5, r4, r7
/* 80381508 0037E468 7F 66 1E 70 */ srawi r6, r27, 3
/* 8038150C 0037E46C 7C C6 01 94 */ addze r6, r6
/* 80381510 0037E470 54 C6 18 38 */ slwi r6, r6, 3
/* 80381514 0037E474 7C C6 D8 10 */ subfc r6, r6, r27
/* 80381518 0037E478 55 04 08 3C */ slwi r4, r8, 1
/* 8038151C 0037E47C 7C BD 2A 14 */ add r5, r29, r5
/* 80381520 0037E480 54 C6 10 3A */ slwi r6, r6, 2
/* 80381524 0037E484 39 80 00 00 */ li r12, 0
/* 80381528 0037E488 48 00 00 E8 */ b lbl_80381610
lbl_8038152C:
/* 8038152C 0037E48C A1 29 00 1E */ lhz r9, 0x1e(r9)
/* 80381530 0037E490 7E AB 62 14 */ add r21, r11, r12
/* 80381534 0037E494 7D 1E 62 14 */ add r8, r30, r12
/* 80381538 0037E498 7D 29 1E 70 */ srawi r9, r9, 3
/* 8038153C 0037E49C 7D 29 01 94 */ addze r9, r9
/* 80381540 0037E4A0 55 29 28 34 */ slwi r9, r9, 5
/* 80381544 0037E4A4 7D 32 0E 70 */ srawi r18, r9, 1
/* 80381548 0037E4A8 7E 52 01 94 */ addze r18, r18
/* 8038154C 0037E4AC 7E B3 1E 70 */ srawi r19, r21, 3
/* 80381550 0037E4B0 7E 73 01 94 */ addze r19, r19
/* 80381554 0037E4B4 7E A9 1E 70 */ srawi r9, r21, 3
/* 80381558 0037E4B8 7D 29 01 94 */ addze r9, r9
/* 8038155C 0037E4BC 55 29 18 38 */ slwi r9, r9, 3
/* 80381560 0037E4C0 7D 29 A8 10 */ subfc r9, r9, r21
/* 80381564 0037E4C4 7D 34 16 70 */ srawi r20, r9, 2
/* 80381568 0037E4C8 7E 94 01 94 */ addze r20, r20
/* 8038156C 0037E4CC 7E BA 16 70 */ srawi r26, r21, 2
/* 80381570 0037E4D0 7F 5A 01 94 */ addze r26, r26
/* 80381574 0037E4D4 57 5A 10 3A */ slwi r26, r26, 2
/* 80381578 0037E4D8 7F 5A A8 10 */ subfc r26, r26, r21
/* 8038157C 0037E4DC 7D 15 1E 70 */ srawi r21, r8, 3
/* 80381580 0037E4E0 7E B5 01 94 */ addze r21, r21
/* 80381584 0037E4E4 7D 09 1E 70 */ srawi r9, r8, 3
/* 80381588 0037E4E8 7D 29 01 94 */ addze r9, r9
/* 8038158C 0037E4EC 55 29 18 38 */ slwi r9, r9, 3
/* 80381590 0037E4F0 7E 52 01 D6 */ mullw r18, r18, r0
/* 80381594 0037E4F4 7D 29 40 10 */ subfc r9, r9, r8
/* 80381598 0037E4F8 7D 36 0E 70 */ srawi r22, r9, 1
/* 8038159C 0037E4FC 7E D6 01 94 */ addze r22, r22
/* 803815A0 0037E500 7D 17 0E 70 */ srawi r23, r8, 1
/* 803815A4 0037E504 7E F7 01 94 */ addze r23, r23
/* 803815A8 0037E508 56 A9 28 34 */ slwi r9, r21, 5
/* 803815AC 0037E50C 56 F7 08 3C */ slwi r23, r23, 1
/* 803815B0 0037E510 7D 25 4A 14 */ add r9, r5, r9
/* 803815B4 0037E514 7D 29 32 14 */ add r9, r9, r6
/* 803815B8 0037E518 7E 38 92 14 */ add r17, r24, r18
/* 803815BC 0037E51C 56 75 20 36 */ slwi r21, r19, 4
/* 803815C0 0037E520 7E 31 AA 14 */ add r17, r17, r21
/* 803815C4 0037E524 7E 31 22 14 */ add r17, r17, r4
/* 803815C8 0037E528 7E F7 40 11 */ subfc. r23, r23, r8
/* 803815CC 0037E52C 7E 31 A2 14 */ add r17, r17, r20
/* 803815D0 0037E530 7D 29 B2 14 */ add r9, r9, r22
/* 803815D4 0037E534 41 82 00 0C */ beq lbl_803815E0
/* 803815D8 0037E538 3A 40 00 0F */ li r18, 0xf
/* 803815DC 0037E53C 48 00 00 08 */ b lbl_803815E4
lbl_803815E0:
/* 803815E0 0037E540 3A 40 00 F0 */ li r18, 0xf0
lbl_803815E4:
/* 803815E4 0037E544 57 48 08 3C */ slwi r8, r26, 1
/* 803815E8 0037E548 8B 51 00 00 */ lbz r26, 0(r17)
/* 803815EC 0037E54C 21 08 00 06 */ subfic r8, r8, 6
/* 803815F0 0037E550 8A E9 00 00 */ lbz r23, 0(r9)
/* 803815F4 0037E554 7F 48 46 30 */ sraw r8, r26, r8
/* 803815F8 0037E558 55 08 07 BE */ clrlwi r8, r8, 0x1e
/* 803815FC 0037E55C 7D 19 40 AE */ lbzx r8, r25, r8
/* 80381600 0037E560 39 8C 00 01 */ addi r12, r12, 1
/* 80381604 0037E564 7D 08 90 38 */ and r8, r8, r18
/* 80381608 0037E568 7E E8 43 78 */ or r8, r23, r8
/* 8038160C 0037E56C 99 09 00 00 */ stb r8, 0(r9)
lbl_80381610:
/* 80381610 0037E570 81 2D AD 00 */ lwz r9, lbl_805A98C0@sda21(r13)
/* 80381614 0037E574 A1 09 00 10 */ lhz r8, 0x10(r9)
/* 80381618 0037E578 7C 0C 40 00 */ cmpw r12, r8
/* 8038161C 0037E57C 41 80 FF 10 */ blt lbl_8038152C
/* 80381620 0037E580 3B 7B 00 01 */ addi r27, r27, 1
lbl_80381624:
/* 80381624 0037E584 80 8D AD 00 */ lwz r4, lbl_805A98C0@sda21(r13)
/* 80381628 0037E588 A0 04 00 12 */ lhz r0, 0x12(r4)
/* 8038162C 0037E58C 7C 1B 00 00 */ cmpw r27, r0
/* 80381630 0037E590 41 80 FE B0 */ blt lbl_803814E0
/* 80381634 0037E594 28 1F 00 00 */ cmplwi r31, 0
/* 80381638 0037E598 41 82 00 10 */ beq lbl_80381648
/* 8038163C 0037E59C 80 8D AD 08 */ lwz r4, lbl_805A98C8@sda21(r13)
/* 80381640 0037E5A0 7C 04 18 AE */ lbzx r0, r4, r3
/* 80381644 0037E5A4 90 1F 00 00 */ stw r0, 0(r31)
lbl_80381648:
/* 80381648 0037E5A8 7F 83 E3 78 */ mr r3, r28
lbl_8038164C:
/* 8038164C 0037E5AC BA 21 00 24 */ lmw r17, 0x24(r1)
/* 80381650 0037E5B0 80 01 00 64 */ lwz r0, 0x64(r1)
/* 80381654 0037E5B4 38 21 00 60 */ addi r1, r1, 0x60
/* 80381658 0037E5B8 7C 08 03 A6 */ mtlr r0
/* 8038165C 0037E5BC 4E 80 00 20 */ blr