1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-03 14:34:32 +00:00

First proper commit.

This commit is contained in:
Jack Walker 2020-03-17 00:31:30 -04:00
parent be78236d36
commit 087f561f77
14086 changed files with 1200489 additions and 1 deletions

2
.gitattributes vendored Normal file
View file

@ -0,0 +1,2 @@
# Auto detect text files and perform LF normalization
* text=auto

44
.gitignore vendored Normal file
View file

@ -0,0 +1,44 @@
# Cache files
__pycache__/
.pyc
# Text editor remnants
.vscode/
.vs/
.idea/
CMakeLists.txt
cmake-build-debug
venv/
# Project-specific ignores
build/
notes/
baserom/
*.elf
*.sra
*.z64
*.map
*.dump
out.txt
# Tool artifacts
tools/ido7.1_compiler/*
tools/overlayhelpers/batchdisasm/output/*
tools/overlayhelpers/batchdisasm/output2/*
tools/overlayhelpers/batchdisasm/mipsdisasm/*
tools/disasm/output/*
tools/asmsplitter/asm/*
tools/asmsplitter/c/*
# Assets
*.rgba32.png
*.rgb5a1.png
*.i4.png
*.i8.png
*.ia4.png
*.ia8.png
*.ci4.png
*.ci8.png
#Per-user configuration
.python-version

3
.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule "tools/ZAP2"]
path = tools/ZAP2
url = https://github.com/NEstelami/ZAP2.git

View file

@ -1 +1,21 @@
oot # Legend of Zelda: Ocarina of Time Master Quest (debug)
```diff
- WARNING! -
The ROM this repository builds while has a matching checksum cannot be 'shifted' due
to hardcoded pointers which have yet to be dumped. Thus this repository is currently
in an experimental and research phase and cannot currently be used traditionally as a
source code base for general changes.
```
This repo does not include all assets necessary for compiling the ROM. A prior copy of the game is required to extract the required assets.
This is a disassembly and decompilation of Legend of Zelda: Ocarina of Time Master Quest (debug)
It builds the following ROM:
* zelda_ocarina_mq_dbg.z64 `md5: 717179476af84133b14ff73af87db57a`
Please refer to the Getting Started guide in the Wiki for setup instructions.
Thanks to z64me and CrookedPoe for their actor documentation. https://github.com/CrookedPoe/z64-rw

2936
asm/PreRender.s Normal file

File diff suppressed because it is too large Load diff

41
asm/__osDisableInt.s Normal file
View file

@ -0,0 +1,41 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel __osDisableInt
/* 007E80 80007280 3C0A8001 */ lui $t2, %hi(__OSGlobalIntMask) # $t2, 0x8001
/* 007E84 80007284 254AAD00 */ addiu $t2, %lo(__OSGlobalIntMask) # addiu $t2, $t2, -0x5300
/* 007E88 80007288 8D4B0000 */ lw $t3, ($t2)
/* 007E8C 8000728C 316BFF00 */ andi $t3, $t3, 0xff00
/* 007E90 80007290 40086000 */ mfc0 $t0, $12
/* 007E94 80007294 2401FFFE */ li $at, -2
/* 007E98 80007298 01014824 */ and $t1, $t0, $at
/* 007E9C 8000729C 40896000 */ mtc0 $t1, $12
/* 007EA0 800072A0 31020001 */ andi $v0, $t0, 1
/* 007EA4 800072A4 8D480000 */ lw $t0, ($t2)
/* 007EA8 800072A8 3108FF00 */ andi $t0, $t0, 0xff00
/* 007EAC 800072AC 110B000E */ beq $t0, $t3, .L800072E8
/* 007EB0 800072B0 3C0A8001 */ lui $t2, %hi(__osRunningThread) # $t2, 0x8001
/* 007EB4 800072B4 254AAD50 */ addiu $t2, %lo(__osRunningThread) # addiu $t2, $t2, -0x52b0
/* 007EB8 800072B8 8D490118 */ lw $t1, 0x118($t2)
/* 007EBC 800072BC 312AFF00 */ andi $t2, $t1, 0xff00
/* 007EC0 800072C0 01485024 */ and $t2, $t2, $t0
/* 007EC4 800072C4 3C01FFFF */ lui $at, (0xFFFF00FF >> 16) # lui $at, 0xffff
/* 007EC8 800072C8 342100FF */ ori $at, (0xFFFF00FF & 0xFFFF) # ori $at, $at, 0xff
/* 007ECC 800072CC 01214824 */ and $t1, $t1, $at
/* 007ED0 800072D0 012A4825 */ or $t1, $t1, $t2
/* 007ED4 800072D4 2401FFFE */ li $at, -2
/* 007ED8 800072D8 01214824 */ and $t1, $t1, $at
/* 007EDC 800072DC 40896000 */ mtc0 $t1, $12
/* 007EE0 800072E0 00000000 */ nop
/* 007EE4 800072E4 00000000 */ nop
.L800072E8:
/* 007EE8 800072E8 03E00008 */ jr $ra
/* 007EEC 800072EC 00000000 */ nop

15
asm/__osGetCause.s Normal file
View file

@ -0,0 +1,15 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel __osGetCause
/* 008790 80007B90 40026800 */ mfc0 $v0, $13
/* 008794 80007B94 03E00008 */ jr $ra
/* 008798 80007B98 00000000 */ nop

15
asm/__osGetFpcCsr.s Normal file
View file

@ -0,0 +1,15 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel __osGetFpcCsr
/* 008680 80007A80 4442F800 */ cfc1 $v0, $31
/* 008684 80007A84 03E00008 */ jr $ra
/* 008688 80007A88 00000000 */ nop

15
asm/__osGetSR.s Normal file
View file

@ -0,0 +1,15 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel __osGetSR
/* 0052B0 800046B0 40026000 */ mfc0 $v0, $12
/* 0052B4 800046B4 03E00008 */ jr $ra
/* 0052B8 800046B8 00000000 */ nop

62
asm/__osProbeTLB.s Normal file
View file

@ -0,0 +1,62 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel __osProbeTLB
/* 005C40 80005040 40085000 */ mfc0 $t0, $10
/* 005C44 80005044 310900FF */ andi $t1, $t0, 0xff
/* 005C48 80005048 2401E000 */ li $at, -8192
/* 005C4C 8000504C 00815024 */ and $t2, $a0, $at
/* 005C50 80005050 012A4825 */ or $t1, $t1, $t2
/* 005C54 80005054 40895000 */ mtc0 $t1, $10
/* 005C58 80005058 00000000 */ nop
/* 005C5C 8000505C 00000000 */ nop
/* 005C60 80005060 00000000 */ nop
/* 005C64 80005064 42000008 */ tlbp
/* 005C68 80005068 00000000 */ nop
/* 005C6C 8000506C 00000000 */ nop
/* 005C70 80005070 400B0000 */ mfc0 $t3, $0
/* 005C74 80005074 3C018000 */ lui $at, 0x8000
/* 005C78 80005078 01615824 */ and $t3, $t3, $at
/* 005C7C 8000507C 1560001A */ bnez $t3, .L800050E8
/* 005C80 80005080 00000000 */ nop
/* 005C84 80005084 42000001 */ tlbr
/* 005C88 80005088 00000000 */ nop
/* 005C8C 8000508C 00000000 */ nop
/* 005C90 80005090 00000000 */ nop
/* 005C94 80005094 400B2800 */ mfc0 $t3, $5
/* 005C98 80005098 216B2000 */ addi $t3, $t3, 0x2000
/* 005C9C 8000509C 000B5842 */ srl $t3, $t3, 1
/* 005CA0 800050A0 01646024 */ and $t4, $t3, $a0
/* 005CA4 800050A4 15800004 */ bnez $t4, .L800050B8
/* 005CA8 800050A8 216BFFFF */ addi $t3, $t3, -1
/* 005CAC 800050AC 40021000 */ mfc0 $v0, $2
/* 005CB0 800050B0 10000002 */ b .L800050BC
/* 005CB4 800050B4 00000000 */ nop
.L800050B8:
/* 005CB8 800050B8 40021800 */ mfc0 $v0, $3
.L800050BC:
/* 005CBC 800050BC 304D0002 */ andi $t5, $v0, 2
/* 005CC0 800050C0 11A00009 */ beqz $t5, .L800050E8
/* 005CC4 800050C4 00000000 */ nop
/* 005CC8 800050C8 3C013FFF */ lui $at, (0x3FFFFFC0 >> 16) # lui $at, 0x3fff
/* 005CCC 800050CC 3421FFC0 */ ori $at, (0x3FFFFFC0 & 0xFFFF) # ori $at, $at, 0xffc0
/* 005CD0 800050D0 00411024 */ and $v0, $v0, $at
/* 005CD4 800050D4 00021180 */ sll $v0, $v0, 6
/* 005CD8 800050D8 008B6824 */ and $t5, $a0, $t3
/* 005CDC 800050DC 004D1020 */ add $v0, $v0, $t5
/* 005CE0 800050E0 10000002 */ b .L800050EC
/* 005CE4 800050E4 00000000 */ nop
.L800050E8:
/* 005CE8 800050E8 2402FFFF */ li $v0, -1
.L800050EC:
/* 005CEC 800050EC 40885000 */ mtc0 $t0, $10
/* 005CF0 800050F0 03E00008 */ jr $ra
/* 005CF4 800050F4 00000000 */ nop

19
asm/__osRestoreInt.s Normal file
View file

@ -0,0 +1,19 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel __osRestoreInt
/* 007EF0 800072F0 40086000 */ mfc0 $t0, $12
/* 007EF4 800072F4 01044025 */ or $t0, $t0, $a0
/* 007EF8 800072F8 40886000 */ mtc0 $t0, $12
/* 007EFC 800072FC 00000000 */ nop
/* 007F00 80007300 00000000 */ nop
/* 007F04 80007304 03E00008 */ jr $ra
/* 007F08 80007308 00000000 */ nop

15
asm/__osSetCompare.s Normal file
View file

@ -0,0 +1,15 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel __osSetCompare
/* 007B00 80006F00 40845800 */ mtc0 $a0, $11
/* 007B04 80006F04 03E00008 */ jr $ra
/* 007B08 80006F08 00000000 */ nop

16
asm/__osSetFpcCsr.s Normal file
View file

@ -0,0 +1,16 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel __osSetFpcCsr
/* 008670 80007A70 4442F800 */ cfc1 $v0, $31
/* 008674 80007A74 44C4F800 */ ctc1 $a0, $31
/* 008678 80007A78 03E00008 */ jr $ra
/* 00867C 80007A7C 00000000 */ nop

16
asm/__osSetSR.s Normal file
View file

@ -0,0 +1,16 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel __osSetSR
/* 0052A0 800046A0 40846000 */ mtc0 $a0, $12
/* 0052A4 800046A4 00000000 */ nop
/* 0052A8 800046A8 03E00008 */ jr $ra
/* 0052AC 800046AC 00000000 */ nop

16
asm/__osSetWatchLo.s Normal file
View file

@ -0,0 +1,16 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel __osSetWatchLo
/* 009F10 80009310 40849000 */ mtc0 $a0, $18
/* 009F14 80009314 00000000 */ nop
/* 009F18 80009318 03E00008 */ jr $ra
/* 009F1C 8000931C 00000000 */ nop

94
asm/bcmp.s Normal file
View file

@ -0,0 +1,94 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel bcmp
/* 0074C0 800068C0 28C10010 */ slti $at, $a2, 0x10
/* 0074C4 800068C4 14200037 */ bnez $at, .bytecmp
/* 0074C8 800068C8 00851026 */ xor $v0, $a0, $a1
/* 0074CC 800068CC 30420003 */ andi $v0, $v0, 3
/* 0074D0 800068D0 14400019 */ bnez $v0, .unalgncmp
/* 0074D4 800068D4 0004C023 */ negu $t8, $a0
/* 0074D8 800068D8 33180003 */ andi $t8, $t8, 3
/* 0074DC 800068DC 13000007 */ beqz $t8, .wordcmp
/* 0074E0 800068E0 00D83023 */ subu $a2, $a2, $t8
/* 0074E4 800068E4 00601025 */ move $v0, $v1
/* 0074E8 800068E8 88820000 */ lwl $v0, ($a0)
/* 0074EC 800068EC 88A30000 */ lwl $v1, ($a1)
/* 0074F0 800068F0 00982021 */ addu $a0, $a0, $t8
/* 0074F4 800068F4 00B82821 */ addu $a1, $a1, $t8
/* 0074F8 800068F8 14430036 */ bne $v0, $v1, .cmpdone
.wordcmp:
/* 0074FC 800068FC 2401FFFC */ li $at, -4
/* 007500 80006900 00C13824 */ and $a3, $a2, $at
/* 007504 80006904 10E00027 */ beqz $a3, .bytecmp
/* 007508 80006908 00C73023 */ subu $a2, $a2, $a3
/* 00750C 8000690C 00E43821 */ addu $a3, $a3, $a0
/* 007510 80006910 8C820000 */ lw $v0, ($a0)
.L80006914:
/* 007514 80006914 8CA30000 */ lw $v1, ($a1)
/* 007518 80006918 24840004 */ addiu $a0, $a0, 4
/* 00751C 8000691C 24A50004 */ addiu $a1, $a1, 4
/* 007520 80006920 1443002C */ bne $v0, $v1, .cmpdone
/* 007524 80006924 00000000 */ nop
/* 007528 80006928 5487FFFA */ bnel $a0, $a3, .L80006914
/* 00752C 8000692C 8C820000 */ lw $v0, ($a0)
/* 007530 80006930 1000001C */ b .bytecmp
/* 007534 80006934 00000000 */ nop
.unalgncmp:
/* 007538 80006938 00053823 */ negu $a3, $a1
/* 00753C 8000693C 30E70003 */ andi $a3, $a3, 3
/* 007540 80006940 10E0000A */ beqz $a3, .partaligncmp
/* 007544 80006944 00C73023 */ subu $a2, $a2, $a3
/* 007548 80006948 00E43821 */ addu $a3, $a3, $a0
/* 00754C 8000694C 90820000 */ lbu $v0, ($a0)
.L80006950:
/* 007550 80006950 90A30000 */ lbu $v1, ($a1)
/* 007554 80006954 24840001 */ addiu $a0, $a0, 1
/* 007558 80006958 24A50001 */ addiu $a1, $a1, 1
/* 00755C 8000695C 1443001D */ bne $v0, $v1, .cmpdone
/* 007560 80006960 00000000 */ nop
/* 007564 80006964 5487FFFA */ bnel $a0, $a3, .L80006950
/* 007568 80006968 90820000 */ lbu $v0, ($a0)
.partaligncmp:
/* 00756C 8000696C 2401FFFC */ li $at, -4
/* 007570 80006970 00C13824 */ and $a3, $a2, $at
/* 007574 80006974 10E0000B */ beqz $a3, .bytecmp
/* 007578 80006978 00C73023 */ subu $a2, $a2, $a3
/* 00757C 8000697C 00E43821 */ addu $a3, $a3, $a0
/* 007580 80006980 88820000 */ lwl $v0, ($a0)
.L80006984:
/* 007584 80006984 8CA30000 */ lw $v1, ($a1)
/* 007588 80006988 98820003 */ lwr $v0, 3($a0)
/* 00758C 8000698C 24840004 */ addiu $a0, $a0, 4
/* 007590 80006990 24A50004 */ addiu $a1, $a1, 4
/* 007594 80006994 1443000F */ bne $v0, $v1, .cmpdone
/* 007598 80006998 00000000 */ nop
/* 00759C 8000699C 5487FFF9 */ bnel $a0, $a3, .L80006984
/* 0075A0 800069A0 88820000 */ lwl $v0, ($a0)
.bytecmp:
/* 0075A4 800069A4 18C00009 */ blez $a2, .L800069CC
/* 0075A8 800069A8 00C43821 */ addu $a3, $a2, $a0
/* 0075AC 800069AC 90820000 */ lbu $v0, ($a0)
.L800069B0:
/* 0075B0 800069B0 90A30000 */ lbu $v1, ($a1)
/* 0075B4 800069B4 24840001 */ addiu $a0, $a0, 1
/* 0075B8 800069B8 24A50001 */ addiu $a1, $a1, 1
/* 0075BC 800069BC 14430005 */ bne $v0, $v1, .cmpdone
/* 0075C0 800069C0 00000000 */ nop
/* 0075C4 800069C4 5487FFFA */ bnel $a0, $a3, .L800069B0
/* 0075C8 800069C8 90820000 */ lbu $v0, ($a0)
.L800069CC:
/* 0075CC 800069CC 03E00008 */ jr $ra
/* 0075D0 800069D0 00001025 */ move $v0, $zero
.cmpdone:
/* 0075D4 800069D4 03E00008 */ jr $ra
/* 0075D8 800069D8 24020001 */ li $v0, 1

230
asm/bcopy.s Normal file
View file

@ -0,0 +1,230 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel bcopy
/* 007B10 80006F10 10C0001A */ beqz $a2, ret
/* 007B14 80006F14 00A03825 */ move $a3, $a1
/* 007B18 80006F18 10850018 */ beq $a0, $a1, ret
/* 007B1C 80006F1C 00A4082A */ slt $at, $a1, $a0
/* 007B20 80006F20 54200008 */ bnezl $at, goforwards
/* 007B24 80006F24 28C10010 */ slti $at, $a2, 0x10
/* 007B28 80006F28 00861020 */ add $v0, $a0, $a2
/* 007B2C 80006F2C 00A2082A */ slt $at, $a1, $v0
/* 007B30 80006F30 50200004 */ beql $at, $zero, goforwards
/* 007B34 80006F34 28C10010 */ slti $at, $a2, 0x10
/* 007B38 80006F38 1000005B */ b gobackwards
/* 007B3C 80006F3C 28C10010 */ slti $at, $a2, 0x10
/* 007B40 80006F40 28C10010 */ slti $at, $a2, 0x10
goforwards:
/* 007B44 80006F44 14200005 */ bnez $at, forwards_bytecopy
/* 007B48 80006F48 00000000 */ nop
/* 007B4C 80006F4C 30820003 */ andi $v0, $a0, 3
/* 007B50 80006F50 30A30003 */ andi $v1, $a1, 3
/* 007B54 80006F54 1043000B */ beq $v0, $v1, forwalignable
/* 007B58 80006F58 00000000 */ nop
forwards_bytecopy:
/* 007B5C 80006F5C 10C00007 */ beqz $a2, ret
/* 007B60 80006F60 00000000 */ nop
/* 007B64 80006F64 00861821 */ addu $v1, $a0, $a2
.L80006F68:
/* 007B68 80006F68 80820000 */ lb $v0, ($a0)
/* 007B6C 80006F6C 24840001 */ addiu $a0, $a0, 1
/* 007B70 80006F70 24A50001 */ addiu $a1, $a1, 1
/* 007B74 80006F74 1483FFFC */ bne $a0, $v1, .L80006F68
/* 007B78 80006F78 A0A2FFFF */ sb $v0, -1($a1)
ret:
/* 007B7C 80006F7C 03E00008 */ jr $ra
/* 007B80 80006F80 00E01025 */ move $v0, $a3
forwalignable:
/* 007B84 80006F84 10400018 */ beqz $v0, forwards_32
/* 007B88 80006F88 24010001 */ li $at, 1
/* 007B8C 80006F8C 1041000F */ beq $v0, $at, forw_copy3
/* 007B90 80006F90 24010002 */ li $at, 2
/* 007B94 80006F94 50410008 */ beql $v0, $at, forw_copy2
/* 007B98 80006F98 84820000 */ lh $v0, ($a0)
/* 007B9C 80006F9C 80820000 */ lb $v0, ($a0)
/* 007BA0 80006FA0 24840001 */ addiu $a0, $a0, 1
/* 007BA4 80006FA4 24A50001 */ addiu $a1, $a1, 1
/* 007BA8 80006FA8 24C6FFFF */ addiu $a2, $a2, -1
/* 007BAC 80006FAC 1000000E */ b forwards_32
/* 007BB0 80006FB0 A0A2FFFF */ sb $v0, -1($a1)
/* 007BB4 80006FB4 84820000 */ lh $v0, ($a0)
forw_copy2:
/* 007BB8 80006FB8 24840002 */ addiu $a0, $a0, 2
/* 007BBC 80006FBC 24A50002 */ addiu $a1, $a1, 2
/* 007BC0 80006FC0 24C6FFFE */ addiu $a2, $a2, -2
/* 007BC4 80006FC4 10000008 */ b forwards_32
/* 007BC8 80006FC8 A4A2FFFE */ sh $v0, -2($a1)
forw_copy3:
/* 007BCC 80006FCC 80820000 */ lb $v0, ($a0)
/* 007BD0 80006FD0 84830001 */ lh $v1, 1($a0)
/* 007BD4 80006FD4 24840003 */ addiu $a0, $a0, 3
/* 007BD8 80006FD8 24A50003 */ addiu $a1, $a1, 3
/* 007BDC 80006FDC 24C6FFFD */ addiu $a2, $a2, -3
/* 007BE0 80006FE0 A0A2FFFD */ sb $v0, -3($a1)
/* 007BE4 80006FE4 A4A3FFFE */ sh $v1, -2($a1)
forwards_32:
/* 007BE8 80006FE8 28C10020 */ slti $at, $a2, 0x20
/* 007BEC 80006FEC 54200016 */ bnezl $at, .L80007048
/* 007BF0 80006FF0 28C10010 */ slti $at, $a2, 0x10
/* 007BF4 80006FF4 8C820000 */ lw $v0, ($a0)
/* 007BF8 80006FF8 8C830004 */ lw $v1, 4($a0)
/* 007BFC 80006FFC 8C880008 */ lw $t0, 8($a0)
/* 007C00 80007000 8C89000C */ lw $t1, 0xc($a0)
/* 007C04 80007004 8C8A0010 */ lw $t2, 0x10($a0)
/* 007C08 80007008 8C8B0014 */ lw $t3, 0x14($a0)
/* 007C0C 8000700C 8C8C0018 */ lw $t4, 0x18($a0)
/* 007C10 80007010 8C8D001C */ lw $t5, 0x1c($a0)
/* 007C14 80007014 24840020 */ addiu $a0, $a0, 0x20
/* 007C18 80007018 24A50020 */ addiu $a1, $a1, 0x20
/* 007C1C 8000701C 24C6FFE0 */ addiu $a2, $a2, -0x20
/* 007C20 80007020 ACA2FFE0 */ sw $v0, -0x20($a1)
/* 007C24 80007024 ACA3FFE4 */ sw $v1, -0x1c($a1)
/* 007C28 80007028 ACA8FFE8 */ sw $t0, -0x18($a1)
/* 007C2C 8000702C ACA9FFEC */ sw $t1, -0x14($a1)
/* 007C30 80007030 ACAAFFF0 */ sw $t2, -0x10($a1)
/* 007C34 80007034 ACABFFF4 */ sw $t3, -0xc($a1)
/* 007C38 80007038 ACACFFF8 */ sw $t4, -8($a1)
/* 007C3C 8000703C 1000FFEA */ b forwards_32
/* 007C40 80007040 ACADFFFC */ sw $t5, -4($a1)
forwards_16:
/* 007C44 80007044 28C10010 */ slti $at, $a2, 0x10
.L80007048:
/* 007C48 80007048 5420000E */ bnezl $at, .L80007084
/* 007C4C 8000704C 28C10004 */ slti $at, $a2, 4
/* 007C50 80007050 8C820000 */ lw $v0, ($a0)
/* 007C54 80007054 8C830004 */ lw $v1, 4($a0)
/* 007C58 80007058 8C880008 */ lw $t0, 8($a0)
/* 007C5C 8000705C 8C89000C */ lw $t1, 0xc($a0)
/* 007C60 80007060 24840010 */ addiu $a0, $a0, 0x10
/* 007C64 80007064 24A50010 */ addiu $a1, $a1, 0x10
/* 007C68 80007068 24C6FFF0 */ addiu $a2, $a2, -0x10
/* 007C6C 8000706C ACA2FFF0 */ sw $v0, -0x10($a1)
/* 007C70 80007070 ACA3FFF4 */ sw $v1, -0xc($a1)
/* 007C74 80007074 ACA8FFF8 */ sw $t0, -8($a1)
/* 007C78 80007078 1000FFF2 */ b forwards_16
/* 007C7C 8000707C ACA9FFFC */ sw $t1, -4($a1)
forwards_4:
/* 007C80 80007080 28C10004 */ slti $at, $a2, 4
.L80007084:
/* 007C84 80007084 1420FFB5 */ bnez $at, forwards_bytecopy
/* 007C88 80007088 00000000 */ nop
/* 007C8C 8000708C 8C820000 */ lw $v0, ($a0)
/* 007C90 80007090 24840004 */ addiu $a0, $a0, 4
/* 007C94 80007094 24A50004 */ addiu $a1, $a1, 4
/* 007C98 80007098 24C6FFFC */ addiu $a2, $a2, -4
/* 007C9C 8000709C 1000FFF8 */ b forwards_4
/* 007CA0 800070A0 ACA2FFFC */ sw $v0, -4($a1)
/* 007CA4 800070A4 28C10010 */ slti $at, $a2, 0x10
gobackwards:
/* 007CA8 800070A8 00862020 */ add $a0, $a0, $a2
/* 007CAC 800070AC 14200005 */ bnez $at, backwards_bytecopy
/* 007CB0 800070B0 00A62820 */ add $a1, $a1, $a2
/* 007CB4 800070B4 30820003 */ andi $v0, $a0, 3
/* 007CB8 800070B8 30A30003 */ andi $v1, $a1, 3
/* 007CBC 800070BC 1043000D */ beq $v0, $v1, backalignable
/* 007CC0 800070C0 00000000 */ nop
backwards_bytecopy:
/* 007CC4 800070C4 10C0FFAD */ beqz $a2, ret
/* 007CC8 800070C8 00000000 */ nop
/* 007CCC 800070CC 2484FFFF */ addiu $a0, $a0, -1
/* 007CD0 800070D0 24A5FFFF */ addiu $a1, $a1, -1
/* 007CD4 800070D4 00861823 */ subu $v1, $a0, $a2
.L800070D8:
/* 007CD8 800070D8 80820000 */ lb $v0, ($a0)
/* 007CDC 800070DC 2484FFFF */ addiu $a0, $a0, -1
/* 007CE0 800070E0 24A5FFFF */ addiu $a1, $a1, -1
/* 007CE4 800070E4 1483FFFC */ bne $a0, $v1, .L800070D8
/* 007CE8 800070E8 A0A20001 */ sb $v0, 1($a1)
/* 007CEC 800070EC 03E00008 */ jr $ra
/* 007CF0 800070F0 00E01025 */ move $v0, $a3
backalignable:
/* 007CF4 800070F4 10400018 */ beqz $v0, backwards_32
/* 007CF8 800070F8 24010003 */ li $at, 3
/* 007CFC 800070FC 1041000F */ beq $v0, $at, back_copy3
/* 007D00 80007100 24010002 */ li $at, 2
/* 007D04 80007104 50410008 */ beql $v0, $at, back_copy2
/* 007D08 80007108 8482FFFE */ lh $v0, -2($a0)
/* 007D0C 8000710C 8082FFFF */ lb $v0, -1($a0)
/* 007D10 80007110 2484FFFF */ addiu $a0, $a0, -1
/* 007D14 80007114 24A5FFFF */ addiu $a1, $a1, -1
/* 007D18 80007118 24C6FFFF */ addiu $a2, $a2, -1
/* 007D1C 8000711C 1000000E */ b backwards_32
/* 007D20 80007120 A0A20000 */ sb $v0, ($a1)
/* 007D24 80007124 8482FFFE */ lh $v0, -2($a0)
back_copy2:
/* 007D28 80007128 2484FFFE */ addiu $a0, $a0, -2
/* 007D2C 8000712C 24A5FFFE */ addiu $a1, $a1, -2
/* 007D30 80007130 24C6FFFE */ addiu $a2, $a2, -2
/* 007D34 80007134 10000008 */ b backwards_32
/* 007D38 80007138 A4A20000 */ sh $v0, ($a1)
back_copy3:
/* 007D3C 8000713C 8082FFFF */ lb $v0, -1($a0)
/* 007D40 80007140 8483FFFD */ lh $v1, -3($a0)
/* 007D44 80007144 2484FFFD */ addiu $a0, $a0, -3
/* 007D48 80007148 24A5FFFD */ addiu $a1, $a1, -3
/* 007D4C 8000714C 24C6FFFD */ addiu $a2, $a2, -3
/* 007D50 80007150 A0A20002 */ sb $v0, 2($a1)
/* 007D54 80007154 A4A30000 */ sh $v1, ($a1)
backwards_32:
/* 007D58 80007158 28C10020 */ slti $at, $a2, 0x20
/* 007D5C 8000715C 54200016 */ bnezl $at, .L800071B8
/* 007D60 80007160 28C10010 */ slti $at, $a2, 0x10
/* 007D64 80007164 8C82FFFC */ lw $v0, -4($a0)
/* 007D68 80007168 8C83FFF8 */ lw $v1, -8($a0)
/* 007D6C 8000716C 8C88FFF4 */ lw $t0, -0xc($a0)
/* 007D70 80007170 8C89FFF0 */ lw $t1, -0x10($a0)
/* 007D74 80007174 8C8AFFEC */ lw $t2, -0x14($a0)
/* 007D78 80007178 8C8BFFE8 */ lw $t3, -0x18($a0)
/* 007D7C 8000717C 8C8CFFE4 */ lw $t4, -0x1c($a0)
/* 007D80 80007180 8C8DFFE0 */ lw $t5, -0x20($a0)
/* 007D84 80007184 2484FFE0 */ addiu $a0, $a0, -0x20
/* 007D88 80007188 24A5FFE0 */ addiu $a1, $a1, -0x20
/* 007D8C 8000718C 24C6FFE0 */ addiu $a2, $a2, -0x20
/* 007D90 80007190 ACA2001C */ sw $v0, 0x1c($a1)
/* 007D94 80007194 ACA30018 */ sw $v1, 0x18($a1)
/* 007D98 80007198 ACA80014 */ sw $t0, 0x14($a1)
/* 007D9C 8000719C ACA90010 */ sw $t1, 0x10($a1)
/* 007DA0 800071A0 ACAA000C */ sw $t2, 0xc($a1)
/* 007DA4 800071A4 ACAB0008 */ sw $t3, 8($a1)
/* 007DA8 800071A8 ACAC0004 */ sw $t4, 4($a1)
/* 007DAC 800071AC 1000FFEA */ b backwards_32
/* 007DB0 800071B0 ACAD0000 */ sw $t5, ($a1)
backwards_16:
/* 007DB4 800071B4 28C10010 */ slti $at, $a2, 0x10
.L800071B8:
/* 007DB8 800071B8 5420000E */ bnezl $at, .L800071F4
/* 007DBC 800071BC 28C10004 */ slti $at, $a2, 4
/* 007DC0 800071C0 8C82FFFC */ lw $v0, -4($a0)
/* 007DC4 800071C4 8C83FFF8 */ lw $v1, -8($a0)
/* 007DC8 800071C8 8C88FFF4 */ lw $t0, -0xc($a0)
/* 007DCC 800071CC 8C89FFF0 */ lw $t1, -0x10($a0)
/* 007DD0 800071D0 2484FFF0 */ addiu $a0, $a0, -0x10
/* 007DD4 800071D4 24A5FFF0 */ addiu $a1, $a1, -0x10
/* 007DD8 800071D8 24C6FFF0 */ addiu $a2, $a2, -0x10
/* 007DDC 800071DC ACA2000C */ sw $v0, 0xc($a1)
/* 007DE0 800071E0 ACA30008 */ sw $v1, 8($a1)
/* 007DE4 800071E4 ACA80004 */ sw $t0, 4($a1)
/* 007DE8 800071E8 1000FFF2 */ b backwards_16
/* 007DEC 800071EC ACA90000 */ sw $t1, ($a1)
backwards_4:
/* 007DF0 800071F0 28C10004 */ slti $at, $a2, 4
.L800071F4:
/* 007DF4 800071F4 1420FFB3 */ bnez $at, backwards_bytecopy
/* 007DF8 800071F8 00000000 */ nop
/* 007DFC 800071FC 8C82FFFC */ lw $v0, -4($a0)
/* 007E00 80007200 2484FFFC */ addiu $a0, $a0, -4
/* 007E04 80007204 24A5FFFC */ addiu $a1, $a1, -4
/* 007E08 80007208 24C6FFFC */ addiu $a2, $a2, -4
/* 007E0C 8000720C 1000FFF8 */ b backwards_4
/* 007E10 80007210 ACA20000 */ sw $v0, ($a1)

84
asm/bzero.s Normal file
View file

@ -0,0 +1,84 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel bzero
/* 005050 80004450 28A1000C */ slti $at, $a1, 0xc
/* 005054 80004454 1420001D */ bnez $at, .bytezero
/* 005058 80004458 00041823 */ negu $v1, $a0
/* 00505C 8000445C 30630003 */ andi $v1, $v1, 3
/* 005060 80004460 10600003 */ beqz $v1, .blkzero
/* 005064 80004464 00A32823 */ subu $a1, $a1, $v1
/* 005068 80004468 A8800000 */ swl $zero, ($a0)
/* 00506C 8000446C 00832021 */ addu $a0, $a0, $v1
.blkzero:
/* 005070 80004470 2401FFE0 */ li $at, -32
/* 005074 80004474 00A13824 */ and $a3, $a1, $at
/* 005078 80004478 10E0000C */ beqz $a3, .wordzero
/* 00507C 8000447C 00A72823 */ subu $a1, $a1, $a3
/* 005080 80004480 00E43821 */ addu $a3, $a3, $a0
.L80004484:
/* 005084 80004484 24840020 */ addiu $a0, $a0, 0x20
/* 005088 80004488 AC80FFE0 */ sw $zero, -0x20($a0)
/* 00508C 8000448C AC80FFE4 */ sw $zero, -0x1c($a0)
/* 005090 80004490 AC80FFE8 */ sw $zero, -0x18($a0)
/* 005094 80004494 AC80FFEC */ sw $zero, -0x14($a0)
/* 005098 80004498 AC80FFF0 */ sw $zero, -0x10($a0)
/* 00509C 8000449C AC80FFF4 */ sw $zero, -0xc($a0)
/* 0050A0 800044A0 AC80FFF8 */ sw $zero, -8($a0)
/* 0050A4 800044A4 1487FFF7 */ bne $a0, $a3, .L80004484
/* 0050A8 800044A8 AC80FFFC */ sw $zero, -4($a0)
.wordzero:
/* 0050AC 800044AC 2401FFFC */ li $at, -4
/* 0050B0 800044B0 00A13824 */ and $a3, $a1, $at
/* 0050B4 800044B4 10E00005 */ beqz $a3, .bytezero
/* 0050B8 800044B8 00A72823 */ subu $a1, $a1, $a3
/* 0050BC 800044BC 00E43821 */ addu $a3, $a3, $a0
.L800044C0:
/* 0050C0 800044C0 24840004 */ addiu $a0, $a0, 4
/* 0050C4 800044C4 1487FFFE */ bne $a0, $a3, .L800044C0
/* 0050C8 800044C8 AC80FFFC */ sw $zero, -4($a0)
.bytezero:
/* 0050CC 800044CC 18A00005 */ blez $a1, .zerodone
/* 0050D0 800044D0 00000000 */ nop
/* 0050D4 800044D4 00A42821 */ addu $a1, $a1, $a0
.L800044D8:
/* 0050D8 800044D8 24840001 */ addiu $a0, $a0, 1
/* 0050DC 800044DC 1485FFFE */ bne $a0, $a1, .L800044D8
/* 0050E0 800044E0 A080FFFF */ sb $zero, -1($a0)
.zerodone:
/* 0050E4 800044E4 03E00008 */ jr $ra
/* 0050E8 800044E8 00000000 */ nop
/* 0050EC 800044EC 00000000 */ nop
/* 0050F0 800044F0 00000000 */ nop
/* 0050F4 800044F4 00000000 */ nop
/* 0050F8 800044F8 00000000 */ nop
/* 0050FC 800044FC 00000000 */ nop
/* 005100 80004500 00000000 */ nop
/* 005104 80004504 00000000 */ nop
/* 005108 80004508 00000000 */ nop
/* 00510C 8000450C 00000000 */ nop
/* 005110 80004510 00000000 */ nop
/* 005114 80004514 00000000 */ nop
/* 005118 80004518 00000000 */ nop
/* 00511C 8000451C 00000000 */ nop
/* 005120 80004520 00000000 */ nop
/* 005124 80004524 00000000 */ nop
/* 005128 80004528 00000000 */ nop
/* 00512C 8000452C 00000000 */ nop
/* 005130 80004530 00000000 */ nop
/* 005134 80004534 00000000 */ nop
/* 005138 80004538 00000000 */ nop
/* 00513C 8000453C 00000000 */ nop
/* 005140 80004540 00000000 */ nop
/* 005144 80004544 00000000 */ nop
/* 005148 80004548 00000000 */ nop
/* 00514C 8000454C 00000000 */ nop

137
asm/code_8006BA00.s Normal file
View file

@ -0,0 +1,137 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_8006BA00
/* AE2BA0 8006BA00 24831DB4 */ addiu $v1, $a0, 0x1db4
/* AE2BA4 8006BA04 24040010 */ li $a0, 16
/* AE2BA8 8006BA08 00001025 */ move $v0, $zero
.L8006BA0C:
/* AE2BAC 8006BA0C 24420004 */ addiu $v0, $v0, 4
/* AE2BB0 8006BA10 A4600000 */ sh $zero, ($v1)
/* AE2BB4 8006BA14 A460001C */ sh $zero, 0x1c($v1)
/* AE2BB8 8006BA18 A4600038 */ sh $zero, 0x38($v1)
/* AE2BBC 8006BA1C A4600054 */ sh $zero, 0x54($v1)
/* AE2BC0 8006BA20 1444FFFA */ bne $v0, $a0, .L8006BA0C
/* AE2BC4 8006BA24 24630070 */ addiu $v1, $v1, 0x70
/* AE2BC8 8006BA28 03E00008 */ jr $ra
/* AE2BCC 8006BA2C 00000000 */ nop
glabel func_8006BA30
/* AE2BD0 8006BA30 27BDFFD0 */ addiu $sp, $sp, -0x30
/* AE2BD4 8006BA34 AFB40028 */ sw $s4, 0x28($sp)
/* AE2BD8 8006BA38 AFB30024 */ sw $s3, 0x24($sp)
/* AE2BDC 8006BA3C AFB20020 */ sw $s2, 0x20($sp)
/* AE2BE0 8006BA40 AFB1001C */ sw $s1, 0x1c($sp)
/* AE2BE4 8006BA44 AFB00018 */ sw $s0, 0x18($sp)
/* AE2BE8 8006BA48 3C140001 */ lui $s4, (0x00011D60 >> 16) # lui $s4, 1
/* AE2BEC 8006BA4C 00809025 */ move $s2, $a0
/* AE2BF0 8006BA50 AFBF002C */ sw $ra, 0x2c($sp)
/* AE2BF4 8006BA54 24901DB4 */ addiu $s0, $a0, 0x1db4
/* AE2BF8 8006BA58 36941D60 */ ori $s4, (0x00011D60 & 0xFFFF) # ori $s4, $s4, 0x1d60
/* AE2BFC 8006BA5C 00008825 */ move $s1, $zero
/* AE2C00 8006BA60 24130010 */ li $s3, 16
.L8006BA64:
/* AE2C04 8006BA64 96020000 */ lhu $v0, ($s0)
/* AE2C08 8006BA68 50400011 */ beql $v0, $zero, .L8006BAB0
/* AE2C0C 8006BA6C 26310001 */ addiu $s1, $s1, 1
/* AE2C10 8006BA70 14400003 */ bnez $v0, .L8006BA80
/* AE2C14 8006BA74 244EFFFF */ addiu $t6, $v0, -1
/* AE2C18 8006BA78 10000003 */ b .L8006BA88
/* AE2C1C 8006BA7C 00001825 */ move $v1, $zero
.L8006BA80:
/* AE2C20 8006BA80 A60E0000 */ sh $t6, ($s0)
/* AE2C24 8006BA84 31C3FFFF */ andi $v1, $t6, 0xffff
.L8006BA88:
/* AE2C28 8006BA88 14600005 */ bnez $v1, .L8006BAA0
/* AE2C2C 8006BA8C 02542021 */ addu $a0, $s2, $s4
/* AE2C30 8006BA90 0C03E27A */ jal func_800F89E8
/* AE2C34 8006BA94 26040010 */ addiu $a0, $s0, 0x10
/* AE2C38 8006BA98 10000005 */ b .L8006BAB0
/* AE2C3C 8006BA9C 26310001 */ addiu $s1, $s1, 1
.L8006BAA0:
/* AE2C40 8006BAA0 26050004 */ addiu $a1, $s0, 4
/* AE2C44 8006BAA4 0C029BBD */ jal func_800A6EF4
/* AE2C48 8006BAA8 26060010 */ addiu $a2, $s0, 0x10
/* AE2C4C 8006BAAC 26310001 */ addiu $s1, $s1, 1
.L8006BAB0:
/* AE2C50 8006BAB0 1633FFEC */ bne $s1, $s3, .L8006BA64
/* AE2C54 8006BAB4 2610001C */ addiu $s0, $s0, 0x1c
/* AE2C58 8006BAB8 8FBF002C */ lw $ra, 0x2c($sp)
/* AE2C5C 8006BABC 8FB00018 */ lw $s0, 0x18($sp)
/* AE2C60 8006BAC0 8FB1001C */ lw $s1, 0x1c($sp)
/* AE2C64 8006BAC4 8FB20020 */ lw $s2, 0x20($sp)
/* AE2C68 8006BAC8 8FB30024 */ lw $s3, 0x24($sp)
/* AE2C6C 8006BACC 8FB40028 */ lw $s4, 0x28($sp)
/* AE2C70 8006BAD0 03E00008 */ jr $ra
/* AE2C74 8006BAD4 27BD0030 */ addiu $sp, $sp, 0x30
glabel Audio_PlaySoundAtPosition
/* AE2C78 8006BAD8 27BDFFC8 */ addiu $sp, $sp, -0x38
/* AE2C7C 8006BADC AFA40038 */ sw $a0, 0x38($sp)
/* AE2C80 8006BAE0 AFA5003C */ sw $a1, 0x3c($sp)
/* AE2C84 8006BAE4 24881DB4 */ addiu $t0, $a0, 0x1db4
/* AE2C88 8006BAE8 AFBF001C */ sw $ra, 0x1c($sp)
/* AE2C8C 8006BAEC AFA60040 */ sw $a2, 0x40($sp)
/* AE2C90 8006BAF0 AFA70044 */ sw $a3, 0x44($sp)
/* AE2C94 8006BAF4 340AFFFF */ li $t2, 65535
/* AE2C98 8006BAF8 24040010 */ li $a0, 16
/* AE2C9C 8006BAFC 8FA50028 */ lw $a1, 0x28($sp)
/* AE2CA0 8006BB00 00004825 */ move $t1, $zero
.L8006BB04:
/* AE2CA4 8006BB04 95020000 */ lhu $v0, ($t0)
/* AE2CA8 8006BB08 10400007 */ beqz $v0, .L8006BB28
/* AE2CAC 8006BB0C 004A082A */ slt $at, $v0, $t2
/* AE2CB0 8006BB10 10200003 */ beqz $at, .L8006BB20
/* AE2CB4 8006BB14 25290001 */ addiu $t1, $t1, 1
/* AE2CB8 8006BB18 00405025 */ move $t2, $v0
/* AE2CBC 8006BB1C 01002825 */ move $a1, $t0
.L8006BB20:
/* AE2CC0 8006BB20 1524FFF8 */ bne $t1, $a0, .L8006BB04
/* AE2CC4 8006BB24 2508001C */ addiu $t0, $t0, 0x1c
.L8006BB28:
/* AE2CC8 8006BB28 29210010 */ slti $at, $t1, 0x10
/* AE2CCC 8006BB2C 14200004 */ bnez $at, .L8006BB40
/* AE2CD0 8006BB30 24A40010 */ addiu $a0, $a1, 0x10
/* AE2CD4 8006BB34 0C03E27A */ jal func_800F89E8
/* AE2CD8 8006BB38 AFA50030 */ sw $a1, 0x30($sp)
/* AE2CDC 8006BB3C 8FA80030 */ lw $t0, 0x30($sp)
.L8006BB40:
/* AE2CE0 8006BB40 8FAE003C */ lw $t6, 0x3c($sp)
/* AE2CE4 8006BB44 25050004 */ addiu $a1, $t0, 4
/* AE2CE8 8006BB48 3C010001 */ lui $at, (0x00011D60 >> 16) # lui $at, 1
/* AE2CEC 8006BB4C 8DD80000 */ lw $t8, ($t6)
/* AE2CF0 8006BB50 34211D60 */ ori $at, (0x00011D60 & 0xFFFF) # ori $at, $at, 0x1d60
/* AE2CF4 8006BB54 25060010 */ addiu $a2, $t0, 0x10
/* AE2CF8 8006BB58 ACB80000 */ sw $t8, ($a1)
/* AE2CFC 8006BB5C 8DCF0004 */ lw $t7, 4($t6)
/* AE2D00 8006BB60 ACAF0004 */ sw $t7, 4($a1)
/* AE2D04 8006BB64 8DD80008 */ lw $t8, 8($t6)
/* AE2D08 8006BB68 ACB80008 */ sw $t8, 8($a1)
/* AE2D0C 8006BB6C 8FB90040 */ lw $t9, 0x40($sp)
/* AE2D10 8006BB70 A5190000 */ sh $t9, ($t0)
/* AE2D14 8006BB74 8FA40038 */ lw $a0, 0x38($sp)
/* AE2D18 8006BB78 AFA60020 */ sw $a2, 0x20($sp)
/* AE2D1C 8006BB7C 0C029BBD */ jal func_800A6EF4
/* AE2D20 8006BB80 00812021 */ addu $a0, $a0, $at
/* AE2D24 8006BB84 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013
/* AE2D28 8006BB88 3C0B8013 */ lui $t3, %hi(D_801333E8) # $t3, 0x8013
/* AE2D2C 8006BB8C 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0
/* AE2D30 8006BB90 256B33E8 */ addiu $t3, %lo(D_801333E8) # addiu $t3, $t3, 0x33e8
/* AE2D34 8006BB94 AFAB0014 */ sw $t3, 0x14($sp)
/* AE2D38 8006BB98 AFA70010 */ sw $a3, 0x10($sp)
/* AE2D3C 8006BB9C 97A40046 */ lhu $a0, 0x46($sp)
/* AE2D40 8006BBA0 8FA50020 */ lw $a1, 0x20($sp)
/* AE2D44 8006BBA4 0C03DCE3 */ jal Audio_PlaySoundGeneral
/* AE2D48 8006BBA8 24060004 */ li $a2, 4
/* AE2D4C 8006BBAC 8FBF001C */ lw $ra, 0x1c($sp)
/* AE2D50 8006BBB0 27BD0038 */ addiu $sp, $sp, 0x38
/* AE2D54 8006BBB4 03E00008 */ jr $ra
/* AE2D58 8006BBB8 00000000 */ nop

132
asm/code_8008E4E0.s Normal file
View file

@ -0,0 +1,132 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_8008E4E0
/* B05680 8008E4E0 AFA50004 */ sw $a1, 4($sp)
/* B05684 8008E4E4 AFA60008 */ sw $a2, 8($sp)
/* B05688 8008E4E8 00063400 */ sll $a2, $a2, 0x10
/* B0568C 8008E4EC 00052C00 */ sll $a1, $a1, 0x10
/* B05690 8008E4F0 00052C03 */ sra $a1, $a1, 0x10
/* B05694 8008E4F4 00063403 */ sra $a2, $a2, 0x10
/* B05698 8008E4F8 10A60007 */ beq $a1, $a2, .L8008E518
/* B0569C 8008E4FC 00001825 */ move $v1, $zero
/* B056A0 8008E500 3C0E0001 */ lui $t6, 1
/* B056A4 8008E504 01C47021 */ addu $t6, $t6, $a0
/* B056A8 8008E508 8DCE1E08 */ lw $t6, 0x1e08($t6)
/* B056AC 8008E50C 000578C0 */ sll $t7, $a1, 3
/* B056B0 8008E510 03E00008 */ jr $ra
/* B056B4 8008E514 01CF1021 */ addu $v0, $t6, $t7
.L8008E518:
/* B056B8 8008E518 03E00008 */ jr $ra
/* B056BC 8008E51C 00601025 */ move $v0, $v1
glabel func_8008E520
/* B056C0 8008E520 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B056C4 8008E524 AFA60028 */ sw $a2, 0x28($sp)
/* B056C8 8008E528 00063400 */ sll $a2, $a2, 0x10
/* B056CC 8008E52C 00063403 */ sra $a2, $a2, 0x10
/* B056D0 8008E530 AFBF0014 */ sw $ra, 0x14($sp)
/* B056D4 8008E534 14A00005 */ bnez $a1, .L8008E54C
/* B056D8 8008E538 AFA7002C */ sw $a3, 0x2c($sp)
/* B056DC 8008E53C 3C01BF80 */ li $at, 0xBF800000 # 0.000000
/* B056E0 8008E540 44810000 */ mtc1 $at, $f0
/* B056E4 8008E544 1000002E */ b .L8008E600
/* B056E8 8008E548 8FBF0014 */ lw $ra, 0x14($sp)
.L8008E54C:
/* B056EC 8008E54C 8CA30004 */ lw $v1, 4($a1)
/* B056F0 8008E550 3C198016 */ lui $t9, %hi(gSegments)
/* B056F4 8008E554 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* B056F8 8008E558 00037100 */ sll $t6, $v1, 4
/* B056FC 8008E55C 000E7F02 */ srl $t7, $t6, 0x1c
/* B05700 8008E560 000FC080 */ sll $t8, $t7, 2
/* B05704 8008E564 0338C821 */ addu $t9, $t9, $t8
/* B05708 8008E568 8F396FA8 */ lw $t9, %lo(gSegments)($t9)
/* B0570C 8008E56C 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* B05710 8008E570 00614024 */ and $t0, $v1, $at
/* B05714 8008E574 00064880 */ sll $t1, $a2, 2
/* B05718 8008E578 3C018000 */ lui $at, 0x8000
/* B0571C 8008E57C 01264823 */ subu $t1, $t1, $a2
/* B05720 8008E580 03281021 */ addu $v0, $t9, $t0
/* B05724 8008E584 00411021 */ addu $v0, $v0, $at
/* B05728 8008E588 00094840 */ sll $t1, $t1, 1
/* B0572C 8008E58C 01221021 */ addu $v0, $t1, $v0
/* B05730 8008E590 844A0000 */ lh $t2, ($v0)
/* B05734 8008E594 844B0004 */ lh $t3, 4($v0)
/* B05738 8008E598 C4880024 */ lwc1 $f8, 0x24($a0)
/* B0573C 8008E59C 448A2000 */ mtc1 $t2, $f4
/* B05740 8008E5A0 448B5000 */ mtc1 $t3, $f10
/* B05744 8008E5A4 C492002C */ lwc1 $f18, 0x2c($a0)
/* B05748 8008E5A8 468021A0 */ cvt.s.w $f6, $f4
/* B0574C 8008E5AC 46805420 */ cvt.s.w $f16, $f10
/* B05750 8008E5B0 46083301 */ sub.s $f12, $f6, $f8
/* B05754 8008E5B4 46128381 */ sub.s $f14, $f16, $f18
/* B05758 8008E5B8 E7AC001C */ swc1 $f12, 0x1c($sp)
/* B0575C 8008E5BC 0C03F494 */ jal func_800FD250
/* B05760 8008E5C0 E7AE0018 */ swc1 $f14, 0x18($sp)
/* B05764 8008E5C4 3C018014 */ lui $at, %hi(D_8013E760)
/* B05768 8008E5C8 C424E760 */ lwc1 $f4, %lo(D_8013E760)($at)
/* B0576C 8008E5CC C7AC001C */ lwc1 $f12, 0x1c($sp)
/* B05770 8008E5D0 C7AE0018 */ lwc1 $f14, 0x18($sp)
/* B05774 8008E5D4 46040182 */ mul.s $f6, $f0, $f4
/* B05778 8008E5D8 8FAE002C */ lw $t6, 0x2c($sp)
/* B0577C 8008E5DC 460C6282 */ mul.s $f10, $f12, $f12
/* B05780 8008E5E0 00000000 */ nop
/* B05784 8008E5E4 460E7402 */ mul.s $f16, $f14, $f14
/* B05788 8008E5E8 4600320D */ trunc.w.s $f8, $f6
/* B0578C 8008E5EC 46105000 */ add.s $f0, $f10, $f16
/* B05790 8008E5F0 440D4000 */ mfc1 $t5, $f8
/* B05794 8008E5F4 00000000 */ nop
/* B05798 8008E5F8 A5CD0000 */ sh $t5, ($t6)
/* B0579C 8008E5FC 8FBF0014 */ lw $ra, 0x14($sp)
.L8008E600:
/* B057A0 8008E600 27BD0020 */ addiu $sp, $sp, 0x20
/* B057A4 8008E604 03E00008 */ jr $ra
/* B057A8 8008E608 00000000 */ nop
glabel func_8008E60C
/* B057AC 8008E60C 10800022 */ beqz $a0, .L8008E698
/* B057B0 8008E610 3C198016 */ lui $t9, %hi(gSegments)
/* B057B4 8008E614 8C830004 */ lw $v1, 4($a0)
/* B057B8 8008E618 908A0000 */ lbu $t2, ($a0)
/* B057BC 8008E61C 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* B057C0 8008E620 00037100 */ sll $t6, $v1, 4
/* B057C4 8008E624 000E7F02 */ srl $t7, $t6, 0x1c
/* B057C8 8008E628 000FC080 */ sll $t8, $t7, 2
/* B057CC 8008E62C 0338C821 */ addu $t9, $t9, $t8
/* B057D0 8008E630 8F396FA8 */ lw $t9, %lo(gSegments)($t9)
/* B057D4 8008E634 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* B057D8 8008E638 00614024 */ and $t0, $v1, $at
/* B057DC 8008E63C 000A5880 */ sll $t3, $t2, 2
/* B057E0 8008E640 016A5823 */ subu $t3, $t3, $t2
/* B057E4 8008E644 000B5840 */ sll $t3, $t3, 1
/* B057E8 8008E648 3C017FFF */ lui $at, (0x7FFFFFFA >> 16) # lui $at, 0x7fff
/* B057EC 8008E64C 03284821 */ addu $t1, $t9, $t0
/* B057F0 8008E650 012B1021 */ addu $v0, $t1, $t3
/* B057F4 8008E654 3421FFFA */ ori $at, (0x7FFFFFFA & 0xFFFF) # ori $at, $at, 0xfffa
/* B057F8 8008E658 00411021 */ addu $v0, $v0, $at
/* B057FC 8008E65C 844C0000 */ lh $t4, ($v0)
/* B05800 8008E660 448C2000 */ mtc1 $t4, $f4
/* B05804 8008E664 00000000 */ nop
/* B05808 8008E668 468021A0 */ cvt.s.w $f6, $f4
/* B0580C 8008E66C E4A60000 */ swc1 $f6, ($a1)
/* B05810 8008E670 844D0002 */ lh $t5, 2($v0)
/* B05814 8008E674 448D4000 */ mtc1 $t5, $f8
/* B05818 8008E678 00000000 */ nop
/* B0581C 8008E67C 468042A0 */ cvt.s.w $f10, $f8
/* B05820 8008E680 E4AA0004 */ swc1 $f10, 4($a1)
/* B05824 8008E684 844E0004 */ lh $t6, 4($v0)
/* B05828 8008E688 448E8000 */ mtc1 $t6, $f16
/* B0582C 8008E68C 00000000 */ nop
/* B05830 8008E690 468084A0 */ cvt.s.w $f18, $f16
/* B05834 8008E694 E4B20008 */ swc1 $f18, 8($a1)
.L8008E698:
/* B05838 8008E698 03E00008 */ jr $ra
/* B0583C 8008E69C 00000000 */ nop

61
asm/code_8008E6A0.s Normal file
View file

@ -0,0 +1,61 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_8008E6A0
/* B05840 8008E6A0 AC800004 */ sw $zero, 4($a0)
/* B05844 8008E6A4 03E00008 */ jr $ra
/* B05848 8008E6A8 AC800000 */ sw $zero, ($a0)
glabel func_8008E6AC
/* B0584C 8008E6AC 94AE0000 */ lhu $t6, ($a1)
/* B05850 8008E6B0 2403FFEF */ li $v1, -17
/* B05854 8008E6B4 01C37827 */ nor $t7, $t6, $v1
/* B05858 8008E6B8 55E0000A */ bnezl $t7, .L8008E6E4
/* B0585C 8008E6BC 8C880000 */ lw $t0, ($a0)
/* B05860 8008E6C0 94B8000C */ lhu $t8, 0xc($a1)
/* B05864 8008E6C4 2401FBFF */ li $at, -1025
/* B05868 8008E6C8 0301C827 */ nor $t9, $t8, $at
/* B0586C 8008E6CC 57200005 */ bnezl $t9, .L8008E6E4
/* B05870 8008E6D0 8C880000 */ lw $t0, ($a0)
/* B05874 8008E6D4 8C820000 */ lw $v0, ($a0)
/* B05878 8008E6D8 2C420001 */ sltiu $v0, $v0, 1
/* B0587C 8008E6DC AC820000 */ sw $v0, ($a0)
/* B05880 8008E6E0 8C880000 */ lw $t0, ($a0)
.L8008E6E4:
/* B05884 8008E6E4 51000013 */ beql $t0, $zero, .L8008E734
/* B05888 8008E6E8 AC800004 */ sw $zero, 4($a0)
/* B0588C 8008E6EC 94A20000 */ lhu $v0, ($a1)
/* B05890 8008E6F0 2401DFFF */ li $at, -8193
/* B05894 8008E6F4 00414827 */ nor $t1, $v0, $at
/* B05898 8008E6F8 55200011 */ bnezl $t1, .L8008E740
/* B0589C 8008E6FC 00001025 */ move $v0, $zero
/* B058A0 8008E700 94AA000C */ lhu $t2, 0xc($a1)
/* B058A4 8008E704 00436027 */ nor $t4, $v0, $v1
/* B058A8 8008E708 01435827 */ nor $t3, $t2, $v1
/* B058AC 8008E70C 51600009 */ beql $t3, $zero, .L8008E734
/* B058B0 8008E710 AC800004 */ sw $zero, 4($a0)
/* B058B4 8008E714 5580000A */ bnezl $t4, .L8008E740
/* B058B8 8008E718 00001025 */ move $v0, $zero
/* B058BC 8008E71C 8C8D0004 */ lw $t5, 4($a0)
/* B058C0 8008E720 25AE0001 */ addiu $t6, $t5, 1
/* B058C4 8008E724 29C10009 */ slti $at, $t6, 9
/* B058C8 8008E728 14200004 */ bnez $at, .L8008E73C
/* B058CC 8008E72C AC8E0004 */ sw $t6, 4($a0)
/* B058D0 8008E730 AC800004 */ sw $zero, 4($a0)
.L8008E734:
/* B058D4 8008E734 03E00008 */ jr $ra
/* B058D8 8008E738 24020001 */ li $v0, 1
.L8008E73C:
/* B058DC 8008E73C 00001025 */ move $v0, $zero
.L8008E740:
/* B058E0 8008E740 03E00008 */ jr $ra
/* B058E4 8008E744 00000000 */ nop

1036
asm/code_80092500.s Normal file

File diff suppressed because it is too large Load diff

121
asm/code_800ACE70.s Normal file
View file

@ -0,0 +1,121 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800ACE70
/* B24010 800ACE70 240200FF */ li $v0, 255
/* B24014 800ACE74 AC800000 */ sw $zero, ($a0)
/* B24018 800ACE78 AC800004 */ sw $zero, 4($a0)
/* B2401C 800ACE7C A0820008 */ sb $v0, 8($a0)
/* B24020 800ACE80 A0820009 */ sb $v0, 9($a0)
/* B24024 800ACE84 A082000A */ sb $v0, 0xa($a0)
/* B24028 800ACE88 03E00008 */ jr $ra
/* B2402C 800ACE8C A082000B */ sb $v0, 0xb($a0)
glabel func_800ACE90
/* B24030 800ACE90 03E00008 */ jr $ra
/* B24034 800ACE94 AFA40000 */ sw $a0, ($sp)
glabel func_800ACE98
/* B24038 800ACE98 8CA20000 */ lw $v0, ($a1)
/* B2403C 800ACE9C 00803025 */ move $a2, $a0
/* B24040 800ACEA0 3C03E700 */ lui $v1, 0xe700
/* B24044 800ACEA4 00402025 */ move $a0, $v0
/* B24048 800ACEA8 AC830000 */ sw $v1, ($a0)
/* B2404C 800ACEAC AC800004 */ sw $zero, 4($a0)
/* B24050 800ACEB0 24420008 */ addiu $v0, $v0, 8
/* B24054 800ACEB4 00402025 */ move $a0, $v0
/* B24058 800ACEB8 3C0EEE00 */ lui $t6, 0xee00
/* B2405C 800ACEBC 240FFFFF */ li $t7, -1
/* B24060 800ACEC0 AC8F0004 */ sw $t7, 4($a0)
/* B24064 800ACEC4 AC8E0000 */ sw $t6, ($a0)
/* B24068 800ACEC8 8CD80004 */ lw $t8, 4($a2)
/* B2406C 800ACECC 24420008 */ addiu $v0, $v0, 8
/* B24070 800ACED0 24070001 */ li $a3, 1
/* B24074 800ACED4 14F80007 */ bne $a3, $t8, .L800ACEF4
/* B24078 800ACED8 00402025 */ move $a0, $v0
/* B2407C 800ACEDC 3C080050 */ lui $t0, (0x005003C0 >> 16) # lui $t0, 0x50
/* B24080 800ACEE0 350803C0 */ ori $t0, (0x005003C0 & 0xFFFF) # ori $t0, $t0, 0x3c0
/* B24084 800ACEE4 3C19ED00 */ lui $t9, 0xed00
/* B24088 800ACEE8 AC990000 */ sw $t9, ($a0)
/* B2408C 800ACEEC AC880004 */ sw $t0, 4($a0)
/* B24090 800ACEF0 24420008 */ addiu $v0, $v0, 8
.L800ACEF4:
/* B24094 800ACEF4 8CC40000 */ lw $a0, ($a2)
/* B24098 800ACEF8 3C0A8013 */ lui $t2, %hi(D_8012AC40) # $t2, 0x8013
/* B2409C 800ACEFC 254AAC40 */ addiu $t2, %lo(D_8012AC40) # addiu $t2, $t2, -0x53c0
/* B240A0 800ACF00 1087000C */ beq $a0, $a3, .L800ACF34
/* B240A4 800ACF04 3C09DE00 */ lui $t1, 0xde00
/* B240A8 800ACF08 24010002 */ li $at, 2
/* B240AC 800ACF0C 1081000E */ beq $a0, $at, .L800ACF48
/* B240B0 800ACF10 3C0BFA00 */ lui $t3, 0xfa00
/* B240B4 800ACF14 24010003 */ li $at, 3
/* B240B8 800ACF18 10810018 */ beq $a0, $at, .L800ACF7C
/* B240BC 800ACF1C 3C0FF900 */ lui $t7, 0xf900
/* B240C0 800ACF20 24010004 */ li $at, 4
/* B240C4 800ACF24 10810022 */ beq $a0, $at, .L800ACFB0
/* B240C8 800ACF28 3C09F800 */ lui $t1, 0xf800
/* B240CC 800ACF2C 1000002D */ b .L800ACFE4
/* B240D0 800ACF30 00402025 */ move $a0, $v0
.L800ACF34:
/* B240D4 800ACF34 00402025 */ move $a0, $v0
/* B240D8 800ACF38 AC890000 */ sw $t1, ($a0)
/* B240DC 800ACF3C AC8A0004 */ sw $t2, 4($a0)
/* B240E0 800ACF40 10000027 */ b .L800ACFE0
/* B240E4 800ACF44 24420008 */ addiu $v0, $v0, 8
.L800ACF48:
/* B240E8 800ACF48 00402025 */ move $a0, $v0
/* B240EC 800ACF4C AC8B0000 */ sw $t3, ($a0)
/* B240F0 800ACF50 8CCC0008 */ lw $t4, 8($a2)
/* B240F4 800ACF54 24420008 */ addiu $v0, $v0, 8
/* B240F8 800ACF58 3C0E8013 */ lui $t6, %hi(D_8012AC58) # $t6, 0x8013
/* B240FC 800ACF5C AC8C0004 */ sw $t4, 4($a0)
/* B24100 800ACF60 00402025 */ move $a0, $v0
/* B24104 800ACF64 25CEAC58 */ addiu $t6, %lo(D_8012AC58) # addiu $t6, $t6, -0x53a8
/* B24108 800ACF68 3C0DDE00 */ lui $t5, 0xde00
/* B2410C 800ACF6C AC8D0000 */ sw $t5, ($a0)
/* B24110 800ACF70 AC8E0004 */ sw $t6, 4($a0)
/* B24114 800ACF74 1000001A */ b .L800ACFE0
/* B24118 800ACF78 24420008 */ addiu $v0, $v0, 8
.L800ACF7C:
/* B2411C 800ACF7C 00402025 */ move $a0, $v0
/* B24120 800ACF80 AC8F0000 */ sw $t7, ($a0)
/* B24124 800ACF84 8CD80008 */ lw $t8, 8($a2)
/* B24128 800ACF88 24420008 */ addiu $v0, $v0, 8
/* B2412C 800ACF8C 3C088013 */ lui $t0, %hi(D_8012AC00) # $t0, 0x8013
/* B24130 800ACF90 AC980004 */ sw $t8, 4($a0)
/* B24134 800ACF94 00402025 */ move $a0, $v0
/* B24138 800ACF98 2508AC00 */ addiu $t0, %lo(D_8012AC00) # addiu $t0, $t0, -0x5400
/* B2413C 800ACF9C 3C19DE00 */ lui $t9, 0xde00
/* B24140 800ACFA0 AC990000 */ sw $t9, ($a0)
/* B24144 800ACFA4 AC880004 */ sw $t0, 4($a0)
/* B24148 800ACFA8 1000000D */ b .L800ACFE0
/* B2414C 800ACFAC 24420008 */ addiu $v0, $v0, 8
.L800ACFB0:
/* B24150 800ACFB0 00402025 */ move $a0, $v0
/* B24154 800ACFB4 AC890000 */ sw $t1, ($a0)
/* B24158 800ACFB8 8CCA0008 */ lw $t2, 8($a2)
/* B2415C 800ACFBC 24420008 */ addiu $v0, $v0, 8
/* B24160 800ACFC0 3C0C8013 */ lui $t4, %hi(D_8012AC28) # $t4, 0x8013
/* B24164 800ACFC4 AC8A0004 */ sw $t2, 4($a0)
/* B24168 800ACFC8 00402025 */ move $a0, $v0
/* B2416C 800ACFCC 258CAC28 */ addiu $t4, %lo(D_8012AC28) # addiu $t4, $t4, -0x53d8
/* B24170 800ACFD0 3C0BDE00 */ lui $t3, 0xde00
/* B24174 800ACFD4 AC8B0000 */ sw $t3, ($a0)
/* B24178 800ACFD8 AC8C0004 */ sw $t4, 4($a0)
/* B2417C 800ACFDC 24420008 */ addiu $v0, $v0, 8
.L800ACFE0:
/* B24180 800ACFE0 00402025 */ move $a0, $v0
.L800ACFE4:
/* B24184 800ACFE4 AC830000 */ sw $v1, ($a0)
/* B24188 800ACFE8 AC800004 */ sw $zero, 4($a0)
/* B2418C 800ACFEC 24420008 */ addiu $v0, $v0, 8
/* B24190 800ACFF0 03E00008 */ jr $ra
/* B24194 800ACFF4 ACA20000 */ sw $v0, ($a1)

181
asm/code_800AD920.s Normal file
View file

@ -0,0 +1,181 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800AD920
/* B24AC0 800AD920 240200FF */ li $v0, 255
/* B24AC4 800AD924 AC800000 */ sw $zero, ($a0)
/* B24AC8 800AD928 AC800004 */ sw $zero, 4($a0)
/* B24ACC 800AD92C A0820008 */ sb $v0, 8($a0)
/* B24AD0 800AD930 A0820009 */ sb $v0, 9($a0)
/* B24AD4 800AD934 A082000A */ sb $v0, 0xa($a0)
/* B24AD8 800AD938 A082000B */ sb $v0, 0xb($a0)
/* B24ADC 800AD93C A082000F */ sb $v0, 0xf($a0)
/* B24AE0 800AD940 A080000C */ sb $zero, 0xc($a0)
/* B24AE4 800AD944 A080000D */ sb $zero, 0xd($a0)
/* B24AE8 800AD948 03E00008 */ jr $ra
/* B24AEC 800AD94C A080000E */ sb $zero, 0xe($a0)
glabel func_800AD950
/* B24AF0 800AD950 03E00008 */ jr $ra
/* B24AF4 800AD954 AFA40000 */ sw $a0, ($sp)
glabel func_800AD958
/* B24AF8 800AD958 27BDFFF8 */ addiu $sp, $sp, -8
/* B24AFC 800AD95C AFB00004 */ sw $s0, 4($sp)
/* B24B00 800AD960 AFA5000C */ sw $a1, 0xc($sp)
/* B24B04 800AD964 8C8F0000 */ lw $t7, ($a0)
/* B24B08 800AD968 3C060E00 */ lui $a2, 0xe00
/* B24B0C 800AD96C 8CA20000 */ lw $v0, ($a1)
/* B24B10 800AD970 15E00003 */ bnez $t7, .L800AD980
/* B24B14 800AD974 24C60000 */ addiu $a2, $a2, 0
/* B24B18 800AD978 10000002 */ b .L800AD984
/* B24B1C 800AD97C 24030003 */ li $v1, 3
.L800AD980:
/* B24B20 800AD980 00001825 */ move $v1, $zero
.L800AD984:
/* B24B24 800AD984 00402825 */ move $a1, $v0
/* B24B28 800AD988 3C18E700 */ lui $t8, 0xe700
/* B24B2C 800AD98C ACB80000 */ sw $t8, ($a1)
/* B24B30 800AD990 ACA00004 */ sw $zero, 4($a1)
/* B24B34 800AD994 8C990004 */ lw $t9, 4($a0)
/* B24B38 800AD998 24010001 */ li $at, 1
/* B24B3C 800AD99C 24420008 */ addiu $v0, $v0, 8
/* B24B40 800AD9A0 17210008 */ bne $t9, $at, .L800AD9C4
/* B24B44 800AD9A4 3C18EF00 */ lui $t8, (0xEF000C30 >> 16) # lui $t8, 0xef00
/* B24B48 800AD9A8 00402825 */ move $a1, $v0
/* B24B4C 800AD9AC 3C0F0050 */ lui $t7, (0x005003C0 >> 16) # lui $t7, 0x50
/* B24B50 800AD9B0 35EF03C0 */ ori $t7, (0x005003C0 & 0xFFFF) # ori $t7, $t7, 0x3c0
/* B24B54 800AD9B4 3C0EED00 */ lui $t6, 0xed00
/* B24B58 800AD9B8 ACAE0000 */ sw $t6, ($a1)
/* B24B5C 800AD9BC ACAF0004 */ sw $t7, 4($a1)
/* B24B60 800AD9C0 24420008 */ addiu $v0, $v0, 8
.L800AD9C4:
/* B24B64 800AD9C4 00402825 */ move $a1, $v0
/* B24B68 800AD9C8 3C190F0A */ lui $t9, (0x0F0A4004 >> 16) # lui $t9, 0xf0a
/* B24B6C 800AD9CC 37394004 */ ori $t9, (0x0F0A4004 & 0xFFFF) # ori $t9, $t9, 0x4004
/* B24B70 800AD9D0 37180C30 */ ori $t8, (0xEF000C30 & 0xFFFF) # ori $t8, $t8, 0xc30
/* B24B74 800AD9D4 ACB80000 */ sw $t8, ($a1)
/* B24B78 800AD9D8 ACB90004 */ sw $t9, 4($a1)
/* B24B7C 800AD9DC 24420008 */ addiu $v0, $v0, 8
/* B24B80 800AD9E0 00402825 */ move $a1, $v0
/* B24B84 800AD9E4 3C0EFC30 */ lui $t6, (0xFC30B261 >> 16) # lui $t6, 0xfc30
/* B24B88 800AD9E8 3C0F5566 */ lui $t7, (0x5566DB6D >> 16) # lui $t7, 0x5566
/* B24B8C 800AD9EC 35EFDB6D */ ori $t7, (0x5566DB6D & 0xFFFF) # ori $t7, $t7, 0xdb6d
/* B24B90 800AD9F0 35CEB261 */ ori $t6, (0xFC30B261 & 0xFFFF) # ori $t6, $t6, 0xb261
/* B24B94 800AD9F4 ACAE0000 */ sw $t6, ($a1)
/* B24B98 800AD9F8 ACAF0004 */ sw $t7, 4($a1)
/* B24B9C 800AD9FC 24420008 */ addiu $v0, $v0, 8
/* B24BA0 800ADA00 00402825 */ move $a1, $v0
/* B24BA4 800ADA04 3C18FA00 */ lui $t8, 0xfa00
/* B24BA8 800ADA08 ACB80000 */ sw $t8, ($a1)
/* B24BAC 800ADA0C 8C990008 */ lw $t9, 8($a0)
/* B24BB0 800ADA10 24420008 */ addiu $v0, $v0, 8
/* B24BB4 800ADA14 3C0EFB00 */ lui $t6, 0xfb00
/* B24BB8 800ADA18 ACB90004 */ sw $t9, 4($a1)
/* B24BBC 800ADA1C 00402825 */ move $a1, $v0
/* B24BC0 800ADA20 30690007 */ andi $t1, $v1, 7
/* B24BC4 800ADA24 ACAE0000 */ sw $t6, ($a1)
/* B24BC8 800ADA28 00094D40 */ sll $t1, $t1, 0x15
/* B24BCC 800ADA2C 3C01FD00 */ lui $at, 0xfd00
/* B24BD0 800ADA30 8C8F000C */ lw $t7, 0xc($a0)
/* B24BD4 800ADA34 01213825 */ or $a3, $t1, $at
/* B24BD8 800ADA38 3C010010 */ lui $at, 0x10
/* B24BDC 800ADA3C 00E13825 */ or $a3, $a3, $at
/* B24BE0 800ADA40 3C01F500 */ lui $at, 0xf500
/* B24BE4 800ADA44 ACAF0004 */ sw $t7, 4($a1)
/* B24BE8 800ADA48 01212825 */ or $a1, $t1, $at
/* B24BEC 800ADA4C 3C010010 */ lui $at, 0x10
/* B24BF0 800ADA50 00A12825 */ or $a1, $a1, $at
/* B24BF4 800ADA54 3C090708 */ lui $t1, (0x07080200 >> 16) # lui $t1, 0x708
/* B24BF8 800ADA58 3C0D0008 */ lui $t5, (0x00080200 >> 16) # lui $t5, 8
/* B24BFC 800ADA5C 24420008 */ addiu $v0, $v0, 8
/* B24C00 800ADA60 35AD0200 */ ori $t5, (0x00080200 & 0xFFFF) # ori $t5, $t5, 0x200
/* B24C04 800ADA64 35290200 */ ori $t1, (0x07080200 & 0xFFFF) # ori $t1, $t1, 0x200
/* B24C08 800ADA68 34A8A000 */ ori $t0, $a1, 0xa000
/* B24C0C 800ADA6C 00002025 */ move $a0, $zero
/* B24C10 800ADA70 3C0C0700 */ lui $t4, 0x700
/* B24C14 800ADA74 3C0BF300 */ lui $t3, 0xf300
/* B24C18 800ADA78 3C0AE600 */ lui $t2, 0xe600
.L800ADA7C:
/* B24C1C 800ADA7C 00401825 */ move $v1, $v0
/* B24C20 800ADA80 AC670000 */ sw $a3, ($v1)
/* B24C24 800ADA84 AC660004 */ sw $a2, 4($v1)
/* B24C28 800ADA88 24420008 */ addiu $v0, $v0, 8
/* B24C2C 800ADA8C 00401825 */ move $v1, $v0
/* B24C30 800ADA90 AC650000 */ sw $a1, ($v1)
/* B24C34 800ADA94 AC690004 */ sw $t1, 4($v1)
/* B24C38 800ADA98 24420008 */ addiu $v0, $v0, 8
/* B24C3C 800ADA9C 00401825 */ move $v1, $v0
/* B24C40 800ADAA0 2410077F */ li $s0, 1919
/* B24C44 800ADAA4 32180FFF */ andi $t8, $s0, 0xfff
/* B24C48 800ADAA8 AC6A0000 */ sw $t2, ($v1)
/* B24C4C 800ADAAC AC600004 */ sw $zero, 4($v1)
/* B24C50 800ADAB0 24420008 */ addiu $v0, $v0, 8
/* B24C54 800ADAB4 00401825 */ move $v1, $v0
/* B24C58 800ADAB8 0018CB00 */ sll $t9, $t8, 0xc
/* B24C5C 800ADABC 032C7025 */ or $t6, $t9, $t4
/* B24C60 800ADAC0 35CF001A */ ori $t7, $t6, 0x1a
/* B24C64 800ADAC4 AC6F0004 */ sw $t7, 4($v1)
/* B24C68 800ADAC8 AC6B0000 */ sw $t3, ($v1)
/* B24C6C 800ADACC 24420008 */ addiu $v0, $v0, 8
/* B24C70 800ADAD0 00401825 */ move $v1, $v0
/* B24C74 800ADAD4 3C18E700 */ lui $t8, 0xe700
/* B24C78 800ADAD8 AC780000 */ sw $t8, ($v1)
/* B24C7C 800ADADC AC600004 */ sw $zero, 4($v1)
/* B24C80 800ADAE0 24420008 */ addiu $v0, $v0, 8
/* B24C84 800ADAE4 00401825 */ move $v1, $v0
/* B24C88 800ADAE8 AC680000 */ sw $t0, ($v1)
/* B24C8C 800ADAEC AC6D0004 */ sw $t5, 4($v1)
/* B24C90 800ADAF0 24420008 */ addiu $v0, $v0, 8
/* B24C94 800ADAF4 00401825 */ move $v1, $v0
/* B24C98 800ADAF8 3C0E004F */ lui $t6, (0x004FC014 >> 16) # lui $t6, 0x4f
/* B24C9C 800ADAFC 35CEC014 */ ori $t6, (0x004FC014 & 0xFFFF) # ori $t6, $t6, 0xc014
/* B24CA0 800ADB00 3C19F200 */ lui $t9, 0xf200
/* B24CA4 800ADB04 AC790000 */ sw $t9, ($v1)
/* B24CA8 800ADB08 AC6E0004 */ sw $t6, 4($v1)
/* B24CAC 800ADB0C 24830006 */ addiu $v1, $a0, 6
/* B24CB0 800ADB10 24420008 */ addiu $v0, $v0, 8
/* B24CB4 800ADB14 00037880 */ sll $t7, $v1, 2
/* B24CB8 800ADB18 31F80FFF */ andi $t8, $t7, 0xfff
/* B24CBC 800ADB1C 00408025 */ move $s0, $v0
/* B24CC0 800ADB20 00047080 */ sll $t6, $a0, 2
/* B24CC4 800ADB24 24420008 */ addiu $v0, $v0, 8
/* B24CC8 800ADB28 3C01E450 */ lui $at, 0xe450
/* B24CCC 800ADB2C 0301C825 */ or $t9, $t8, $at
/* B24CD0 800ADB30 00402025 */ move $a0, $v0
/* B24CD4 800ADB34 31CF0FFF */ andi $t7, $t6, 0xfff
/* B24CD8 800ADB38 AE0F0004 */ sw $t7, 4($s0)
/* B24CDC 800ADB3C AE190000 */ sw $t9, ($s0)
/* B24CE0 800ADB40 3C18E100 */ lui $t8, 0xe100
/* B24CE4 800ADB44 AC980000 */ sw $t8, ($a0)
/* B24CE8 800ADB48 AC800004 */ sw $zero, 4($a0)
/* B24CEC 800ADB4C 24420008 */ addiu $v0, $v0, 8
/* B24CF0 800ADB50 00402025 */ move $a0, $v0
/* B24CF4 800ADB54 3C0E0400 */ lui $t6, (0x04000400 >> 16) # lui $t6, 0x400
/* B24CF8 800ADB58 35CE0400 */ ori $t6, (0x04000400 & 0xFFFF) # ori $t6, $t6, 0x400
/* B24CFC 800ADB5C 3C19F100 */ lui $t9, 0xf100
/* B24D00 800ADB60 286100EB */ slti $at, $v1, 0xeb
/* B24D04 800ADB64 AC990000 */ sw $t9, ($a0)
/* B24D08 800ADB68 AC8E0004 */ sw $t6, 4($a0)
/* B24D0C 800ADB6C 00602025 */ move $a0, $v1
/* B24D10 800ADB70 24420008 */ addiu $v0, $v0, 8
/* B24D14 800ADB74 1420FFC1 */ bnez $at, .L800ADA7C
/* B24D18 800ADB78 24C60F00 */ addiu $a2, $a2, 0xf00
/* B24D1C 800ADB7C 00401825 */ move $v1, $v0
/* B24D20 800ADB80 3C0FE700 */ lui $t7, 0xe700
/* B24D24 800ADB84 AC6F0000 */ sw $t7, ($v1)
/* B24D28 800ADB88 AC600004 */ sw $zero, 4($v1)
/* B24D2C 800ADB8C 8FB8000C */ lw $t8, 0xc($sp)
/* B24D30 800ADB90 24420008 */ addiu $v0, $v0, 8
/* B24D34 800ADB94 AF020000 */ sw $v0, ($t8)
/* B24D38 800ADB98 8FB00004 */ lw $s0, 4($sp)
/* B24D3C 800ADB9C 03E00008 */ jr $ra
/* B24D40 800ADBA0 27BD0008 */ addiu $sp, $sp, 8

423
asm/code_800B2400.s Normal file
View file

@ -0,0 +1,423 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800B2400
/* B295A0 800B2400 8C82000C */ lw $v0, 0xc($a0)
/* B295A4 800B2404 24010001 */ li $at, 1
/* B295A8 800B2408 10410002 */ beq $v0, $at, .L800B2414
/* B295AC 800B240C 24010002 */ li $at, 2
/* B295B0 800B2410 14410004 */ bne $v0, $at, .L800B2424
.L800B2414:
/* B295B4 800B2414 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B295B8 800B2418 44812000 */ mtc1 $at, $f4
/* B295BC 800B241C 03E00008 */ jr $ra
/* B295C0 800B2420 E4840004 */ swc1 $f4, 4($a0)
.L800B2424:
/* B295C4 800B2424 3C018014 */ lui $at, %hi(D_80143090)
/* B295C8 800B2428 C4263090 */ lwc1 $f6, %lo(D_80143090)($at)
/* B295CC 800B242C E4860004 */ swc1 $f6, 4($a0)
/* B295D0 800B2430 03E00008 */ jr $ra
/* B295D4 800B2434 00000000 */ nop
glabel func_800B2438
/* B295D8 800B2438 27BDFFD0 */ addiu $sp, $sp, -0x30
/* B295DC 800B243C AFBF002C */ sw $ra, 0x2c($sp)
/* B295E0 800B2440 AFB00028 */ sw $s0, 0x28($sp)
/* B295E4 800B2444 00808025 */ move $s0, $a0
/* B295E8 800B2448 0C001114 */ jal bzero
/* B295EC 800B244C 240501E0 */ li $a1, 480
/* B295F0 800B2450 3C0142F0 */ li $at, 0x42F00000 # 0.000000
/* B295F4 800B2454 44812000 */ mtc1 $at, $f4
/* B295F8 800B2458 3C01C47A */ li $at, 0xC47A0000 # 0.000000
/* B295FC 800B245C 44813000 */ mtc1 $at, $f6
/* B29600 800B2460 3C01447A */ li $at, 0x447A0000 # 0.000000
/* B29604 800B2464 44814000 */ mtc1 $at, $f8
/* B29608 800B2468 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B2960C 800B246C 44815000 */ mtc1 $at, $f10
/* B29610 800B2470 26040018 */ addiu $a0, $s0, 0x18
/* B29614 800B2474 3C05C320 */ lui $a1, 0xc320
/* B29618 800B2478 3C064320 */ lui $a2, 0x4320
/* B2961C 800B247C 3C07C2F0 */ lui $a3, 0xc2f0
/* B29620 800B2480 E7A40010 */ swc1 $f4, 0x10($sp)
/* B29624 800B2484 E7A60014 */ swc1 $f6, 0x14($sp)
/* B29628 800B2488 E7A80018 */ swc1 $f8, 0x18($sp)
/* B2962C 800B248C 0C041169 */ jal func_801045A4
/* B29630 800B2490 E7AA001C */ swc1 $f10, 0x1c($sp)
/* B29634 800B2494 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B29638 800B2498 44818000 */ mtc1 $at, $f16
/* B2963C 800B249C 240E0002 */ li $t6, 2
/* B29640 800B24A0 AE0E000C */ sw $t6, 0xc($s0)
/* B29644 800B24A4 3C018014 */ lui $at, %hi(D_80143094)
/* B29648 800B24A8 E6100004 */ swc1 $f16, 4($s0)
/* B2964C 800B24AC C4323094 */ lwc1 $f18, %lo(D_80143094)($at)
/* B29650 800B24B0 240F0001 */ li $t7, 1
/* B29654 800B24B4 AE0F0010 */ sw $t7, 0x10($s0)
/* B29658 800B24B8 E6120008 */ swc1 $f18, 8($s0)
/* B2965C 800B24BC 8FBF002C */ lw $ra, 0x2c($sp)
/* B29660 800B24C0 02001025 */ move $v0, $s0
/* B29664 800B24C4 8FB00028 */ lw $s0, 0x28($sp)
/* B29668 800B24C8 03E00008 */ jr $ra
/* B2966C 800B24CC 27BD0030 */ addiu $sp, $sp, 0x30
glabel func_800B24D0
/* B29670 800B24D0 03E00008 */ jr $ra
/* B29674 800B24D4 AFA40000 */ sw $a0, ($sp)
glabel func_800B24D8
/* B29678 800B24D8 18A00042 */ blez $a1, .L800B25E4
/* B2967C 800B24DC 00A01025 */ move $v0, $a1
/* B29680 800B24E0 3C018014 */ lui $at, %hi(D_80143098)
/* B29684 800B24E4 C42C3098 */ lwc1 $f12, %lo(D_80143098)($at)
/* B29688 800B24E8 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B2968C 800B24EC 44811000 */ mtc1 $at, $f2
/* B29690 800B24F0 24080004 */ li $t0, 4
/* B29694 800B24F4 24070003 */ li $a3, 3
/* B29698 800B24F8 24060002 */ li $a2, 2
/* B2969C 800B24FC 24050001 */ li $a1, 1
/* B296A0 800B2500 8C83000C */ lw $v1, 0xc($a0)
.L800B2504:
/* B296A4 800B2504 2442FFFF */ addiu $v0, $v0, -1
/* B296A8 800B2508 14A3000D */ bne $a1, $v1, .L800B2540
/* B296AC 800B250C 00000000 */ nop
/* B296B0 800B2510 C4860008 */ lwc1 $f6, 8($a0)
/* B296B4 800B2514 C4840004 */ lwc1 $f4, 4($a0)
/* B296B8 800B2518 46061201 */ sub.s $f8, $f2, $f6
/* B296BC 800B251C 46082002 */ mul.s $f0, $f4, $f8
/* B296C0 800B2520 460C003C */ c.lt.s $f0, $f12
/* B296C4 800B2524 00000000 */ nop
/* B296C8 800B2528 45000003 */ bc1f .L800B2538
/* B296CC 800B252C 00000000 */ nop
/* B296D0 800B2530 1000002A */ b .L800B25DC
/* B296D4 800B2534 E48C0004 */ swc1 $f12, 4($a0)
.L800B2538:
/* B296D8 800B2538 10000028 */ b .L800B25DC
/* B296DC 800B253C E4800004 */ swc1 $f0, 4($a0)
.L800B2540:
/* B296E0 800B2540 14C3000C */ bne $a2, $v1, .L800B2574
/* B296E4 800B2544 00000000 */ nop
/* B296E8 800B2548 C48A0004 */ lwc1 $f10, 4($a0)
/* B296EC 800B254C C4900008 */ lwc1 $f16, 8($a0)
/* B296F0 800B2550 46105001 */ sub.s $f0, $f10, $f16
/* B296F4 800B2554 460C003C */ c.lt.s $f0, $f12
/* B296F8 800B2558 00000000 */ nop
/* B296FC 800B255C 45000003 */ bc1f .L800B256C
/* B29700 800B2560 00000000 */ nop
/* B29704 800B2564 1000001D */ b .L800B25DC
/* B29708 800B2568 E48C0004 */ swc1 $f12, 4($a0)
.L800B256C:
/* B2970C 800B256C 1000001B */ b .L800B25DC
/* B29710 800B2570 E4800004 */ swc1 $f0, 4($a0)
.L800B2574:
/* B29714 800B2574 14E3000D */ bne $a3, $v1, .L800B25AC
/* B29718 800B2578 00000000 */ nop
/* B2971C 800B257C C4860008 */ lwc1 $f6, 8($a0)
/* B29720 800B2580 C4920004 */ lwc1 $f18, 4($a0)
/* B29724 800B2584 46061101 */ sub.s $f4, $f2, $f6
/* B29728 800B2588 46049003 */ div.s $f0, $f18, $f4
/* B2972C 800B258C 4600103C */ c.lt.s $f2, $f0
/* B29730 800B2590 00000000 */ nop
/* B29734 800B2594 45000003 */ bc1f .L800B25A4
/* B29738 800B2598 00000000 */ nop
/* B2973C 800B259C 1000000F */ b .L800B25DC
/* B29740 800B25A0 E4820004 */ swc1 $f2, 4($a0)
.L800B25A4:
/* B29744 800B25A4 1000000D */ b .L800B25DC
/* B29748 800B25A8 E4800004 */ swc1 $f0, 4($a0)
.L800B25AC:
/* B2974C 800B25AC 1503000B */ bne $t0, $v1, .L800B25DC
/* B29750 800B25B0 00000000 */ nop
/* B29754 800B25B4 C4880004 */ lwc1 $f8, 4($a0)
/* B29758 800B25B8 C48A0008 */ lwc1 $f10, 8($a0)
/* B2975C 800B25BC 460A4000 */ add.s $f0, $f8, $f10
/* B29760 800B25C0 4600103C */ c.lt.s $f2, $f0
/* B29764 800B25C4 00000000 */ nop
/* B29768 800B25C8 45020004 */ bc1fl .L800B25DC
/* B2976C 800B25CC E4800004 */ swc1 $f0, 4($a0)
/* B29770 800B25D0 10000002 */ b .L800B25DC
/* B29774 800B25D4 E4820004 */ swc1 $f2, 4($a0)
/* B29778 800B25D8 E4800004 */ swc1 $f0, 4($a0)
.L800B25DC:
/* B2977C 800B25DC 5440FFC9 */ bnezl $v0, .L800B2504
/* B29780 800B25E0 8C83000C */ lw $v1, 0xc($a0)
.L800B25E4:
/* B29784 800B25E4 03E00008 */ jr $ra
/* B29788 800B25E8 00000000 */ nop
glabel func_800B25EC
/* B2978C 800B25EC 03E00008 */ jr $ra
/* B29790 800B25F0 AC850000 */ sw $a1, ($a0)
glabel func_800B25F4
/* B29794 800B25F4 03E00008 */ jr $ra
/* B29798 800B25F8 AC850010 */ sw $a1, 0x10($a0)
glabel func_800B25FC
/* B2979C 800B25FC 03E00008 */ jr $ra
/* B297A0 800B2600 AC85000C */ sw $a1, 0xc($a0)
glabel func_800B2604
/* B297A4 800B2604 27BDFF68 */ addiu $sp, $sp, -0x98
/* B297A8 800B2608 AFBF002C */ sw $ra, 0x2c($sp)
/* B297AC 800B260C AFA40098 */ sw $a0, 0x98($sp)
/* B297B0 800B2610 AFA5009C */ sw $a1, 0x9c($sp)
/* B297B4 800B2614 8C820058 */ lw $v0, 0x58($a0)
/* B297B8 800B2618 3C0143B4 */ li $at, 0x43B40000 # 0.000000
/* B297BC 800B261C 44812000 */ mtc1 $at, $f4
/* B297C0 800B2620 C4820004 */ lwc1 $f2, 4($a0)
/* B297C4 800B2624 0002C080 */ sll $t8, $v0, 2
/* B297C8 800B2628 0302C023 */ subu $t8, $t8, $v0
/* B297CC 800B262C 0018C180 */ sll $t8, $t8, 6
/* B297D0 800B2630 3C013F20 */ li $at, 0x3F200000 # 0.000000
/* B297D4 800B2634 46041382 */ mul.s $f14, $f2, $f4
/* B297D8 800B2638 44813000 */ mtc1 $at, $f6
/* B297DC 800B263C 0098C821 */ addu $t9, $a0, $t8
/* B297E0 800B2640 8CA30000 */ lw $v1, ($a1)
/* B297E4 800B2644 27280060 */ addiu $t0, $t9, 0x60
/* B297E8 800B2648 AFA80090 */ sw $t0, 0x90($sp)
/* B297EC 800B264C 38490001 */ xori $t1, $v0, 1
/* B297F0 800B2650 46061302 */ mul.s $f12, $f2, $f6
/* B297F4 800B2654 AC890058 */ sw $t1, 0x58($a0)
/* B297F8 800B2658 44805000 */ mtc1 $zero, $f10
/* B297FC 800B265C 46001221 */ cvt.d.s $f8, $f2
/* B29800 800B2660 46007421 */ cvt.d.s $f16, $f14
/* B29804 800B2664 44074000 */ mfc1 $a3, $f8
/* B29808 800B2668 46005021 */ cvt.d.s $f0, $f10
/* B2980C 800B266C 44064800 */ mfc1 $a2, $f9
/* B29810 800B2670 3C048014 */ lui $a0, %hi(D_80143070)
/* B29814 800B2674 24843070 */ addiu $a0, %lo(D_80143070) # addiu $a0, $a0, 0x3070
/* B29818 800B2678 F7A00010 */ sdc1 $f0, 0x10($sp)
/* B2981C 800B267C F7A00018 */ sdc1 $f0, 0x18($sp)
/* B29820 800B2680 F7B00020 */ sdc1 $f16, 0x20($sp)
/* B29824 800B2684 E7AE0080 */ swc1 $f14, 0x80($sp)
/* B29828 800B2688 E7AC008C */ swc1 $f12, 0x8c($sp)
/* B2982C 800B268C 0C00084C */ jal osSyncPrintf
/* B29830 800B2690 AFA30094 */ sw $v1, 0x94($sp)
/* B29834 800B2694 C7AC008C */ lwc1 $f12, 0x8c($sp)
/* B29838 800B2698 8FA40090 */ lw $a0, 0x90($sp)
/* B2983C 800B269C 3C073F80 */ li $a3, 0x3F800000 # 0.000000
/* B29840 800B26A0 44056000 */ mfc1 $a1, $f12
/* B29844 800B26A4 44066000 */ mfc1 $a2, $f12
/* B29848 800B26A8 0C040078 */ jal func_801001E0
/* B2984C 800B26AC 00000000 */ nop
/* B29850 800B26B0 44800000 */ mtc1 $zero, $f0
/* B29854 800B26B4 8FA40090 */ lw $a0, 0x90($sp)
/* B29858 800B26B8 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B2985C 800B26BC 44819000 */ mtc1 $at, $f18
/* B29860 800B26C0 24840040 */ addiu $a0, $a0, 0x40
/* B29864 800B26C4 44060000 */ mfc1 $a2, $f0
/* B29868 800B26C8 44070000 */ mfc1 $a3, $f0
/* B2986C 800B26CC AFA40034 */ sw $a0, 0x34($sp)
/* B29870 800B26D0 8FA50080 */ lw $a1, 0x80($sp)
/* B29874 800B26D4 0C040FE9 */ jal func_80103FA4
/* B29878 800B26D8 E7B20010 */ swc1 $f18, 0x10($sp)
/* B2987C 800B26DC 44800000 */ mtc1 $zero, $f0
/* B29880 800B26E0 8FA40090 */ lw $a0, 0x90($sp)
/* B29884 800B26E4 44050000 */ mfc1 $a1, $f0
/* B29888 800B26E8 24840080 */ addiu $a0, $a0, 0x80
/* B2988C 800B26EC 44060000 */ mfc1 $a2, $f0
/* B29890 800B26F0 44070000 */ mfc1 $a3, $f0
/* B29894 800B26F4 0C041708 */ jal func_80105C20
/* B29898 800B26F8 AFA40030 */ sw $a0, 0x30($sp)
/* B2989C 800B26FC 8FA20094 */ lw $v0, 0x94($sp)
/* B298A0 800B2700 8FA40030 */ lw $a0, 0x30($sp)
/* B298A4 800B2704 3C0AE700 */ lui $t2, 0xe700
/* B298A8 800B2708 AC4A0000 */ sw $t2, ($v0)
/* B298AC 800B270C AC400004 */ sw $zero, 4($v0)
/* B298B0 800B2710 24430008 */ addiu $v1, $v0, 8
/* B298B4 800B2714 00601025 */ move $v0, $v1
/* B298B8 800B2718 3C0C8013 */ lui $t4, %hi(D_8012B030) # $t4, 0x8013
/* B298BC 800B271C 258CB030 */ addiu $t4, %lo(D_8012B030) # addiu $t4, $t4, -0x4fd0
/* B298C0 800B2720 3C0BDE00 */ lui $t3, 0xde00
/* B298C4 800B2724 AC4B0000 */ sw $t3, ($v0)
/* B298C8 800B2728 AC4C0004 */ sw $t4, 4($v0)
/* B298CC 800B272C 8FA60098 */ lw $a2, 0x98($sp)
/* B298D0 800B2730 24630008 */ addiu $v1, $v1, 8
/* B298D4 800B2734 00601025 */ move $v0, $v1
/* B298D8 800B2738 3C0DFA00 */ lui $t5, 0xfa00
/* B298DC 800B273C AC4D0000 */ sw $t5, ($v0)
/* B298E0 800B2740 8CCE0000 */ lw $t6, ($a2)
/* B298E4 800B2744 24630008 */ addiu $v1, $v1, 8
/* B298E8 800B2748 3C18FCFF */ lui $t8, (0xFCFFFFFF >> 16) # lui $t8, 0xfcff
/* B298EC 800B274C AC4E0004 */ sw $t6, 4($v0)
/* B298F0 800B2750 00601025 */ move $v0, $v1
/* B298F4 800B2754 3C19FFFD */ lui $t9, (0xFFFDF6FB >> 16) # lui $t9, 0xfffd
/* B298F8 800B2758 3739F6FB */ ori $t9, (0xFFFDF6FB & 0xFFFF) # ori $t9, $t9, 0xf6fb
/* B298FC 800B275C 3718FFFF */ ori $t8, (0xFCFFFFFF & 0xFFFF) # ori $t8, $t8, 0xffff
/* B29900 800B2760 AC580000 */ sw $t8, ($v0)
/* B29904 800B2764 AC590004 */ sw $t9, 4($v0)
/* B29908 800B2768 24630008 */ addiu $v1, $v1, 8
/* B2990C 800B276C 00601025 */ move $v0, $v1
/* B29910 800B2770 3C08DA38 */ lui $t0, (0xDA380007 >> 16) # lui $t0, 0xda38
/* B29914 800B2774 35080007 */ ori $t0, (0xDA380007 & 0xFFFF) # ori $t0, $t0, 7
/* B29918 800B2778 24C90018 */ addiu $t1, $a2, 0x18
/* B2991C 800B277C AC490004 */ sw $t1, 4($v0)
/* B29920 800B2780 AC480000 */ sw $t0, ($v0)
/* B29924 800B2784 24630008 */ addiu $v1, $v1, 8
/* B29928 800B2788 3C0FDA38 */ lui $t7, (0xDA380003 >> 16) # lui $t7, 0xda38
/* B2992C 800B278C 35EF0003 */ ori $t7, (0xDA380003 & 0xFFFF) # ori $t7, $t7, 3
/* B29930 800B2790 00601025 */ move $v0, $v1
/* B29934 800B2794 AC4F0000 */ sw $t7, ($v0)
/* B29938 800B2798 8FAA0090 */ lw $t2, 0x90($sp)
/* B2993C 800B279C 24630008 */ addiu $v1, $v1, 8
/* B29940 800B27A0 3C05DA38 */ lui $a1, (0xDA380001 >> 16) # lui $a1, 0xda38
/* B29944 800B27A4 AC4A0004 */ sw $t2, 4($v0)
/* B29948 800B27A8 00601025 */ move $v0, $v1
/* B2994C 800B27AC 34A50001 */ ori $a1, (0xDA380001 & 0xFFFF) # ori $a1, $a1, 1
/* B29950 800B27B0 AC450000 */ sw $a1, ($v0)
/* B29954 800B27B4 8FAB0034 */ lw $t3, 0x34($sp)
/* B29958 800B27B8 24630008 */ addiu $v1, $v1, 8
/* B2995C 800B27BC 3C0D8013 */ lui $t5, %hi(D_8012B060) # $t5, 0x8013
/* B29960 800B27C0 AC4B0004 */ sw $t3, 4($v0)
/* B29964 800B27C4 00601025 */ move $v0, $v1
/* B29968 800B27C8 AC450000 */ sw $a1, ($v0)
/* B2996C 800B27CC 24630008 */ addiu $v1, $v1, 8
/* B29970 800B27D0 AC440004 */ sw $a0, 4($v0)
/* B29974 800B27D4 00601025 */ move $v0, $v1
/* B29978 800B27D8 3C0C0100 */ lui $t4, (0x0100A014 >> 16) # lui $t4, 0x100
/* B2997C 800B27DC 358CA014 */ ori $t4, (0x0100A014 & 0xFFFF) # ori $t4, $t4, 0xa014
/* B29980 800B27E0 25ADB060 */ addiu $t5, %lo(D_8012B060) # addiu $t5, $t5, -0x4fa0
/* B29984 800B27E4 AC4D0004 */ sw $t5, 4($v0)
/* B29988 800B27E8 AC4C0000 */ sw $t4, ($v0)
/* B2998C 800B27EC 24630008 */ addiu $v1, $v1, 8
/* B29990 800B27F0 AFA30094 */ sw $v1, 0x94($sp)
/* B29994 800B27F4 0C02CA51 */ jal func_800B2944
/* B29998 800B27F8 00C02025 */ move $a0, $a2
/* B2999C 800B27FC 14400038 */ bnez $v0, .L800B28E0
/* B299A0 800B2800 8FA30094 */ lw $v1, 0x94($sp)
/* B299A4 800B2804 8FAE0098 */ lw $t6, 0x98($sp)
/* B299A8 800B2808 24010001 */ li $at, 1
/* B299AC 800B280C 3C180600 */ lui $t8, (0x0600080A >> 16) # lui $t8, 0x600
/* B299B0 800B2810 8DC20010 */ lw $v0, 0x10($t6)
/* B299B4 800B2814 3C190008 */ lui $t9, (0x00080206 >> 16) # lui $t9, 8
/* B299B8 800B2818 37390206 */ ori $t9, (0x00080206 & 0xFFFF) # ori $t9, $t9, 0x206
/* B299BC 800B281C 10410006 */ beq $v0, $at, .L800B2838
/* B299C0 800B2820 3718080A */ ori $t8, (0x0600080A & 0xFFFF) # ori $t8, $t8, 0x80a
/* B299C4 800B2824 24010002 */ li $at, 2
/* B299C8 800B2828 1041000E */ beq $v0, $at, .L800B2864
/* B299CC 800B282C 3C090606 */ lui $t1, (0x0606080A >> 16) # lui $t1, 0x606
/* B299D0 800B2830 1000003A */ b .L800B291C
/* B299D4 800B2834 00601025 */ move $v0, $v1
.L800B2838:
/* B299D8 800B2838 00601025 */ move $v0, $v1
/* B299DC 800B283C AC580000 */ sw $t8, ($v0)
/* B299E0 800B2840 AC590004 */ sw $t9, 4($v0)
/* B299E4 800B2844 24630008 */ addiu $v1, $v1, 8
/* B299E8 800B2848 00601025 */ move $v0, $v1
/* B299EC 800B284C 3C08050A */ lui $t0, (0x050A0604 >> 16) # lui $t0, 0x50a
/* B299F0 800B2850 35080604 */ ori $t0, (0x050A0604 & 0xFFFF) # ori $t0, $t0, 0x604
/* B299F4 800B2854 AC480000 */ sw $t0, ($v0)
/* B299F8 800B2858 AC400004 */ sw $zero, 4($v0)
/* B299FC 800B285C 1000002E */ b .L800B2918
/* B29A00 800B2860 24630008 */ addiu $v1, $v1, 8
.L800B2864:
/* B29A04 800B2864 00601025 */ move $v0, $v1
/* B29A08 800B2868 3529080A */ ori $t1, (0x0606080A & 0xFFFF) # ori $t1, $t1, 0x80a
/* B29A0C 800B286C 240F040C */ li $t7, 1036
/* B29A10 800B2870 AC4F0004 */ sw $t7, 4($v0)
/* B29A14 800B2874 AC490000 */ sw $t1, ($v0)
/* B29A18 800B2878 24630008 */ addiu $v1, $v1, 8
/* B29A1C 800B287C 00601025 */ move $v0, $v1
/* B29A20 800B2880 3C0A0600 */ lui $t2, (0x06000C0E >> 16) # lui $t2, 0x600
/* B29A24 800B2884 3C0B0002 */ lui $t3, (0x0002000E >> 16) # lui $t3, 2
/* B29A28 800B2888 356B000E */ ori $t3, (0x0002000E & 0xFFFF) # ori $t3, $t3, 0xe
/* B29A2C 800B288C 354A0C0E */ ori $t2, (0x06000C0E & 0xFFFF) # ori $t2, $t2, 0xc0e
/* B29A30 800B2890 AC4A0000 */ sw $t2, ($v0)
/* B29A34 800B2894 AC4B0004 */ sw $t3, 4($v0)
/* B29A38 800B2898 24630008 */ addiu $v1, $v1, 8
/* B29A3C 800B289C 00601025 */ move $v0, $v1
/* B29A40 800B28A0 3C0C0602 */ lui $t4, (0x06020E10 >> 16) # lui $t4, 0x602
/* B29A44 800B28A4 3C0D0002 */ lui $t5, (0x00021012 >> 16) # lui $t5, 2
/* B29A48 800B28A8 35AD1012 */ ori $t5, (0x00021012 & 0xFFFF) # ori $t5, $t5, 0x1012
/* B29A4C 800B28AC 358C0E10 */ ori $t4, (0x06020E10 & 0xFFFF) # ori $t4, $t4, 0xe10
/* B29A50 800B28B0 AC4C0000 */ sw $t4, ($v0)
/* B29A54 800B28B4 AC4D0004 */ sw $t5, 4($v0)
/* B29A58 800B28B8 24630008 */ addiu $v1, $v1, 8
/* B29A5C 800B28BC 00601025 */ move $v0, $v1
/* B29A60 800B28C0 3C0E0602 */ lui $t6, (0x06021204 >> 16) # lui $t6, 0x602
/* B29A64 800B28C4 3C180004 */ lui $t8, (0x0004120C >> 16) # lui $t8, 4
/* B29A68 800B28C8 3718120C */ ori $t8, (0x0004120C & 0xFFFF) # ori $t8, $t8, 0x120c
/* B29A6C 800B28CC 35CE1204 */ ori $t6, (0x06021204 & 0xFFFF) # ori $t6, $t6, 0x1204
/* B29A70 800B28D0 AC4E0000 */ sw $t6, ($v0)
/* B29A74 800B28D4 AC580004 */ sw $t8, 4($v0)
/* B29A78 800B28D8 1000000F */ b .L800B2918
/* B29A7C 800B28DC 24630008 */ addiu $v1, $v1, 8
.L800B28E0:
/* B29A80 800B28E0 8FB90098 */ lw $t9, 0x98($sp)
/* B29A84 800B28E4 24010001 */ li $at, 1
/* B29A88 800B28E8 8F220010 */ lw $v0, 0x10($t9)
/* B29A8C 800B28EC 1041000A */ beq $v0, $at, .L800B2918
/* B29A90 800B28F0 24010002 */ li $at, 2
/* B29A94 800B28F4 14410008 */ bne $v0, $at, .L800B2918
/* B29A98 800B28F8 3C08070C */ lui $t0, (0x070C0E10 >> 16) # lui $t0, 0x70c
/* B29A9C 800B28FC 00601025 */ move $v0, $v1
/* B29AA0 800B2900 3C09000C */ lui $t1, (0x000C1012 >> 16) # lui $t1, 0xc
/* B29AA4 800B2904 35291012 */ ori $t1, (0x000C1012 & 0xFFFF) # ori $t1, $t1, 0x1012
/* B29AA8 800B2908 35080E10 */ ori $t0, (0x070C0E10 & 0xFFFF) # ori $t0, $t0, 0xe10
/* B29AAC 800B290C AC480000 */ sw $t0, ($v0)
/* B29AB0 800B2910 AC490004 */ sw $t1, 4($v0)
/* B29AB4 800B2914 24630008 */ addiu $v1, $v1, 8
.L800B2918:
/* B29AB8 800B2918 00601025 */ move $v0, $v1
.L800B291C:
/* B29ABC 800B291C 3C0FE700 */ lui $t7, 0xe700
/* B29AC0 800B2920 AC4F0000 */ sw $t7, ($v0)
/* B29AC4 800B2924 AC400004 */ sw $zero, 4($v0)
/* B29AC8 800B2928 8FAA009C */ lw $t2, 0x9c($sp)
/* B29ACC 800B292C 24630008 */ addiu $v1, $v1, 8
/* B29AD0 800B2930 AD430000 */ sw $v1, ($t2)
/* B29AD4 800B2934 8FBF002C */ lw $ra, 0x2c($sp)
/* B29AD8 800B2938 27BD0098 */ addiu $sp, $sp, 0x98
/* B29ADC 800B293C 03E00008 */ jr $ra
/* B29AE0 800B2940 00000000 */ nop
glabel func_800B2944
/* B29AE4 800B2944 8C82000C */ lw $v0, 0xc($a0)
/* B29AE8 800B2948 24010001 */ li $at, 1
/* B29AEC 800B294C 10410002 */ beq $v0, $at, .L800B2958
/* B29AF0 800B2950 24010002 */ li $at, 2
/* B29AF4 800B2954 1441000B */ bne $v0, $at, .L800B2984
.L800B2958:
/* B29AF8 800B2958 3C018014 */ lui $at, %hi(D_8014309C)
/* B29AFC 800B295C C424309C */ lwc1 $f4, %lo(D_8014309C)($at)
/* B29B00 800B2960 C4860004 */ lwc1 $f6, 4($a0)
/* B29B04 800B2964 00001025 */ move $v0, $zero
/* B29B08 800B2968 4604303E */ c.le.s $f6, $f4
/* B29B0C 800B296C 00000000 */ nop
/* B29B10 800B2970 45000002 */ bc1f .L800B297C
/* B29B14 800B2974 00000000 */ nop
/* B29B18 800B2978 24020001 */ li $v0, 1
.L800B297C:
/* B29B1C 800B297C 03E00008 */ jr $ra
/* B29B20 800B2980 00000000 */ nop
.L800B2984:
/* B29B24 800B2984 24010003 */ li $at, 3
/* B29B28 800B2988 10410002 */ beq $v0, $at, .L800B2994
/* B29B2C 800B298C 24010004 */ li $at, 4
/* B29B30 800B2990 1441000B */ bne $v0, $at, .L800B29C0
.L800B2994:
/* B29B34 800B2994 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B29B38 800B2998 44815000 */ mtc1 $at, $f10
/* B29B3C 800B299C C4880004 */ lwc1 $f8, 4($a0)
/* B29B40 800B29A0 00001025 */ move $v0, $zero
/* B29B44 800B29A4 4608503E */ c.le.s $f10, $f8
/* B29B48 800B29A8 00000000 */ nop
/* B29B4C 800B29AC 45000002 */ bc1f .L800B29B8
/* B29B50 800B29B0 00000000 */ nop
/* B29B54 800B29B4 24020001 */ li $v0, 1
.L800B29B8:
/* B29B58 800B29B8 03E00008 */ jr $ra
/* B29B5C 800B29BC 00000000 */ nop
.L800B29C0:
/* B29B60 800B29C0 00001025 */ move $v0, $zero
/* B29B64 800B29C4 03E00008 */ jr $ra
/* B29B68 800B29C8 00000000 */ nop

318
asm/code_800B29D0.s Normal file
View file

@ -0,0 +1,318 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800B29D0
/* B29B70 800B29D0 27BDFFC8 */ addiu $sp, $sp, -0x38
/* B29B74 800B29D4 AFBF0034 */ sw $ra, 0x34($sp)
/* B29B78 800B29D8 AFB00030 */ sw $s0, 0x30($sp)
/* B29B7C 800B29DC 908E0008 */ lbu $t6, 8($a0)
/* B29B80 800B29E0 00808025 */ move $s0, $a0
/* B29B84 800B29E4 A080000A */ sb $zero, 0xa($a0)
/* B29B88 800B29E8 11C00004 */ beqz $t6, .L800B29FC
/* B29B8C 800B29EC 26050010 */ addiu $a1, $s0, 0x10
/* B29B90 800B29F0 240F014D */ li $t7, 333
/* B29B94 800B29F4 10000003 */ b .L800B2A04
/* B29B98 800B29F8 A48F000E */ sh $t7, 0xe($a0)
.L800B29FC:
/* B29B9C 800B29FC 24180264 */ li $t8, 612
/* B29BA0 800B2A00 A618000E */ sh $t8, 0xe($s0)
.L800B2A04:
/* B29BA4 800B2A04 3C014120 */ li $at, 0x41200000 # 0.000000
/* B29BA8 800B2A08 44812000 */ mtc1 $at, $f4
/* B29BAC 800B2A0C 3C014648 */ li $at, 0x46480000 # 0.000000
/* B29BB0 800B2A10 44813000 */ mtc1 $at, $f6
/* B29BB4 800B2A14 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B29BB8 800B2A18 44814000 */ mtc1 $at, $f8
/* B29BBC 800B2A1C 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa
/* B29BC0 800B2A20 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab
/* B29BC4 800B2A24 26040018 */ addiu $a0, $s0, 0x18
/* B29BC8 800B2A28 3C064270 */ li $a2, 0x42700000 # 0.000000
/* B29BCC 800B2A2C E7A40010 */ swc1 $f4, 0x10($sp)
/* B29BD0 800B2A30 E7A60014 */ swc1 $f6, 0x14($sp)
/* B29BD4 800B2A34 0C0404C0 */ jal guPerspective
/* B29BD8 800B2A38 E7A80018 */ swc1 $f8, 0x18($sp)
/* B29BDC 800B2A3C 44800000 */ mtc1 $zero, $f0
/* B29BE0 800B2A40 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B29BE4 800B2A44 44815000 */ mtc1 $at, $f10
/* B29BE8 800B2A48 44050000 */ mfc1 $a1, $f0
/* B29BEC 800B2A4C 44060000 */ mfc1 $a2, $f0
/* B29BF0 800B2A50 26040058 */ addiu $a0, $s0, 0x58
/* B29BF4 800B2A54 3C0743C8 */ lui $a3, 0x43c8
/* B29BF8 800B2A58 E7A00010 */ swc1 $f0, 0x10($sp)
/* B29BFC 800B2A5C E7A00014 */ swc1 $f0, 0x14($sp)
/* B29C00 800B2A60 E7A00018 */ swc1 $f0, 0x18($sp)
/* B29C04 800B2A64 E7A0001C */ swc1 $f0, 0x1c($sp)
/* B29C08 800B2A68 E7A00024 */ swc1 $f0, 0x24($sp)
/* B29C0C 800B2A6C 0C04078D */ jal func_80101E34
/* B29C10 800B2A70 E7AA0020 */ swc1 $f10, 0x20($sp)
/* B29C14 800B2A74 8FBF0034 */ lw $ra, 0x34($sp)
/* B29C18 800B2A78 8FB00030 */ lw $s0, 0x30($sp)
/* B29C1C 800B2A7C 27BD0038 */ addiu $sp, $sp, 0x38
/* B29C20 800B2A80 03E00008 */ jr $ra
/* B29C24 800B2A84 00000000 */ nop
glabel func_800B2A88
/* B29C28 800B2A88 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B29C2C 800B2A8C AFBF0014 */ sw $ra, 0x14($sp)
/* B29C30 800B2A90 AFA40018 */ sw $a0, 0x18($sp)
/* B29C34 800B2A94 0C001114 */ jal bzero
/* B29C38 800B2A98 24050218 */ li $a1, 536
/* B29C3C 800B2A9C 8FBF0014 */ lw $ra, 0x14($sp)
/* B29C40 800B2AA0 8FA20018 */ lw $v0, 0x18($sp)
/* B29C44 800B2AA4 27BD0018 */ addiu $sp, $sp, 0x18
/* B29C48 800B2AA8 03E00008 */ jr $ra
/* B29C4C 800B2AAC 00000000 */ nop
glabel func_800B2AB0
/* B29C50 800B2AB0 03E00008 */ jr $ra
/* B29C54 800B2AB4 AFA40000 */ sw $a0, ($sp)
glabel func_800B2AB8
/* B29C58 800B2AB8 908E0008 */ lbu $t6, 8($a0)
/* B29C5C 800B2ABC 3C028016 */ lui $v0, %hi(gSaveContext+0x1419)
/* B29C60 800B2AC0 11C0001B */ beqz $t6, .L800B2B30
/* B29C64 800B2AC4 00000000 */ nop
/* B29C68 800B2AC8 3C028016 */ lui $v0, %hi(gSaveContext+0x1419) # $v0, 0x8016
/* B29C6C 800B2ACC 9042FA79 */ lbu $v0, %lo(gSaveContext+0x1419)($v0)
/* B29C70 800B2AD0 948F000E */ lhu $t7, 0xe($a0)
/* B29C74 800B2AD4 240A0264 */ li $t2, 612
/* B29C78 800B2AD8 0002C080 */ sll $t8, $v0, 2
/* B29C7C 800B2ADC 0302C023 */ subu $t8, $t8, $v0
/* B29C80 800B2AE0 0305001A */ div $zero, $t8, $a1
/* B29C84 800B2AE4 14A00002 */ bnez $a1, .L800B2AF0
/* B29C88 800B2AE8 00000000 */ nop
/* B29C8C 800B2AEC 0007000D */ break 7
.L800B2AF0:
/* B29C90 800B2AF0 2401FFFF */ li $at, -1
/* B29C94 800B2AF4 14A10004 */ bne $a1, $at, .L800B2B08
/* B29C98 800B2AF8 3C018000 */ lui $at, 0x8000
/* B29C9C 800B2AFC 17010002 */ bne $t8, $at, .L800B2B08
/* B29CA0 800B2B00 00000000 */ nop
/* B29CA4 800B2B04 0006000D */ break 6
.L800B2B08:
/* B29CA8 800B2B08 0000C812 */ mflo $t9
/* B29CAC 800B2B0C 01F94021 */ addu $t0, $t7, $t9
/* B29CB0 800B2B10 3109FFFF */ andi $t1, $t0, 0xffff
/* B29CB4 800B2B14 29210264 */ slti $at, $t1, 0x264
/* B29CB8 800B2B18 1420001D */ bnez $at, .L800B2B90
/* B29CBC 800B2B1C A488000E */ sh $t0, 0xe($a0)
/* B29CC0 800B2B20 240B0001 */ li $t3, 1
/* B29CC4 800B2B24 A48A000E */ sh $t2, 0xe($a0)
/* B29CC8 800B2B28 03E00008 */ jr $ra
/* B29CCC 800B2B2C A08B000A */ sb $t3, 0xa($a0)
.L800B2B30:
/* B29CD0 800B2B30 9042FA79 */ lbu $v0, %lo(gSaveContext+0x1419)($v0)
/* B29CD4 800B2B34 948C000E */ lhu $t4, 0xe($a0)
/* B29CD8 800B2B38 2419014D */ li $t9, 333
/* B29CDC 800B2B3C 00026880 */ sll $t5, $v0, 2
/* B29CE0 800B2B40 01A26823 */ subu $t5, $t5, $v0
/* B29CE4 800B2B44 01A5001A */ div $zero, $t5, $a1
/* B29CE8 800B2B48 14A00002 */ bnez $a1, .L800B2B54
/* B29CEC 800B2B4C 00000000 */ nop
/* B29CF0 800B2B50 0007000D */ break 7
.L800B2B54:
/* B29CF4 800B2B54 2401FFFF */ li $at, -1
/* B29CF8 800B2B58 14A10004 */ bne $a1, $at, .L800B2B6C
/* B29CFC 800B2B5C 3C018000 */ lui $at, 0x8000
/* B29D00 800B2B60 15A10002 */ bne $t5, $at, .L800B2B6C
/* B29D04 800B2B64 00000000 */ nop
/* B29D08 800B2B68 0006000D */ break 6
.L800B2B6C:
/* B29D0C 800B2B6C 00007012 */ mflo $t6
/* B29D10 800B2B70 018EC023 */ subu $t8, $t4, $t6
/* B29D14 800B2B74 330FFFFF */ andi $t7, $t8, 0xffff
/* B29D18 800B2B78 29E1014E */ slti $at, $t7, 0x14e
/* B29D1C 800B2B7C 10200004 */ beqz $at, .L800B2B90
/* B29D20 800B2B80 A498000E */ sh $t8, 0xe($a0)
/* B29D24 800B2B84 24080001 */ li $t0, 1
/* B29D28 800B2B88 A499000E */ sh $t9, 0xe($a0)
/* B29D2C 800B2B8C A088000A */ sb $t0, 0xa($a0)
.L800B2B90:
/* B29D30 800B2B90 03E00008 */ jr $ra
/* B29D34 800B2B94 00000000 */ nop
glabel func_800B2B98
/* B29D38 800B2B98 27BDFF80 */ addiu $sp, $sp, -0x80
/* B29D3C 800B2B9C AFBF0024 */ sw $ra, 0x24($sp)
/* B29D40 800B2BA0 AFB00020 */ sw $s0, 0x20($sp)
/* B29D44 800B2BA4 AFA50084 */ sw $a1, 0x84($sp)
/* B29D48 800B2BA8 8CAF0000 */ lw $t7, ($a1)
/* B29D4C 800B2BAC 3C018014 */ lui $at, %hi(D_801430A0)
/* B29D50 800B2BB0 C42030A0 */ lwc1 $f0, %lo(D_801430A0)($at)
/* B29D54 800B2BB4 AFAF007C */ sw $t7, 0x7c($sp)
/* B29D58 800B2BB8 90820009 */ lbu $v0, 9($a0)
/* B29D5C 800B2BBC 00808025 */ move $s0, $a0
/* B29D60 800B2BC0 44050000 */ mfc1 $a1, $f0
/* B29D64 800B2BC4 0002C080 */ sll $t8, $v0, 2
/* B29D68 800B2BC8 0302C023 */ subu $t8, $t8, $v0
/* B29D6C 800B2BCC 0018C180 */ sll $t8, $t8, 6
/* B29D70 800B2BD0 00982021 */ addu $a0, $a0, $t8
/* B29D74 800B2BD4 38590001 */ xori $t9, $v0, 1
/* B29D78 800B2BD8 24840098 */ addiu $a0, $a0, 0x98
/* B29D7C 800B2BDC A2190009 */ sb $t9, 9($s0)
/* B29D80 800B2BE0 44060000 */ mfc1 $a2, $f0
/* B29D84 800B2BE4 AFA40078 */ sw $a0, 0x78($sp)
/* B29D88 800B2BE8 0C040078 */ jal func_801001E0
/* B29D8C 800B2BEC 3C073F80 */ li $a3, 0x3F800000 # 0.000000
/* B29D90 800B2BF0 44800000 */ mtc1 $zero, $f0
/* B29D94 800B2BF4 8FA40078 */ lw $a0, 0x78($sp)
/* B29D98 800B2BF8 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B29D9C 800B2BFC 44812000 */ mtc1 $at, $f4
/* B29DA0 800B2C00 24840040 */ addiu $a0, $a0, 0x40
/* B29DA4 800B2C04 44050000 */ mfc1 $a1, $f0
/* B29DA8 800B2C08 44060000 */ mfc1 $a2, $f0
/* B29DAC 800B2C0C 44070000 */ mfc1 $a3, $f0
/* B29DB0 800B2C10 AFA40030 */ sw $a0, 0x30($sp)
/* B29DB4 800B2C14 0C040FE9 */ jal func_80103FA4
/* B29DB8 800B2C18 E7A40010 */ swc1 $f4, 0x10($sp)
/* B29DBC 800B2C1C 44800000 */ mtc1 $zero, $f0
/* B29DC0 800B2C20 8FA40078 */ lw $a0, 0x78($sp)
/* B29DC4 800B2C24 44050000 */ mfc1 $a1, $f0
/* B29DC8 800B2C28 24840080 */ addiu $a0, $a0, 0x80
/* B29DCC 800B2C2C 44060000 */ mfc1 $a2, $f0
/* B29DD0 800B2C30 44070000 */ mfc1 $a3, $f0
/* B29DD4 800B2C34 0C041708 */ jal func_80105C20
/* B29DD8 800B2C38 AFA4002C */ sw $a0, 0x2c($sp)
/* B29DDC 800B2C3C 8FA8007C */ lw $t0, 0x7c($sp)
/* B29DE0 800B2C40 3C0AE700 */ lui $t2, 0xe700
/* B29DE4 800B2C44 27A4007C */ addiu $a0, $sp, 0x7c
/* B29DE8 800B2C48 25090008 */ addiu $t1, $t0, 8
/* B29DEC 800B2C4C AFA9007C */ sw $t1, 0x7c($sp)
/* B29DF0 800B2C50 AD000004 */ sw $zero, 4($t0)
/* B29DF4 800B2C54 AD0A0000 */ sw $t2, ($t0)
/* B29DF8 800B2C58 9606000E */ lhu $a2, 0xe($s0)
/* B29DFC 800B2C5C 9605000C */ lhu $a1, 0xc($s0)
/* B29E00 800B2C60 AFA00010 */ sw $zero, 0x10($sp)
/* B29E04 800B2C64 0C02536E */ jal func_80094DB8
/* B29E08 800B2C68 00003825 */ move $a3, $zero
/* B29E0C 800B2C6C 8FAB007C */ lw $t3, 0x7c($sp)
/* B29E10 800B2C70 3C0DDB06 */ lui $t5, (0xDB060020 >> 16) # lui $t5, 0xdb06
/* B29E14 800B2C74 35AD0020 */ ori $t5, (0xDB060020 & 0xFFFF) # ori $t5, $t5, 0x20
/* B29E18 800B2C78 256C0008 */ addiu $t4, $t3, 8
/* B29E1C 800B2C7C AFAC007C */ sw $t4, 0x7c($sp)
/* B29E20 800B2C80 AD620004 */ sw $v0, 4($t3)
/* B29E24 800B2C84 AD6D0000 */ sw $t5, ($t3)
/* B29E28 800B2C88 8FA2007C */ lw $v0, 0x7c($sp)
/* B29E2C 800B2C8C 3C18FA00 */ lui $t8, (0xFA000080 >> 16) # lui $t8, 0xfa00
/* B29E30 800B2C90 37180080 */ ori $t8, (0xFA000080 & 0xFFFF) # ori $t8, $t8, 0x80
/* B29E34 800B2C94 244F0008 */ addiu $t7, $v0, 8
/* B29E38 800B2C98 AFAF007C */ sw $t7, 0x7c($sp)
/* B29E3C 800B2C9C AC580000 */ sw $t8, ($v0)
/* B29E40 800B2CA0 920B0001 */ lbu $t3, 1($s0)
/* B29E44 800B2CA4 92080000 */ lbu $t0, ($s0)
/* B29E48 800B2CA8 920F0002 */ lbu $t7, 2($s0)
/* B29E4C 800B2CAC 000B6400 */ sll $t4, $t3, 0x10
/* B29E50 800B2CB0 00084E00 */ sll $t1, $t0, 0x18
/* B29E54 800B2CB4 012C6825 */ or $t5, $t1, $t4
/* B29E58 800B2CB8 000FC200 */ sll $t8, $t7, 8
/* B29E5C 800B2CBC 01B8C825 */ or $t9, $t5, $t8
/* B29E60 800B2CC0 372800FF */ ori $t0, $t9, 0xff
/* B29E64 800B2CC4 AC480004 */ sw $t0, 4($v0)
/* B29E68 800B2CC8 8FAA007C */ lw $t2, 0x7c($sp)
/* B29E6C 800B2CCC 3C09DA38 */ lui $t1, (0xDA380007 >> 16) # lui $t1, 0xda38
/* B29E70 800B2CD0 35290007 */ ori $t1, (0xDA380007 & 0xFFFF) # ori $t1, $t1, 7
/* B29E74 800B2CD4 254B0008 */ addiu $t3, $t2, 8
/* B29E78 800B2CD8 AFAB007C */ sw $t3, 0x7c($sp)
/* B29E7C 800B2CDC 260C0018 */ addiu $t4, $s0, 0x18
/* B29E80 800B2CE0 AD4C0004 */ sw $t4, 4($t2)
/* B29E84 800B2CE4 AD490000 */ sw $t1, ($t2)
/* B29E88 800B2CE8 8FAE007C */ lw $t6, 0x7c($sp)
/* B29E8C 800B2CEC 3C0DDB0E */ lui $t5, 0xdb0e
/* B29E90 800B2CF0 3C0ADA38 */ lui $t2, (0xDA380005 >> 16) # lui $t2, 0xda38
/* B29E94 800B2CF4 25CF0008 */ addiu $t7, $t6, 8
/* B29E98 800B2CF8 AFAF007C */ sw $t7, 0x7c($sp)
/* B29E9C 800B2CFC ADCD0000 */ sw $t5, ($t6)
/* B29EA0 800B2D00 96180010 */ lhu $t8, 0x10($s0)
/* B29EA4 800B2D04 354A0005 */ ori $t2, (0xDA380005 & 0xFFFF) # ori $t2, $t2, 5
/* B29EA8 800B2D08 260B0058 */ addiu $t3, $s0, 0x58
/* B29EAC 800B2D0C ADD80004 */ sw $t8, 4($t6)
/* B29EB0 800B2D10 8FB9007C */ lw $t9, 0x7c($sp)
/* B29EB4 800B2D14 3C0EDA38 */ lui $t6, (0xDA380003 >> 16) # lui $t6, 0xda38
/* B29EB8 800B2D18 35CE0003 */ ori $t6, (0xDA380003 & 0xFFFF) # ori $t6, $t6, 3
/* B29EBC 800B2D1C 27280008 */ addiu $t0, $t9, 8
/* B29EC0 800B2D20 AFA8007C */ sw $t0, 0x7c($sp)
/* B29EC4 800B2D24 AF2B0004 */ sw $t3, 4($t9)
/* B29EC8 800B2D28 AF2A0000 */ sw $t2, ($t9)
/* B29ECC 800B2D2C 8FA9007C */ lw $t1, 0x7c($sp)
/* B29ED0 800B2D30 3C03DA38 */ lui $v1, (0xDA380001 >> 16) # lui $v1, 0xda38
/* B29ED4 800B2D34 34630001 */ ori $v1, (0xDA380001 & 0xFFFF) # ori $v1, $v1, 1
/* B29ED8 800B2D38 252C0008 */ addiu $t4, $t1, 8
/* B29EDC 800B2D3C AFAC007C */ sw $t4, 0x7c($sp)
/* B29EE0 800B2D40 AD2E0000 */ sw $t6, ($t1)
/* B29EE4 800B2D44 8FAF0078 */ lw $t7, 0x78($sp)
/* B29EE8 800B2D48 3C0EDE00 */ lui $t6, 0xde00
/* B29EEC 800B2D4C AD2F0004 */ sw $t7, 4($t1)
/* B29EF0 800B2D50 8FAD007C */ lw $t5, 0x7c($sp)
/* B29EF4 800B2D54 3C0F8013 */ lui $t7, %hi(D_8012BA90) # $t7, 0x8013
/* B29EF8 800B2D58 25EFBA90 */ addiu $t7, %lo(D_8012BA90) # addiu $t7, $t7, -0x4570
/* B29EFC 800B2D5C 25B80008 */ addiu $t8, $t5, 8
/* B29F00 800B2D60 AFB8007C */ sw $t8, 0x7c($sp)
/* B29F04 800B2D64 ADA30000 */ sw $v1, ($t5)
/* B29F08 800B2D68 8FB90030 */ lw $t9, 0x30($sp)
/* B29F0C 800B2D6C ADB90004 */ sw $t9, 4($t5)
/* B29F10 800B2D70 8FA8007C */ lw $t0, 0x7c($sp)
/* B29F14 800B2D74 3C19E700 */ lui $t9, 0xe700
/* B29F18 800B2D78 250A0008 */ addiu $t2, $t0, 8
/* B29F1C 800B2D7C AFAA007C */ sw $t2, 0x7c($sp)
/* B29F20 800B2D80 AD030000 */ sw $v1, ($t0)
/* B29F24 800B2D84 8FAB002C */ lw $t3, 0x2c($sp)
/* B29F28 800B2D88 AD0B0004 */ sw $t3, 4($t0)
/* B29F2C 800B2D8C 8FA9007C */ lw $t1, 0x7c($sp)
/* B29F30 800B2D90 252C0008 */ addiu $t4, $t1, 8
/* B29F34 800B2D94 AFAC007C */ sw $t4, 0x7c($sp)
/* B29F38 800B2D98 AD2F0004 */ sw $t7, 4($t1)
/* B29F3C 800B2D9C AD2E0000 */ sw $t6, ($t1)
/* B29F40 800B2DA0 8FAD007C */ lw $t5, 0x7c($sp)
/* B29F44 800B2DA4 25B80008 */ addiu $t8, $t5, 8
/* B29F48 800B2DA8 AFB8007C */ sw $t8, 0x7c($sp)
/* B29F4C 800B2DAC ADA00004 */ sw $zero, 4($t5)
/* B29F50 800B2DB0 ADB90000 */ sw $t9, ($t5)
/* B29F54 800B2DB4 8FAA0084 */ lw $t2, 0x84($sp)
/* B29F58 800B2DB8 8FA8007C */ lw $t0, 0x7c($sp)
/* B29F5C 800B2DBC AD480000 */ sw $t0, ($t2)
/* B29F60 800B2DC0 8FBF0024 */ lw $ra, 0x24($sp)
/* B29F64 800B2DC4 8FB00020 */ lw $s0, 0x20($sp)
/* B29F68 800B2DC8 27BD0080 */ addiu $sp, $sp, 0x80
/* B29F6C 800B2DCC 03E00008 */ jr $ra
/* B29F70 800B2DD0 00000000 */ nop
glabel func_800B2DD4
/* B29F74 800B2DD4 03E00008 */ jr $ra
/* B29F78 800B2DD8 9082000A */ lbu $v0, 0xa($a0)
glabel func_800B2DDC
/* B29F7C 800B2DDC 24010001 */ li $at, 1
/* B29F80 800B2DE0 14A10003 */ bne $a1, $at, .L800B2DF0
/* B29F84 800B2DE4 240E0001 */ li $t6, 1
/* B29F88 800B2DE8 10000002 */ b .L800B2DF4
/* B29F8C 800B2DEC A08E0008 */ sb $t6, 8($a0)
.L800B2DF0:
/* B29F90 800B2DF0 A0800008 */ sb $zero, 8($a0)
.L800B2DF4:
/* B29F94 800B2DF4 908F0008 */ lbu $t7, 8($a0)
/* B29F98 800B2DF8 2418014D */ li $t8, 333
/* B29F9C 800B2DFC 24190264 */ li $t9, 612
/* B29FA0 800B2E00 51E00004 */ beql $t7, $zero, .L800B2E14
/* B29FA4 800B2E04 A499000E */ sh $t9, 0xe($a0)
/* B29FA8 800B2E08 03E00008 */ jr $ra
/* B29FAC 800B2E0C A498000E */ sh $t8, 0xe($a0)
/* B29FB0 800B2E10 A499000E */ sh $t9, 0xe($a0)
.L800B2E14:
/* B29FB4 800B2E14 03E00008 */ jr $ra
/* B29FB8 800B2E18 00000000 */ nop
glabel func_800B2E1C
/* B29FBC 800B2E1C 03E00008 */ jr $ra
/* B29FC0 800B2E20 AC850000 */ sw $a1, ($a0)
glabel func_800B2E24
/* B29FC4 800B2E24 03E00008 */ jr $ra
/* B29FC8 800B2E28 AC850004 */ sw $a1, 4($a0)

485
asm/code_800B2E30.s Normal file
View file

@ -0,0 +1,485 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800B2E30
/* B29FD0 800B2E30 27BDFFC8 */ addiu $sp, $sp, -0x38
/* B29FD4 800B2E34 AFBF0034 */ sw $ra, 0x34($sp)
/* B29FD8 800B2E38 AFB00030 */ sw $s0, 0x30($sp)
/* B29FDC 800B2E3C 90820017 */ lbu $v0, 0x17($a0)
/* B29FE0 800B2E40 24030001 */ li $v1, 1
/* B29FE4 800B2E44 00808025 */ move $s0, $a0
/* B29FE8 800B2E48 1043000B */ beq $v0, $v1, .L800B2E78
/* B29FEC 800B2E4C A0800018 */ sb $zero, 0x18($a0)
/* B29FF0 800B2E50 24040002 */ li $a0, 2
/* B29FF4 800B2E54 1044000D */ beq $v0, $a0, .L800B2E8C
/* B29FF8 800B2E58 3C188013 */ lui $t8, %hi(D_8012C3A8) # $t8, 0x8013
/* B29FFC 800B2E5C 24010003 */ li $at, 3
/* B2A000 800B2E60 1041000D */ beq $v0, $at, .L800B2E98
/* B2A004 800B2E64 3C198013 */ lui $t9, %hi(D_8012C7A8) # $t9, 0x8013
/* B2A008 800B2E68 3C0E8013 */ lui $t6, %hi(D_8012BBA8) # $t6, 0x8013
/* B2A00C 800B2E6C 25CEBBA8 */ addiu $t6, %lo(D_8012BBA8) # addiu $t6, $t6, -0x4458
/* B2A010 800B2E70 1000000B */ b .L800B2EA0
/* B2A014 800B2E74 AE0E00A0 */ sw $t6, 0xa0($s0)
.L800B2E78:
/* B2A018 800B2E78 3C0F8013 */ lui $t7, %hi(D_8012BFA8) # $t7, 0x8013
/* B2A01C 800B2E7C 25EFBFA8 */ addiu $t7, %lo(D_8012BFA8) # addiu $t7, $t7, -0x4058
/* B2A020 800B2E80 AE0F00A0 */ sw $t7, 0xa0($s0)
/* B2A024 800B2E84 10000006 */ b .L800B2EA0
/* B2A028 800B2E88 24040002 */ li $a0, 2
.L800B2E8C:
/* B2A02C 800B2E8C 2718C3A8 */ addiu $t8, %lo(D_8012C3A8) # addiu $t8, $t8, -0x3c58
/* B2A030 800B2E90 10000003 */ b .L800B2EA0
/* B2A034 800B2E94 AE1800A0 */ sw $t8, 0xa0($s0)
.L800B2E98:
/* B2A038 800B2E98 2739C7A8 */ addiu $t9, %lo(D_8012C7A8) # addiu $t9, $t9, -0x3858
/* B2A03C 800B2E9C AE1900A0 */ sw $t9, 0xa0($s0)
.L800B2EA0:
/* B2A040 800B2EA0 92080016 */ lbu $t0, 0x16($s0)
/* B2A044 800B2EA4 24090014 */ li $t1, 20
/* B2A048 800B2EA8 240A000A */ li $t2, 10
/* B2A04C 800B2EAC 15000003 */ bnez $t0, .L800B2EBC
/* B2A050 800B2EB0 240B00FF */ li $t3, 255
/* B2A054 800B2EB4 10000002 */ b .L800B2EC0
/* B2A058 800B2EB8 AE090010 */ sw $t1, 0x10($s0)
.L800B2EBC:
/* B2A05C 800B2EBC AE0A0010 */ sw $t2, 0x10($s0)
.L800B2EC0:
/* B2A060 800B2EC0 92020015 */ lbu $v0, 0x15($s0)
/* B2A064 800B2EC4 14400003 */ bnez $v0, .L800B2ED4
/* B2A068 800B2EC8 00000000 */ nop
/* B2A06C 800B2ECC 10000018 */ b .L800B2F30
/* B2A070 800B2ED0 AE0B0000 */ sw $t3, ($s0)
.L800B2ED4:
/* B2A074 800B2ED4 14620004 */ bne $v1, $v0, .L800B2EE8
/* B2A078 800B2ED8 3C0CA0A0 */ lui $t4, (0xA0A0A0FF >> 16) # lui $t4, 0xa0a0
/* B2A07C 800B2EDC 358CA0FF */ ori $t4, (0xA0A0A0FF & 0xFFFF) # ori $t4, $t4, 0xa0ff
/* B2A080 800B2EE0 10000013 */ b .L800B2F30
/* B2A084 800B2EE4 AE0C0000 */ sw $t4, ($s0)
.L800B2EE8:
/* B2A088 800B2EE8 14820007 */ bne $a0, $v0, .L800B2F08
/* B2A08C 800B2EEC 240D00FF */ li $t5, 255
/* B2A090 800B2EF0 24020064 */ li $v0, 100
/* B2A094 800B2EF4 A2020000 */ sb $v0, ($s0)
/* B2A098 800B2EF8 A2020001 */ sb $v0, 1($s0)
/* B2A09C 800B2EFC A2020002 */ sb $v0, 2($s0)
/* B2A0A0 800B2F00 1000000B */ b .L800B2F30
/* B2A0A4 800B2F04 A20D0003 */ sb $t5, 3($s0)
.L800B2F08:
/* B2A0A8 800B2F08 920F0017 */ lbu $t7, 0x17($s0)
/* B2A0AC 800B2F0C 240E0028 */ li $t6, 40
/* B2A0B0 800B2F10 AE0E0010 */ sw $t6, 0x10($s0)
/* B2A0B4 800B2F14 146F0004 */ bne $v1, $t7, .L800B2F28
/* B2A0B8 800B2F18 3C19A0A0 */ lui $t9, (0xA0A0A0FF >> 16) # lui $t9, 0xa0a0
/* B2A0BC 800B2F1C 241800FF */ li $t8, 255
/* B2A0C0 800B2F20 10000003 */ b .L800B2F30
/* B2A0C4 800B2F24 AE180000 */ sw $t8, ($s0)
.L800B2F28:
/* B2A0C8 800B2F28 3739A0FF */ ori $t9, (0xA0A0A0FF & 0xFFFF) # ori $t9, $t9, 0xa0ff
/* B2A0CC 800B2F2C AE190000 */ sw $t9, ($s0)
.L800B2F30:
/* B2A0D0 800B2F30 92080014 */ lbu $t0, 0x14($s0)
/* B2A0D4 800B2F34 51000009 */ beql $t0, $zero, .L800B2F5C
/* B2A0D8 800B2F38 920C0017 */ lbu $t4, 0x17($s0)
/* B2A0DC 800B2F3C 92090015 */ lbu $t1, 0x15($s0)
/* B2A0E0 800B2F40 24010003 */ li $at, 3
/* B2A0E4 800B2F44 AE00000C */ sw $zero, 0xc($s0)
/* B2A0E8 800B2F48 15210012 */ bne $t1, $at, .L800B2F94
/* B2A0EC 800B2F4C 240A00FA */ li $t2, 250
/* B2A0F0 800B2F50 10000010 */ b .L800B2F94
/* B2A0F4 800B2F54 AE0A000C */ sw $t2, 0xc($s0)
/* B2A0F8 800B2F58 920C0017 */ lbu $t4, 0x17($s0)
.L800B2F5C:
/* B2A0FC 800B2F5C 240B01F4 */ li $t3, 500
/* B2A100 800B2F60 AE0B000C */ sw $t3, 0xc($s0)
/* B2A104 800B2F64 148C000B */ bne $a0, $t4, .L800B2F94
/* B2A108 800B2F68 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013
/* B2A10C 800B2F6C 3C0D8013 */ lui $t5, %hi(D_801333E8) # $t5, 0x8013
/* B2A110 800B2F70 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0
/* B2A114 800B2F74 25AD33E8 */ addiu $t5, %lo(D_801333E8) # addiu $t5, $t5, 0x33e8
/* B2A118 800B2F78 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013
/* B2A11C 800B2F7C 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4
/* B2A120 800B2F80 AFAD0014 */ sw $t5, 0x14($sp)
/* B2A124 800B2F84 AFA70010 */ sw $a3, 0x10($sp)
/* B2A128 800B2F88 24045804 */ li $a0, 22532
/* B2A12C 800B2F8C 0C03DCE3 */ jal Audio_PlaySoundGeneral
/* B2A130 800B2F90 24060004 */ li $a2, 4
.L800B2F94:
/* B2A134 800B2F94 3C014120 */ li $at, 0x41200000 # 0.000000
/* B2A138 800B2F98 44812000 */ mtc1 $at, $f4
/* B2A13C 800B2F9C 3C014648 */ li $at, 0x46480000 # 0.000000
/* B2A140 800B2FA0 44813000 */ mtc1 $at, $f6
/* B2A144 800B2FA4 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B2A148 800B2FA8 44814000 */ mtc1 $at, $f8
/* B2A14C 800B2FAC 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa
/* B2A150 800B2FB0 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab
/* B2A154 800B2FB4 26040020 */ addiu $a0, $s0, 0x20
/* B2A158 800B2FB8 2605001A */ addiu $a1, $s0, 0x1a
/* B2A15C 800B2FBC 3C064270 */ li $a2, 0x42700000 # 0.000000
/* B2A160 800B2FC0 E7A40010 */ swc1 $f4, 0x10($sp)
/* B2A164 800B2FC4 E7A60014 */ swc1 $f6, 0x14($sp)
/* B2A168 800B2FC8 0C0404C0 */ jal guPerspective
/* B2A16C 800B2FCC E7A80018 */ swc1 $f8, 0x18($sp)
/* B2A170 800B2FD0 44800000 */ mtc1 $zero, $f0
/* B2A174 800B2FD4 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B2A178 800B2FD8 44815000 */ mtc1 $at, $f10
/* B2A17C 800B2FDC 44050000 */ mfc1 $a1, $f0
/* B2A180 800B2FE0 44060000 */ mfc1 $a2, $f0
/* B2A184 800B2FE4 26040060 */ addiu $a0, $s0, 0x60
/* B2A188 800B2FE8 3C0743C8 */ lui $a3, 0x43c8
/* B2A18C 800B2FEC E7A00010 */ swc1 $f0, 0x10($sp)
/* B2A190 800B2FF0 E7A00014 */ swc1 $f0, 0x14($sp)
/* B2A194 800B2FF4 E7A00018 */ swc1 $f0, 0x18($sp)
/* B2A198 800B2FF8 E7A0001C */ swc1 $f0, 0x1c($sp)
/* B2A19C 800B2FFC E7A00024 */ swc1 $f0, 0x24($sp)
/* B2A1A0 800B3000 0C04078D */ jal func_80101E34
/* B2A1A4 800B3004 E7AA0020 */ swc1 $f10, 0x20($sp)
/* B2A1A8 800B3008 8FBF0034 */ lw $ra, 0x34($sp)
/* B2A1AC 800B300C 8FB00030 */ lw $s0, 0x30($sp)
/* B2A1B0 800B3010 27BD0038 */ addiu $sp, $sp, 0x38
/* B2A1B4 800B3014 03E00008 */ jr $ra
/* B2A1B8 800B3018 00000000 */ nop
glabel func_800B301C
/* B2A1BC 800B301C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B2A1C0 800B3020 AFBF0014 */ sw $ra, 0x14($sp)
/* B2A1C4 800B3024 AFA40018 */ sw $a0, 0x18($sp)
/* B2A1C8 800B3028 0C001114 */ jal bzero
/* B2A1CC 800B302C 24050228 */ li $a1, 552
/* B2A1D0 800B3030 8FBF0014 */ lw $ra, 0x14($sp)
/* B2A1D4 800B3034 8FA20018 */ lw $v0, 0x18($sp)
/* B2A1D8 800B3038 27BD0018 */ addiu $sp, $sp, 0x18
/* B2A1DC 800B303C 03E00008 */ jr $ra
/* B2A1E0 800B3040 00000000 */ nop
glabel func_800B3044
/* B2A1E4 800B3044 03E00008 */ jr $ra
/* B2A1E8 800B3048 AFA40000 */ sw $a0, ($sp)
glabel func_800B304C
/* B2A1EC 800B304C 27BDFFD8 */ addiu $sp, $sp, -0x28
/* B2A1F0 800B3050 AFBF0024 */ sw $ra, 0x24($sp)
/* B2A1F4 800B3054 AFB00020 */ sw $s0, 0x20($sp)
/* B2A1F8 800B3058 AFA5002C */ sw $a1, 0x2c($sp)
/* B2A1FC 800B305C 908E0014 */ lbu $t6, 0x14($a0)
/* B2A200 800B3060 00808025 */ move $s0, $a0
/* B2A204 800B3064 51C00031 */ beql $t6, $zero, .L800B312C
/* B2A208 800B3068 8E0F0010 */ lw $t7, 0x10($s0)
/* B2A20C 800B306C 8E02000C */ lw $v0, 0xc($s0)
/* B2A210 800B3070 54400012 */ bnezl $v0, .L800B30BC
/* B2A214 800B3074 8E190010 */ lw $t9, 0x10($s0)
/* B2A218 800B3078 920F0017 */ lbu $t7, 0x17($s0)
/* B2A21C 800B307C 24010002 */ li $at, 2
/* B2A220 800B3080 55E1000E */ bnel $t7, $at, .L800B30BC
/* B2A224 800B3084 8E190010 */ lw $t9, 0x10($s0)
/* B2A228 800B3088 3C078013 */ lui $a3, %hi(D_801333E0) # $a3, 0x8013
/* B2A22C 800B308C 3C188013 */ lui $t8, %hi(D_801333E8) # $t8, 0x8013
/* B2A230 800B3090 24E733E0 */ addiu $a3, %lo(D_801333E0) # addiu $a3, $a3, 0x33e0
/* B2A234 800B3094 271833E8 */ addiu $t8, %lo(D_801333E8) # addiu $t8, $t8, 0x33e8
/* B2A238 800B3098 3C058013 */ lui $a1, %hi(D_801333D4) # $a1, 0x8013
/* B2A23C 800B309C 24A533D4 */ addiu $a1, %lo(D_801333D4) # addiu $a1, $a1, 0x33d4
/* B2A240 800B30A0 AFB80014 */ sw $t8, 0x14($sp)
/* B2A244 800B30A4 AFA70010 */ sw $a3, 0x10($sp)
/* B2A248 800B30A8 24045803 */ li $a0, 22531
/* B2A24C 800B30AC 0C03DCE3 */ jal Audio_PlaySoundGeneral
/* B2A250 800B30B0 24060004 */ li $a2, 4
/* B2A254 800B30B4 8E02000C */ lw $v0, 0xc($s0)
/* B2A258 800B30B8 8E190010 */ lw $t9, 0x10($s0)
.L800B30BC:
/* B2A25C 800B30BC 24030003 */ li $v1, 3
/* B2A260 800B30C0 8FA9002C */ lw $t1, 0x2c($sp)
/* B2A264 800B30C4 03230019 */ multu $t9, $v1
/* B2A268 800B30C8 240D01F4 */ li $t5, 500
/* B2A26C 800B30CC 240E0001 */ li $t6, 1
/* B2A270 800B30D0 00004012 */ mflo $t0
/* B2A274 800B30D4 00000000 */ nop
/* B2A278 800B30D8 00000000 */ nop
/* B2A27C 800B30DC 0109001A */ div $zero, $t0, $t1
/* B2A280 800B30E0 15200002 */ bnez $t1, .L800B30EC
/* B2A284 800B30E4 00000000 */ nop
/* B2A288 800B30E8 0007000D */ break 7
.L800B30EC:
/* B2A28C 800B30EC 2401FFFF */ li $at, -1
/* B2A290 800B30F0 15210004 */ bne $t1, $at, .L800B3104
/* B2A294 800B30F4 3C018000 */ lui $at, 0x8000
/* B2A298 800B30F8 15010002 */ bne $t0, $at, .L800B3104
/* B2A29C 800B30FC 00000000 */ nop
/* B2A2A0 800B3100 0006000D */ break 6
.L800B3104:
/* B2A2A4 800B3104 00005012 */ mflo $t2
/* B2A2A8 800B3108 004A5821 */ addu $t3, $v0, $t2
/* B2A2AC 800B310C 296101F4 */ slti $at, $t3, 0x1f4
/* B2A2B0 800B3110 AE0B000C */ sw $t3, 0xc($s0)
/* B2A2B4 800B3114 14200029 */ bnez $at, .L800B31BC
/* B2A2B8 800B3118 01606025 */ move $t4, $t3
/* B2A2BC 800B311C AE0D000C */ sw $t5, 0xc($s0)
/* B2A2C0 800B3120 10000026 */ b .L800B31BC
/* B2A2C4 800B3124 A20E0018 */ sb $t6, 0x18($s0)
/* B2A2C8 800B3128 8E0F0010 */ lw $t7, 0x10($s0)
.L800B312C:
/* B2A2CC 800B312C 24030003 */ li $v1, 3
/* B2A2D0 800B3130 8FB9002C */ lw $t9, 0x2c($sp)
/* B2A2D4 800B3134 01E30019 */ multu $t7, $v1
/* B2A2D8 800B3138 8E09000C */ lw $t1, 0xc($s0)
/* B2A2DC 800B313C 920B0015 */ lbu $t3, 0x15($s0)
/* B2A2E0 800B3140 0000C012 */ mflo $t8
/* B2A2E4 800B3144 00000000 */ nop
/* B2A2E8 800B3148 00000000 */ nop
/* B2A2EC 800B314C 0319001A */ div $zero, $t8, $t9
/* B2A2F0 800B3150 00004012 */ mflo $t0
/* B2A2F4 800B3154 01285023 */ subu $t2, $t1, $t0
/* B2A2F8 800B3158 17200002 */ bnez $t9, .L800B3164
/* B2A2FC 800B315C 00000000 */ nop
/* B2A300 800B3160 0007000D */ break 7
.L800B3164:
/* B2A304 800B3164 2401FFFF */ li $at, -1
/* B2A308 800B3168 17210004 */ bne $t9, $at, .L800B317C
/* B2A30C 800B316C 3C018000 */ lui $at, 0x8000
/* B2A310 800B3170 17010002 */ bne $t8, $at, .L800B317C
/* B2A314 800B3174 00000000 */ nop
/* B2A318 800B3178 0006000D */ break 6
.L800B317C:
/* B2A31C 800B317C AE0A000C */ sw $t2, 0xc($s0)
/* B2A320 800B3180 506B0007 */ beql $v1, $t3, .L800B31A0
/* B2A324 800B3184 8E0E000C */ lw $t6, 0xc($s0)
/* B2A328 800B3188 1D40000C */ bgtz $t2, .L800B31BC
/* B2A32C 800B318C 240D0001 */ li $t5, 1
/* B2A330 800B3190 AE00000C */ sw $zero, 0xc($s0)
/* B2A334 800B3194 10000009 */ b .L800B31BC
/* B2A338 800B3198 A20D0018 */ sb $t5, 0x18($s0)
/* B2A33C 800B319C 8E0E000C */ lw $t6, 0xc($s0)
.L800B31A0:
/* B2A340 800B31A0 240F00FA */ li $t7, 250
/* B2A344 800B31A4 24180001 */ li $t8, 1
/* B2A348 800B31A8 29C100FB */ slti $at, $t6, 0xfb
/* B2A34C 800B31AC 50200004 */ beql $at, $zero, .L800B31C0
/* B2A350 800B31B0 8FBF0024 */ lw $ra, 0x24($sp)
/* B2A354 800B31B4 AE0F000C */ sw $t7, 0xc($s0)
/* B2A358 800B31B8 A2180018 */ sb $t8, 0x18($s0)
.L800B31BC:
/* B2A35C 800B31BC 8FBF0024 */ lw $ra, 0x24($sp)
.L800B31C0:
/* B2A360 800B31C0 8FB00020 */ lw $s0, 0x20($sp)
/* B2A364 800B31C4 27BD0028 */ addiu $sp, $sp, 0x28
/* B2A368 800B31C8 03E00008 */ jr $ra
/* B2A36C 800B31CC 00000000 */ nop
glabel func_800B31D0
/* B2A370 800B31D0 27BDFF80 */ addiu $sp, $sp, -0x80
/* B2A374 800B31D4 AFBF0024 */ sw $ra, 0x24($sp)
/* B2A378 800B31D8 AFB00020 */ sw $s0, 0x20($sp)
/* B2A37C 800B31DC AFA50084 */ sw $a1, 0x84($sp)
/* B2A380 800B31E0 8CAF0000 */ lw $t7, ($a1)
/* B2A384 800B31E4 3C0CE700 */ lui $t4, 0xe700
/* B2A388 800B31E8 00808025 */ move $s0, $a0
/* B2A38C 800B31EC AFAF007C */ sw $t7, 0x7c($sp)
/* B2A390 800B31F0 90820019 */ lbu $v0, 0x19($a0)
/* B2A394 800B31F4 240D0040 */ li $t5, 64
/* B2A398 800B31F8 24070010 */ li $a3, 16
/* B2A39C 800B31FC 0002C080 */ sll $t8, $v0, 2
/* B2A3A0 800B3200 0302C023 */ subu $t8, $t8, $v0
/* B2A3A4 800B3204 0018C180 */ sll $t8, $t8, 6
/* B2A3A8 800B3208 0098C821 */ addu $t9, $a0, $t8
/* B2A3AC 800B320C 272800A8 */ addiu $t0, $t9, 0xa8
/* B2A3B0 800B3210 AFA80078 */ sw $t0, 0x78($sp)
/* B2A3B4 800B3214 38490001 */ xori $t1, $v0, 1
/* B2A3B8 800B3218 A0890019 */ sb $t1, 0x19($a0)
/* B2A3BC 800B321C 8FAA007C */ lw $t2, 0x7c($sp)
/* B2A3C0 800B3220 27A4007C */ addiu $a0, $sp, 0x7c
/* B2A3C4 800B3224 254B0008 */ addiu $t3, $t2, 8
/* B2A3C8 800B3228 AFAB007C */ sw $t3, 0x7c($sp)
/* B2A3CC 800B322C AD400004 */ sw $zero, 4($t2)
/* B2A3D0 800B3230 AD4C0000 */ sw $t4, ($t2)
/* B2A3D4 800B3234 8E06000C */ lw $a2, 0xc($s0)
/* B2A3D8 800B3238 8E050008 */ lw $a1, 8($s0)
/* B2A3DC 800B323C 0C02536E */ jal func_80094DB8
/* B2A3E0 800B3240 AFAD0010 */ sw $t5, 0x10($sp)
/* B2A3E4 800B3244 8FAE007C */ lw $t6, 0x7c($sp)
/* B2A3E8 800B3248 3C18DB06 */ lui $t8, (0xDB060024 >> 16) # lui $t8, 0xdb06
/* B2A3EC 800B324C 37180024 */ ori $t8, (0xDB060024 & 0xFFFF) # ori $t8, $t8, 0x24
/* B2A3F0 800B3250 25CF0008 */ addiu $t7, $t6, 8
/* B2A3F4 800B3254 AFAF007C */ sw $t7, 0x7c($sp)
/* B2A3F8 800B3258 ADC20004 */ sw $v0, 4($t6)
/* B2A3FC 800B325C ADD80000 */ sw $t8, ($t6)
/* B2A400 800B3260 8FB9007C */ lw $t9, 0x7c($sp)
/* B2A404 800B3264 3C09DB06 */ lui $t1, (0xDB060020 >> 16) # lui $t1, 0xdb06
/* B2A408 800B3268 35290020 */ ori $t1, (0xDB060020 & 0xFFFF) # ori $t1, $t1, 0x20
/* B2A40C 800B326C 27280008 */ addiu $t0, $t9, 8
/* B2A410 800B3270 AFA8007C */ sw $t0, 0x7c($sp)
/* B2A414 800B3274 AF290000 */ sw $t1, ($t9)
/* B2A418 800B3278 8E0A00A0 */ lw $t2, 0xa0($s0)
/* B2A41C 800B327C 3C0DFA00 */ lui $t5, 0xfa00
/* B2A420 800B3280 3C018014 */ lui $at, %hi(D_801430B0)
/* B2A424 800B3284 AF2A0004 */ sw $t2, 4($t9)
/* B2A428 800B3288 8FAB007C */ lw $t3, 0x7c($sp)
/* B2A42C 800B328C 3C19FB00 */ lui $t9, 0xfb00
/* B2A430 800B3290 256C0008 */ addiu $t4, $t3, 8
/* B2A434 800B3294 AFAC007C */ sw $t4, 0x7c($sp)
/* B2A438 800B3298 AD6D0000 */ sw $t5, ($t3)
/* B2A43C 800B329C 8E0E0000 */ lw $t6, ($s0)
/* B2A440 800B32A0 260C0020 */ addiu $t4, $s0, 0x20
/* B2A444 800B32A4 AD6E0004 */ sw $t6, 4($t3)
/* B2A448 800B32A8 8FAF007C */ lw $t7, 0x7c($sp)
/* B2A44C 800B32AC 3C0BDA38 */ lui $t3, (0xDA380007 >> 16) # lui $t3, 0xda38
/* B2A450 800B32B0 356B0007 */ ori $t3, (0xDA380007 & 0xFFFF) # ori $t3, $t3, 7
/* B2A454 800B32B4 25F80008 */ addiu $t8, $t7, 8
/* B2A458 800B32B8 AFB8007C */ sw $t8, 0x7c($sp)
/* B2A45C 800B32BC ADF90000 */ sw $t9, ($t7)
/* B2A460 800B32C0 8E080000 */ lw $t0, ($s0)
/* B2A464 800B32C4 ADE80004 */ sw $t0, 4($t7)
/* B2A468 800B32C8 8FA9007C */ lw $t1, 0x7c($sp)
/* B2A46C 800B32CC 3C0FDB0E */ lui $t7, 0xdb0e
/* B2A470 800B32D0 252A0008 */ addiu $t2, $t1, 8
/* B2A474 800B32D4 AFAA007C */ sw $t2, 0x7c($sp)
/* B2A478 800B32D8 AD2C0004 */ sw $t4, 4($t1)
/* B2A47C 800B32DC AD2B0000 */ sw $t3, ($t1)
/* B2A480 800B32E0 8FAD007C */ lw $t5, 0x7c($sp)
/* B2A484 800B32E4 3C09DA38 */ li $t1, 0xDA380000 # 0.000000
/* B2A488 800B32E8 35290005 */ ori $t1, (0xDA380005 & 0xFFFF) # ori $t1, $t1, 5
/* B2A48C 800B32EC 25AE0008 */ addiu $t6, $t5, 8
/* B2A490 800B32F0 AFAE007C */ sw $t6, 0x7c($sp)
/* B2A494 800B32F4 ADAF0000 */ sw $t7, ($t5)
/* B2A498 800B32F8 9618001A */ lhu $t8, 0x1a($s0)
/* B2A49C 800B32FC 260A0060 */ addiu $t2, $s0, 0x60
/* B2A4A0 800B3300 ADB80004 */ sw $t8, 4($t5)
/* B2A4A4 800B3304 8FB9007C */ lw $t9, 0x7c($sp)
/* B2A4A8 800B3308 27280008 */ addiu $t0, $t9, 8
/* B2A4AC 800B330C AFA8007C */ sw $t0, 0x7c($sp)
/* B2A4B0 800B3310 AF2A0004 */ sw $t2, 4($t9)
/* B2A4B4 800B3314 AF290000 */ sw $t1, ($t9)
/* B2A4B8 800B3318 C42030B0 */ lwc1 $f0, %lo(D_801430B0)($at)
/* B2A4BC 800B331C 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B2A4C0 800B3320 44811000 */ mtc1 $at, $f2
/* B2A4C4 800B3324 00000000 */ nop
/* B2A4C8 800B3328 46020032 */ c.eq.s $f0, $f2
/* B2A4CC 800B332C 00000000 */ nop
/* B2A4D0 800B3330 45030011 */ bc1tl .L800B3378
/* B2A4D4 800B3334 44800000 */ mtc1 $zero, $f0
/* B2A4D8 800B3338 44050000 */ mfc1 $a1, $f0
/* B2A4DC 800B333C 44060000 */ mfc1 $a2, $f0
/* B2A4E0 800B3340 44071000 */ mfc1 $a3, $f2
/* B2A4E4 800B3344 0C040078 */ jal func_801001E0
/* B2A4E8 800B3348 8FA40078 */ lw $a0, 0x78($sp)
/* B2A4EC 800B334C 8FAB007C */ lw $t3, 0x7c($sp)
/* B2A4F0 800B3350 3C0DDA38 */ li $t5, 0xDA380000 # 0.000000
/* B2A4F4 800B3354 35AD0003 */ ori $t5, (0xDA380003 & 0xFFFF) # ori $t5, $t5, 3
/* B2A4F8 800B3358 256C0008 */ addiu $t4, $t3, 8
/* B2A4FC 800B335C AFAC007C */ sw $t4, 0x7c($sp)
/* B2A500 800B3360 AD6D0000 */ sw $t5, ($t3)
/* B2A504 800B3364 8FAE0078 */ lw $t6, 0x78($sp)
/* B2A508 800B3368 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B2A50C 800B336C 44811000 */ mtc1 $at, $f2
/* B2A510 800B3370 AD6E0004 */ sw $t6, 4($t3)
/* B2A514 800B3374 44800000 */ mtc1 $zero, $f0
.L800B3378:
/* B2A518 800B3378 8FB00078 */ lw $s0, 0x78($sp)
/* B2A51C 800B337C 46000032 */ c.eq.s $f0, $f0
/* B2A520 800B3380 26100040 */ addiu $s0, $s0, 0x40
/* B2A524 800B3384 02002025 */ move $a0, $s0
/* B2A528 800B3388 4503000F */ bc1tl .L800B33C8
/* B2A52C 800B338C 46000032 */ c.eq.s $f0, $f0
/* B2A530 800B3390 44050000 */ mfc1 $a1, $f0
/* B2A534 800B3394 44060000 */ mfc1 $a2, $f0
/* B2A538 800B3398 44070000 */ mfc1 $a3, $f0
/* B2A53C 800B339C 0C040FE9 */ jal func_80103FA4
/* B2A540 800B33A0 E7A20010 */ swc1 $f2, 0x10($sp)
/* B2A544 800B33A4 8FAF007C */ lw $t7, 0x7c($sp)
/* B2A548 800B33A8 3C19DA38 */ li $t9, 0xDA380000 # 0.000000
/* B2A54C 800B33AC 37390001 */ ori $t9, (0xDA380001 & 0xFFFF) # ori $t9, $t9, 1
/* B2A550 800B33B0 25F80008 */ addiu $t8, $t7, 8
/* B2A554 800B33B4 AFB8007C */ sw $t8, 0x7c($sp)
/* B2A558 800B33B8 44800000 */ mtc1 $zero, $f0
/* B2A55C 800B33BC ADF00004 */ sw $s0, 4($t7)
/* B2A560 800B33C0 ADF90000 */ sw $t9, ($t7)
/* B2A564 800B33C4 46000032 */ c.eq.s $f0, $f0
.L800B33C8:
/* B2A568 800B33C8 8FB00078 */ lw $s0, 0x78($sp)
/* B2A56C 800B33CC 45000005 */ bc1f .L800B33E4
/* B2A570 800B33D0 26100080 */ addiu $s0, $s0, 0x80
/* B2A574 800B33D4 46000032 */ c.eq.s $f0, $f0
/* B2A578 800B33D8 00000000 */ nop
/* B2A57C 800B33DC 4503000E */ bc1tl .L800B3418
/* B2A580 800B33E0 8FAB007C */ lw $t3, 0x7c($sp)
.L800B33E4:
/* B2A584 800B33E4 44050000 */ mfc1 $a1, $f0
/* B2A588 800B33E8 44060000 */ mfc1 $a2, $f0
/* B2A58C 800B33EC 44070000 */ mfc1 $a3, $f0
/* B2A590 800B33F0 0C041708 */ jal func_80105C20
/* B2A594 800B33F4 02002025 */ move $a0, $s0
/* B2A598 800B33F8 8FA8007C */ lw $t0, 0x7c($sp)
/* B2A59C 800B33FC 3C0ADA38 */ lui $t2, (0xDA380001 >> 16) # lui $t2, 0xda38
/* B2A5A0 800B3400 354A0001 */ ori $t2, (0xDA380001 & 0xFFFF) # ori $t2, $t2, 1
/* B2A5A4 800B3404 25090008 */ addiu $t1, $t0, 8
/* B2A5A8 800B3408 AFA9007C */ sw $t1, 0x7c($sp)
/* B2A5AC 800B340C AD100004 */ sw $s0, 4($t0)
/* B2A5B0 800B3410 AD0A0000 */ sw $t2, ($t0)
/* B2A5B4 800B3414 8FAB007C */ lw $t3, 0x7c($sp)
.L800B3418:
/* B2A5B8 800B3418 3C0E8013 */ lui $t6, %hi(D_8012CDC8) # $t6, 0x8013
/* B2A5BC 800B341C 25CECDC8 */ addiu $t6, %lo(D_8012CDC8) # addiu $t6, $t6, -0x3238
/* B2A5C0 800B3420 256C0008 */ addiu $t4, $t3, 8
/* B2A5C4 800B3424 AFAC007C */ sw $t4, 0x7c($sp)
/* B2A5C8 800B3428 3C0DDE00 */ lui $t5, 0xde00
/* B2A5CC 800B342C AD6D0000 */ sw $t5, ($t3)
/* B2A5D0 800B3430 AD6E0004 */ sw $t6, 4($t3)
/* B2A5D4 800B3434 8FAF007C */ lw $t7, 0x7c($sp)
/* B2A5D8 800B3438 3C19E700 */ lui $t9, 0xe700
/* B2A5DC 800B343C 25F80008 */ addiu $t8, $t7, 8
/* B2A5E0 800B3440 AFB8007C */ sw $t8, 0x7c($sp)
/* B2A5E4 800B3444 ADE00004 */ sw $zero, 4($t7)
/* B2A5E8 800B3448 ADF90000 */ sw $t9, ($t7)
/* B2A5EC 800B344C 8FA90084 */ lw $t1, 0x84($sp)
/* B2A5F0 800B3450 8FA8007C */ lw $t0, 0x7c($sp)
/* B2A5F4 800B3454 AD280000 */ sw $t0, ($t1)
/* B2A5F8 800B3458 8FBF0024 */ lw $ra, 0x24($sp)
/* B2A5FC 800B345C 8FB00020 */ lw $s0, 0x20($sp)
/* B2A600 800B3460 27BD0080 */ addiu $sp, $sp, 0x80
/* B2A604 800B3464 03E00008 */ jr $ra
/* B2A608 800B3468 00000000 */ nop
glabel func_800B346C
/* B2A60C 800B346C 03E00008 */ jr $ra
/* B2A610 800B3470 90820018 */ lbu $v0, 0x18($a0)
glabel func_800B3474
/* B2A614 800B3474 30AE0080 */ andi $t6, $a1, 0x80
/* B2A618 800B3478 11C0000D */ beqz $t6, .L800B34B0
/* B2A61C 800B347C 24010001 */ li $at, 1
/* B2A620 800B3480 00057943 */ sra $t7, $a1, 5
/* B2A624 800B3484 0005C8C3 */ sra $t9, $a1, 3
/* B2A628 800B3488 00055043 */ sra $t2, $a1, 1
/* B2A62C 800B348C 31F80001 */ andi $t8, $t7, 1
/* B2A630 800B3490 33280003 */ andi $t0, $t9, 3
/* B2A634 800B3494 30A90001 */ andi $t1, $a1, 1
/* B2A638 800B3498 314B0003 */ andi $t3, $t2, 3
/* B2A63C 800B349C A0980014 */ sb $t8, 0x14($a0)
/* B2A640 800B34A0 A0880015 */ sb $t0, 0x15($a0)
/* B2A644 800B34A4 A0890016 */ sb $t1, 0x16($a0)
/* B2A648 800B34A8 03E00008 */ jr $ra
/* B2A64C 800B34AC A08B0017 */ sb $t3, 0x17($a0)
.L800B34B0:
/* B2A650 800B34B0 14A10003 */ bne $a1, $at, .L800B34C0
/* B2A654 800B34B4 240C0001 */ li $t4, 1
/* B2A658 800B34B8 03E00008 */ jr $ra
/* B2A65C 800B34BC A08C0014 */ sb $t4, 0x14($a0)
.L800B34C0:
/* B2A660 800B34C0 A0800014 */ sb $zero, 0x14($a0)
/* B2A664 800B34C4 03E00008 */ jr $ra
/* B2A668 800B34C8 00000000 */ nop
glabel func_800B34CC
/* B2A66C 800B34CC 03E00008 */ jr $ra
/* B2A670 800B34D0 AC850000 */ sw $a1, ($a0)
glabel func_800B34D4
/* B2A674 800B34D4 03E00008 */ jr $ra
/* B2A678 800B34D8 AC850004 */ sw $a1, 4($a0)

263
asm/code_800B34E0.s Normal file
View file

@ -0,0 +1,263 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800B34E0
/* B2A680 800B34E0 90820000 */ lbu $v0, ($a0)
/* B2A684 800B34E4 24010001 */ li $at, 1
/* B2A688 800B34E8 10400011 */ beqz $v0, .L800B3530
/* B2A68C 800B34EC 00000000 */ nop
/* B2A690 800B34F0 10410005 */ beq $v0, $at, .L800B3508
/* B2A694 800B34F4 24010002 */ li $at, 2
/* B2A698 800B34F8 5041000D */ beql $v0, $at, .L800B3530
/* B2A69C 800B34FC A0800007 */ sb $zero, 7($a0)
/* B2A6A0 800B3500 1000000B */ b .L800B3530
/* B2A6A4 800B3504 00000000 */ nop
.L800B3508:
/* B2A6A8 800B3508 908E0002 */ lbu $t6, 2($a0)
/* B2A6AC 800B350C A4800008 */ sh $zero, 8($a0)
/* B2A6B0 800B3510 240F00FF */ li $t7, 255
/* B2A6B4 800B3514 11C00003 */ beqz $t6, .L800B3524
/* B2A6B8 800B3518 00000000 */ nop
/* B2A6BC 800B351C 10000004 */ b .L800B3530
/* B2A6C0 800B3520 A08F0007 */ sb $t7, 7($a0)
.L800B3524:
/* B2A6C4 800B3524 10000002 */ b .L800B3530
/* B2A6C8 800B3528 A0800007 */ sb $zero, 7($a0)
/* B2A6CC 800B352C A0800007 */ sb $zero, 7($a0)
.L800B3530:
/* B2A6D0 800B3530 03E00008 */ jr $ra
/* B2A6D4 800B3534 A0800001 */ sb $zero, 1($a0)
glabel func_800B3538
/* B2A6D8 800B3538 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B2A6DC 800B353C AFBF0014 */ sw $ra, 0x14($sp)
/* B2A6E0 800B3540 AFA40018 */ sw $a0, 0x18($sp)
/* B2A6E4 800B3544 0C001114 */ jal bzero
/* B2A6E8 800B3548 2405000C */ li $a1, 12
/* B2A6EC 800B354C 8FBF0014 */ lw $ra, 0x14($sp)
/* B2A6F0 800B3550 8FA20018 */ lw $v0, 0x18($sp)
/* B2A6F4 800B3554 27BD0018 */ addiu $sp, $sp, 0x18
/* B2A6F8 800B3558 03E00008 */ jr $ra
/* B2A6FC 800B355C 00000000 */ nop
glabel func_800B3560
/* B2A700 800B3560 03E00008 */ jr $ra
/* B2A704 800B3564 AFA40000 */ sw $a0, ($sp)
glabel func_800B3568
/* B2A708 800B3568 27BDFFD0 */ addiu $sp, $sp, -0x30
/* B2A70C 800B356C AFBF0014 */ sw $ra, 0x14($sp)
/* B2A710 800B3570 90820000 */ lbu $v0, ($a0)
/* B2A714 800B3574 00803825 */ move $a3, $a0
/* B2A718 800B3578 24010001 */ li $at, 1
/* B2A71C 800B357C 50400063 */ beql $v0, $zero, .L800B370C
/* B2A720 800B3580 8FBF0014 */ lw $ra, 0x14($sp)
/* B2A724 800B3584 10410005 */ beq $v0, $at, .L800B359C
/* B2A728 800B3588 24010002 */ li $at, 2
/* B2A72C 800B358C 50410037 */ beql $v0, $at, .L800B366C
/* B2A730 800B3590 90ED0007 */ lbu $t5, 7($a3)
/* B2A734 800B3594 1000005D */ b .L800B370C
/* B2A738 800B3598 8FBF0014 */ lw $ra, 0x14($sp)
.L800B359C:
/* B2A73C 800B359C 94EE0008 */ lhu $t6, 8($a3)
/* B2A740 800B35A0 3C028016 */ lui $v0, %hi(gSaveContext+0x1418) # $v0, 0x8016
/* B2A744 800B35A4 3C048014 */ lui $a0, %hi(D_801430C0) # $a0, 0x8014
/* B2A748 800B35A8 01C57821 */ addu $t7, $t6, $a1
/* B2A74C 800B35AC A4EF0008 */ sh $t7, 8($a3)
/* B2A750 800B35B0 9042FA78 */ lbu $v0, %lo(gSaveContext+0x1418)($v0)
/* B2A754 800B35B4 31F8FFFF */ andi $t8, $t7, 0xffff
/* B2A758 800B35B8 24190001 */ li $t9, 1
/* B2A75C 800B35BC 0302082A */ slt $at, $t8, $v0
/* B2A760 800B35C0 14200005 */ bnez $at, .L800B35D8
/* B2A764 800B35C4 248430C0 */ addiu $a0, %lo(D_801430C0) # addiu $a0, $a0, 0x30c0
/* B2A768 800B35C8 A4E20008 */ sh $v0, 8($a3)
/* B2A76C 800B35CC 3C028016 */ lui $v0, %hi(gSaveContext+0x1418) # $v0, 0x8016
/* B2A770 800B35D0 A0F90001 */ sb $t9, 1($a3)
/* B2A774 800B35D4 9042FA78 */ lbu $v0, %lo(gSaveContext+0x1418)($v0)
.L800B35D8:
/* B2A778 800B35D8 54400007 */ bnezl $v0, .L800B35F8
/* B2A77C 800B35DC 94E80008 */ lhu $t0, 8($a3)
/* B2A780 800B35E0 0C00084C */ jal osSyncPrintf
/* B2A784 800B35E4 AFA70030 */ sw $a3, 0x30($sp)
/* B2A788 800B35E8 3C028016 */ lui $v0, %hi(gSaveContext+0x1418) # $v0, 0x8016
/* B2A78C 800B35EC 9042FA78 */ lbu $v0, %lo(gSaveContext+0x1418)($v0)
/* B2A790 800B35F0 8FA70030 */ lw $a3, 0x30($sp)
/* B2A794 800B35F4 94E80008 */ lhu $t0, 8($a3)
.L800B35F8:
/* B2A798 800B35F8 3C01437F */ li $at, 0x437F0000 # 0.000000
/* B2A79C 800B35FC 44812000 */ mtc1 $at, $f4
/* B2A7A0 800B3600 44883000 */ mtc1 $t0, $f6
/* B2A7A4 800B3604 44829000 */ mtc1 $v0, $f18
/* B2A7A8 800B3608 05010005 */ bgez $t0, .L800B3620
/* B2A7AC 800B360C 46803220 */ cvt.s.w $f8, $f6
/* B2A7B0 800B3610 3C014F80 */ li $at, 0x4F800000 # 0.000000
/* B2A7B4 800B3614 44815000 */ mtc1 $at, $f10
/* B2A7B8 800B3618 00000000 */ nop
/* B2A7BC 800B361C 460A4200 */ add.s $f8, $f8, $f10
.L800B3620:
/* B2A7C0 800B3620 46082402 */ mul.s $f16, $f4, $f8
/* B2A7C4 800B3624 3C014F80 */ li $at, 0x4F800000 # 0.000000
/* B2A7C8 800B3628 240B00FF */ li $t3, 255
/* B2A7CC 800B362C 04410004 */ bgez $v0, .L800B3640
/* B2A7D0 800B3630 468091A0 */ cvt.s.w $f6, $f18
/* B2A7D4 800B3634 44815000 */ mtc1 $at, $f10
/* B2A7D8 800B3638 00000000 */ nop
/* B2A7DC 800B363C 460A3180 */ add.s $f6, $f6, $f10
.L800B3640:
/* B2A7E0 800B3640 46068103 */ div.s $f4, $f16, $f6
/* B2A7E4 800B3644 90EA0002 */ lbu $t2, 2($a3)
/* B2A7E8 800B3648 4600220D */ trunc.w.s $f8, $f4
/* B2A7EC 800B364C 44034000 */ mfc1 $v1, $f8
/* B2A7F0 800B3650 11400003 */ beqz $t2, .L800B3660
/* B2A7F4 800B3654 01636023 */ subu $t4, $t3, $v1
/* B2A7F8 800B3658 1000002B */ b .L800B3708
/* B2A7FC 800B365C A0EC0007 */ sb $t4, 7($a3)
.L800B3660:
/* B2A800 800B3660 10000029 */ b .L800B3708
/* B2A804 800B3664 A0E30007 */ sb $v1, 7($a3)
/* B2A808 800B3668 90ED0007 */ lbu $t5, 7($a3)
.L800B366C:
/* B2A80C 800B366C 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016
/* B2A810 800B3670 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0)
/* B2A814 800B3674 A7AD002A */ sh $t5, 0x2a($sp)
/* B2A818 800B3678 84430D38 */ lh $v1, 0xd38($v0)
/* B2A81C 800B367C 50600021 */ beql $v1, $zero, .L800B3704
/* B2A820 800B3680 87A9002A */ lh $t1, 0x2a($sp)
/* B2A824 800B3684 0461000D */ bgez $v1, .L800B36BC
/* B2A828 800B3688 24440D38 */ addiu $a0, $v0, 0xd38
/* B2A82C 800B368C 27A4002A */ addiu $a0, $sp, 0x2a
/* B2A830 800B3690 240500FF */ li $a1, 255
/* B2A834 800B3694 240600FF */ li $a2, 255
/* B2A838 800B3698 0C01DE5F */ jal Math_ApproxS
/* B2A83C 800B369C AFA70030 */ sw $a3, 0x30($sp)
/* B2A840 800B36A0 10400017 */ beqz $v0, .L800B3700
/* B2A844 800B36A4 8FA70030 */ lw $a3, 0x30($sp)
/* B2A848 800B36A8 3C0F8016 */ lui $t7, %hi(gGameInfo) # $t7, 0x8016
/* B2A84C 800B36AC 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7)
/* B2A850 800B36B0 240E0096 */ li $t6, 150
/* B2A854 800B36B4 10000012 */ b .L800B3700
/* B2A858 800B36B8 A5EE0D38 */ sh $t6, 0xd38($t7)
.L800B36BC:
/* B2A85C 800B36BC 24050014 */ li $a1, 20
/* B2A860 800B36C0 2406003C */ li $a2, 60
/* B2A864 800B36C4 0C01DE5F */ jal Math_ApproxS
/* B2A868 800B36C8 AFA70030 */ sw $a3, 0x30($sp)
/* B2A86C 800B36CC 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016
/* B2A870 800B36D0 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8)
/* B2A874 800B36D4 27A4002A */ addiu $a0, $sp, 0x2a
/* B2A878 800B36D8 00002825 */ move $a1, $zero
/* B2A87C 800B36DC 0C01DE5F */ jal Math_ApproxS
/* B2A880 800B36E0 87060D38 */ lh $a2, 0xd38($t8)
/* B2A884 800B36E4 10400006 */ beqz $v0, .L800B3700
/* B2A888 800B36E8 8FA70030 */ lw $a3, 0x30($sp)
/* B2A88C 800B36EC 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016
/* B2A890 800B36F0 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9)
/* B2A894 800B36F4 24080001 */ li $t0, 1
/* B2A898 800B36F8 A7200D38 */ sh $zero, 0xd38($t9)
/* B2A89C 800B36FC A0E80001 */ sb $t0, 1($a3)
.L800B3700:
/* B2A8A0 800B3700 87A9002A */ lh $t1, 0x2a($sp)
.L800B3704:
/* B2A8A4 800B3704 A0E90007 */ sb $t1, 7($a3)
.L800B3708:
/* B2A8A8 800B3708 8FBF0014 */ lw $ra, 0x14($sp)
.L800B370C:
/* B2A8AC 800B370C 27BD0030 */ addiu $sp, $sp, 0x30
/* B2A8B0 800B3710 03E00008 */ jr $ra
/* B2A8B4 800B3714 00000000 */ nop
glabel func_800B3718
/* B2A8B8 800B3718 908E0007 */ lbu $t6, 7($a0)
/* B2A8BC 800B371C 3C188013 */ lui $t8, %hi(D_8012CEA0) # $t8, 0x8013
/* B2A8C0 800B3720 2718CEA0 */ addiu $t8, %lo(D_8012CEA0) # addiu $t8, $t8, -0x3160
/* B2A8C4 800B3724 19C0002B */ blez $t6, .L800B37D4
/* B2A8C8 800B3728 3C0FDE00 */ lui $t7, 0xde00
/* B2A8CC 800B372C 8CA20000 */ lw $v0, ($a1)
/* B2A8D0 800B3730 3C19FA00 */ lui $t9, 0xfa00
/* B2A8D4 800B3734 3C01F600 */ lui $at, 0xf600
/* B2A8D8 800B3738 24460008 */ addiu $a2, $v0, 8
/* B2A8DC 800B373C AC4F0000 */ sw $t7, ($v0)
/* B2A8E0 800B3740 AC580004 */ sw $t8, 4($v0)
/* B2A8E4 800B3744 ACD90000 */ sw $t9, ($a2)
/* B2A8E8 800B3748 24820004 */ addiu $v0, $a0, 4
/* B2A8EC 800B374C 90490000 */ lbu $t1, ($v0)
/* B2A8F0 800B3750 904C0001 */ lbu $t4, 1($v0)
/* B2A8F4 800B3754 90580002 */ lbu $t8, 2($v0)
/* B2A8F8 800B3758 904B0003 */ lbu $t3, 3($v0)
/* B2A8FC 800B375C 00095600 */ sll $t2, $t1, 0x18
/* B2A900 800B3760 000C6C00 */ sll $t5, $t4, 0x10
/* B2A904 800B3764 014D7025 */ or $t6, $t2, $t5
/* B2A908 800B3768 0018CA00 */ sll $t9, $t8, 8
/* B2A90C 800B376C 01D94025 */ or $t0, $t6, $t9
/* B2A910 800B3770 010B6025 */ or $t4, $t0, $t3
/* B2A914 800B3774 ACCC0004 */ sw $t4, 4($a2)
/* B2A918 800B3778 3C0A8013 */ lui $t2, %hi(gScreenWidth) # $t2, 0x8013
/* B2A91C 800B377C 8D4AD270 */ lw $t2, %lo(gScreenWidth)($t2)
/* B2A920 800B3780 3C198013 */ lui $t9, %hi(gScreenHeight) # $t9, 0x8013
/* B2A924 800B3784 8F39D274 */ lw $t9, %lo(gScreenHeight)($t9)
/* B2A928 800B3788 254DFFFF */ addiu $t5, $t2, -1
/* B2A92C 800B378C 24C30008 */ addiu $v1, $a2, 8
/* B2A930 800B3790 31AF03FF */ andi $t7, $t5, 0x3ff
/* B2A934 800B3794 2729FFFF */ addiu $t1, $t9, -1
/* B2A938 800B3798 312803FF */ andi $t0, $t1, 0x3ff
/* B2A93C 800B379C 000FC380 */ sll $t8, $t7, 0xe
/* B2A940 800B37A0 00601025 */ move $v0, $v1
/* B2A944 800B37A4 03017025 */ or $t6, $t8, $at
/* B2A948 800B37A8 00085880 */ sll $t3, $t0, 2
/* B2A94C 800B37AC 01CB6025 */ or $t4, $t6, $t3
/* B2A950 800B37B0 AC4C0000 */ sw $t4, ($v0)
/* B2A954 800B37B4 AC400004 */ sw $zero, 4($v0)
/* B2A958 800B37B8 24630008 */ addiu $v1, $v1, 8
/* B2A95C 800B37BC 00601025 */ move $v0, $v1
/* B2A960 800B37C0 3C0AE700 */ lui $t2, 0xe700
/* B2A964 800B37C4 AC4A0000 */ sw $t2, ($v0)
/* B2A968 800B37C8 AC400004 */ sw $zero, 4($v0)
/* B2A96C 800B37CC 24630008 */ addiu $v1, $v1, 8
/* B2A970 800B37D0 ACA30000 */ sw $v1, ($a1)
.L800B37D4:
/* B2A974 800B37D4 03E00008 */ jr $ra
/* B2A978 800B37D8 00000000 */ nop
glabel func_800B37DC
/* B2A97C 800B37DC 03E00008 */ jr $ra
/* B2A980 800B37E0 90820001 */ lbu $v0, 1($a0)
glabel func_800B37E4
/* B2A984 800B37E4 03E00008 */ jr $ra
/* B2A988 800B37E8 AC850004 */ sw $a1, 4($a0)
glabel func_800B37EC
/* B2A98C 800B37EC 24010001 */ li $at, 1
/* B2A990 800B37F0 14A10004 */ bne $a1, $at, .L800B3804
/* B2A994 800B37F4 24020001 */ li $v0, 1
/* B2A998 800B37F8 A0820000 */ sb $v0, ($a0)
/* B2A99C 800B37FC 03E00008 */ jr $ra
/* B2A9A0 800B3800 A0820002 */ sb $v0, 2($a0)
.L800B3804:
/* B2A9A4 800B3804 24010002 */ li $at, 2
/* B2A9A8 800B3808 14A10004 */ bne $a1, $at, .L800B381C
/* B2A9AC 800B380C 24020001 */ li $v0, 1
/* B2A9B0 800B3810 A0820000 */ sb $v0, ($a0)
/* B2A9B4 800B3814 03E00008 */ jr $ra
/* B2A9B8 800B3818 A0800002 */ sb $zero, 2($a0)
.L800B381C:
/* B2A9BC 800B381C 24010003 */ li $at, 3
/* B2A9C0 800B3820 14A10003 */ bne $a1, $at, .L800B3830
/* B2A9C4 800B3824 240E0002 */ li $t6, 2
/* B2A9C8 800B3828 03E00008 */ jr $ra
/* B2A9CC 800B382C A08E0000 */ sb $t6, ($a0)
.L800B3830:
/* B2A9D0 800B3830 A0800000 */ sb $zero, ($a0)
/* B2A9D4 800B3834 03E00008 */ jr $ra
/* B2A9D8 800B3838 00000000 */ nop

335
asm/code_800BB0A0.s Normal file
View file

@ -0,0 +1,335 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800BB0A0
/* B32240 800BB0A0 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B32244 800BB0A4 44818000 */ mtc1 $at, $f16
/* B32248 800BB0A8 27BDFFF0 */ addiu $sp, $sp, -0x10
/* B3224C 800BB0AC AFA60018 */ sw $a2, 0x18($sp)
/* B32250 800BB0B0 460C803C */ c.lt.s $f16, $f12
/* B32254 800BB0B4 00000000 */ nop
/* B32258 800BB0B8 45020003 */ bc1fl .L800BB0C8
/* B3225C 800BB0BC 460C8001 */ sub.s $f0, $f16, $f12
/* B32260 800BB0C0 46008306 */ mov.s $f12, $f16
/* B32264 800BB0C4 460C8001 */ sub.s $f0, $f16, $f12
.L800BB0C8:
/* B32268 800BB0C8 3C0140C0 */ li $at, 0x40C00000 # 0.000000
/* B3226C 800BB0CC 44819000 */ mtc1 $at, $f18
/* B32270 800BB0D0 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* B32274 800BB0D4 46000102 */ mul.s $f4, $f0, $f0
/* B32278 800BB0D8 44815000 */ mtc1 $at, $f10
/* B3227C 800BB0DC 3C018014 */ lui $at, %hi(D_80143CE0)
/* B32280 800BB0E0 8FA30020 */ lw $v1, 0x20($sp)
/* B32284 800BB0E4 8FA40024 */ lw $a0, 0x24($sp)
/* B32288 800BB0E8 8FA60028 */ lw $a2, 0x28($sp)
/* B3228C 800BB0EC 8FA2002C */ lw $v0, 0x2c($sp)
/* B32290 800BB0F0 46002182 */ mul.s $f6, $f4, $f0
/* B32294 800BB0F4 00000000 */ nop
/* B32298 800BB0F8 460C6082 */ mul.s $f2, $f12, $f12
/* B3229C 800BB0FC 46123203 */ div.s $f8, $f6, $f18
/* B322A0 800BB100 460C1382 */ mul.s $f14, $f2, $f12
/* B322A4 800BB104 00000000 */ nop
/* B322A8 800BB108 460A7102 */ mul.s $f4, $f14, $f10
/* B322AC 800BB10C C42A3CE0 */ lwc1 $f10, %lo(D_80143CE0)($at)
/* B322B0 800BB110 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* B322B4 800BB114 E7A80000 */ swc1 $f8, ($sp)
/* B322B8 800BB118 46022181 */ sub.s $f6, $f4, $f2
/* B322BC 800BB11C 460A3100 */ add.s $f4, $f6, $f10
/* B322C0 800BB120 46006187 */ neg.s $f6, $f12
/* B322C4 800BB124 E7A40004 */ swc1 $f4, 4($sp)
/* B322C8 800BB128 460C3282 */ mul.s $f10, $f6, $f12
/* B322CC 800BB12C 00000000 */ nop
/* B322D0 800BB130 460C5182 */ mul.s $f6, $f10, $f12
/* B322D4 800BB134 44815000 */ mtc1 $at, $f10
/* B322D8 800BB138 00000000 */ nop
/* B322DC 800BB13C 460A3182 */ mul.s $f6, $f6, $f10
/* B322E0 800BB140 44815000 */ mtc1 $at, $f10
/* B322E4 800BB144 00000000 */ nop
/* B322E8 800BB148 460A1282 */ mul.s $f10, $f2, $f10
/* B322EC 800BB14C 460A3180 */ add.s $f6, $f6, $f10
/* B322F0 800BB150 44815000 */ mtc1 $at, $f10
/* B322F4 800BB154 3C018014 */ lui $at, %hi(D_80143CE4)
/* B322F8 800BB158 460A6282 */ mul.s $f10, $f12, $f10
/* B322FC 800BB15C 460A3180 */ add.s $f6, $f6, $f10
/* B32300 800BB160 C42A3CE4 */ lwc1 $f10, %lo(D_80143CE4)($at)
/* B32304 800BB164 460A3180 */ add.s $f6, $f6, $f10
/* B32308 800BB168 46127283 */ div.s $f10, $f14, $f18
/* B3230C 800BB16C E7A60008 */ swc1 $f6, 8($sp)
/* B32310 800BB170 E7AA000C */ swc1 $f10, 0xc($sp)
/* B32314 800BB174 C46A0000 */ lwc1 $f10, ($v1)
/* B32318 800BB178 460A4202 */ mul.s $f8, $f8, $f10
/* B3231C 800BB17C C48A0000 */ lwc1 $f10, ($a0)
/* B32320 800BB180 460A2102 */ mul.s $f4, $f4, $f10
/* B32324 800BB184 46044280 */ add.s $f10, $f8, $f4
/* B32328 800BB188 C4C80000 */ lwc1 $f8, ($a2)
/* B3232C 800BB18C 46083102 */ mul.s $f4, $f6, $f8
/* B32330 800BB190 C4480000 */ lwc1 $f8, ($v0)
/* B32334 800BB194 46045180 */ add.s $f6, $f10, $f4
/* B32338 800BB198 C7AA000C */ lwc1 $f10, 0xc($sp)
/* B3233C 800BB19C 460A4102 */ mul.s $f4, $f8, $f10
/* B32340 800BB1A0 46062200 */ add.s $f8, $f4, $f6
/* B32344 800BB1A4 E4A80000 */ swc1 $f8, ($a1)
/* B32348 800BB1A8 C7AA0000 */ lwc1 $f10, ($sp)
/* B3234C 800BB1AC C4640004 */ lwc1 $f4, 4($v1)
/* B32350 800BB1B0 C7A80004 */ lwc1 $f8, 4($sp)
/* B32354 800BB1B4 46045182 */ mul.s $f6, $f10, $f4
/* B32358 800BB1B8 C48A0004 */ lwc1 $f10, 4($a0)
/* B3235C 800BB1BC 460A4102 */ mul.s $f4, $f8, $f10
/* B32360 800BB1C0 C7AA0008 */ lwc1 $f10, 8($sp)
/* B32364 800BB1C4 46043200 */ add.s $f8, $f6, $f4
/* B32368 800BB1C8 C4C60004 */ lwc1 $f6, 4($a2)
/* B3236C 800BB1CC 46065102 */ mul.s $f4, $f10, $f6
/* B32370 800BB1D0 C4460004 */ lwc1 $f6, 4($v0)
/* B32374 800BB1D4 46044280 */ add.s $f10, $f8, $f4
/* B32378 800BB1D8 C7A8000C */ lwc1 $f8, 0xc($sp)
/* B3237C 800BB1DC 46083102 */ mul.s $f4, $f6, $f8
/* B32380 800BB1E0 460A2180 */ add.s $f6, $f4, $f10
/* B32384 800BB1E4 E4A60004 */ swc1 $f6, 4($a1)
/* B32388 800BB1E8 C7A80000 */ lwc1 $f8, ($sp)
/* B3238C 800BB1EC C4640008 */ lwc1 $f4, 8($v1)
/* B32390 800BB1F0 C7A60004 */ lwc1 $f6, 4($sp)
/* B32394 800BB1F4 46044282 */ mul.s $f10, $f8, $f4
/* B32398 800BB1F8 C4880008 */ lwc1 $f8, 8($a0)
/* B3239C 800BB1FC 46083102 */ mul.s $f4, $f6, $f8
/* B323A0 800BB200 C7A80008 */ lwc1 $f8, 8($sp)
/* B323A4 800BB204 46045180 */ add.s $f6, $f10, $f4
/* B323A8 800BB208 C4CA0008 */ lwc1 $f10, 8($a2)
/* B323AC 800BB20C 460A4102 */ mul.s $f4, $f8, $f10
/* B323B0 800BB210 C44A0008 */ lwc1 $f10, 8($v0)
/* B323B4 800BB214 46043200 */ add.s $f8, $f6, $f4
/* B323B8 800BB218 C7A6000C */ lwc1 $f6, 0xc($sp)
/* B323BC 800BB21C 46065102 */ mul.s $f4, $f10, $f6
/* B323C0 800BB220 46082280 */ add.s $f10, $f4, $f8
/* B323C4 800BB224 E4AA0008 */ swc1 $f10, 8($a1)
/* B323C8 800BB228 C7A60000 */ lwc1 $f6, ($sp)
/* B323CC 800BB22C C464000C */ lwc1 $f4, 0xc($v1)
/* B323D0 800BB230 C7AA0004 */ lwc1 $f10, 4($sp)
/* B323D4 800BB234 8FAE0018 */ lw $t6, 0x18($sp)
/* B323D8 800BB238 46043202 */ mul.s $f8, $f6, $f4
/* B323DC 800BB23C C486000C */ lwc1 $f6, 0xc($a0)
/* B323E0 800BB240 46065102 */ mul.s $f4, $f10, $f6
/* B323E4 800BB244 C7A60008 */ lwc1 $f6, 8($sp)
/* B323E8 800BB248 46044280 */ add.s $f10, $f8, $f4
/* B323EC 800BB24C C4C8000C */ lwc1 $f8, 0xc($a2)
/* B323F0 800BB250 46083102 */ mul.s $f4, $f6, $f8
/* B323F4 800BB254 C448000C */ lwc1 $f8, 0xc($v0)
/* B323F8 800BB258 46045180 */ add.s $f6, $f10, $f4
/* B323FC 800BB25C C7AA000C */ lwc1 $f10, 0xc($sp)
/* B32400 800BB260 460A4102 */ mul.s $f4, $f8, $f10
/* B32404 800BB264 46062200 */ add.s $f8, $f4, $f6
/* B32408 800BB268 E5C80000 */ swc1 $f8, ($t6)
/* B3240C 800BB26C C7AA0000 */ lwc1 $f10, ($sp)
/* B32410 800BB270 C4640010 */ lwc1 $f4, 0x10($v1)
/* B32414 800BB274 C7A80004 */ lwc1 $f8, 4($sp)
/* B32418 800BB278 46045182 */ mul.s $f6, $f10, $f4
/* B3241C 800BB27C C48A0010 */ lwc1 $f10, 0x10($a0)
/* B32420 800BB280 460A4102 */ mul.s $f4, $f8, $f10
/* B32424 800BB284 C7AA0008 */ lwc1 $f10, 8($sp)
/* B32428 800BB288 46043200 */ add.s $f8, $f6, $f4
/* B3242C 800BB28C C4C60010 */ lwc1 $f6, 0x10($a2)
/* B32430 800BB290 46065102 */ mul.s $f4, $f10, $f6
/* B32434 800BB294 C4460010 */ lwc1 $f6, 0x10($v0)
/* B32438 800BB298 46044280 */ add.s $f10, $f8, $f4
/* B3243C 800BB29C C7A8000C */ lwc1 $f8, 0xc($sp)
/* B32440 800BB2A0 27BD0010 */ addiu $sp, $sp, 0x10
/* B32444 800BB2A4 46083102 */ mul.s $f4, $f6, $f8
/* B32448 800BB2A8 460A2180 */ add.s $f6, $f4, $f10
/* B3244C 800BB2AC 03E00008 */ jr $ra
/* B32450 800BB2B0 E4E60000 */ swc1 $f6, ($a3)
glabel func_800BB2B4
/* B32454 800BB2B4 27BDFF60 */ addiu $sp, $sp, -0xa0
/* B32458 800BB2B8 8FAF00B0 */ lw $t7, 0xb0($sp)
/* B3245C 800BB2BC AFBF0024 */ sw $ra, 0x24($sp)
/* B32460 800BB2C0 AFA400A0 */ sw $a0, 0xa0($sp)
/* B32464 800BB2C4 AFA500A4 */ sw $a1, 0xa4($sp)
/* B32468 800BB2C8 AFA600A8 */ sw $a2, 0xa8($sp)
/* B3246C 800BB2CC AFA700AC */ sw $a3, 0xac($sp)
/* B32470 800BB2D0 44809000 */ mtc1 $zero, $f18
/* B32474 800BB2D4 85E80000 */ lh $t0, ($t7)
/* B32478 800BB2D8 8FAE00B4 */ lw $t6, 0xb4($sp)
/* B3247C 800BB2DC 00005025 */ move $t2, $zero
/* B32480 800BB2E0 46009386 */ mov.s $f14, $f18
/* B32484 800BB2E4 46009406 */ mov.s $f16, $f18
/* B32488 800BB2E8 05010002 */ bgez $t0, .L800BB2F4
/* B3248C 800BB2EC C5CC0000 */ lwc1 $f12, ($t6)
/* B32490 800BB2F0 46009306 */ mov.s $f12, $f18
.L800BB2F4:
/* B32494 800BB2F4 8FB800AC */ lw $t8, 0xac($sp)
/* B32498 800BB2F8 0008C900 */ sll $t9, $t0, 4
/* B3249C 800BB2FC 2409FFFF */ li $t1, -1
/* B324A0 800BB300 03191021 */ addu $v0, $t8, $t9
/* B324A4 800BB304 804B0000 */ lb $t3, ($v0)
/* B324A8 800BB308 112B0009 */ beq $t1, $t3, .L800BB330
/* B324AC 800BB30C 00000000 */ nop
/* B324B0 800BB310 804C0010 */ lb $t4, 0x10($v0)
/* B324B4 800BB314 112C0006 */ beq $t1, $t4, .L800BB330
/* B324B8 800BB318 00000000 */ nop
/* B324BC 800BB31C 804D0020 */ lb $t5, 0x20($v0)
/* B324C0 800BB320 27A2004C */ addiu $v0, $sp, 0x4c
/* B324C4 800BB324 00002025 */ move $a0, $zero
/* B324C8 800BB328 152D0003 */ bne $t1, $t5, .L800BB338
/* B324CC 800BB32C 8FAE00AC */ lw $t6, 0xac($sp)
.L800BB330:
/* B324D0 800BB330 1000008B */ b .L800BB560
/* B324D4 800BB334 24020001 */ li $v0, 1
.L800BB338:
/* B324D8 800BB338 00087900 */ sll $t7, $t0, 4
/* B324DC 800BB33C 01CF1821 */ addu $v1, $t6, $t7
/* B324E0 800BB340 24050040 */ li $a1, 64
/* B324E4 800BB344 24840010 */ addiu $a0, $a0, 0x10
/* B324E8 800BB348 1085001A */ beq $a0, $a1, .L800BB3B4
/* B324EC 800BB34C 84780008 */ lh $t8, 8($v1)
.L800BB350:
/* B324F0 800BB350 44989000 */ mtc1 $t8, $f18
/* B324F4 800BB354 24840010 */ addiu $a0, $a0, 0x10
/* B324F8 800BB358 24420014 */ addiu $v0, $v0, 0x14
/* B324FC 800BB35C 468094A0 */ cvt.s.w $f18, $f18
/* B32500 800BB360 24630010 */ addiu $v1, $v1, 0x10
/* B32504 800BB364 E452FFEC */ swc1 $f18, -0x14($v0)
/* B32508 800BB368 8479FFFA */ lh $t9, -6($v1)
/* B3250C 800BB36C 44999000 */ mtc1 $t9, $f18
/* B32510 800BB370 00000000 */ nop
/* B32514 800BB374 468094A0 */ cvt.s.w $f18, $f18
/* B32518 800BB378 E452FFF0 */ swc1 $f18, -0x10($v0)
/* B3251C 800BB37C 846BFFFC */ lh $t3, -4($v1)
/* B32520 800BB380 448B9000 */ mtc1 $t3, $f18
/* B32524 800BB384 00000000 */ nop
/* B32528 800BB388 468094A0 */ cvt.s.w $f18, $f18
/* B3252C 800BB38C E452FFF4 */ swc1 $f18, -0xc($v0)
/* B32530 800BB390 806CFFF1 */ lb $t4, -0xf($v1)
/* B32534 800BB394 448C9000 */ mtc1 $t4, $f18
/* B32538 800BB398 00000000 */ nop
/* B3253C 800BB39C 468094A0 */ cvt.s.w $f18, $f18
/* B32540 800BB3A0 E452FFF8 */ swc1 $f18, -8($v0)
/* B32544 800BB3A4 C472FFF4 */ lwc1 $f18, -0xc($v1)
/* B32548 800BB3A8 E452FFFC */ swc1 $f18, -4($v0)
/* B3254C 800BB3AC 1485FFE8 */ bne $a0, $a1, .L800BB350
/* B32550 800BB3B0 84780008 */ lh $t8, 8($v1)
.L800BB3B4:
/* B32554 800BB3B4 44989000 */ mtc1 $t8, $f18
/* B32558 800BB3B8 24420014 */ addiu $v0, $v0, 0x14
/* B3255C 800BB3BC 24630010 */ addiu $v1, $v1, 0x10
/* B32560 800BB3C0 468094A0 */ cvt.s.w $f18, $f18
/* B32564 800BB3C4 E452FFEC */ swc1 $f18, -0x14($v0)
/* B32568 800BB3C8 8479FFFA */ lh $t9, -6($v1)
/* B3256C 800BB3CC 44999000 */ mtc1 $t9, $f18
/* B32570 800BB3D0 00000000 */ nop
/* B32574 800BB3D4 468094A0 */ cvt.s.w $f18, $f18
/* B32578 800BB3D8 E452FFF0 */ swc1 $f18, -0x10($v0)
/* B3257C 800BB3DC 846BFFFC */ lh $t3, -4($v1)
/* B32580 800BB3E0 448B9000 */ mtc1 $t3, $f18
/* B32584 800BB3E4 00000000 */ nop
/* B32588 800BB3E8 468094A0 */ cvt.s.w $f18, $f18
/* B3258C 800BB3EC E452FFF4 */ swc1 $f18, -0xc($v0)
/* B32590 800BB3F0 806CFFF1 */ lb $t4, -0xf($v1)
/* B32594 800BB3F4 448C9000 */ mtc1 $t4, $f18
/* B32598 800BB3F8 00000000 */ nop
/* B3259C 800BB3FC 468094A0 */ cvt.s.w $f18, $f18
/* B325A0 800BB400 E452FFF8 */ swc1 $f18, -8($v0)
/* B325A4 800BB404 C472FFF4 */ lwc1 $f18, -0xc($v1)
/* B325A8 800BB408 E452FFFC */ swc1 $f18, -4($v0)
/* B325AC 800BB40C 27AD004C */ addiu $t5, $sp, 0x4c
/* B325B0 800BB410 27AE0060 */ addiu $t6, $sp, 0x60
/* B325B4 800BB414 27AF0074 */ addiu $t7, $sp, 0x74
/* B325B8 800BB418 27B80088 */ addiu $t8, $sp, 0x88
/* B325BC 800BB41C AFB8001C */ sw $t8, 0x1c($sp)
/* B325C0 800BB420 AFAF0018 */ sw $t7, 0x18($sp)
/* B325C4 800BB424 AFAE0014 */ sw $t6, 0x14($sp)
/* B325C8 800BB428 AFAD0010 */ sw $t5, 0x10($sp)
/* B325CC 800BB42C 8FA500A0 */ lw $a1, 0xa0($sp)
/* B325D0 800BB430 8FA600A4 */ lw $a2, 0xa4($sp)
/* B325D4 800BB434 8FA700A8 */ lw $a3, 0xa8($sp)
/* B325D8 800BB438 AFAA009C */ sw $t2, 0x9c($sp)
/* B325DC 800BB43C E7AE003C */ swc1 $f14, 0x3c($sp)
/* B325E0 800BB440 0C02EC28 */ jal func_800BB0A0
/* B325E4 800BB444 E7B00038 */ swc1 $f16, 0x38($sp)
/* B325E8 800BB448 8FA500B0 */ lw $a1, 0xb0($sp)
/* B325EC 800BB44C 8FA600AC */ lw $a2, 0xac($sp)
/* B325F0 800BB450 44809000 */ mtc1 $zero, $f18
/* B325F4 800BB454 84B90000 */ lh $t9, ($a1)
/* B325F8 800BB458 8FA400B4 */ lw $a0, 0xb4($sp)
/* B325FC 800BB45C 2409FFFF */ li $t1, -1
/* B32600 800BB460 00195900 */ sll $t3, $t9, 4
/* B32604 800BB464 00CB1021 */ addu $v0, $a2, $t3
/* B32608 800BB468 94430012 */ lhu $v1, 0x12($v0)
/* B3260C 800BB46C 8FAA009C */ lw $t2, 0x9c($sp)
/* B32610 800BB470 C7AE003C */ lwc1 $f14, 0x3c($sp)
/* B32614 800BB474 1060000B */ beqz $v1, .L800BB4A4
/* B32618 800BB478 C7B00038 */ lwc1 $f16, 0x38($sp)
/* B3261C 800BB47C 44834000 */ mtc1 $v1, $f8
/* B32620 800BB480 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B32624 800BB484 44813000 */ mtc1 $at, $f6
/* B32628 800BB488 04610005 */ bgez $v1, .L800BB4A0
/* B3262C 800BB48C 468042A0 */ cvt.s.w $f10, $f8
/* B32630 800BB490 3C014F80 */ li $at, 0x4F800000 # 0.000000
/* B32634 800BB494 44812000 */ mtc1 $at, $f4
/* B32638 800BB498 00000000 */ nop
/* B3263C 800BB49C 46045280 */ add.s $f10, $f10, $f4
.L800BB4A0:
/* B32640 800BB4A0 460A3383 */ div.s $f14, $f6, $f10
.L800BB4A4:
/* B32644 800BB4A4 94430022 */ lhu $v1, 0x22($v0)
/* B32648 800BB4A8 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B3264C 800BB4AC 5060000B */ beql $v1, $zero, .L800BB4DC
/* B32650 800BB4B0 460E8101 */ sub.s $f4, $f16, $f14
/* B32654 800BB4B4 44832000 */ mtc1 $v1, $f4
/* B32658 800BB4B8 44814000 */ mtc1 $at, $f8
/* B3265C 800BB4BC 04610005 */ bgez $v1, .L800BB4D4
/* B32660 800BB4C0 468021A0 */ cvt.s.w $f6, $f4
/* B32664 800BB4C4 3C014F80 */ li $at, 0x4F800000 # 0.000000
/* B32668 800BB4C8 44815000 */ mtc1 $at, $f10
/* B3266C 800BB4CC 00000000 */ nop
/* B32670 800BB4D0 460A3180 */ add.s $f6, $f6, $f10
.L800BB4D4:
/* B32674 800BB4D4 46064403 */ div.s $f16, $f8, $f6
/* B32678 800BB4D8 460E8101 */ sub.s $f4, $f16, $f14
.L800BB4DC:
/* B3267C 800BB4DC C4820000 */ lwc1 $f2, ($a0)
/* B32680 800BB4E0 46041282 */ mul.s $f10, $f2, $f4
/* B32684 800BB4E4 460E5000 */ add.s $f0, $f10, $f14
/* B32688 800BB4E8 4612003C */ c.lt.s $f0, $f18
/* B3268C 800BB4EC 00000000 */ nop
/* B32690 800BB4F0 45020004 */ bc1fl .L800BB504
/* B32694 800BB4F4 46001200 */ add.s $f8, $f2, $f0
/* B32698 800BB4F8 44800000 */ mtc1 $zero, $f0
/* B3269C 800BB4FC 00000000 */ nop
/* B326A0 800BB500 46001200 */ add.s $f8, $f2, $f0
.L800BB504:
/* B326A4 800BB504 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B326A8 800BB508 44816000 */ mtc1 $at, $f12
/* B326AC 800BB50C E4880000 */ swc1 $f8, ($a0)
/* B326B0 800BB510 C4860000 */ lwc1 $f6, ($a0)
/* B326B4 800BB514 4606603E */ c.le.s $f12, $f6
/* B326B8 800BB518 00000000 */ nop
/* B326BC 800BB51C 45020010 */ bc1fl .L800BB560
/* B326C0 800BB520 01401025 */ move $v0, $t2
/* B326C4 800BB524 84AC0000 */ lh $t4, ($a1)
/* B326C8 800BB528 258D0001 */ addiu $t5, $t4, 1
/* B326CC 800BB52C A4AD0000 */ sh $t5, ($a1)
/* B326D0 800BB530 84AE0000 */ lh $t6, ($a1)
/* B326D4 800BB534 000E7900 */ sll $t7, $t6, 4
/* B326D8 800BB538 00CFC021 */ addu $t8, $a2, $t7
/* B326DC 800BB53C 83190030 */ lb $t9, 0x30($t8)
/* B326E0 800BB540 55390004 */ bnel $t1, $t9, .L800BB554
/* B326E4 800BB544 C4840000 */ lwc1 $f4, ($a0)
/* B326E8 800BB548 A4A00000 */ sh $zero, ($a1)
/* B326EC 800BB54C 240A0001 */ li $t2, 1
/* B326F0 800BB550 C4840000 */ lwc1 $f4, ($a0)
.L800BB554:
/* B326F4 800BB554 460C2281 */ sub.s $f10, $f4, $f12
/* B326F8 800BB558 E48A0000 */ swc1 $f10, ($a0)
/* B326FC 800BB55C 01401025 */ move $v0, $t2
.L800BB560:
/* B32700 800BB560 8FBF0024 */ lw $ra, 0x24($sp)
/* B32704 800BB564 27BD00A0 */ addiu $sp, $sp, 0xa0
/* B32708 800BB568 03E00008 */ jr $ra
/* B3270C 800BB56C 00000000 */ nop

501
asm/code_800BB570.s Normal file
View file

@ -0,0 +1,501 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800BB570
/* B32710 800BB570 27BDFFD8 */ addiu $sp, $sp, -0x28
/* B32714 800BB574 AFA40028 */ sw $a0, 0x28($sp)
/* B32718 800BB578 AFBF0014 */ sw $ra, 0x14($sp)
/* B3271C 800BB57C 3C048016 */ lui $a0, %hi(gPadMgr) # $a0, 0x8016
/* B32720 800BB580 AFA0001C */ sw $zero, 0x1c($sp)
/* B32724 800BB584 0C031C94 */ jal PadMgr_LockGetControllerQueue
/* B32728 800BB588 248468C0 */ addiu $a0, %lo(gPadMgr) # addiu $a0, $a0, 0x68c0
/* B3272C 800BB58C 3C058016 */ lui $a1, %hi(D_801612F0) # $a1, 0x8016
/* B32730 800BB590 AFA20024 */ sw $v0, 0x24($sp)
/* B32734 800BB594 24A512F0 */ addiu $a1, %lo(D_801612F0) # addiu $a1, $a1, 0x12f0
/* B32738 800BB598 00402025 */ move $a0, $v0
/* B3273C 800BB59C 0C0413D0 */ jal func_80104F40
/* B32740 800BB5A0 8FA60028 */ lw $a2, 0x28($sp)
/* B32744 800BB5A4 14400003 */ bnez $v0, .L800BB5B4
/* B32748 800BB5A8 3C048016 */ lui $a0, %hi(D_801612F0) # $a0, 0x8016
/* B3274C 800BB5AC 240E0001 */ li $t6, 1
/* B32750 800BB5B0 AFAE001C */ sw $t6, 0x1c($sp)
.L800BB5B4:
/* B32754 800BB5B4 3C058016 */ lui $a1, %hi(D_80161358) # $a1, 0x8016
/* B32758 800BB5B8 24A51358 */ addiu $a1, %lo(D_80161358) # addiu $a1, $a1, 0x1358
/* B3275C 800BB5BC 0C040010 */ jal func_80100040
/* B32760 800BB5C0 248412F0 */ addiu $a0, %lo(D_801612F0) # addiu $a0, $a0, 0x12f0
/* B32764 800BB5C4 3C048016 */ lui $a0, %hi(gPadMgr) # $a0, 0x8016
/* B32768 800BB5C8 248468C0 */ addiu $a0, %lo(gPadMgr) # addiu $a0, $a0, 0x68c0
/* B3276C 800BB5CC 0C031CBF */ jal PadMgr_UnlockReleaseControllerQueue
/* B32770 800BB5D0 8FA50024 */ lw $a1, 0x24($sp)
/* B32774 800BB5D4 8FBF0014 */ lw $ra, 0x14($sp)
/* B32778 800BB5D8 8FA2001C */ lw $v0, 0x1c($sp)
/* B3277C 800BB5DC 27BD0028 */ addiu $sp, $sp, 0x28
/* B32780 800BB5E0 03E00008 */ jr $ra
/* B32784 800BB5E4 00000000 */ nop
glabel func_800BB5E8
/* B32788 800BB5E8 3C028016 */ lui $v0, %hi(D_80161358)
/* B3278C 800BB5EC AFA40000 */ sw $a0, ($sp)
/* B32790 800BB5F0 03E00008 */ jr $ra
/* B32794 800BB5F4 8C421358 */ lw $v0, %lo(D_80161358)($v0)
glabel func_800BB5F8
/* B32798 800BB5F8 27BDFF98 */ addiu $sp, $sp, -0x68
/* B3279C 800BB5FC AFA40068 */ sw $a0, 0x68($sp)
/* B327A0 800BB600 AFBF0044 */ sw $ra, 0x44($sp)
/* B327A4 800BB604 AFB50034 */ sw $s5, 0x34($sp)
/* B327A8 800BB608 AFB3002C */ sw $s3, 0x2c($sp)
/* B327AC 800BB60C AFB10024 */ sw $s1, 0x24($sp)
/* B327B0 800BB610 AFB00020 */ sw $s0, 0x20($sp)
/* B327B4 800BB614 3C048016 */ lui $a0, %hi(gPadMgr) # $a0, 0x8016
/* B327B8 800BB618 30B000FF */ andi $s0, $a1, 0xff
/* B327BC 800BB61C 30D100FF */ andi $s1, $a2, 0xff
/* B327C0 800BB620 AFBE0040 */ sw $fp, 0x40($sp)
/* B327C4 800BB624 AFB7003C */ sw $s7, 0x3c($sp)
/* B327C8 800BB628 AFB60038 */ sw $s6, 0x38($sp)
/* B327CC 800BB62C AFB40030 */ sw $s4, 0x30($sp)
/* B327D0 800BB630 AFB20028 */ sw $s2, 0x28($sp)
/* B327D4 800BB634 AFA5006C */ sw $a1, 0x6c($sp)
/* B327D8 800BB638 AFA60070 */ sw $a2, 0x70($sp)
/* B327DC 800BB63C 24130001 */ li $s3, 1
/* B327E0 800BB640 0000A825 */ move $s5, $zero
/* B327E4 800BB644 0C031C94 */ jal PadMgr_LockGetControllerQueue
/* B327E8 800BB648 248468C0 */ addiu $a0, %lo(gPadMgr) # addiu $a0, $a0, 0x68c0
/* B327EC 800BB64C 0230082A */ slt $at, $s1, $s0
/* B327F0 800BB650 AFA20064 */ sw $v0, 0x64($sp)
/* B327F4 800BB654 321200FF */ andi $s2, $s0, 0xff
/* B327F8 800BB658 AFB10050 */ sw $s1, 0x50($sp)
/* B327FC 800BB65C 1420002A */ bnez $at, .L800BB708
/* B32800 800BB660 AFB0004C */ sw $s0, 0x4c($sp)
/* B32804 800BB664 3C1E8013 */ lui $fp, %hi(D_8012D184) # $fp, 0x8013
/* B32808 800BB668 3C178013 */ lui $s7, %hi(D_8012D180) # $s7, 0x8013
/* B3280C 800BB66C 3C168016 */ lui $s6, %hi(D_801612F0) # $s6, 0x8016
/* B32810 800BB670 3C148013 */ lui $s4, %hi(D_8012D198) # $s4, 0x8013
/* B32814 800BB674 2694D198 */ addiu $s4, %lo(D_8012D198) # addiu $s4, $s4, -0x2e68
/* B32818 800BB678 26D612F0 */ addiu $s6, %lo(D_801612F0) # addiu $s6, $s6, 0x12f0
/* B3281C 800BB67C 26F7D180 */ addiu $s7, %lo(D_8012D180) # addiu $s7, $s7, -0x2e80
/* B32820 800BB680 27DED184 */ addiu $fp, %lo(D_8012D184) # addiu $fp, $fp, -0x2e7c
/* B32824 800BB684 02408025 */ move $s0, $s2
.L800BB688:
/* B32828 800BB688 3C088016 */ lui $t0, %hi(D_80161360) # $t0, 0x8016
/* B3282C 800BB68C 25081360 */ addiu $t0, %lo(D_80161360) # addiu $t0, $t0, 0x1360
/* B32830 800BB690 0010C880 */ sll $t9, $s0, 2
/* B32834 800BB694 03288821 */ addu $s1, $t9, $t0
/* B32838 800BB698 2618FFD9 */ addiu $t8, $s0, -0x27
/* B3283C 800BB69C 2629FEFC */ addiu $t1, $s1, -0x104
/* B32840 800BB6A0 3C078013 */ lui $a3, %hi(D_8012D188) # $a3, 0x8013
/* B32844 800BB6A4 A2980000 */ sb $t8, ($s4)
/* B32848 800BB6A8 24E7D188 */ addiu $a3, %lo(D_8012D188) # addiu $a3, $a3, -0x2e78
/* B3284C 800BB6AC AFA90014 */ sw $t1, 0x14($sp)
/* B32850 800BB6B0 02C02025 */ move $a0, $s6
/* B32854 800BB6B4 96E50000 */ lhu $a1, ($s7)
/* B32858 800BB6B8 8FC60000 */ lw $a2, ($fp)
/* B3285C 800BB6BC 0C040C04 */ jal func_80103010
/* B32860 800BB6C0 AFB40010 */ sw $s4, 0x10($sp)
/* B32864 800BB6C4 14400003 */ bnez $v0, .L800BB6D4
/* B32868 800BB6C8 00403025 */ move $a2, $v0
/* B3286C 800BB6CC 10000003 */ b .L800BB6DC
/* B32870 800BB6D0 02B3A825 */ or $s5, $s5, $s3
.L800BB6D4:
/* B32874 800BB6D4 240AFFFF */ li $t2, -1
/* B32878 800BB6D8 AE2AFEFC */ sw $t2, -0x104($s1)
.L800BB6DC:
/* B3287C 800BB6DC 3C048014 */ lui $a0, %hi(D_80143CF0) # $a0, 0x8014
/* B32880 800BB6E0 00139840 */ sll $s3, $s3, 1
/* B32884 800BB6E4 24843CF0 */ addiu $a0, %lo(D_80143CF0) # addiu $a0, $a0, 0x3cf0
/* B32888 800BB6E8 0C00084C */ jal osSyncPrintf
/* B3288C 800BB6EC 02002825 */ move $a1, $s0
/* B32890 800BB6F0 8FAB0050 */ lw $t3, 0x50($sp)
/* B32894 800BB6F4 26520001 */ addiu $s2, $s2, 1
/* B32898 800BB6F8 325200FF */ andi $s2, $s2, 0xff
/* B3289C 800BB6FC 0172082A */ slt $at, $t3, $s2
/* B328A0 800BB700 1020FFE1 */ beqz $at, .L800BB688
/* B328A4 800BB704 02408025 */ move $s0, $s2
.L800BB708:
/* B328A8 800BB708 3C048016 */ lui $a0, %hi(gPadMgr) # $a0, 0x8016
/* B328AC 800BB70C 248468C0 */ addiu $a0, %lo(gPadMgr) # addiu $a0, $a0, 0x68c0
/* B328B0 800BB710 0C031CBF */ jal PadMgr_UnlockReleaseControllerQueue
/* B328B4 800BB714 8FA50064 */ lw $a1, 0x64($sp)
/* B328B8 800BB718 3C048014 */ lui $a0, %hi(D_80143D08) # $a0, 0x8014
/* B328BC 800BB71C 24843D08 */ addiu $a0, %lo(D_80143D08) # addiu $a0, $a0, 0x3d08
/* B328C0 800BB720 8FA5004C */ lw $a1, 0x4c($sp)
/* B328C4 800BB724 8FA60050 */ lw $a2, 0x50($sp)
/* B328C8 800BB728 0C00084C */ jal osSyncPrintf
/* B328CC 800BB72C 02A03825 */ move $a3, $s5
/* B328D0 800BB730 8FBF0044 */ lw $ra, 0x44($sp)
/* B328D4 800BB734 02A01025 */ move $v0, $s5
/* B328D8 800BB738 8FB50034 */ lw $s5, 0x34($sp)
/* B328DC 800BB73C 8FB00020 */ lw $s0, 0x20($sp)
/* B328E0 800BB740 8FB10024 */ lw $s1, 0x24($sp)
/* B328E4 800BB744 8FB20028 */ lw $s2, 0x28($sp)
/* B328E8 800BB748 8FB3002C */ lw $s3, 0x2c($sp)
/* B328EC 800BB74C 8FB40030 */ lw $s4, 0x30($sp)
/* B328F0 800BB750 8FB60038 */ lw $s6, 0x38($sp)
/* B328F4 800BB754 8FB7003C */ lw $s7, 0x3c($sp)
/* B328F8 800BB758 8FBE0040 */ lw $fp, 0x40($sp)
/* B328FC 800BB75C 03E00008 */ jr $ra
/* B32900 800BB760 27BD0068 */ addiu $sp, $sp, 0x68
glabel func_800BB764
/* B32904 800BB764 27BDFFC8 */ addiu $sp, $sp, -0x38
/* B32908 800BB768 AFA40038 */ sw $a0, 0x38($sp)
/* B3290C 800BB76C AFBF001C */ sw $ra, 0x1c($sp)
/* B32910 800BB770 3C048016 */ lui $a0, %hi(gPadMgr) # $a0, 0x8016
/* B32914 800BB774 AFA5003C */ sw $a1, 0x3c($sp)
/* B32918 800BB778 AFA60040 */ sw $a2, 0x40($sp)
/* B3291C 800BB77C AFA70044 */ sw $a3, 0x44($sp)
/* B32920 800BB780 AFA0002C */ sw $zero, 0x2c($sp)
/* B32924 800BB784 0C031C94 */ jal PadMgr_LockGetControllerQueue
/* B32928 800BB788 248468C0 */ addiu $a0, %lo(gPadMgr) # addiu $a0, $a0, 0x68c0
/* B3292C 800BB78C 3C0E8016 */ lui $t6, %hi(D_80161358) # $t6, 0x8016
/* B32930 800BB790 8FA80048 */ lw $t0, 0x48($sp)
/* B32934 800BB794 8DCE1358 */ lw $t6, %lo(D_80161358)($t6)
/* B32938 800BB798 3C048016 */ lui $a0, %hi(D_801612F0) # $a0, 0x8016
/* B3293C 800BB79C AFA20034 */ sw $v0, 0x34($sp)
/* B32940 800BB7A0 010E082A */ slt $at, $t0, $t6
/* B32944 800BB7A4 1020001B */ beqz $at, .L800BB814
/* B32948 800BB7A8 248412F0 */ addiu $a0, %lo(D_801612F0) # addiu $a0, $a0, 0x12f0
/* B3294C 800BB7AC 93A2003F */ lbu $v0, 0x3f($sp)
/* B32950 800BB7B0 3C188016 */ lui $t8, %hi(D_80161360) # $t8, 0x8016
/* B32954 800BB7B4 8FB90040 */ lw $t9, 0x40($sp)
/* B32958 800BB7B8 27181360 */ addiu $t8, %lo(D_80161360) # addiu $t8, $t8, 0x1360
/* B3295C 800BB7BC 00027880 */ sll $t7, $v0, 2
/* B32960 800BB7C0 01F81821 */ addu $v1, $t7, $t8
/* B32964 800BB7C4 8C65FEFC */ lw $a1, -0x104($v1)
/* B32968 800BB7C8 AFA30020 */ sw $v1, 0x20($sp)
/* B3296C 800BB7CC 24060001 */ li $a2, 1
/* B32970 800BB7D0 8FA70044 */ lw $a3, 0x44($sp)
/* B32974 800BB7D4 AFA80010 */ sw $t0, 0x10($sp)
/* B32978 800BB7D8 AFA20024 */ sw $v0, 0x24($sp)
/* B3297C 800BB7DC 0C040565 */ jal func_80101594
/* B32980 800BB7E0 AFB90014 */ sw $t9, 0x14($sp)
/* B32984 800BB7E4 8FA30020 */ lw $v1, 0x20($sp)
/* B32988 800BB7E8 14400003 */ bnez $v0, .L800BB7F8
/* B3298C 800BB7EC 00404025 */ move $t0, $v0
/* B32990 800BB7F0 24090001 */ li $t1, 1
/* B32994 800BB7F4 AFA9002C */ sw $t1, 0x2c($sp)
.L800BB7F8:
/* B32998 800BB7F8 3C048014 */ lui $a0, %hi(D_80143D28) # $a0, 0x8014
/* B3299C 800BB7FC 24843D28 */ addiu $a0, %lo(D_80143D28) # addiu $a0, $a0, 0x3d28
/* B329A0 800BB800 8FA50048 */ lw $a1, 0x48($sp)
/* B329A4 800BB804 8FA60024 */ lw $a2, 0x24($sp)
/* B329A8 800BB808 8C67FEFC */ lw $a3, -0x104($v1)
/* B329AC 800BB80C 0C00084C */ jal osSyncPrintf
/* B329B0 800BB810 AFA80010 */ sw $t0, 0x10($sp)
.L800BB814:
/* B329B4 800BB814 3C048016 */ lui $a0, %hi(gPadMgr) # $a0, 0x8016
/* B329B8 800BB818 248468C0 */ addiu $a0, %lo(gPadMgr) # addiu $a0, $a0, 0x68c0
/* B329BC 800BB81C 0C031CBF */ jal PadMgr_UnlockReleaseControllerQueue
/* B329C0 800BB820 8FA50034 */ lw $a1, 0x34($sp)
/* B329C4 800BB824 8FBF001C */ lw $ra, 0x1c($sp)
/* B329C8 800BB828 8FA2002C */ lw $v0, 0x2c($sp)
/* B329CC 800BB82C 27BD0038 */ addiu $sp, $sp, 0x38
/* B329D0 800BB830 03E00008 */ jr $ra
/* B329D4 800BB834 00000000 */ nop
glabel func_800BB838
/* B329D8 800BB838 27BDFFC8 */ addiu $sp, $sp, -0x38
/* B329DC 800BB83C AFA40038 */ sw $a0, 0x38($sp)
/* B329E0 800BB840 AFBF001C */ sw $ra, 0x1c($sp)
/* B329E4 800BB844 3C048016 */ lui $a0, %hi(gPadMgr) # $a0, 0x8016
/* B329E8 800BB848 AFA5003C */ sw $a1, 0x3c($sp)
/* B329EC 800BB84C AFA60040 */ sw $a2, 0x40($sp)
/* B329F0 800BB850 AFA70044 */ sw $a3, 0x44($sp)
/* B329F4 800BB854 AFA0002C */ sw $zero, 0x2c($sp)
/* B329F8 800BB858 0C031C94 */ jal PadMgr_LockGetControllerQueue
/* B329FC 800BB85C 248468C0 */ addiu $a0, %lo(gPadMgr) # addiu $a0, $a0, 0x68c0
/* B32A00 800BB860 3C0E8016 */ lui $t6, %hi(D_80161358) # $t6, 0x8016
/* B32A04 800BB864 8FA80048 */ lw $t0, 0x48($sp)
/* B32A08 800BB868 8DCE1358 */ lw $t6, %lo(D_80161358)($t6)
/* B32A0C 800BB86C 3C048016 */ lui $a0, %hi(D_801612F0) # $a0, 0x8016
/* B32A10 800BB870 AFA20034 */ sw $v0, 0x34($sp)
/* B32A14 800BB874 010E082A */ slt $at, $t0, $t6
/* B32A18 800BB878 1020001B */ beqz $at, .L800BB8E8
/* B32A1C 800BB87C 248412F0 */ addiu $a0, %lo(D_801612F0) # addiu $a0, $a0, 0x12f0
/* B32A20 800BB880 93A2003F */ lbu $v0, 0x3f($sp)
/* B32A24 800BB884 3C188016 */ lui $t8, %hi(D_80161360) # $t8, 0x8016
/* B32A28 800BB888 8FB90040 */ lw $t9, 0x40($sp)
/* B32A2C 800BB88C 27181360 */ addiu $t8, %lo(D_80161360) # addiu $t8, $t8, 0x1360
/* B32A30 800BB890 00027880 */ sll $t7, $v0, 2
/* B32A34 800BB894 01F81821 */ addu $v1, $t7, $t8
/* B32A38 800BB898 8C65FEFC */ lw $a1, -0x104($v1)
/* B32A3C 800BB89C AFA30020 */ sw $v1, 0x20($sp)
/* B32A40 800BB8A0 00003025 */ move $a2, $zero
/* B32A44 800BB8A4 8FA70044 */ lw $a3, 0x44($sp)
/* B32A48 800BB8A8 AFA80010 */ sw $t0, 0x10($sp)
/* B32A4C 800BB8AC AFA20024 */ sw $v0, 0x24($sp)
/* B32A50 800BB8B0 0C040565 */ jal func_80101594
/* B32A54 800BB8B4 AFB90014 */ sw $t9, 0x14($sp)
/* B32A58 800BB8B8 8FA30020 */ lw $v1, 0x20($sp)
/* B32A5C 800BB8BC 14400003 */ bnez $v0, .L800BB8CC
/* B32A60 800BB8C0 00404025 */ move $t0, $v0
/* B32A64 800BB8C4 24090001 */ li $t1, 1
/* B32A68 800BB8C8 AFA9002C */ sw $t1, 0x2c($sp)
.L800BB8CC:
/* B32A6C 800BB8CC 3C048014 */ lui $a0, %hi(D_80143D50) # $a0, 0x8014
/* B32A70 800BB8D0 24843D50 */ addiu $a0, %lo(D_80143D50) # addiu $a0, $a0, 0x3d50
/* B32A74 800BB8D4 8FA50048 */ lw $a1, 0x48($sp)
/* B32A78 800BB8D8 8FA60024 */ lw $a2, 0x24($sp)
/* B32A7C 800BB8DC 8C67FEFC */ lw $a3, -0x104($v1)
/* B32A80 800BB8E0 0C00084C */ jal osSyncPrintf
/* B32A84 800BB8E4 AFA80010 */ sw $t0, 0x10($sp)
.L800BB8E8:
/* B32A88 800BB8E8 3C048016 */ lui $a0, %hi(gPadMgr) # $a0, 0x8016
/* B32A8C 800BB8EC 248468C0 */ addiu $a0, %lo(gPadMgr) # addiu $a0, $a0, 0x68c0
/* B32A90 800BB8F0 0C031CBF */ jal PadMgr_UnlockReleaseControllerQueue
/* B32A94 800BB8F4 8FA50034 */ lw $a1, 0x34($sp)
/* B32A98 800BB8F8 8FBF001C */ lw $ra, 0x1c($sp)
/* B32A9C 800BB8FC 8FA2002C */ lw $v0, 0x2c($sp)
/* B32AA0 800BB900 27BD0038 */ addiu $sp, $sp, 0x38
/* B32AA4 800BB904 03E00008 */ jr $ra
/* B32AA8 800BB908 00000000 */ nop
glabel func_800BB90C
/* B32AAC 800BB90C 27BDFFC0 */ addiu $sp, $sp, -0x40
/* B32AB0 800BB910 AFA40040 */ sw $a0, 0x40($sp)
/* B32AB4 800BB914 AFBF002C */ sw $ra, 0x2c($sp)
/* B32AB8 800BB918 AFB00028 */ sw $s0, 0x28($sp)
/* B32ABC 800BB91C 3C048016 */ lui $a0, %hi(gPadMgr) # $a0, 0x8016
/* B32AC0 800BB920 00A08025 */ move $s0, $a1
/* B32AC4 800BB924 AFA60048 */ sw $a2, 0x48($sp)
/* B32AC8 800BB928 AFA00034 */ sw $zero, 0x34($sp)
/* B32ACC 800BB92C 0C031C94 */ jal PadMgr_LockGetControllerQueue
/* B32AD0 800BB930 248468C0 */ addiu $a0, %lo(gPadMgr) # addiu $a0, $a0, 0x68c0
/* B32AD4 800BB934 AFA2003C */ sw $v0, 0x3c($sp)
/* B32AD8 800BB938 92030000 */ lbu $v1, ($s0)
/* B32ADC 800BB93C 00001025 */ move $v0, $zero
/* B32AE0 800BB940 2405000A */ li $a1, 10
/* B32AE4 800BB944 28610041 */ slti $at, $v1, 0x41
/* B32AE8 800BB948 14200058 */ bnez $at, .L800BBAAC
/* B32AEC 800BB94C 2404FFFF */ li $a0, -1
/* B32AF0 800BB950 2861004C */ slti $at, $v1, 0x4c
/* B32AF4 800BB954 10200055 */ beqz $at, .L800BBAAC
/* B32AF8 800BB958 3C088013 */ lui $t0, %hi(D_8012D198) # $t0, 0x8013
/* B32AFC 800BB95C 2508D198 */ addiu $t0, %lo(D_8012D198) # addiu $t0, $t0, -0x2e68
/* B32B00 800BB960 246EFFD9 */ addiu $t6, $v1, -0x27
/* B32B04 800BB964 A10E0000 */ sb $t6, ($t0)
/* B32B08 800BB968 92030000 */ lbu $v1, ($s0)
/* B32B0C 800BB96C 3C188016 */ lui $t8, %hi(D_80161360) # $t8, 0x8016
/* B32B10 800BB970 27181360 */ addiu $t8, %lo(D_80161360) # addiu $t8, $t8, 0x1360
/* B32B14 800BB974 00037880 */ sll $t7, $v1, 2
/* B32B18 800BB978 01F81021 */ addu $v0, $t7, $t8
/* B32B1C 800BB97C 8C59FEFC */ lw $t9, -0x104($v0)
/* B32B20 800BB980 2404FFFF */ li $a0, -1
/* B32B24 800BB984 3C058013 */ lui $a1, %hi(D_8012D180)
/* B32B28 800BB988 1499001A */ bne $a0, $t9, .L800BB9F4
/* B32B2C 800BB98C 246CFFD9 */ addiu $t4, $v1, -0x27
/* B32B30 800BB990 8FA90048 */ lw $t1, 0x48($sp)
/* B32B34 800BB994 3C048016 */ lui $a0, %hi(D_801612F0) # $a0, 0x8016
/* B32B38 800BB998 3C058013 */ lui $a1, %hi(D_8012D180) # $a1, 0x8013
/* B32B3C 800BB99C 3C068013 */ lui $a2, %hi(D_8012D184) # $a2, 0x8013
/* B32B40 800BB9A0 3C078013 */ lui $a3, %hi(D_8012D188) # $a3, 0x8013
/* B32B44 800BB9A4 244AFEFC */ addiu $t2, $v0, -0x104
/* B32B48 800BB9A8 AFAA0018 */ sw $t2, 0x18($sp)
/* B32B4C 800BB9AC 24E7D188 */ addiu $a3, %lo(D_8012D188) # addiu $a3, $a3, -0x2e78
/* B32B50 800BB9B0 8CC6D184 */ lw $a2, %lo(D_8012D184)($a2)
/* B32B54 800BB9B4 94A5D180 */ lhu $a1, %lo(D_8012D180)($a1)
/* B32B58 800BB9B8 248412F0 */ addiu $a0, %lo(D_801612F0) # addiu $a0, $a0, 0x12f0
/* B32B5C 800BB9BC AFA80010 */ sw $t0, 0x10($sp)
/* B32B60 800BB9C0 0C0407AC */ jal func_80101EB0
/* B32B64 800BB9C4 AFA90014 */ sw $t1, 0x14($sp)
/* B32B68 800BB9C8 14400003 */ bnez $v0, .L800BB9D8
/* B32B6C 800BB9CC 00403825 */ move $a3, $v0
/* B32B70 800BB9D0 240B0001 */ li $t3, 1
/* B32B74 800BB9D4 AFAB0034 */ sw $t3, 0x34($sp)
.L800BB9D8:
/* B32B78 800BB9D8 3C048014 */ lui $a0, %hi(D_80143D74) # $a0, 0x8014
/* B32B7C 800BB9DC 24843D74 */ addiu $a0, %lo(D_80143D74) # addiu $a0, $a0, 0x3d74
/* B32B80 800BB9E0 8FA50048 */ lw $a1, 0x48($sp)
/* B32B84 800BB9E4 0C00084C */ jal osSyncPrintf
/* B32B88 800BB9E8 92060000 */ lbu $a2, ($s0)
/* B32B8C 800BB9EC 10000056 */ b .L800BBB48
/* B32B90 800BB9F0 00000000 */ nop
.L800BB9F4:
/* B32B94 800BB9F4 A10C0000 */ sb $t4, ($t0)
/* B32B98 800BB9F8 3C048016 */ lui $a0, %hi(D_801612F0) # $a0, 0x8016
/* B32B9C 800BB9FC 3C068013 */ lui $a2, %hi(D_8012D184) # $a2, 0x8013
/* B32BA0 800BBA00 3C078013 */ lui $a3, %hi(D_8012D188) # $a3, 0x8013
/* B32BA4 800BBA04 24E7D188 */ addiu $a3, %lo(D_8012D188) # addiu $a3, $a3, -0x2e78
/* B32BA8 800BBA08 8CC6D184 */ lw $a2, %lo(D_8012D184)($a2)
/* B32BAC 800BBA0C 248412F0 */ addiu $a0, %lo(D_801612F0) # addiu $a0, $a0, 0x12f0
/* B32BB0 800BBA10 94A5D180 */ lhu $a1, %lo(D_8012D180)($a1)
/* B32BB4 800BBA14 0C041078 */ jal func_801041E0
/* B32BB8 800BBA18 AFA80010 */ sw $t0, 0x10($sp)
/* B32BBC 800BBA1C 3C088013 */ lui $t0, %hi(D_8012D198) # $t0, 0x8013
/* B32BC0 800BBA20 14400003 */ bnez $v0, .L800BBA30
/* B32BC4 800BBA24 2508D198 */ addiu $t0, %lo(D_8012D198) # addiu $t0, $t0, -0x2e68
/* B32BC8 800BBA28 240D0001 */ li $t5, 1
/* B32BCC 800BBA2C AFAD0034 */ sw $t5, 0x34($sp)
.L800BBA30:
/* B32BD0 800BBA30 8FAE0048 */ lw $t6, 0x48($sp)
/* B32BD4 800BBA34 AFA80010 */ sw $t0, 0x10($sp)
/* B32BD8 800BBA38 3C098016 */ lui $t1, %hi(D_80161360) # $t1, 0x8016
/* B32BDC 800BBA3C AFAE0014 */ sw $t6, 0x14($sp)
/* B32BE0 800BBA40 920F0000 */ lbu $t7, ($s0)
/* B32BE4 800BBA44 25291360 */ addiu $t1, %lo(D_80161360) # addiu $t1, $t1, 0x1360
/* B32BE8 800BBA48 3C048016 */ lui $a0, %hi(D_801612F0) # $a0, 0x8016
/* B32BEC 800BBA4C 000FC080 */ sll $t8, $t7, 2
/* B32BF0 800BBA50 2719FEFC */ addiu $t9, $t8, -0x104
/* B32BF4 800BBA54 03295021 */ addu $t2, $t9, $t1
/* B32BF8 800BBA58 3C058013 */ lui $a1, %hi(D_8012D180) # $a1, 0x8013
/* B32BFC 800BBA5C 3C068013 */ lui $a2, %hi(D_8012D184) # $a2, 0x8013
/* B32C00 800BBA60 3C078013 */ lui $a3, %hi(D_8012D188) # $a3, 0x8013
/* B32C04 800BBA64 24E7D188 */ addiu $a3, %lo(D_8012D188) # addiu $a3, $a3, -0x2e78
/* B32C08 800BBA68 8CC6D184 */ lw $a2, %lo(D_8012D184)($a2)
/* B32C0C 800BBA6C 94A5D180 */ lhu $a1, %lo(D_8012D180)($a1)
/* B32C10 800BBA70 AFAA0018 */ sw $t2, 0x18($sp)
/* B32C14 800BBA74 0C0407AC */ jal func_80101EB0
/* B32C18 800BBA78 248412F0 */ addiu $a0, %lo(D_801612F0) # addiu $a0, $a0, 0x12f0
/* B32C1C 800BBA7C 14400004 */ bnez $v0, .L800BBA90
/* B32C20 800BBA80 00403825 */ move $a3, $v0
/* B32C24 800BBA84 8FAB0034 */ lw $t3, 0x34($sp)
/* B32C28 800BBA88 356C0001 */ ori $t4, $t3, 1
/* B32C2C 800BBA8C AFAC0034 */ sw $t4, 0x34($sp)
.L800BBA90:
/* B32C30 800BBA90 3C048014 */ lui $a0, %hi(D_80143D98) # $a0, 0x8014
/* B32C34 800BBA94 24843D98 */ addiu $a0, %lo(D_80143D98) # addiu $a0, $a0, 0x3d98
/* B32C38 800BBA98 8FA50048 */ lw $a1, 0x48($sp)
/* B32C3C 800BBA9C 0C00084C */ jal osSyncPrintf
/* B32C40 800BBAA0 92060000 */ lbu $a2, ($s0)
/* B32C44 800BBAA4 10000028 */ b .L800BBB48
/* B32C48 800BBAA8 00000000 */ nop
.L800BBAAC:
/* B32C4C 800BBAAC 3C038016 */ lui $v1, %hi(D_80161360) # $v1, 0x8016
/* B32C50 800BBAB0 24631360 */ addiu $v1, %lo(D_80161360) # addiu $v1, $v1, 0x1360
.L800BBAB4:
/* B32C54 800BBAB4 8C6D0000 */ lw $t5, ($v1)
/* B32C58 800BBAB8 508D0005 */ beql $a0, $t5, .L800BBAD0
/* B32C5C 800BBABC 244F0041 */ addiu $t7, $v0, 0x41
/* B32C60 800BBAC0 24420001 */ addiu $v0, $v0, 1
/* B32C64 800BBAC4 1445FFFB */ bne $v0, $a1, .L800BBAB4
/* B32C68 800BBAC8 24630004 */ addiu $v1, $v1, 4
/* B32C6C 800BBACC 244F0041 */ addiu $t7, $v0, 0x41
.L800BBAD0:
/* B32C70 800BBAD0 A20F0000 */ sb $t7, ($s0)
/* B32C74 800BBAD4 3C088013 */ lui $t0, %hi(D_8012D198) # $t0, 0x8013
/* B32C78 800BBAD8 8FB90048 */ lw $t9, 0x48($sp)
/* B32C7C 800BBADC 2508D198 */ addiu $t0, %lo(D_8012D198) # addiu $t0, $t0, -0x2e68
/* B32C80 800BBAE0 25F8FFD9 */ addiu $t8, $t7, -0x27
/* B32C84 800BBAE4 A1180000 */ sb $t8, ($t0)
/* B32C88 800BBAE8 3C048016 */ lui $a0, %hi(D_801612F0) # $a0, 0x8016
/* B32C8C 800BBAEC 3C058013 */ lui $a1, %hi(D_8012D180) # $a1, 0x8013
/* B32C90 800BBAF0 3C068013 */ lui $a2, %hi(D_8012D184) # $a2, 0x8013
/* B32C94 800BBAF4 3C078013 */ lui $a3, %hi(D_8012D188) # $a3, 0x8013
/* B32C98 800BBAF8 24E7D188 */ addiu $a3, %lo(D_8012D188) # addiu $a3, $a3, -0x2e78
/* B32C9C 800BBAFC 8CC6D184 */ lw $a2, %lo(D_8012D184)($a2)
/* B32CA0 800BBB00 94A5D180 */ lhu $a1, %lo(D_8012D180)($a1)
/* B32CA4 800BBB04 248412F0 */ addiu $a0, %lo(D_801612F0) # addiu $a0, $a0, 0x12f0
/* B32CA8 800BBB08 AFA80010 */ sw $t0, 0x10($sp)
/* B32CAC 800BBB0C AFA30018 */ sw $v1, 0x18($sp)
/* B32CB0 800BBB10 0C0407AC */ jal func_80101EB0
/* B32CB4 800BBB14 AFB90014 */ sw $t9, 0x14($sp)
/* B32CB8 800BBB18 AFA20038 */ sw $v0, 0x38($sp)
/* B32CBC 800BBB1C 3C048014 */ lui $a0, %hi(D_80143DBC) # $a0, 0x8014
/* B32CC0 800BBB20 24843DBC */ addiu $a0, %lo(D_80143DBC) # addiu $a0, $a0, 0x3dbc
/* B32CC4 800BBB24 92060000 */ lbu $a2, ($s0)
/* B32CC8 800BBB28 8FA50048 */ lw $a1, 0x48($sp)
/* B32CCC 800BBB2C 0C00084C */ jal osSyncPrintf
/* B32CD0 800BBB30 00403825 */ move $a3, $v0
/* B32CD4 800BBB34 8FA90038 */ lw $t1, 0x38($sp)
/* B32CD8 800BBB38 240A0001 */ li $t2, 1
/* B32CDC 800BBB3C 15200002 */ bnez $t1, .L800BBB48
/* B32CE0 800BBB40 00000000 */ nop
/* B32CE4 800BBB44 AFAA0034 */ sw $t2, 0x34($sp)
.L800BBB48:
/* B32CE8 800BBB48 3C048016 */ lui $a0, %hi(gPadMgr) # $a0, 0x8016
/* B32CEC 800BBB4C 248468C0 */ addiu $a0, %lo(gPadMgr) # addiu $a0, $a0, 0x68c0
/* B32CF0 800BBB50 0C031CBF */ jal PadMgr_UnlockReleaseControllerQueue
/* B32CF4 800BBB54 8FA5003C */ lw $a1, 0x3c($sp)
/* B32CF8 800BBB58 8FBF002C */ lw $ra, 0x2c($sp)
/* B32CFC 800BBB5C 8FA20034 */ lw $v0, 0x34($sp)
/* B32D00 800BBB60 8FB00028 */ lw $s0, 0x28($sp)
/* B32D04 800BBB64 03E00008 */ jr $ra
/* B32D08 800BBB68 27BD0040 */ addiu $sp, $sp, 0x40
glabel func_800BBB6C
/* B32D0C 800BBB6C 27BDFFD0 */ addiu $sp, $sp, -0x30
/* B32D10 800BBB70 AFA40030 */ sw $a0, 0x30($sp)
/* B32D14 800BBB74 AFBF001C */ sw $ra, 0x1c($sp)
/* B32D18 800BBB78 3C048016 */ lui $a0, %hi(gPadMgr) # $a0, 0x8016
/* B32D1C 800BBB7C AFA50034 */ sw $a1, 0x34($sp)
/* B32D20 800BBB80 AFA00024 */ sw $zero, 0x24($sp)
/* B32D24 800BBB84 0C031C94 */ jal PadMgr_LockGetControllerQueue
/* B32D28 800BBB88 248468C0 */ addiu $a0, %lo(gPadMgr) # addiu $a0, $a0, 0x68c0
/* B32D2C 800BBB8C 93A30037 */ lbu $v1, 0x37($sp)
/* B32D30 800BBB90 3C088013 */ lui $t0, %hi(D_8012D198) # $t0, 0x8013
/* B32D34 800BBB94 2508D198 */ addiu $t0, %lo(D_8012D198) # addiu $t0, $t0, -0x2e68
/* B32D38 800BBB98 246EFFD9 */ addiu $t6, $v1, -0x27
/* B32D3C 800BBB9C A10E0000 */ sb $t6, ($t0)
/* B32D40 800BBBA0 3C048016 */ lui $a0, %hi(D_801612F0) # $a0, 0x8016
/* B32D44 800BBBA4 3C058013 */ lui $a1, %hi(D_8012D180) # $a1, 0x8013
/* B32D48 800BBBA8 3C068013 */ lui $a2, %hi(D_8012D184) # $a2, 0x8013
/* B32D4C 800BBBAC 3C078013 */ lui $a3, %hi(D_8012D188) # $a3, 0x8013
/* B32D50 800BBBB0 AFA2002C */ sw $v0, 0x2c($sp)
/* B32D54 800BBBB4 24E7D188 */ addiu $a3, %lo(D_8012D188) # addiu $a3, $a3, -0x2e78
/* B32D58 800BBBB8 8CC6D184 */ lw $a2, %lo(D_8012D184)($a2)
/* B32D5C 800BBBBC 94A5D180 */ lhu $a1, %lo(D_8012D180)($a1)
/* B32D60 800BBBC0 248412F0 */ addiu $a0, %lo(D_801612F0) # addiu $a0, $a0, 0x12f0
/* B32D64 800BBBC4 AFA80010 */ sw $t0, 0x10($sp)
/* B32D68 800BBBC8 0C041078 */ jal func_801041E0
/* B32D6C 800BBBCC AFA30020 */ sw $v1, 0x20($sp)
/* B32D70 800BBBD0 14400003 */ bnez $v0, .L800BBBE0
/* B32D74 800BBBD4 00403025 */ move $a2, $v0
/* B32D78 800BBBD8 240F0001 */ li $t7, 1
/* B32D7C 800BBBDC AFAF0024 */ sw $t7, 0x24($sp)
.L800BBBE0:
/* B32D80 800BBBE0 3C048014 */ lui $a0, %hi(D_80143DEC) # $a0, 0x8014
/* B32D84 800BBBE4 24843DEC */ addiu $a0, %lo(D_80143DEC) # addiu $a0, $a0, 0x3dec
/* B32D88 800BBBE8 0C00084C */ jal osSyncPrintf
/* B32D8C 800BBBEC 8FA50020 */ lw $a1, 0x20($sp)
/* B32D90 800BBBF0 3C048016 */ lui $a0, %hi(gPadMgr) # $a0, 0x8016
/* B32D94 800BBBF4 248468C0 */ addiu $a0, %lo(gPadMgr) # addiu $a0, $a0, 0x68c0
/* B32D98 800BBBF8 0C031CBF */ jal PadMgr_UnlockReleaseControllerQueue
/* B32D9C 800BBBFC 8FA5002C */ lw $a1, 0x2c($sp)
/* B32DA0 800BBC00 8FBF001C */ lw $ra, 0x1c($sp)
/* B32DA4 800BBC04 8FA20024 */ lw $v0, 0x24($sp)
/* B32DA8 800BBC08 27BD0030 */ addiu $sp, $sp, 0x30
/* B32DAC 800BBC0C 03E00008 */ jr $ra
/* B32DB0 800BBC10 00000000 */ nop
glabel func_800BBC14
/* B32DB4 800BBC14 27BDFFB8 */ addiu $sp, $sp, -0x48
/* B32DB8 800BBC18 AFA40048 */ sw $a0, 0x48($sp)
/* B32DBC 800BBC1C AFBF0014 */ sw $ra, 0x14($sp)
/* B32DC0 800BBC20 3C048016 */ lui $a0, %hi(gPadMgr) # $a0, 0x8016
/* B32DC4 800BBC24 AFA5004C */ sw $a1, 0x4c($sp)
/* B32DC8 800BBC28 0C031C94 */ jal PadMgr_LockGetControllerQueue
/* B32DCC 800BBC2C 248468C0 */ addiu $a0, %lo(gPadMgr) # addiu $a0, $a0, 0x68c0
/* B32DD0 800BBC30 93AE004F */ lbu $t6, 0x4f($sp)
/* B32DD4 800BBC34 3C058016 */ lui $a1, %hi(D_8016125C)
/* B32DD8 800BBC38 3C048016 */ lui $a0, %hi(D_801612F0) # $a0, 0x8016
/* B32DDC 800BBC3C 000E7880 */ sll $t7, $t6, 2
/* B32DE0 800BBC40 00AF2821 */ addu $a1, $a1, $t7
/* B32DE4 800BBC44 AFA20044 */ sw $v0, 0x44($sp)
/* B32DE8 800BBC48 8CA5125C */ lw $a1, %lo(D_8016125C)($a1)
/* B32DEC 800BBC4C 248412F0 */ addiu $a0, %lo(D_801612F0) # addiu $a0, $a0, 0x12f0
/* B32DF0 800BBC50 0C041358 */ jal func_80104D60
/* B32DF4 800BBC54 27A60024 */ addiu $a2, $sp, 0x24
/* B32DF8 800BBC58 3C048016 */ lui $a0, %hi(gPadMgr) # $a0, 0x8016
/* B32DFC 800BBC5C AFA20020 */ sw $v0, 0x20($sp)
/* B32E00 800BBC60 248468C0 */ addiu $a0, %lo(gPadMgr) # addiu $a0, $a0, 0x68c0
/* B32E04 800BBC64 0C031CBF */ jal PadMgr_UnlockReleaseControllerQueue
/* B32E08 800BBC68 8FA50044 */ lw $a1, 0x44($sp)
/* B32E0C 800BBC6C 8FB80020 */ lw $t8, 0x20($sp)
/* B32E10 800BBC70 8FBF0014 */ lw $ra, 0x14($sp)
/* B32E14 800BBC74 8FA20024 */ lw $v0, 0x24($sp)
/* B32E18 800BBC78 13000003 */ beqz $t8, .L800BBC88
/* B32E1C 800BBC7C 00000000 */ nop
/* B32E20 800BBC80 10000001 */ b .L800BBC88
/* B32E24 800BBC84 00001025 */ move $v0, $zero
.L800BBC88:
/* B32E28 800BBC88 03E00008 */ jr $ra
/* B32E2C 800BBC8C 27BD0048 */ addiu $sp, $sp, 0x48

32
asm/code_800C3C20.s Normal file
View file

@ -0,0 +1,32 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800C3C20
/* B3ADC0 800C3C20 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B3ADC4 800C3C24 AFB10018 */ sw $s1, 0x18($sp)
/* B3ADC8 800C3C28 AFB00014 */ sw $s0, 0x14($sp)
/* B3ADCC 800C3C2C 3C108013 */ lui $s0, %hi(D_8012D200) # $s0, 0x8013
/* B3ADD0 800C3C30 3C118013 */ lui $s1, %hi(D_8012D207) # $s1, 0x8013
/* B3ADD4 800C3C34 AFBF001C */ sw $ra, 0x1c($sp)
/* B3ADD8 800C3C38 2631D207 */ addiu $s1, %lo(D_8012D207) # addiu $s1, $s1, -0x2df9
/* B3ADDC 800C3C3C 2610D200 */ addiu $s0, %lo(D_8012D200) # addiu $s0, $s0, -0x2e00
.L800C3C40:
/* B3ADE0 800C3C40 0C03E1E8 */ jal func_800F87A0
/* B3ADE4 800C3C44 92040000 */ lbu $a0, ($s0)
/* B3ADE8 800C3C48 26100001 */ addiu $s0, $s0, 1
/* B3ADEC 800C3C4C 0211082B */ sltu $at, $s0, $s1
/* B3ADF0 800C3C50 1420FFFB */ bnez $at, .L800C3C40
/* B3ADF4 800C3C54 00000000 */ nop
/* B3ADF8 800C3C58 8FBF001C */ lw $ra, 0x1c($sp)
/* B3ADFC 800C3C5C 8FB00014 */ lw $s0, 0x14($sp)
/* B3AE00 800C3C60 8FB10018 */ lw $s1, 0x18($sp)
/* B3AE04 800C3C64 03E00008 */ jr $ra
/* B3AE08 800C3C68 27BD0020 */ addiu $sp, $sp, 0x20

256
asm/code_800D2E30.s Normal file
View file

@ -0,0 +1,256 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800D2E30
/* B49FD0 800D2E30 2402FFFF */ li $v0, -1
/* B49FD4 800D2E34 00001825 */ move $v1, $zero
/* B49FD8 800D2E38 00802825 */ move $a1, $a0
.L800D2E3C:
/* B49FDC 800D2E3C 24630001 */ addiu $v1, $v1, 1
/* B49FE0 800D2E40 28610004 */ slti $at, $v1, 4
/* B49FE4 800D2E44 24A50001 */ addiu $a1, $a1, 1
/* B49FE8 800D2E48 1420FFFC */ bnez $at, .L800D2E3C
/* B49FEC 800D2E4C A0A0FFFF */ sb $zero, -1($a1)
/* B49FF0 800D2E50 90830105 */ lbu $v1, 0x105($a0)
/* B49FF4 800D2E54 3C0E8013 */ lui $t6, %hi(D_8012DBB0) # $t6, 0x8013
/* B49FF8 800D2E58 3C018013 */ lui $at, %hi(D_8012DBB0)
/* B49FFC 800D2E5C 14600010 */ bnez $v1, .L800D2EA0
/* B4A000 800D2E60 00000000 */ nop
/* B4A004 800D2E64 91CEDBB0 */ lbu $t6, %lo(D_8012DBB0)($t6)
/* B4A008 800D2E68 3C018016 */ lui $at, %hi(gPadMgr+0x2AE) # $at, 0x8016
/* B4A00C 800D2E6C 11C00009 */ beqz $t6, .L800D2E94
/* B4A010 800D2E70 00000000 */ nop
/* B4A014 800D2E74 A0206B6E */ sb $zero, %lo(gPadMgr+0x2AE)($at)
/* B4A018 800D2E78 3C018016 */ lui $at, %hi(gPadMgr+0x2AF) # $at, 0x8016
/* B4A01C 800D2E7C A0206B6F */ sb $zero, %lo(gPadMgr+0x2AF)($at)
/* B4A020 800D2E80 3C018016 */ lui $at, %hi(gPadMgr+0x2B0) # $at, 0x8016
/* B4A024 800D2E84 A0206B70 */ sb $zero, %lo(gPadMgr+0x2B0)($at)
/* B4A028 800D2E88 3C018016 */ lui $at, %hi(gPadMgr+0x2B1) # $at, 0x8016
/* B4A02C 800D2E8C A0206B71 */ sb $zero, %lo(gPadMgr+0x2B1)($at)
/* B4A030 800D2E90 90830105 */ lbu $v1, 0x105($a0)
.L800D2E94:
/* B4A034 800D2E94 3C018013 */ lui $at, %hi(D_8012DBB0)
/* B4A038 800D2E98 03E00008 */ jr $ra
/* B4A03C 800D2E9C A023DBB0 */ sb $v1, %lo(D_8012DBB0)($at)
.L800D2EA0:
/* B4A040 800D2EA0 A023DBB0 */ sb $v1, %lo(D_8012DBB0)($at)
/* B4A044 800D2EA4 90850104 */ lbu $a1, 0x104($a0)
/* B4A048 800D2EA8 24010002 */ li $at, 2
/* B4A04C 800D2EAC 3C038016 */ lui $v1, %hi(gPadMgr+4) # $v1, 0x8016
/* B4A050 800D2EB0 14A10027 */ bne $a1, $at, .L800D2F50
/* B4A054 800D2EB4 246368C4 */ addiu $v1, %lo(gPadMgr+4) # addiu $v1, $v1, 0x68c4
/* B4A058 800D2EB8 3C058016 */ lui $a1, %hi(gPadMgr) # $a1, 0x8016
/* B4A05C 800D2EBC 24A568C0 */ addiu $a1, %lo(gPadMgr) # addiu $a1, $a1, 0x68c0
.L800D2EC0:
/* B4A060 800D2EC0 24A50001 */ addiu $a1, $a1, 1
/* B4A064 800D2EC4 00A3082B */ sltu $at, $a1, $v1
/* B4A068 800D2EC8 1420FFFD */ bnez $at, .L800D2EC0
/* B4A06C 800D2ECC A0A002AD */ sb $zero, 0x2ad($a1)
/* B4A070 800D2ED0 00001825 */ move $v1, $zero
/* B4A074 800D2ED4 00802825 */ move $a1, $a0
/* B4A078 800D2ED8 24080040 */ li $t0, 64
.L800D2EDC:
/* B4A07C 800D2EDC 24630004 */ addiu $v1, $v1, 4
/* B4A080 800D2EE0 A0A000C5 */ sb $zero, 0xc5($a1)
/* B4A084 800D2EE4 A0A00085 */ sb $zero, 0x85($a1)
/* B4A088 800D2EE8 A0A00045 */ sb $zero, 0x45($a1)
/* B4A08C 800D2EEC A0A00005 */ sb $zero, 5($a1)
/* B4A090 800D2EF0 A0A000C6 */ sb $zero, 0xc6($a1)
/* B4A094 800D2EF4 A0A00086 */ sb $zero, 0x86($a1)
/* B4A098 800D2EF8 A0A00046 */ sb $zero, 0x46($a1)
/* B4A09C 800D2EFC A0A00006 */ sb $zero, 6($a1)
/* B4A0A0 800D2F00 A0A000C7 */ sb $zero, 0xc7($a1)
/* B4A0A4 800D2F04 A0A00087 */ sb $zero, 0x87($a1)
/* B4A0A8 800D2F08 A0A00047 */ sb $zero, 0x47($a1)
/* B4A0AC 800D2F0C A0A00007 */ sb $zero, 7($a1)
/* B4A0B0 800D2F10 24A50004 */ addiu $a1, $a1, 4
/* B4A0B4 800D2F14 A0A000C0 */ sb $zero, 0xc0($a1)
/* B4A0B8 800D2F18 A0A00080 */ sb $zero, 0x80($a1)
/* B4A0BC 800D2F1C A0A00040 */ sb $zero, 0x40($a1)
/* B4A0C0 800D2F20 1468FFEE */ bne $v1, $t0, .L800D2EDC
/* B4A0C4 800D2F24 A0A00000 */ sb $zero, ($a1)
/* B4A0C8 800D2F28 300300FF */ andi $v1, $zero, 0xff
/* B4A0CC 800D2F2C 240F0001 */ li $t7, 1
/* B4A0D0 800D2F30 A083010C */ sb $v1, 0x10c($a0)
/* B4A0D4 800D2F34 A083010B */ sb $v1, 0x10b($a0)
/* B4A0D8 800D2F38 A083010A */ sb $v1, 0x10a($a0)
/* B4A0DC 800D2F3C A4830108 */ sh $v1, 0x108($a0)
/* B4A0E0 800D2F40 A4830106 */ sh $v1, 0x106($a0)
/* B4A0E4 800D2F44 A080010D */ sb $zero, 0x10d($a0)
/* B4A0E8 800D2F48 A08F0104 */ sb $t7, 0x104($a0)
/* B4A0EC 800D2F4C 31E500FF */ andi $a1, $t7, 0xff
.L800D2F50:
/* B4A0F0 800D2F50 10A0005D */ beqz $a1, .L800D30C8
/* B4A0F4 800D2F54 24080040 */ li $t0, 64
/* B4A0F8 800D2F58 00001825 */ move $v1, $zero
/* B4A0FC 800D2F5C 00802825 */ move $a1, $a0
/* B4A100 800D2F60 2409FFFF */ li $t1, -1
.L800D2F64:
/* B4A104 800D2F64 90A60004 */ lbu $a2, 4($a1)
/* B4A108 800D2F68 50C00021 */ beql $a2, $zero, .L800D2FF0
/* B4A10C 800D2F6C 24630001 */ addiu $v1, $v1, 1
/* B4A110 800D2F70 90A70044 */ lbu $a3, 0x44($a1)
/* B4A114 800D2F74 00826021 */ addu $t4, $a0, $v0
/* B4A118 800D2F78 18E00003 */ blez $a3, .L800D2F88
/* B4A11C 800D2F7C 24F8FFFF */ addiu $t8, $a3, -1
/* B4A120 800D2F80 10000008 */ b .L800D2FA4
/* B4A124 800D2F84 A0B80044 */ sb $t8, 0x44($a1)
.L800D2F88:
/* B4A128 800D2F88 90B90084 */ lbu $t9, 0x84($a1)
/* B4A12C 800D2F8C 00D93823 */ subu $a3, $a2, $t9
/* B4A130 800D2F90 58E00004 */ blezl $a3, .L800D2FA4
/* B4A134 800D2F94 A0A00004 */ sb $zero, 4($a1)
/* B4A138 800D2F98 10000002 */ b .L800D2FA4
/* B4A13C 800D2F9C A0A70004 */ sb $a3, 4($a1)
/* B4A140 800D2FA0 A0A00004 */ sb $zero, 4($a1)
.L800D2FA4:
/* B4A144 800D2FA4 90A60004 */ lbu $a2, 4($a1)
/* B4A148 800D2FA8 90AA00C4 */ lbu $t2, 0xc4($a1)
/* B4A14C 800D2FAC 00CA3821 */ addu $a3, $a2, $t2
/* B4A150 800D2FB0 14490006 */ bne $v0, $t1, .L800D2FCC
/* B4A154 800D2FB4 A0A700C4 */ sb $a3, 0xc4($a1)
/* B4A158 800D2FB8 28EB0100 */ slti $t3, $a3, 0x100
/* B4A15C 800D2FBC 396B0001 */ xori $t3, $t3, 1
/* B4A160 800D2FC0 00601025 */ move $v0, $v1
/* B4A164 800D2FC4 10000009 */ b .L800D2FEC
/* B4A168 800D2FC8 A08B0000 */ sb $t3, ($a0)
.L800D2FCC:
/* B4A16C 800D2FCC 918D0004 */ lbu $t5, 4($t4)
/* B4A170 800D2FD0 28EE0100 */ slti $t6, $a3, 0x100
/* B4A174 800D2FD4 39CE0001 */ xori $t6, $t6, 1
/* B4A178 800D2FD8 01A6082A */ slt $at, $t5, $a2
/* B4A17C 800D2FDC 50200004 */ beql $at, $zero, .L800D2FF0
/* B4A180 800D2FE0 24630001 */ addiu $v1, $v1, 1
/* B4A184 800D2FE4 00601025 */ move $v0, $v1
/* B4A188 800D2FE8 A08E0000 */ sb $t6, ($a0)
.L800D2FEC:
/* B4A18C 800D2FEC 24630001 */ addiu $v1, $v1, 1
.L800D2FF0:
/* B4A190 800D2FF0 1468FFDC */ bne $v1, $t0, .L800D2F64
/* B4A194 800D2FF4 24A50001 */ addiu $a1, $a1, 1
/* B4A198 800D2FF8 9083010A */ lbu $v1, 0x10a($a0)
/* B4A19C 800D2FFC 10600014 */ beqz $v1, .L800D3050
/* B4A1A0 800D3000 00000000 */ nop
/* B4A1A4 800D3004 9085010B */ lbu $a1, 0x10b($a0)
/* B4A1A8 800D3008 18A00003 */ blez $a1, .L800D3018
/* B4A1AC 800D300C 24AFFFFF */ addiu $t7, $a1, -1
/* B4A1B0 800D3010 10000008 */ b .L800D3034
/* B4A1B4 800D3014 A08F010B */ sb $t7, 0x10b($a0)
.L800D3018:
/* B4A1B8 800D3018 9098010C */ lbu $t8, 0x10c($a0)
/* B4A1BC 800D301C 00783823 */ subu $a3, $v1, $t8
/* B4A1C0 800D3020 58E00004 */ blezl $a3, .L800D3034
/* B4A1C4 800D3024 A080010A */ sb $zero, 0x10a($a0)
/* B4A1C8 800D3028 10000002 */ b .L800D3034
/* B4A1CC 800D302C A087010A */ sb $a3, 0x10a($a0)
/* B4A1D0 800D3030 A080010A */ sb $zero, 0x10a($a0)
.L800D3034:
/* B4A1D4 800D3034 9083010A */ lbu $v1, 0x10a($a0)
/* B4A1D8 800D3038 9099010D */ lbu $t9, 0x10d($a0)
/* B4A1DC 800D303C 03233821 */ addu $a3, $t9, $v1
/* B4A1E0 800D3040 28EA0100 */ slti $t2, $a3, 0x100
/* B4A1E4 800D3044 394A0001 */ xori $t2, $t2, 1
/* B4A1E8 800D3048 A087010D */ sb $a3, 0x10d($a0)
/* B4A1EC 800D304C A08A0000 */ sb $t2, ($a0)
.L800D3050:
/* B4A1F0 800D3050 10600003 */ beqz $v1, .L800D3060
/* B4A1F4 800D3054 00000000 */ nop
/* B4A1F8 800D3058 10000006 */ b .L800D3074
/* B4A1FC 800D305C 00603825 */ move $a3, $v1
.L800D3060:
/* B4A200 800D3060 14490003 */ bne $v0, $t1, .L800D3070
/* B4A204 800D3064 00825821 */ addu $t3, $a0, $v0
/* B4A208 800D3068 10000002 */ b .L800D3074
/* B4A20C 800D306C 00003825 */ move $a3, $zero
.L800D3070:
/* B4A210 800D3070 91670004 */ lbu $a3, 4($t3)
.L800D3074:
/* B4A214 800D3074 54E0000C */ bnezl $a3, .L800D30A8
/* B4A218 800D3078 94980106 */ lhu $t8, 0x106($a0)
/* B4A21C 800D307C 948C0108 */ lhu $t4, 0x108($a0)
/* B4A220 800D3080 240F0005 */ li $t7, 5
/* B4A224 800D3084 258D0001 */ addiu $t5, $t4, 1
/* B4A228 800D3088 31AEFFFF */ andi $t6, $t5, 0xffff
/* B4A22C 800D308C 29C10006 */ slti $at, $t6, 6
/* B4A230 800D3090 14200029 */ bnez $at, .L800D3138
/* B4A234 800D3094 A48D0108 */ sh $t5, 0x108($a0)
/* B4A238 800D3098 A4800106 */ sh $zero, 0x106($a0)
/* B4A23C 800D309C 03E00008 */ jr $ra
/* B4A240 800D30A0 A48F0108 */ sh $t7, 0x108($a0)
/* B4A244 800D30A4 94980106 */ lhu $t8, 0x106($a0)
.L800D30A8:
/* B4A248 800D30A8 A4800108 */ sh $zero, 0x108($a0)
/* B4A24C 800D30AC 27190001 */ addiu $t9, $t8, 1
/* B4A250 800D30B0 332AFFFF */ andi $t2, $t9, 0xffff
/* B4A254 800D30B4 29411C21 */ slti $at, $t2, 0x1c21
/* B4A258 800D30B8 1420001F */ bnez $at, .L800D3138
/* B4A25C 800D30BC A4990106 */ sh $t9, 0x106($a0)
/* B4A260 800D30C0 03E00008 */ jr $ra
/* B4A264 800D30C4 A0800104 */ sb $zero, 0x104($a0)
.L800D30C8:
/* B4A268 800D30C8 00001825 */ move $v1, $zero
/* B4A26C 800D30CC 00802825 */ move $a1, $a0
.L800D30D0:
/* B4A270 800D30D0 24630004 */ addiu $v1, $v1, 4
/* B4A274 800D30D4 A0A000C5 */ sb $zero, 0xc5($a1)
/* B4A278 800D30D8 A0A00085 */ sb $zero, 0x85($a1)
/* B4A27C 800D30DC A0A00045 */ sb $zero, 0x45($a1)
/* B4A280 800D30E0 A0A00005 */ sb $zero, 5($a1)
/* B4A284 800D30E4 A0A000C6 */ sb $zero, 0xc6($a1)
/* B4A288 800D30E8 A0A00086 */ sb $zero, 0x86($a1)
/* B4A28C 800D30EC A0A00046 */ sb $zero, 0x46($a1)
/* B4A290 800D30F0 A0A00006 */ sb $zero, 6($a1)
/* B4A294 800D30F4 A0A000C7 */ sb $zero, 0xc7($a1)
/* B4A298 800D30F8 A0A00087 */ sb $zero, 0x87($a1)
/* B4A29C 800D30FC A0A00047 */ sb $zero, 0x47($a1)
/* B4A2A0 800D3100 A0A00007 */ sb $zero, 7($a1)
/* B4A2A4 800D3104 24A50004 */ addiu $a1, $a1, 4
/* B4A2A8 800D3108 A0A000C0 */ sb $zero, 0xc0($a1)
/* B4A2AC 800D310C A0A00080 */ sb $zero, 0x80($a1)
/* B4A2B0 800D3110 A0A00040 */ sb $zero, 0x40($a1)
/* B4A2B4 800D3114 1468FFEE */ bne $v1, $t0, .L800D30D0
/* B4A2B8 800D3118 A0A00000 */ sb $zero, ($a1)
/* B4A2BC 800D311C 300300FF */ andi $v1, $zero, 0xff
/* B4A2C0 800D3120 A083010C */ sb $v1, 0x10c($a0)
/* B4A2C4 800D3124 A083010B */ sb $v1, 0x10b($a0)
/* B4A2C8 800D3128 A083010A */ sb $v1, 0x10a($a0)
/* B4A2CC 800D312C A4830108 */ sh $v1, 0x108($a0)
/* B4A2D0 800D3130 A4830106 */ sh $v1, 0x106($a0)
/* B4A2D4 800D3134 A080010D */ sb $zero, 0x10d($a0)
.L800D3138:
/* B4A2D8 800D3138 03E00008 */ jr $ra
/* B4A2DC 800D313C 00000000 */ nop
glabel func_800D3140
/* B4A2E0 800D3140 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B4A2E4 800D3144 AFBF0014 */ sw $ra, 0x14($sp)
/* B4A2E8 800D3148 AFA40018 */ sw $a0, 0x18($sp)
/* B4A2EC 800D314C 0C001114 */ jal bzero
/* B4A2F0 800D3150 2405010E */ li $a1, 270
/* B4A2F4 800D3154 8FA40018 */ lw $a0, 0x18($sp)
/* B4A2F8 800D3158 240E0002 */ li $t6, 2
/* B4A2FC 800D315C 240F0001 */ li $t7, 1
/* B4A300 800D3160 A08E0104 */ sb $t6, 0x104($a0)
/* B4A304 800D3164 A08F0105 */ sb $t7, 0x105($a0)
/* B4A308 800D3168 8FBF0014 */ lw $ra, 0x14($sp)
/* B4A30C 800D316C 27BD0018 */ addiu $sp, $sp, 0x18
/* B4A310 800D3170 03E00008 */ jr $ra
/* B4A314 800D3174 00000000 */ nop
glabel func_800D3178
/* B4A318 800D3178 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B4A31C 800D317C AFBF0014 */ sw $ra, 0x14($sp)
/* B4A320 800D3180 0C001114 */ jal bzero
/* B4A324 800D3184 2405010E */ li $a1, 270
/* B4A328 800D3188 8FBF0014 */ lw $ra, 0x14($sp)
/* B4A32C 800D318C 27BD0018 */ addiu $sp, $sp, 0x18
/* B4A330 800D3190 03E00008 */ jr $ra
/* B4A334 800D3194 00000000 */ nop

48
asm/code_800D31A0.s Normal file
View file

@ -0,0 +1,48 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800D31A0
/* B4A340 800D31A0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B4A344 800D31A4 AFBF0014 */ sw $ra, 0x14($sp)
/* B4A348 800D31A8 3C048014 */ lui $a0, %hi(D_80146670) # $a0, 0x8014
/* B4A34C 800D31AC 0C00084C */ jal osSyncPrintf
/* B4A350 800D31B0 24846670 */ addiu $a0, %lo(D_80146670) # addiu $a0, $a0, 0x6670
.L800D31B4:
/* B4A354 800D31B4 0C03FD2B */ jal func_800FF4AC
/* B4A358 800D31B8 240403E8 */ li $a0, 1000
/* B4A35C 800D31BC 1000FFFD */ b .L800D31B4
/* B4A360 800D31C0 00000000 */ nop
/* B4A364 800D31C4 00000000 */ nop
/* B4A368 800D31C8 00000000 */ nop
/* B4A36C 800D31CC 00000000 */ nop
/* B4A370 800D31D0 00000000 */ nop
/* B4A374 800D31D4 00000000 */ nop
/* B4A378 800D31D8 00000000 */ nop
/* B4A37C 800D31DC 00000000 */ nop
/* B4A380 800D31E0 8FBF0014 */ lw $ra, 0x14($sp)
/* B4A384 800D31E4 27BD0018 */ addiu $sp, $sp, 0x18
/* B4A388 800D31E8 03E00008 */ jr $ra
/* B4A38C 800D31EC 00000000 */ nop
glabel func_800D31F0
/* B4A390 800D31F0 3C0E8016 */ lui $t6, %hi(gPadMgr) # $t6, 0x8016
/* B4A394 800D31F4 25CE68C0 */ addiu $t6, %lo(gPadMgr) # addiu $t6, $t6, 0x68c0
/* B4A398 800D31F8 91CF02A8 */ lbu $t7, 0x2a8($t6)
/* B4A39C 800D31FC 3C018013 */ lui $at, %hi(D_8012DBC0)
/* B4A3A0 800D3200 31F80002 */ andi $t8, $t7, 2
/* B4A3A4 800D3204 0018C82B */ sltu $t9, $zero, $t8
/* B4A3A8 800D3208 03E00008 */ jr $ra
/* B4A3AC 800D320C AC39DBC0 */ sw $t9, %lo(D_8012DBC0)($at)
glabel func_800D3210
/* B4A3B0 800D3210 3C018013 */ lui $at, %hi(D_8012DBC0)
/* B4A3B4 800D3214 03E00008 */ jr $ra
/* B4A3B8 800D3218 AC20DBC0 */ sw $zero, %lo(D_8012DBC0)($at)

57
asm/code_800D71F0.s Normal file
View file

@ -0,0 +1,57 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800D71F0
/* B4E390 800D71F0 34018800 */ li $at, 34816
/* B4E394 800D71F4 0081082A */ slt $at, $a0, $at
/* B4E398 800D71F8 14200010 */ bnez $at, .L800D723C
/* B4E39C 800D71FC 240600BC */ li $a2, 188
/* B4E3A0 800D7200 00042A02 */ srl $a1, $a0, 8
/* B4E3A4 800D7204 20A5FF78 */ addi $a1, $a1, -0x88
/* B4E3A8 800D7208 00C50019 */ multu $a2, $a1
/* B4E3AC 800D720C 308700FF */ andi $a3, $a0, 0xff
/* B4E3B0 800D7210 20E7FFC0 */ addi $a3, $a3, -0x40
/* B4E3B4 800D7214 28E10040 */ slti $at, $a3, 0x40
/* B4E3B8 800D7218 00003012 */ mflo $a2
/* B4E3BC 800D721C 54200003 */ bnezl $at, .L800D722C
/* B4E3C0 800D7220 00003012 */ mflo $a2
/* B4E3C4 800D7224 20E7FFFF */ addi $a3, $a3, -1
/* B4E3C8 800D7228 00003012 */ mflo $a2
.L800D722C:
/* B4E3CC 800D722C 20E7030A */ addi $a3, $a3, 0x30a
/* B4E3D0 800D7230 00E63820 */ add $a3, $a3, $a2
/* B4E3D4 800D7234 03E00008 */ jr $ra
/* B4E3D8 800D7238 000711C0 */ sll $v0, $a3, 7
.L800D723C:
/* B4E3DC 800D723C 00042A02 */ srl $a1, $a0, 8
/* B4E3E0 800D7240 20A5FF7F */ addi $a1, $a1, -0x81
/* B4E3E4 800D7244 00C50019 */ multu $a2, $a1
/* B4E3E8 800D7248 308700FF */ andi $a3, $a0, 0xff
/* B4E3EC 800D724C 20E7FFC0 */ addi $a3, $a3, -0x40
/* B4E3F0 800D7250 28E10040 */ slti $at, $a3, 0x40
/* B4E3F4 800D7254 00003012 */ mflo $a2
/* B4E3F8 800D7258 54200003 */ bnezl $at, .L800D7268
/* B4E3FC 800D725C 00003012 */ mflo $a2
/* B4E400 800D7260 20E7FFFF */ addi $a3, $a3, -1
/* B4E404 800D7264 00003012 */ mflo $a2
.L800D7268:
/* B4E408 800D7268 00E63820 */ add $a3, $a3, $a2
/* B4E40C 800D726C 3C06800D */ lui $a2, %hi(D_800D7288) # $a2, 0x800d
/* B4E410 800D7270 00073840 */ sll $a3, $a3, 1
/* B4E414 800D7274 24C67288 */ addiu $a2, %lo(D_800D7288) # addiu $a2, $a2, 0x7288
/* B4E418 800D7278 00E63820 */ add $a3, $a3, $a2
/* B4E41C 800D727C 84E60000 */ lh $a2, ($a3)
/* B4E420 800D7280 03E00008 */ jr $ra
/* B4E424 800D7284 000611C0 */ sll $v0, $a2, 7
glabel D_800D7288
.incbin "baserom.z64", 0xB4E428, 0xB4EE70-0xB4E428

3434
asm/code_800D7CD0.s Normal file

File diff suppressed because it is too large Load diff

3517
asm/code_800DACC0.s Normal file

File diff suppressed because it is too large Load diff

3730
asm/code_800DDE20.s Normal file

File diff suppressed because it is too large Load diff

6253
asm/code_800E11F0.s Normal file

File diff suppressed because it is too large Load diff

82
asm/code_800E6840.s Normal file
View file

@ -0,0 +1,82 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800E6840
/* B5D9E0 800E6840 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B5D9E4 800E6844 AFBF0014 */ sw $ra, 0x14($sp)
/* B5D9E8 800E6848 AFA40020 */ sw $a0, 0x20($sp)
/* B5D9EC 800E684C AFA50024 */ sw $a1, 0x24($sp)
/* B5D9F0 800E6850 0C0013D0 */ jal osSetIntMask
/* B5D9F4 800E6854 24040001 */ li $a0, 1
/* B5D9F8 800E6858 AFA2001C */ sw $v0, 0x1c($sp)
/* B5D9FC 800E685C 8FA40020 */ lw $a0, 0x20($sp)
/* B5DA00 800E6860 0C001880 */ jal osInvalDCache
/* B5DA04 800E6864 8FA50024 */ lw $a1, 0x24($sp)
/* B5DA08 800E6868 0C0013D0 */ jal osSetIntMask
/* B5DA0C 800E686C 8FA4001C */ lw $a0, 0x1c($sp)
/* B5DA10 800E6870 8FBF0014 */ lw $ra, 0x14($sp)
/* B5DA14 800E6874 27BD0020 */ addiu $sp, $sp, 0x20
/* B5DA18 800E6878 03E00008 */ jr $ra
/* B5DA1C 800E687C 00000000 */ nop
glabel func_800E6880
/* B5DA20 800E6880 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B5DA24 800E6884 AFBF0014 */ sw $ra, 0x14($sp)
/* B5DA28 800E6888 AFA40020 */ sw $a0, 0x20($sp)
/* B5DA2C 800E688C AFA50024 */ sw $a1, 0x24($sp)
/* B5DA30 800E6890 0C0013D0 */ jal osSetIntMask
/* B5DA34 800E6894 24040001 */ li $a0, 1
/* B5DA38 800E6898 AFA2001C */ sw $v0, 0x1c($sp)
/* B5DA3C 800E689C 8FA40020 */ lw $a0, 0x20($sp)
/* B5DA40 800E68A0 0C0011B0 */ jal osWritebackDCache
/* B5DA44 800E68A4 8FA50024 */ lw $a1, 0x24($sp)
/* B5DA48 800E68A8 0C0013D0 */ jal osSetIntMask
/* B5DA4C 800E68AC 8FA4001C */ lw $a0, 0x1c($sp)
/* B5DA50 800E68B0 8FBF0014 */ lw $ra, 0x14($sp)
/* B5DA54 800E68B4 27BD0020 */ addiu $sp, $sp, 0x20
/* B5DA58 800E68B8 03E00008 */ jr $ra
/* B5DA5C 800E68BC 00000000 */ nop
glabel func_800E68C0
/* B5DA60 800E68C0 3C0E8013 */ lui $t6, %hi(D_80130500) # $t6, 0x8013
/* B5DA64 800E68C4 91CE0500 */ lbu $t6, %lo(D_80130500)($t6)
/* B5DA68 800E68C8 00857821 */ addu $t7, $a0, $a1
/* B5DA6C 800E68CC 00801825 */ move $v1, $a0
/* B5DA70 800E68D0 11C00002 */ beqz $t6, .L800E68DC
/* B5DA74 800E68D4 31F81FFF */ andi $t8, $t7, 0x1fff
/* B5DA78 800E68D8 2483E000 */ addiu $v1, $a0, -0x2000
.L800E68DC:
/* B5DA7C 800E68DC 17000005 */ bnez $t8, .L800E68F4
/* B5DA80 800E68E0 3C08A450 */ lui $t0, %hi(D_A450000C) # $t0, 0xa450
/* B5DA84 800E68E4 24190001 */ li $t9, 1
/* B5DA88 800E68E8 3C018013 */ lui $at, %hi(D_80130500) # $at, 0x8013
/* B5DA8C 800E68EC 10000003 */ b .L800E68FC
/* B5DA90 800E68F0 A0390500 */ sb $t9, %lo(D_80130500)($at)
.L800E68F4:
/* B5DA94 800E68F4 3C018013 */ lui $at, %hi(D_80130500) # $at, 0x8013
/* B5DA98 800E68F8 A0200500 */ sb $zero, %lo(D_80130500)($at)
.L800E68FC:
/* B5DA9C 800E68FC 8D02000C */ lw $v0, %lo(D_A450000C)($t0)
/* B5DAA0 800E6900 3C018000 */ lui $at, 0x8000
/* B5DAA4 800E6904 00615021 */ addu $t2, $v1, $at
/* B5DAA8 800E6908 00024800 */ sll $t1, $v0, 0
/* B5DAAC 800E690C 05210003 */ bgez $t1, .L800E691C
/* B5DAB0 800E6910 3C0BA450 */ lui $t3, 0xa450
/* B5DAB4 800E6914 03E00008 */ jr $ra
/* B5DAB8 800E6918 2402FFFF */ li $v0, -1
.L800E691C:
/* B5DABC 800E691C AD6A0000 */ sw $t2, ($t3)
/* B5DAC0 800E6920 3C0CA450 */ lui $t4, %hi(D_A4500004) # $t4, 0xa450
/* B5DAC4 800E6924 AD850004 */ sw $a1, %lo(D_A4500004)($t4)
/* B5DAC8 800E6928 00001025 */ move $v0, $zero
/* B5DACC 800E692C 03E00008 */ jr $ra
/* B5DAD0 800E6930 00000000 */ nop

2241
asm/code_800E6940.s Normal file

File diff suppressed because it is too large Load diff

764
asm/code_800E88C0.s Normal file
View file

@ -0,0 +1,764 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800E88C0
/* B5FA60 800E88C0 8C820000 */ lw $v0, ($a0)
/* B5FA64 800E88C4 00803825 */ move $a3, $a0
/* B5FA68 800E88C8 24090010 */ li $t1, 16
/* B5FA6C 800E88CC 00027A40 */ sll $t7, $v0, 9
/* B5FA70 800E88D0 05E00003 */ bltz $t7, .L800E88E0
/* B5FA74 800E88D4 24080080 */ li $t0, 128
/* B5FA78 800E88D8 50A00016 */ beql $a1, $zero, .L800E8934
/* B5FA7C 800E88DC 00027280 */ sll $t6, $v0, 0xa
.L800E88E0:
/* B5FA80 800E88E0 C484002C */ lwc1 $f4, 0x2c($a0)
/* B5FA84 800E88E4 C4860028 */ lwc1 $f6, 0x28($a0)
/* B5FA88 800E88E8 8C82004C */ lw $v0, 0x4c($a0)
/* B5FA8C 800E88EC 46062202 */ mul.s $f8, $f4, $f6
/* B5FA90 800E88F0 C44A0030 */ lwc1 $f10, 0x30($v0)
/* B5FA94 800E88F4 8C580000 */ lw $t8, ($v0)
/* B5FA98 800E88F8 00185080 */ sll $t2, $t8, 2
/* B5FA9C 800E88FC 460A4002 */ mul.s $f0, $f8, $f10
/* B5FAA0 800E8900 05410008 */ bgez $t2, .L800E8924
/* B5FAA4 800E8904 00000000 */ nop
/* B5FAA8 800E8908 908B0003 */ lbu $t3, 3($a0)
/* B5FAAC 800E890C 316C0020 */ andi $t4, $t3, 0x20
/* B5FAB0 800E8910 11800004 */ beqz $t4, .L800E8924
/* B5FAB4 800E8914 00000000 */ nop
/* B5FAB8 800E8918 C4500028 */ lwc1 $f16, 0x28($v0)
/* B5FABC 800E891C 46008002 */ mul.s $f0, $f16, $f0
/* B5FAC0 800E8920 00000000 */ nop
.L800E8924:
/* B5FAC4 800E8924 46000482 */ mul.s $f18, $f0, $f0
/* B5FAC8 800E8928 8C820000 */ lw $v0, ($a0)
/* B5FACC 800E892C E4920034 */ swc1 $f18, 0x34($a0)
/* B5FAD0 800E8930 00027280 */ sll $t6, $v0, 0xa
.L800E8934:
/* B5FAD4 800E8934 05C10007 */ bgez $t6, .L800E8954
/* B5FAD8 800E8938 00000000 */ nop
/* B5FADC 800E893C 908F000A */ lbu $t7, 0xa($a0)
/* B5FAE0 800E8940 9098000B */ lbu $t8, 0xb($a0)
/* B5FAE4 800E8944 01F80019 */ multu $t7, $t8
/* B5FAE8 800E8948 0000C812 */ mflo $t9
/* B5FAEC 800E894C AC990030 */ sw $t9, 0x30($a0)
/* B5FAF0 800E8950 00000000 */ nop
.L800E8954:
/* B5FAF4 800E8954 10C00008 */ beqz $a2, .L800E8978
/* B5FAF8 800E8958 C4800038 */ lwc1 $f0, 0x38($a0)
/* B5FAFC 800E895C 8C8A004C */ lw $t2, 0x4c($a0)
/* B5FB00 800E8960 908C0001 */ lbu $t4, 1($a0)
/* B5FB04 800E8964 C5440034 */ lwc1 $f4, 0x34($t2)
/* B5FB08 800E8968 358D0080 */ ori $t5, $t4, 0x80
/* B5FB0C 800E896C A08D0001 */ sb $t5, 1($a0)
/* B5FB10 800E8970 46040002 */ mul.s $f0, $f0, $f4
/* B5FB14 800E8974 00000000 */ nop
.L800E8978:
/* B5FB18 800E8978 00003025 */ move $a2, $zero
.L800E897C:
/* B5FB1C 800E897C 8CE30050 */ lw $v1, 0x50($a3)
/* B5FB20 800E8980 24C60004 */ addiu $a2, $a2, 4
/* B5FB24 800E8984 1060003C */ beqz $v1, .L800E8A78
/* B5FB28 800E8988 00000000 */ nop
/* B5FB2C 800E898C 8C6E0000 */ lw $t6, ($v1)
/* B5FB30 800E8990 000E7FC2 */ srl $t7, $t6, 0x1f
/* B5FB34 800E8994 11E00038 */ beqz $t7, .L800E8A78
/* B5FB38 800E8998 00000000 */ nop
/* B5FB3C 800E899C 8C78002C */ lw $t8, 0x2c($v1)
/* B5FB40 800E89A0 13000035 */ beqz $t8, .L800E8A78
/* B5FB44 800E89A4 00000000 */ nop
/* B5FB48 800E89A8 90620000 */ lbu $v0, ($v1)
/* B5FB4C 800E89AC 30590001 */ andi $t9, $v0, 1
/* B5FB50 800E89B0 53200015 */ beql $t9, $zero, .L800E8A08
/* B5FB54 800E89B4 808A0001 */ lb $t2, 1($a0)
/* B5FB58 800E89B8 C4660030 */ lwc1 $f6, 0x30($v1)
/* B5FB5C 800E89BC C46A0038 */ lwc1 $f10, 0x38($v1)
/* B5FB60 800E89C0 906A0006 */ lbu $t2, 6($v1)
/* B5FB64 800E89C4 46003202 */ mul.s $f8, $f6, $f0
/* B5FB68 800E89C8 3059FFFE */ andi $t9, $v0, 0xfffe
/* B5FB6C 800E89CC E4680044 */ swc1 $f8, 0x44($v1)
/* B5FB70 800E89D0 C4900034 */ lwc1 $f16, 0x34($a0)
/* B5FB74 800E89D4 46105482 */ mul.s $f18, $f10, $f16
/* B5FB78 800E89D8 E4720040 */ swc1 $f18, 0x40($v1)
/* B5FB7C 800E89DC 908B000B */ lbu $t3, 0xb($a0)
/* B5FB80 800E89E0 8C8E0030 */ lw $t6, 0x30($a0)
/* B5FB84 800E89E4 A0790000 */ sb $t9, ($v1)
/* B5FB88 800E89E8 010B6023 */ subu $t4, $t0, $t3
/* B5FB8C 800E89EC 014C0019 */ multu $t2, $t4
/* B5FB90 800E89F0 00006812 */ mflo $t5
/* B5FB94 800E89F4 01CD7821 */ addu $t7, $t6, $t5
/* B5FB98 800E89F8 000FC1C3 */ sra $t8, $t7, 7
/* B5FB9C 800E89FC 1000001E */ b .L800E8A78
/* B5FBA0 800E8A00 A0780007 */ sb $t8, 7($v1)
/* B5FBA4 800E8A04 808A0001 */ lb $t2, 1($a0)
.L800E8A08:
/* B5FBA8 800E8A08 05430005 */ bgezl $t2, .L800E8A20
/* B5FBAC 800E8A0C 8C820000 */ lw $v0, ($a0)
/* B5FBB0 800E8A10 C4640030 */ lwc1 $f4, 0x30($v1)
/* B5FBB4 800E8A14 46002182 */ mul.s $f6, $f4, $f0
/* B5FBB8 800E8A18 E4660044 */ swc1 $f6, 0x44($v1)
/* B5FBBC 800E8A1C 8C820000 */ lw $v0, ($a0)
.L800E8A20:
/* B5FBC0 800E8A20 00027240 */ sll $t6, $v0, 9
/* B5FBC4 800E8A24 05C20004 */ bltzl $t6, .L800E8A38
/* B5FBC8 800E8A28 C4680038 */ lwc1 $f8, 0x38($v1)
/* B5FBCC 800E8A2C 50A00007 */ beql $a1, $zero, .L800E8A4C
/* B5FBD0 800E8A30 00027A80 */ sll $t7, $v0, 0xa
/* B5FBD4 800E8A34 C4680038 */ lwc1 $f8, 0x38($v1)
.L800E8A38:
/* B5FBD8 800E8A38 C48A0034 */ lwc1 $f10, 0x34($a0)
/* B5FBDC 800E8A3C 460A4402 */ mul.s $f16, $f8, $f10
/* B5FBE0 800E8A40 E4700040 */ swc1 $f16, 0x40($v1)
/* B5FBE4 800E8A44 8C820000 */ lw $v0, ($a0)
/* B5FBE8 800E8A48 00027A80 */ sll $t7, $v0, 0xa
.L800E8A4C:
/* B5FBEC 800E8A4C 05E1000A */ bgez $t7, .L800E8A78
/* B5FBF0 800E8A50 00000000 */ nop
/* B5FBF4 800E8A54 9099000B */ lbu $t9, 0xb($a0)
/* B5FBF8 800E8A58 90780006 */ lbu $t8, 6($v1)
/* B5FBFC 800E8A5C 8C8C0030 */ lw $t4, 0x30($a0)
/* B5FC00 800E8A60 01195823 */ subu $t3, $t0, $t9
/* B5FC04 800E8A64 030B0019 */ multu $t8, $t3
/* B5FC08 800E8A68 00005012 */ mflo $t2
/* B5FC0C 800E8A6C 018A7021 */ addu $t6, $t4, $t2
/* B5FC10 800E8A70 000E69C3 */ sra $t5, $t6, 7
/* B5FC14 800E8A74 A06D0007 */ sb $t5, 7($v1)
.L800E8A78:
/* B5FC18 800E8A78 14C9FFC0 */ bne $a2, $t1, .L800E897C
/* B5FC1C 800E8A7C 24E70004 */ addiu $a3, $a3, 4
/* B5FC20 800E8A80 03E00008 */ jr $ra
/* B5FC24 800E8A84 A0800001 */ sb $zero, 1($a0)
glabel func_800E8A88
/* B5FC28 800E8A88 27BDFFD0 */ addiu $sp, $sp, -0x30
/* B5FC2C 800E8A8C AFBF002C */ sw $ra, 0x2c($sp)
/* B5FC30 800E8A90 AFB40028 */ sw $s4, 0x28($sp)
/* B5FC34 800E8A94 AFB30024 */ sw $s3, 0x24($sp)
/* B5FC38 800E8A98 AFB20020 */ sw $s2, 0x20($sp)
/* B5FC3C 800E8A9C AFB1001C */ sw $s1, 0x1c($sp)
/* B5FC40 800E8AA0 AFB00018 */ sw $s0, 0x18($sp)
/* B5FC44 800E8AA4 948E0012 */ lhu $t6, 0x12($a0)
/* B5FC48 800E8AA8 00809025 */ move $s2, $a0
/* B5FC4C 800E8AAC 02408825 */ move $s1, $s2
/* B5FC50 800E8AB0 11C00025 */ beqz $t6, .L800E8B48
/* B5FC54 800E8AB4 00008025 */ move $s0, $zero
/* B5FC58 800E8AB8 C484001C */ lwc1 $f4, 0x1c($a0)
/* B5FC5C 800E8ABC C4860020 */ lwc1 $f6, 0x20($a0)
/* B5FC60 800E8AC0 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B5FC64 800E8AC4 44811000 */ mtc1 $at, $f2
/* B5FC68 800E8AC8 46062200 */ add.s $f8, $f4, $f6
/* B5FC6C 800E8ACC 90980000 */ lbu $t8, ($a0)
/* B5FC70 800E8AD0 E488001C */ swc1 $f8, 0x1c($a0)
/* B5FC74 800E8AD4 C480001C */ lwc1 $f0, 0x1c($a0)
/* B5FC78 800E8AD8 37190004 */ ori $t9, $t8, 4
/* B5FC7C 800E8ADC A0990000 */ sb $t9, ($a0)
/* B5FC80 800E8AE0 4600103C */ c.lt.s $f2, $f0
/* B5FC84 800E8AE4 00000000 */ nop
/* B5FC88 800E8AE8 45020004 */ bc1fl .L800E8AFC
/* B5FC8C 800E8AEC 44801000 */ mtc1 $zero, $f2
/* B5FC90 800E8AF0 E482001C */ swc1 $f2, 0x1c($a0)
/* B5FC94 800E8AF4 C480001C */ lwc1 $f0, 0x1c($a0)
/* B5FC98 800E8AF8 44801000 */ mtc1 $zero, $f2
.L800E8AFC:
/* B5FC9C 800E8AFC 00000000 */ nop
/* B5FCA0 800E8B00 4602003C */ c.lt.s $f0, $f2
/* B5FCA4 800E8B04 00000000 */ nop
/* B5FCA8 800E8B08 45020003 */ bc1fl .L800E8B18
/* B5FCAC 800E8B0C 96480012 */ lhu $t0, 0x12($s2)
/* B5FCB0 800E8B10 E642001C */ swc1 $f2, 0x1c($s2)
/* B5FCB4 800E8B14 96480012 */ lhu $t0, 0x12($s2)
.L800E8B18:
/* B5FCB8 800E8B18 2509FFFF */ addiu $t1, $t0, -1
/* B5FCBC 800E8B1C 312AFFFF */ andi $t2, $t1, 0xffff
/* B5FCC0 800E8B20 15400009 */ bnez $t2, .L800E8B48
/* B5FCC4 800E8B24 A6490012 */ sh $t1, 0x12($s2)
/* B5FCC8 800E8B28 924B0001 */ lbu $t3, 1($s2)
/* B5FCCC 800E8B2C 24010002 */ li $at, 2
/* B5FCD0 800E8B30 55610006 */ bnel $t3, $at, .L800E8B4C
/* B5FCD4 800E8B34 8E4C0000 */ lw $t4, ($s2)
/* B5FCD8 800E8B38 0C03A6DB */ jal func_800E9B6C
/* B5FCDC 800E8B3C 02402025 */ move $a0, $s2
/* B5FCE0 800E8B40 1000001D */ b .L800E8BB8
/* B5FCE4 800E8B44 8FBF002C */ lw $ra, 0x2c($sp)
.L800E8B48:
/* B5FCE8 800E8B48 8E4C0000 */ lw $t4, ($s2)
.L800E8B4C:
/* B5FCEC 800E8B4C 24140040 */ li $s4, 64
/* B5FCF0 800E8B50 24130001 */ li $s3, 1
/* B5FCF4 800E8B54 000C7140 */ sll $t6, $t4, 5
/* B5FCF8 800E8B58 05C10005 */ bgez $t6, .L800E8B70
/* B5FCFC 800E8B5C 00000000 */ nop
/* B5FD00 800E8B60 C64A001C */ lwc1 $f10, 0x1c($s2)
/* B5FD04 800E8B64 C650002C */ lwc1 $f16, 0x2c($s2)
/* B5FD08 800E8B68 46105482 */ mul.s $f18, $f10, $f16
/* B5FD0C 800E8B6C E6520030 */ swc1 $f18, 0x30($s2)
.L800E8B70:
/* B5FD10 800E8B70 8E240038 */ lw $a0, 0x38($s1)
/* B5FD14 800E8B74 8C8F0000 */ lw $t7, ($a0)
/* B5FD18 800E8B78 000FC7C2 */ srl $t8, $t7, 0x1f
/* B5FD1C 800E8B7C 56780008 */ bnel $s3, $t8, .L800E8BA0
/* B5FD20 800E8B80 26100004 */ addiu $s0, $s0, 4
/* B5FD24 800E8B84 8E450000 */ lw $a1, ($s2)
/* B5FD28 800E8B88 92460000 */ lbu $a2, ($s2)
/* B5FD2C 800E8B8C 00052940 */ sll $a1, $a1, 5
/* B5FD30 800E8B90 00052FC2 */ srl $a1, $a1, 0x1f
/* B5FD34 800E8B94 0C03A230 */ jal func_800E88C0
/* B5FD38 800E8B98 30C60001 */ andi $a2, $a2, 1
/* B5FD3C 800E8B9C 26100004 */ addiu $s0, $s0, 4
.L800E8BA0:
/* B5FD40 800E8BA0 1614FFF3 */ bne $s0, $s4, .L800E8B70
/* B5FD44 800E8BA4 26310004 */ addiu $s1, $s1, 4
/* B5FD48 800E8BA8 92590000 */ lbu $t9, ($s2)
/* B5FD4C 800E8BAC 3328FFFB */ andi $t0, $t9, 0xfffb
/* B5FD50 800E8BB0 A2480000 */ sb $t0, ($s2)
/* B5FD54 800E8BB4 8FBF002C */ lw $ra, 0x2c($sp)
.L800E8BB8:
/* B5FD58 800E8BB8 8FB00018 */ lw $s0, 0x18($sp)
/* B5FD5C 800E8BBC 8FB1001C */ lw $s1, 0x1c($sp)
/* B5FD60 800E8BC0 8FB20020 */ lw $s2, 0x20($sp)
/* B5FD64 800E8BC4 8FB30024 */ lw $s3, 0x24($sp)
/* B5FD68 800E8BC8 8FB40028 */ lw $s4, 0x28($sp)
/* B5FD6C 800E8BCC 03E00008 */ jr $ra
/* B5FD70 800E8BD0 27BD0030 */ addiu $sp, $sp, 0x30
glabel func_800E8BD4
/* B5FD74 800E8BD4 948E0002 */ lhu $t6, 2($a0)
/* B5FD78 800E8BD8 948F0004 */ lhu $t7, 4($a0)
/* B5FD7C 800E8BDC 01CF1021 */ addu $v0, $t6, $t7
/* B5FD80 800E8BE0 A4820002 */ sh $v0, 2($a0)
/* B5FD84 800E8BE4 00021203 */ sra $v0, $v0, 8
/* B5FD88 800E8BE8 304200FF */ andi $v0, $v0, 0xff
/* B5FD8C 800E8BEC 2C41007F */ sltiu $at, $v0, 0x7f
/* B5FD90 800E8BF0 54200004 */ bnezl $at, .L800E8C04
/* B5FD94 800E8BF4 3C013F80 */ lui $at, 0x3f80
/* B5FD98 800E8BF8 2402007F */ li $v0, 127
/* B5FD9C 800E8BFC A0800000 */ sb $zero, ($a0)
/* B5FDA0 800E8C00 3C013F80 */ li $at, 0x3F800000 # 0.000000
.L800E8C04:
/* B5FDA4 800E8C04 44816000 */ mtc1 $at, $f12
/* B5FDA8 800E8C08 3C018013 */ lui $at, %hi(D_8012F2B4)
/* B5FDAC 800E8C0C 0002C880 */ sll $t9, $v0, 2
/* B5FDB0 800E8C10 00390821 */ addu $at, $at, $t9
/* B5FDB4 800E8C14 C424F2B4 */ lwc1 $f4, %lo(D_8012F2B4)($at)
/* B5FDB8 800E8C18 C4880008 */ lwc1 $f8, 8($a0)
/* B5FDBC 800E8C1C 460C2181 */ sub.s $f6, $f4, $f12
/* B5FDC0 800E8C20 46083282 */ mul.s $f10, $f6, $f8
/* B5FDC4 800E8C24 460C5080 */ add.s $f2, $f10, $f12
/* B5FDC8 800E8C28 03E00008 */ jr $ra
/* B5FDCC 800E8C2C 46001006 */ mov.s $f0, $f2
glabel func_800E8C30
/* B5FDD0 800E8C30 C4840010 */ lwc1 $f4, 0x10($a0)
/* B5FDD4 800E8C34 8C8E0004 */ lw $t6, 4($a0)
/* B5FDD8 800E8C38 8C880008 */ lw $t0, 8($a0)
/* B5FDDC 800E8C3C 4600218D */ trunc.w.s $f6, $f4
/* B5FDE0 800E8C40 44183000 */ mfc1 $t8, $f6
/* B5FDE4 800E8C44 00000000 */ nop
/* B5FDE8 800E8C48 01D8C821 */ addu $t9, $t6, $t8
/* B5FDEC 800E8C4C 00191A82 */ srl $v1, $t9, 0xa
/* B5FDF0 800E8C50 3063003F */ andi $v1, $v1, 0x3f
/* B5FDF4 800E8C54 00034840 */ sll $t1, $v1, 1
/* B5FDF8 800E8C58 AC990004 */ sw $t9, 4($a0)
/* B5FDFC 800E8C5C 01095021 */ addu $t2, $t0, $t1
/* B5FE00 800E8C60 03E00008 */ jr $ra
/* B5FE04 800E8C64 85420000 */ lh $v0, ($t2)
glabel func_800E8C68
/* B5FE08 800E8C68 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B5FE0C 800E8C6C AFBF0014 */ sw $ra, 0x14($sp)
/* B5FE10 800E8C70 9482001A */ lhu $v0, 0x1a($a0)
/* B5FE14 800E8C74 8C830000 */ lw $v1, ($a0)
/* B5FE18 800E8C78 2401FFFF */ li $at, -1
/* B5FE1C 800E8C7C 10400005 */ beqz $v0, .L800E8C94
/* B5FE20 800E8C80 244EFFFF */ addiu $t6, $v0, -1
/* B5FE24 800E8C84 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B5FE28 800E8C88 44810000 */ mtc1 $at, $f0
/* B5FE2C 800E8C8C 10000081 */ b .L800E8E94
/* B5FE30 800E8C90 A48E001A */ sh $t6, 0x1a($a0)
.L800E8C94:
/* B5FE34 800E8C94 50610056 */ beql $v1, $at, .L800E8DF0
/* B5FE38 800E8C98 44802000 */ mtc1 $zero, $f4
/* B5FE3C 800E8C9C 94820018 */ lhu $v0, 0x18($a0)
/* B5FE40 800E8CA0 24010001 */ li $at, 1
/* B5FE44 800E8CA4 50400019 */ beql $v0, $zero, .L800E8D0C
/* B5FE48 800E8CA8 C484000C */ lwc1 $f4, 0xc($a0)
/* B5FE4C 800E8CAC 14410008 */ bne $v0, $at, .L800E8CD0
/* B5FE50 800E8CB0 00402825 */ move $a1, $v0
/* B5FE54 800E8CB4 946F0016 */ lhu $t7, 0x16($v1)
/* B5FE58 800E8CB8 94820018 */ lhu $v0, 0x18($a0)
/* B5FE5C 800E8CBC 448F2000 */ mtc1 $t7, $f4
/* B5FE60 800E8CC0 00000000 */ nop
/* B5FE64 800E8CC4 468021A0 */ cvt.s.w $f6, $f4
/* B5FE68 800E8CC8 1000000C */ b .L800E8CFC
/* B5FE6C 800E8CCC E486000C */ swc1 $f6, 0xc($a0)
.L800E8CD0:
/* B5FE70 800E8CD0 94780016 */ lhu $t8, 0x16($v1)
/* B5FE74 800E8CD4 44853000 */ mtc1 $a1, $f6
/* B5FE78 800E8CD8 C480000C */ lwc1 $f0, 0xc($a0)
/* B5FE7C 800E8CDC 44984000 */ mtc1 $t8, $f8
/* B5FE80 800E8CE0 00000000 */ nop
/* B5FE84 800E8CE4 468042A0 */ cvt.s.w $f10, $f8
/* B5FE88 800E8CE8 46803220 */ cvt.s.w $f8, $f6
/* B5FE8C 800E8CEC 46005101 */ sub.s $f4, $f10, $f0
/* B5FE90 800E8CF0 46082283 */ div.s $f10, $f4, $f8
/* B5FE94 800E8CF4 460A0180 */ add.s $f6, $f0, $f10
/* B5FE98 800E8CF8 E486000C */ swc1 $f6, 0xc($a0)
.L800E8CFC:
/* B5FE9C 800E8CFC 2459FFFF */ addiu $t9, $v0, -1
/* B5FEA0 800E8D00 10000010 */ b .L800E8D44
/* B5FEA4 800E8D04 A4990018 */ sh $t9, 0x18($a0)
/* B5FEA8 800E8D08 C484000C */ lwc1 $f4, 0xc($a0)
.L800E8D0C:
/* B5FEAC 800E8D0C 946A0016 */ lhu $t2, 0x16($v1)
/* B5FEB0 800E8D10 4600220D */ trunc.w.s $f8, $f4
/* B5FEB4 800E8D14 44094000 */ mfc1 $t1, $f8
/* B5FEB8 800E8D18 00000000 */ nop
/* B5FEBC 800E8D1C 512A000A */ beql $t1, $t2, .L800E8D48
/* B5FEC0 800E8D20 94820016 */ lhu $v0, 0x16($a0)
/* B5FEC4 800E8D24 9462001A */ lhu $v0, 0x1a($v1)
/* B5FEC8 800E8D28 14400006 */ bnez $v0, .L800E8D44
/* B5FECC 800E8D2C A4820018 */ sh $v0, 0x18($a0)
/* B5FED0 800E8D30 946B0016 */ lhu $t3, 0x16($v1)
/* B5FED4 800E8D34 448B5000 */ mtc1 $t3, $f10
/* B5FED8 800E8D38 00000000 */ nop
/* B5FEDC 800E8D3C 468051A0 */ cvt.s.w $f6, $f10
/* B5FEE0 800E8D40 E486000C */ swc1 $f6, 0xc($a0)
.L800E8D44:
/* B5FEE4 800E8D44 94820016 */ lhu $v0, 0x16($a0)
.L800E8D48:
/* B5FEE8 800E8D48 24010001 */ li $at, 1
/* B5FEEC 800E8D4C 50400019 */ beql $v0, $zero, .L800E8DB4
/* B5FEF0 800E8D50 C4840010 */ lwc1 $f4, 0x10($a0)
/* B5FEF4 800E8D54 14410008 */ bne $v0, $at, .L800E8D78
/* B5FEF8 800E8D58 00402825 */ move $a1, $v0
/* B5FEFC 800E8D5C 946C0014 */ lhu $t4, 0x14($v1)
/* B5FF00 800E8D60 94820016 */ lhu $v0, 0x16($a0)
/* B5FF04 800E8D64 448C2000 */ mtc1 $t4, $f4
/* B5FF08 800E8D68 00000000 */ nop
/* B5FF0C 800E8D6C 46802220 */ cvt.s.w $f8, $f4
/* B5FF10 800E8D70 1000000C */ b .L800E8DA4
/* B5FF14 800E8D74 E4880010 */ swc1 $f8, 0x10($a0)
.L800E8D78:
/* B5FF18 800E8D78 946D0014 */ lhu $t5, 0x14($v1)
/* B5FF1C 800E8D7C 44854000 */ mtc1 $a1, $f8
/* B5FF20 800E8D80 C4800010 */ lwc1 $f0, 0x10($a0)
/* B5FF24 800E8D84 448D5000 */ mtc1 $t5, $f10
/* B5FF28 800E8D88 00000000 */ nop
/* B5FF2C 800E8D8C 468051A0 */ cvt.s.w $f6, $f10
/* B5FF30 800E8D90 468042A0 */ cvt.s.w $f10, $f8
/* B5FF34 800E8D94 46003101 */ sub.s $f4, $f6, $f0
/* B5FF38 800E8D98 460A2183 */ div.s $f6, $f4, $f10
/* B5FF3C 800E8D9C 46060200 */ add.s $f8, $f0, $f6
/* B5FF40 800E8DA0 E4880010 */ swc1 $f8, 0x10($a0)
.L800E8DA4:
/* B5FF44 800E8DA4 244EFFFF */ addiu $t6, $v0, -1
/* B5FF48 800E8DA8 10000010 */ b .L800E8DEC
/* B5FF4C 800E8DAC A48E0016 */ sh $t6, 0x16($a0)
/* B5FF50 800E8DB0 C4840010 */ lwc1 $f4, 0x10($a0)
.L800E8DB4:
/* B5FF54 800E8DB4 94790014 */ lhu $t9, 0x14($v1)
/* B5FF58 800E8DB8 4600228D */ trunc.w.s $f10, $f4
/* B5FF5C 800E8DBC 44185000 */ mfc1 $t8, $f10
/* B5FF60 800E8DC0 00000000 */ nop
/* B5FF64 800E8DC4 5319000A */ beql $t8, $t9, .L800E8DF0
/* B5FF68 800E8DC8 44802000 */ mtc1 $zero, $f4
/* B5FF6C 800E8DCC 94620018 */ lhu $v0, 0x18($v1)
/* B5FF70 800E8DD0 14400006 */ bnez $v0, .L800E8DEC
/* B5FF74 800E8DD4 A4820016 */ sh $v0, 0x16($a0)
/* B5FF78 800E8DD8 94680014 */ lhu $t0, 0x14($v1)
/* B5FF7C 800E8DDC 44883000 */ mtc1 $t0, $f6
/* B5FF80 800E8DE0 00000000 */ nop
/* B5FF84 800E8DE4 46803220 */ cvt.s.w $f8, $f6
/* B5FF88 800E8DE8 E4880010 */ swc1 $f8, 0x10($a0)
.L800E8DEC:
/* B5FF8C 800E8DEC 44802000 */ mtc1 $zero, $f4
.L800E8DF0:
/* B5FF90 800E8DF0 C48A000C */ lwc1 $f10, 0xc($a0)
/* B5FF94 800E8DF4 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B5FF98 800E8DF8 460A2032 */ c.eq.s $f4, $f10
/* B5FF9C 800E8DFC 00000000 */ nop
/* B5FFA0 800E8E00 45000004 */ bc1f .L800E8E14
/* B5FFA4 800E8E04 00000000 */ nop
/* B5FFA8 800E8E08 44810000 */ mtc1 $at, $f0
/* B5FFAC 800E8E0C 10000022 */ b .L800E8E98
/* B5FFB0 800E8E10 8FBF0014 */ lw $ra, 0x14($sp)
.L800E8E14:
/* B5FFB4 800E8E14 0C03A30C */ jal func_800E8C30
/* B5FFB8 800E8E18 AFA40018 */ sw $a0, 0x18($sp)
/* B5FFBC 800E8E1C 8FA40018 */ lw $a0, 0x18($sp)
/* B5FFC0 800E8E20 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B5FFC4 800E8E24 44819000 */ mtc1 $at, $f18
/* B5FFC8 800E8E28 3C013980 */ li $at, 0x39800000 # 0.000000
/* B5FFCC 800E8E2C 44814000 */ mtc1 $at, $f8
/* B5FFD0 800E8E30 C486000C */ lwc1 $f6, 0xc($a0)
/* B5FFD4 800E8E34 44822000 */ mtc1 $v0, $f4
/* B5FFD8 800E8E38 3C014700 */ li $at, 0x47000000 # 0.000000
/* B5FFDC 800E8E3C 46083402 */ mul.s $f16, $f6, $f8
/* B5FFE0 800E8E40 44813000 */ mtc1 $at, $f6
/* B5FFE4 800E8E44 3C014780 */ lui $at, 0x4780
/* B5FFE8 800E8E48 3C098013 */ lui $t1, %hi(D_80130514)
/* B5FFEC 800E8E4C 8D290514 */ lw $t1, %lo(D_80130514)($t1)
/* B5FFF0 800E8E50 468022A0 */ cvt.s.w $f10, $f4
/* B5FFF4 800E8E54 252A0001 */ addiu $t2, $t1, 1
/* B5FFF8 800E8E58 46128080 */ add.s $f2, $f16, $f18
/* B5FFFC 800E8E5C 46065200 */ add.s $f8, $f10, $f6
/* B60000 800E8E60 44813000 */ mtc1 $at, $f6
/* B60004 800E8E64 3C018013 */ lui $at, %hi(D_80130510)
/* B60008 800E8E68 46029303 */ div.s $f12, $f18, $f2
/* B6000C 800E8E6C 460C1101 */ sub.s $f4, $f2, $f12
/* B60010 800E8E70 46082282 */ mul.s $f10, $f4, $f8
/* B60014 800E8E74 46065103 */ div.s $f4, $f10, $f6
/* B60018 800E8E78 C42A0510 */ lwc1 $f10, %lo(D_80130510)($at)
/* B6001C 800E8E7C 460C2200 */ add.s $f8, $f4, $f12
/* B60020 800E8E80 46089003 */ div.s $f0, $f18, $f8
/* B60024 800E8E84 46005180 */ add.s $f6, $f10, $f0
/* B60028 800E8E88 E4260510 */ swc1 $f6, %lo(D_80130510)($at)
/* B6002C 800E8E8C 3C018013 */ lui $at, %hi(D_80130514) # $at, 0x8013
/* B60030 800E8E90 AC2A0514 */ sw $t2, %lo(D_80130514)($at)
.L800E8E94:
/* B60034 800E8E94 8FBF0014 */ lw $ra, 0x14($sp)
.L800E8E98:
/* B60038 800E8E98 27BD0018 */ addiu $sp, $sp, 0x18
/* B6003C 800E8E9C 03E00008 */ jr $ra
/* B60040 800E8EA0 00000000 */ nop
glabel func_800E8EA4
/* B60044 800E8EA4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B60048 800E8EA8 AFBF0014 */ sw $ra, 0x14($sp)
/* B6004C 800E8EAC 908E0090 */ lbu $t6, 0x90($a0)
/* B60050 800E8EB0 00802825 */ move $a1, $a0
/* B60054 800E8EB4 24840090 */ addiu $a0, $a0, 0x90
/* B60058 800E8EB8 51C00006 */ beql $t6, $zero, .L800E8ED4
/* B6005C 800E8EBC 90AF00B0 */ lbu $t7, 0xb0($a1)
/* B60060 800E8EC0 0C03A2F5 */ jal func_800E8BD4
/* B60064 800E8EC4 AFA50018 */ sw $a1, 0x18($sp)
/* B60068 800E8EC8 8FA50018 */ lw $a1, 0x18($sp)
/* B6006C 800E8ECC E4A00038 */ swc1 $f0, 0x38($a1)
/* B60070 800E8ED0 90AF00B0 */ lbu $t7, 0xb0($a1)
.L800E8ED4:
/* B60074 800E8ED4 24A4009C */ addiu $a0, $a1, 0x9c
/* B60078 800E8ED8 51E00006 */ beql $t7, $zero, .L800E8EF4
/* B6007C 800E8EDC 8FBF0014 */ lw $ra, 0x14($sp)
/* B60080 800E8EE0 0C03A31A */ jal func_800E8C68
/* B60084 800E8EE4 AFA50018 */ sw $a1, 0x18($sp)
/* B60088 800E8EE8 8FA50018 */ lw $a1, 0x18($sp)
/* B6008C 800E8EEC E4A0003C */ swc1 $f0, 0x3c($a1)
/* B60090 800E8EF0 8FBF0014 */ lw $ra, 0x14($sp)
.L800E8EF4:
/* B60094 800E8EF4 27BD0018 */ addiu $sp, $sp, 0x18
/* B60098 800E8EF8 03E00008 */ jr $ra
/* B6009C 800E8EFC 00000000 */ nop
glabel func_800E8F00
/* B600A0 800E8F00 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B600A4 800E8F04 44812000 */ mtc1 $at, $f4
/* B600A8 800E8F08 240E0001 */ li $t6, 1
/* B600AC 800E8F0C A08E00B0 */ sb $t6, 0xb0($a0)
/* B600B0 800E8F10 AC8000A0 */ sw $zero, 0xa0($a0)
/* B600B4 800E8F14 3C0F8013 */ lui $t7, %hi(D_8012F098) # $t7, 0x8013
/* B600B8 800E8F18 E484003C */ swc1 $f4, 0x3c($a0)
/* B600BC 800E8F1C 8DEFF098 */ lw $t7, %lo(D_8012F098)($t7)
/* B600C0 800E8F20 8C980044 */ lw $t8, 0x44($a0)
/* B600C4 800E8F24 AC8F00A4 */ sw $t7, 0xa4($a0)
/* B600C8 800E8F28 8F190050 */ lw $t9, 0x50($t8)
/* B600CC 800E8F2C AC99009C */ sw $t9, 0x9c($a0)
/* B600D0 800E8F30 9725001A */ lhu $a1, 0x1a($t9)
/* B600D4 800E8F34 03201825 */ move $v1, $t9
/* B600D8 800E8F38 14A00008 */ bnez $a1, .L800E8F5C
/* B600DC 800E8F3C A48500B4 */ sh $a1, 0xb4($a0)
/* B600E0 800E8F40 97280016 */ lhu $t0, 0x16($t9)
/* B600E4 800E8F44 2482009C */ addiu $v0, $a0, 0x9c
/* B600E8 800E8F48 44883000 */ mtc1 $t0, $f6
/* B600EC 800E8F4C 00000000 */ nop
/* B600F0 800E8F50 46803220 */ cvt.s.w $f8, $f6
/* B600F4 800E8F54 10000007 */ b .L800E8F74
/* B600F8 800E8F58 E448000C */ swc1 $f8, 0xc($v0)
.L800E8F5C:
/* B600FC 800E8F5C 94690012 */ lhu $t1, 0x12($v1)
/* B60100 800E8F60 2482009C */ addiu $v0, $a0, 0x9c
/* B60104 800E8F64 44895000 */ mtc1 $t1, $f10
/* B60108 800E8F68 00000000 */ nop
/* B6010C 800E8F6C 46805420 */ cvt.s.w $f16, $f10
/* B60110 800E8F70 E450000C */ swc1 $f16, 0xc($v0)
.L800E8F74:
/* B60114 800E8F74 94650018 */ lhu $a1, 0x18($v1)
/* B60118 800E8F78 14A00007 */ bnez $a1, .L800E8F98
/* B6011C 800E8F7C A4450016 */ sh $a1, 0x16($v0)
/* B60120 800E8F80 946A0014 */ lhu $t2, 0x14($v1)
/* B60124 800E8F84 448A9000 */ mtc1 $t2, $f18
/* B60128 800E8F88 00000000 */ nop
/* B6012C 800E8F8C 46809120 */ cvt.s.w $f4, $f18
/* B60130 800E8F90 10000006 */ b .L800E8FAC
/* B60134 800E8F94 E4440010 */ swc1 $f4, 0x10($v0)
.L800E8F98:
/* B60138 800E8F98 946B0010 */ lhu $t3, 0x10($v1)
/* B6013C 800E8F9C 448B3000 */ mtc1 $t3, $f6
/* B60140 800E8FA0 00000000 */ nop
/* B60144 800E8FA4 46803220 */ cvt.s.w $f8, $f6
/* B60148 800E8FA8 E4480010 */ swc1 $f8, 0x10($v0)
.L800E8FAC:
/* B6014C 800E8FAC 946C001C */ lhu $t4, 0x1c($v1)
/* B60150 800E8FB0 03E00008 */ jr $ra
/* B60154 800E8FB4 A44C001A */ sh $t4, 0x1a($v0)
glabel func_800E8FB8
/* B60158 800E8FB8 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B6015C 800E8FBC 44812000 */ mtc1 $at, $f4
/* B60160 800E8FC0 8C8E0044 */ lw $t6, 0x44($a0)
/* B60164 800E8FC4 E4840038 */ swc1 $f4, 0x38($a0)
/* B60168 800E8FC8 8DD80020 */ lw $t8, 0x20($t6)
/* B6016C 800E8FCC AC980090 */ sw $t8, 0x90($a0)
/* B60170 800E8FD0 8DCF0024 */ lw $t7, 0x24($t6)
/* B60174 800E8FD4 AC8F0094 */ sw $t7, 0x94($a0)
/* B60178 800E8FD8 8DD80028 */ lw $t8, 0x28($t6)
/* B6017C 800E8FDC 03E00008 */ jr $ra
/* B60180 800E8FE0 AC980098 */ sw $t8, 0x98($a0)
glabel func_800E8FE4
/* B60184 800E8FE4 AFA60008 */ sw $a2, 8($sp)
/* B60188 800E8FE8 44800000 */ mtc1 $zero, $f0
/* B6018C 800E8FEC A0800000 */ sb $zero, ($a0)
/* B60190 800E8FF0 A4800002 */ sh $zero, 2($a0)
/* B60194 800E8FF4 AC85001C */ sw $a1, 0x1c($a0)
/* B60198 800E8FF8 E4800004 */ swc1 $f0, 4($a0)
/* B6019C 800E8FFC 03E00008 */ jr $ra
/* B601A0 800E9000 E4800010 */ swc1 $f0, 0x10($a0)
glabel func_800E9004
/* B601A4 800E9004 90830000 */ lbu $v1, ($a0)
/* B601A8 800E9008 00601025 */ move $v0, $v1
/* B601AC 800E900C 3042000F */ andi $v0, $v0, 0xf
/* B601B0 800E9010 2C410009 */ sltiu $at, $v0, 9
/* B601B4 800E9014 102000A2 */ beqz $at, .L800E92A0
/* B601B8 800E9018 00402825 */ move $a1, $v0
/* B601BC 800E901C 00027080 */ sll $t6, $v0, 2
/* B601C0 800E9020 3C018015 */ lui $at, %hi(jtbl_801495F0)
/* B601C4 800E9024 002E0821 */ addu $at, $at, $t6
/* B601C8 800E9028 8C2E95F0 */ lw $t6, %lo(jtbl_801495F0)($at)
/* B601CC 800E902C 01C00008 */ jr $t6
/* B601D0 800E9030 00000000 */ nop
glabel L800E9034
/* B601D4 800E9034 44800000 */ mtc1 $zero, $f0
/* B601D8 800E9038 03E00008 */ jr $ra
/* B601DC 800E903C 00000000 */ nop
glabel L800E9040
/* B601E0 800E9040 8C8F0000 */ lw $t7, ($a0)
/* B601E4 800E9044 3068FFF0 */ andi $t0, $v1, 0xfff0
/* B601E8 800E9048 35090005 */ ori $t1, $t0, 5
/* B601EC 800E904C 000FC840 */ sll $t9, $t7, 1
/* B601F0 800E9050 07230004 */ bgezl $t9, .L800E9064
/* B601F4 800E9054 306AFFF0 */ andi $t2, $v1, 0xfff0
/* B601F8 800E9058 10000091 */ b .L800E92A0
/* B601FC 800E905C A0890000 */ sb $t1, ($a0)
glabel L800E9060
/* B60200 800E9060 306AFFF0 */ andi $t2, $v1, 0xfff0
.L800E9064:
/* B60204 800E9064 354B0003 */ ori $t3, $t2, 3
/* B60208 800E9068 A0800001 */ sb $zero, 1($a0)
/* B6020C 800E906C A08B0000 */ sb $t3, ($a0)
.L800E9070:
glabel L800E9070
/* B60210 800E9070 908D0001 */ lbu $t5, 1($a0)
/* B60214 800E9074 8C8C001C */ lw $t4, 0x1c($a0)
/* B60218 800E9078 2401FFFD */ li $at, -3
/* B6021C 800E907C 000D7080 */ sll $t6, $t5, 2
/* B60220 800E9080 018E1021 */ addu $v0, $t4, $t6
/* B60224 800E9084 844F0000 */ lh $t7, ($v0)
/* B60228 800E9088 A48F0002 */ sh $t7, 2($a0)
/* B6022C 800E908C 84850002 */ lh $a1, 2($a0)
/* B60230 800E9090 10A10013 */ beq $a1, $at, .L800E90E0
/* B60234 800E9094 2401FFFE */ li $at, -2
/* B60238 800E9098 10A1000E */ beq $a1, $at, .L800E90D4
/* B6023C 800E909C 2401FFFF */ li $at, -1
/* B60240 800E90A0 50A10008 */ beql $a1, $at, .L800E90C4
/* B60244 800E90A4 90880000 */ lbu $t0, ($a0)
/* B60248 800E90A8 54A00013 */ bnezl $a1, .L800E90F8
/* B6024C 800E90AC 44852000 */ mtc1 $a1, $f4
/* B60250 800E90B0 90980000 */ lbu $t8, ($a0)
/* B60254 800E90B4 3319FFF0 */ andi $t9, $t8, 0xfff0
/* B60258 800E90B8 10000038 */ b .L800E919C
/* B6025C 800E90BC A0990000 */ sb $t9, ($a0)
/* B60260 800E90C0 90880000 */ lbu $t0, ($a0)
.L800E90C4:
/* B60264 800E90C4 3109FFF0 */ andi $t1, $t0, 0xfff0
/* B60268 800E90C8 352A0005 */ ori $t2, $t1, 5
/* B6026C 800E90CC 10000033 */ b .L800E919C
/* B60270 800E90D0 A08A0000 */ sb $t2, ($a0)
.L800E90D4:
/* B60274 800E90D4 844B0002 */ lh $t3, 2($v0)
/* B60278 800E90D8 1000FFE5 */ b .L800E9070
/* B6027C 800E90DC A08B0001 */ sb $t3, 1($a0)
.L800E90E0:
/* B60280 800E90E0 908D0000 */ lbu $t5, ($a0)
/* B60284 800E90E4 31ACFFF0 */ andi $t4, $t5, 0xfff0
/* B60288 800E90E8 358E0001 */ ori $t6, $t4, 1
/* B6028C 800E90EC 1000002B */ b .L800E919C
/* B60290 800E90F0 A08E0000 */ sb $t6, ($a0)
/* B60294 800E90F4 44852000 */ mtc1 $a1, $f4
.L800E90F8:
/* B60298 800E90F8 3C018017 */ lui $at, %hi(D_801719EC)
/* B6029C 800E90FC C42819EC */ lwc1 $f8, %lo(D_801719EC)($at)
/* B602A0 800E9100 468021A0 */ cvt.s.w $f6, $f4
/* B602A4 800E9104 24190001 */ li $t9, 1
/* B602A8 800E9108 46083282 */ mul.s $f10, $f6, $f8
/* B602AC 800E910C 4600540D */ trunc.w.s $f16, $f10
/* B602B0 800E9110 44188000 */ mfc1 $t8, $f16
/* B602B4 800E9114 00000000 */ nop
/* B602B8 800E9118 A4980002 */ sh $t8, 2($a0)
/* B602BC 800E911C 84850002 */ lh $a1, 2($a0)
/* B602C0 800E9120 54A00004 */ bnezl $a1, .L800E9134
/* B602C4 800E9124 90820001 */ lbu $v0, 1($a0)
/* B602C8 800E9128 A4990002 */ sh $t9, 2($a0)
/* B602CC 800E912C 84850002 */ lh $a1, 2($a0)
/* B602D0 800E9130 90820001 */ lbu $v0, 1($a0)
.L800E9134:
/* B602D4 800E9134 8C88001C */ lw $t0, 0x1c($a0)
/* B602D8 800E9138 3C018015 */ lui $at, %hi(D_80149614)
/* B602DC 800E913C 00024880 */ sll $t1, $v0, 2
/* B602E0 800E9140 01095021 */ addu $t2, $t0, $t1
/* B602E4 800E9144 854B0002 */ lh $t3, 2($t2)
/* B602E8 800E9148 C4269614 */ lwc1 $f6, %lo(D_80149614)($at)
/* B602EC 800E914C 908D0000 */ lbu $t5, ($a0)
/* B602F0 800E9150 448B9000 */ mtc1 $t3, $f18
/* B602F4 800E9154 244F0001 */ addiu $t7, $v0, 1
/* B602F8 800E9158 31ACFFF0 */ andi $t4, $t5, 0xfff0
/* B602FC 800E915C 46809120 */ cvt.s.w $f4, $f18
/* B60300 800E9160 C4920010 */ lwc1 $f18, 0x10($a0)
/* B60304 800E9164 358E0004 */ ori $t6, $t4, 4
/* B60308 800E9168 A08E0000 */ sb $t6, ($a0)
/* B6030C 800E916C A08F0001 */ sb $t7, 1($a0)
/* B60310 800E9170 46062203 */ div.s $f8, $f4, $f6
/* B60314 800E9174 44853000 */ mtc1 $a1, $f6
/* B60318 800E9178 E4880014 */ swc1 $f8, 0x14($a0)
/* B6031C 800E917C C4800014 */ lwc1 $f0, 0x14($a0)
/* B60320 800E9180 46803220 */ cvt.s.w $f8, $f6
/* B60324 800E9184 46000282 */ mul.s $f10, $f0, $f0
/* B60328 800E9188 E48A0014 */ swc1 $f10, 0x14($a0)
/* B6032C 800E918C C4900014 */ lwc1 $f16, 0x14($a0)
/* B60330 800E9190 46128101 */ sub.s $f4, $f16, $f18
/* B60334 800E9194 46082283 */ div.s $f10, $f4, $f8
/* B60338 800E9198 E48A0008 */ swc1 $f10, 8($a0)
.L800E919C:
/* B6033C 800E919C 90980000 */ lbu $t8, ($a0)
/* B60340 800E91A0 24010004 */ li $at, 4
/* B60344 800E91A4 3319000F */ andi $t9, $t8, 0xf
/* B60348 800E91A8 5721003E */ bnel $t9, $at, .L800E92A4
/* B6034C 800E91AC 8C820000 */ lw $v0, ($a0)
glabel L800E91B0
/* B60350 800E91B0 84880002 */ lh $t0, 2($a0)
/* B60354 800E91B4 C4900010 */ lwc1 $f16, 0x10($a0)
/* B60358 800E91B8 C4920008 */ lwc1 $f18, 8($a0)
/* B6035C 800E91BC 2509FFFF */ addiu $t1, $t0, -1
/* B60360 800E91C0 A4890002 */ sh $t1, 2($a0)
/* B60364 800E91C4 46128180 */ add.s $f6, $f16, $f18
/* B60368 800E91C8 848A0002 */ lh $t2, 2($a0)
/* B6036C 800E91CC 1D400034 */ bgtz $t2, .L800E92A0
/* B60370 800E91D0 E4860010 */ swc1 $f6, 0x10($a0)
/* B60374 800E91D4 908B0000 */ lbu $t3, ($a0)
/* B60378 800E91D8 316DFFF0 */ andi $t5, $t3, 0xfff0
/* B6037C 800E91DC 35AC0003 */ ori $t4, $t5, 3
/* B60380 800E91E0 1000002F */ b .L800E92A0
/* B60384 800E91E4 A08C0000 */ sb $t4, ($a0)
glabel L800E91E8
/* B60388 800E91E8 44806000 */ mtc1 $zero, $f12
/* B6038C 800E91EC C4800004 */ lwc1 $f0, 4($a0)
/* B60390 800E91F0 C4840010 */ lwc1 $f4, 0x10($a0)
/* B60394 800E91F4 C488000C */ lwc1 $f8, 0xc($a0)
/* B60398 800E91F8 46006032 */ c.eq.s $f12, $f0
/* B6039C 800E91FC 24010006 */ li $at, 6
/* B603A0 800E9200 46082281 */ sub.s $f10, $f4, $f8
/* B603A4 800E9204 45010010 */ bc1t .L800E9248
/* B603A8 800E9208 E48A0010 */ swc1 $f10, 0x10($a0)
/* B603AC 800E920C 14A1000E */ bne $a1, $at, .L800E9248
/* B603B0 800E9210 00000000 */ nop
/* B603B4 800E9214 C4900010 */ lwc1 $f16, 0x10($a0)
/* B603B8 800E9218 240E0080 */ li $t6, 128
/* B603BC 800E921C 4600803C */ c.lt.s $f16, $f0
/* B603C0 800E9220 00000000 */ nop
/* B603C4 800E9224 4502001F */ bc1fl .L800E92A4
/* B603C8 800E9228 8C820000 */ lw $v0, ($a0)
/* B603CC 800E922C 908F0000 */ lbu $t7, ($a0)
/* B603D0 800E9230 E4800010 */ swc1 $f0, 0x10($a0)
/* B603D4 800E9234 A48E0002 */ sh $t6, 2($a0)
/* B603D8 800E9238 31F8FFF0 */ andi $t8, $t7, 0xfff0
/* B603DC 800E923C 37190008 */ ori $t9, $t8, 8
/* B603E0 800E9240 10000017 */ b .L800E92A0
/* B603E4 800E9244 A0990000 */ sb $t9, ($a0)
.L800E9248:
/* B603E8 800E9248 3C018015 */ lui $at, %hi(D_80149618)
/* B603EC 800E924C C4269618 */ lwc1 $f6, %lo(D_80149618)($at)
/* B603F0 800E9250 C4920010 */ lwc1 $f18, 0x10($a0)
/* B603F4 800E9254 4606903C */ c.lt.s $f18, $f6
/* B603F8 800E9258 00000000 */ nop
/* B603FC 800E925C 45020011 */ bc1fl .L800E92A4
/* B60400 800E9260 8C820000 */ lw $v0, ($a0)
/* B60404 800E9264 90880000 */ lbu $t0, ($a0)
/* B60408 800E9268 E48C0010 */ swc1 $f12, 0x10($a0)
/* B6040C 800E926C 3109FFF0 */ andi $t1, $t0, 0xfff0
/* B60410 800E9270 1000000B */ b .L800E92A0
/* B60414 800E9274 A0890000 */ sb $t1, ($a0)
glabel L800E9278
/* B60418 800E9278 848A0002 */ lh $t2, 2($a0)
/* B6041C 800E927C 254BFFFF */ addiu $t3, $t2, -1
/* B60420 800E9280 A48B0002 */ sh $t3, 2($a0)
/* B60424 800E9284 848D0002 */ lh $t5, 2($a0)
/* B60428 800E9288 55A00006 */ bnezl $t5, .L800E92A4
/* B6042C 800E928C 8C820000 */ lw $v0, ($a0)
/* B60430 800E9290 908C0000 */ lbu $t4, ($a0)
/* B60434 800E9294 318EFFF0 */ andi $t6, $t4, 0xfff0
/* B60438 800E9298 35CF0007 */ ori $t7, $t6, 7
/* B6043C 800E929C A08F0000 */ sb $t7, ($a0)
.L800E92A0:
glabel L800E92A0
/* B60440 800E92A0 8C820000 */ lw $v0, ($a0)
.L800E92A4:
/* B60444 800E92A4 44806000 */ mtc1 $zero, $f12
/* B60448 800E92A8 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B6044C 800E92AC 0002C880 */ sll $t9, $v0, 2
/* B60450 800E92B0 07230009 */ bgezl $t9, .L800E92D8
/* B60454 800E92B4 000270C0 */ sll $t6, $v0, 3
/* B60458 800E92B8 90880000 */ lbu $t0, ($a0)
/* B6045C 800E92BC 3109FFF0 */ andi $t1, $t0, 0xfff0
/* B60460 800E92C0 352B0006 */ ori $t3, $t1, 6
/* B60464 800E92C4 A08B0000 */ sb $t3, ($a0)
/* B60468 800E92C8 316D00DF */ andi $t5, $t3, 0xdf
/* B6046C 800E92CC A08D0000 */ sb $t5, ($a0)
/* B60470 800E92D0 8C820000 */ lw $v0, ($a0)
/* B60474 800E92D4 000270C0 */ sll $t6, $v0, 3
.L800E92D8:
/* B60478 800E92D8 05C30008 */ bgezl $t6, .L800E92FC
/* B6047C 800E92DC C4820010 */ lwc1 $f2, 0x10($a0)
/* B60480 800E92E0 908F0000 */ lbu $t7, ($a0)
/* B60484 800E92E4 31F8FFF0 */ andi $t8, $t7, 0xfff0
/* B60488 800E92E8 37080007 */ ori $t0, $t8, 7
/* B6048C 800E92EC A0880000 */ sb $t0, ($a0)
/* B60490 800E92F0 310900EF */ andi $t1, $t0, 0xef
/* B60494 800E92F4 A0890000 */ sb $t1, ($a0)
/* B60498 800E92F8 C4820010 */ lwc1 $f2, 0x10($a0)
.L800E92FC:
/* B6049C 800E92FC 460C103C */ c.lt.s $f2, $f12
/* B604A0 800E9300 00000000 */ nop
/* B604A4 800E9304 45020004 */ bc1fl .L800E9318
/* B604A8 800E9308 44816000 */ mtc1 $at, $f12
/* B604AC 800E930C 03E00008 */ jr $ra
/* B604B0 800E9310 46006006 */ mov.s $f0, $f12
/* B604B4 800E9314 44816000 */ mtc1 $at, $f12
.L800E9318:
/* B604B8 800E9318 00000000 */ nop
/* B604BC 800E931C 4602603C */ c.lt.s $f12, $f2
/* B604C0 800E9320 00000000 */ nop
/* B604C4 800E9324 45020004 */ bc1fl .L800E9338
/* B604C8 800E9328 46001006 */ mov.s $f0, $f2
/* B604CC 800E932C 03E00008 */ jr $ra
/* B604D0 800E9330 46006006 */ mov.s $f0, $f12
/* B604D4 800E9334 46001006 */ mov.s $f0, $f2
.L800E9338:
/* B604D8 800E9338 03E00008 */ jr $ra
/* B604DC 800E933C 00000000 */ nop

3906
asm/code_800E9340.s Normal file

File diff suppressed because it is too large Load diff

11813
asm/code_800EC960.s Normal file

File diff suppressed because it is too large Load diff

2259
asm/code_800F7260.s Normal file

File diff suppressed because it is too large Load diff

2038
asm/code_800F9280.s Normal file

File diff suppressed because it is too large Load diff

175
asm/code_800FCB50.s Normal file
View file

@ -0,0 +1,175 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800FCB50
/* B73CF0 800FCB50 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B73CF4 800FCB54 AFBF0014 */ sw $ra, 0x14($sp)
/* B73CF8 800FCB58 0C001114 */ jal bzero
/* B73CFC 800FCB5C 24050018 */ li $a1, 24
/* B73D00 800FCB60 8FBF0014 */ lw $ra, 0x14($sp)
/* B73D04 800FCB64 27BD0018 */ addiu $sp, $sp, 0x18
/* B73D08 800FCB68 03E00008 */ jr $ra
/* B73D0C 800FCB6C 00000000 */ nop
glabel func_800FCB70
/* B73D10 800FCB70 03E00008 */ jr $ra
/* B73D14 800FCB74 00000000 */ nop
glabel func_800FCB78
/* B73D18 800FCB78 A480000C */ sh $zero, 0xc($a0)
/* B73D1C 800FCB7C 03E00008 */ jr $ra
/* B73D20 800FCB80 A4800012 */ sh $zero, 0x12($a0)
glabel func_800FCB84
/* B73D24 800FCB84 AFA50004 */ sw $a1, 4($sp)
/* B73D28 800FCB88 948E0000 */ lhu $t6, ($a0)
/* B73D2C 800FCB8C 30A5FFFF */ andi $a1, $a1, 0xffff
/* B73D30 800FCB90 01C51026 */ xor $v0, $t6, $a1
/* B73D34 800FCB94 03E00008 */ jr $ra
/* B73D38 800FCB98 2C420001 */ sltiu $v0, $v0, 1
glabel func_800FCB9C
/* B73D3C 800FCB9C AFA50004 */ sw $a1, 4($sp)
/* B73D40 800FCBA0 948E0000 */ lhu $t6, ($a0)
/* B73D44 800FCBA4 30A5FFFF */ andi $a1, $a1, 0xffff
/* B73D48 800FCBA8 01C57824 */ and $t7, $t6, $a1
/* B73D4C 800FCBAC 01E51026 */ xor $v0, $t7, $a1
/* B73D50 800FCBB0 03E00008 */ jr $ra
/* B73D54 800FCBB4 2C420001 */ sltiu $v0, $v0, 1
glabel func_800FCBB8
/* B73D58 800FCBB8 AFA50004 */ sw $a1, 4($sp)
/* B73D5C 800FCBBC 948E000C */ lhu $t6, 0xc($a0)
/* B73D60 800FCBC0 30A5FFFF */ andi $a1, $a1, 0xffff
/* B73D64 800FCBC4 01C57824 */ and $t7, $t6, $a1
/* B73D68 800FCBC8 01E51026 */ xor $v0, $t7, $a1
/* B73D6C 800FCBCC 03E00008 */ jr $ra
/* B73D70 800FCBD0 2C420001 */ sltiu $v0, $v0, 1
glabel func_800FCBD4
/* B73D74 800FCBD4 AFA50004 */ sw $a1, 4($sp)
/* B73D78 800FCBD8 948E0012 */ lhu $t6, 0x12($a0)
/* B73D7C 800FCBDC 30A5FFFF */ andi $a1, $a1, 0xffff
/* B73D80 800FCBE0 01C57824 */ and $t7, $t6, $a1
/* B73D84 800FCBE4 01E51026 */ xor $v0, $t7, $a1
/* B73D88 800FCBE8 03E00008 */ jr $ra
/* B73D8C 800FCBEC 2C420001 */ sltiu $v0, $v0, 1
glabel func_800FCBF0
/* B73D90 800FCBF0 03E00008 */ jr $ra
/* B73D94 800FCBF4 94820000 */ lhu $v0, ($a0)
glabel func_800FCBF8
/* B73D98 800FCBF8 03E00008 */ jr $ra
/* B73D9C 800FCBFC 9482000C */ lhu $v0, 0xc($a0)
glabel func_800FCC00
/* B73DA0 800FCC00 03E00008 */ jr $ra
/* B73DA4 800FCC04 80820002 */ lb $v0, 2($a0)
glabel func_800FCC08
/* B73DA8 800FCC08 03E00008 */ jr $ra
/* B73DAC 800FCC0C 80820003 */ lb $v0, 3($a0)
glabel func_800FCC10
/* B73DB0 800FCC10 A0850014 */ sb $a1, 0x14($a0)
/* B73DB4 800FCC14 03E00008 */ jr $ra
/* B73DB8 800FCC18 A0860015 */ sb $a2, 0x15($a0)
glabel func_800FCC1C
/* B73DBC 800FCC1C 03E00008 */ jr $ra
/* B73DC0 800FCC20 80820014 */ lb $v0, 0x14($a0)
glabel func_800FCC24
/* B73DC4 800FCC24 03E00008 */ jr $ra
/* B73DC8 800FCC28 80820015 */ lb $v0, 0x15($a0)
glabel func_800FCC2C
/* B73DCC 800FCC2C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B73DD0 800FCC30 AFBF0014 */ sw $ra, 0x14($sp)
/* B73DD4 800FCC34 0C03F307 */ jal func_800FCC1C
/* B73DD8 800FCC38 00000000 */ nop
/* B73DDC 800FCC3C 8FBF0014 */ lw $ra, 0x14($sp)
/* B73DE0 800FCC40 27BD0018 */ addiu $sp, $sp, 0x18
/* B73DE4 800FCC44 03E00008 */ jr $ra
/* B73DE8 800FCC48 00000000 */ nop
glabel func_800FCC4C
/* B73DEC 800FCC4C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B73DF0 800FCC50 AFBF0014 */ sw $ra, 0x14($sp)
/* B73DF4 800FCC54 0C03F309 */ jal func_800FCC24
/* B73DF8 800FCC58 00000000 */ nop
/* B73DFC 800FCC5C 8FBF0014 */ lw $ra, 0x14($sp)
/* B73E00 800FCC60 27BD0018 */ addiu $sp, $sp, 0x18
/* B73E04 800FCC64 03E00008 */ jr $ra
/* B73E08 800FCC68 00000000 */ nop
glabel func_800FCC6C
/* B73E0C 800FCC6C 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B73E10 800FCC70 AFBF0014 */ sw $ra, 0x14($sp)
/* B73E14 800FCC74 0C03F300 */ jal func_800FCC00
/* B73E18 800FCC78 AFA40020 */ sw $a0, 0x20($sp)
/* B73E1C 800FCC7C 8FA40020 */ lw $a0, 0x20($sp)
/* B73E20 800FCC80 0C03F302 */ jal func_800FCC08
/* B73E24 800FCC84 AFA2001C */ sw $v0, 0x1c($sp)
/* B73E28 800FCC88 8FA3001C */ lw $v1, 0x1c($sp)
/* B73E2C 800FCC8C 28610008 */ slti $at, $v1, 8
/* B73E30 800FCC90 14200007 */ bnez $at, .L800FCCB0
/* B73E34 800FCC94 28610043 */ slti $at, $v1, 0x43
/* B73E38 800FCC98 10200003 */ beqz $at, .L800FCCA8
/* B73E3C 800FCC9C 00000000 */ nop
/* B73E40 800FCCA0 1000000D */ b .L800FCCD8
/* B73E44 800FCCA4 2465FFF9 */ addiu $a1, $v1, -7
.L800FCCA8:
/* B73E48 800FCCA8 1000000B */ b .L800FCCD8
/* B73E4C 800FCCAC 2405003C */ li $a1, 60
.L800FCCB0:
/* B73E50 800FCCB0 2861FFF9 */ slti $at, $v1, -7
/* B73E54 800FCCB4 10200008 */ beqz $at, .L800FCCD8
/* B73E58 800FCCB8 00002825 */ move $a1, $zero
/* B73E5C 800FCCBC 2861FFBE */ slti $at, $v1, -0x42
/* B73E60 800FCCC0 14200003 */ bnez $at, .L800FCCD0
/* B73E64 800FCCC4 00000000 */ nop
/* B73E68 800FCCC8 10000003 */ b .L800FCCD8
/* B73E6C 800FCCCC 24650007 */ addiu $a1, $v1, 7
.L800FCCD0:
/* B73E70 800FCCD0 10000001 */ b .L800FCCD8
/* B73E74 800FCCD4 2405FFC4 */ li $a1, -60
.L800FCCD8:
/* B73E78 800FCCD8 28410008 */ slti $at, $v0, 8
/* B73E7C 800FCCDC 14200007 */ bnez $at, .L800FCCFC
/* B73E80 800FCCE0 28410043 */ slti $at, $v0, 0x43
/* B73E84 800FCCE4 10200003 */ beqz $at, .L800FCCF4
/* B73E88 800FCCE8 00000000 */ nop
/* B73E8C 800FCCEC 1000000D */ b .L800FCD24
/* B73E90 800FCCF0 2446FFF9 */ addiu $a2, $v0, -7
.L800FCCF4:
/* B73E94 800FCCF4 1000000B */ b .L800FCD24
/* B73E98 800FCCF8 2406003C */ li $a2, 60
.L800FCCFC:
/* B73E9C 800FCCFC 2841FFF9 */ slti $at, $v0, -7
/* B73EA0 800FCD00 10200008 */ beqz $at, .L800FCD24
/* B73EA4 800FCD04 00003025 */ move $a2, $zero
/* B73EA8 800FCD08 2841FFBE */ slti $at, $v0, -0x42
/* B73EAC 800FCD0C 14200003 */ bnez $at, .L800FCD1C
/* B73EB0 800FCD10 00000000 */ nop
/* B73EB4 800FCD14 10000003 */ b .L800FCD24
/* B73EB8 800FCD18 24460007 */ addiu $a2, $v0, 7
.L800FCD1C:
/* B73EBC 800FCD1C 10000001 */ b .L800FCD24
/* B73EC0 800FCD20 2406FFC4 */ li $a2, -60
.L800FCD24:
/* B73EC4 800FCD24 0C03F304 */ jal func_800FCC10
/* B73EC8 800FCD28 8FA40020 */ lw $a0, 0x20($sp)
/* B73ECC 800FCD2C 8FBF0014 */ lw $ra, 0x14($sp)
/* B73ED0 800FCD30 27BD0020 */ addiu $sp, $sp, 0x20
/* B73ED4 800FCD34 03E00008 */ jr $ra
/* B73ED8 800FCD38 00000000 */ nop

99
asm/code_800FCD40.s Normal file
View file

@ -0,0 +1,99 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800FCD40
/* B73EE0 800FCD40 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B73EE4 800FCD44 AFBF001C */ sw $ra, 0x1c($sp)
/* B73EE8 800FCD48 AFB00018 */ sw $s0, 0x18($sp)
/* B73EEC 800FCD4C AFA40020 */ sw $a0, 0x20($sp)
/* B73EF0 800FCD50 240E00FF */ li $t6, 255
/* B73EF4 800FCD54 A0AE0000 */ sb $t6, ($a1)
/* B73EF8 800FCD58 00C08025 */ move $s0, $a2
/* B73EFC 800FCD5C AFA50024 */ sw $a1, 0x24($sp)
/* B73F00 800FCD60 0C040304 */ jal osContInit
/* B73F04 800FCD64 8FA40020 */ lw $a0, 0x20($sp)
/* B73F08 800FCD68 10400003 */ beqz $v0, .L800FCD78
/* B73F0C 800FCD6C 8FA70024 */ lw $a3, 0x24($sp)
/* B73F10 800FCD70 1000003E */ b .L800FCE6C
/* B73F14 800FCD74 8FBF001C */ lw $ra, 0x1c($sp)
.L800FCD78:
/* B73F18 800FCD78 90EF0000 */ lbu $t7, ($a3)
/* B73F1C 800FCD7C 240100FF */ li $at, 255
/* B73F20 800FCD80 8FA40020 */ lw $a0, 0x20($sp)
/* B73F24 800FCD84 55E10038 */ bnel $t7, $at, .L800FCE68
/* B73F28 800FCD88 00001025 */ move $v0, $zero
/* B73F2C 800FCD8C 0C040C84 */ jal func_80103210
/* B73F30 800FCD90 AFA70024 */ sw $a3, 0x24($sp)
/* B73F34 800FCD94 10400003 */ beqz $v0, .L800FCDA4
/* B73F38 800FCD98 8FA70024 */ lw $a3, 0x24($sp)
/* B73F3C 800FCD9C 10000032 */ b .L800FCE68
/* B73F40 800FCDA0 24020001 */ li $v0, 1
.L800FCDA4:
/* B73F44 800FCDA4 8FA40020 */ lw $a0, 0x20($sp)
/* B73F48 800FCDA8 00002825 */ move $a1, $zero
/* B73F4C 800FCDAC 24060001 */ li $a2, 1
/* B73F50 800FCDB0 0C000CA0 */ jal osRecvMesg
/* B73F54 800FCDB4 AFA70024 */ sw $a3, 0x24($sp)
/* B73F58 800FCDB8 0C040CA3 */ jal func_8010328C
/* B73F5C 800FCDBC 02002025 */ move $a0, $s0
/* B73F60 800FCDC0 8FA70024 */ lw $a3, 0x24($sp)
/* B73F64 800FCDC4 02001025 */ move $v0, $s0
/* B73F68 800FCDC8 24030005 */ li $v1, 5
/* B73F6C 800FCDCC A0E00000 */ sb $zero, ($a3)
/* B73F70 800FCDD0 92180003 */ lbu $t8, 3($s0)
/* B73F74 800FCDD4 17000008 */ bnez $t8, .L800FCDF8
/* B73F78 800FCDD8 00000000 */ nop
/* B73F7C 800FCDDC 96190000 */ lhu $t9, ($s0)
/* B73F80 800FCDE0 24030005 */ li $v1, 5
/* B73F84 800FCDE4 34090001 */ ori $t1, $zero, 1
/* B73F88 800FCDE8 54790004 */ bnel $v1, $t9, .L800FCDFC
/* B73F8C 800FCDEC 904A0007 */ lbu $t2, 7($v0)
/* B73F90 800FCDF0 10000001 */ b .L800FCDF8
/* B73F94 800FCDF4 A0E90000 */ sb $t1, ($a3)
.L800FCDF8:
/* B73F98 800FCDF8 904A0007 */ lbu $t2, 7($v0)
.L800FCDFC:
/* B73F9C 800FCDFC 55400008 */ bnezl $t2, .L800FCE20
/* B73FA0 800FCE00 904E000B */ lbu $t6, 0xb($v0)
/* B73FA4 800FCE04 944B0004 */ lhu $t3, 4($v0)
/* B73FA8 800FCE08 546B0005 */ bnel $v1, $t3, .L800FCE20
/* B73FAC 800FCE0C 904E000B */ lbu $t6, 0xb($v0)
/* B73FB0 800FCE10 90EC0000 */ lbu $t4, ($a3)
/* B73FB4 800FCE14 358D0002 */ ori $t5, $t4, 2
/* B73FB8 800FCE18 A0ED0000 */ sb $t5, ($a3)
/* B73FBC 800FCE1C 904E000B */ lbu $t6, 0xb($v0)
.L800FCE20:
/* B73FC0 800FCE20 55C00008 */ bnezl $t6, .L800FCE44
/* B73FC4 800FCE24 9048000F */ lbu $t0, 0xf($v0)
/* B73FC8 800FCE28 944F0008 */ lhu $t7, 8($v0)
/* B73FCC 800FCE2C 546F0005 */ bnel $v1, $t7, .L800FCE44
/* B73FD0 800FCE30 9048000F */ lbu $t0, 0xf($v0)
/* B73FD4 800FCE34 90F80000 */ lbu $t8, ($a3)
/* B73FD8 800FCE38 37190004 */ ori $t9, $t8, 4
/* B73FDC 800FCE3C A0F90000 */ sb $t9, ($a3)
/* B73FE0 800FCE40 9048000F */ lbu $t0, 0xf($v0)
.L800FCE44:
/* B73FE4 800FCE44 55000008 */ bnezl $t0, .L800FCE68
/* B73FE8 800FCE48 00001025 */ move $v0, $zero
/* B73FEC 800FCE4C 9449000C */ lhu $t1, 0xc($v0)
/* B73FF0 800FCE50 54690005 */ bnel $v1, $t1, .L800FCE68
/* B73FF4 800FCE54 00001025 */ move $v0, $zero
/* B73FF8 800FCE58 90EA0000 */ lbu $t2, ($a3)
/* B73FFC 800FCE5C 354B0008 */ ori $t3, $t2, 8
/* B74000 800FCE60 A0EB0000 */ sb $t3, ($a3)
/* B74004 800FCE64 00001025 */ move $v0, $zero
.L800FCE68:
/* B74008 800FCE68 8FBF001C */ lw $ra, 0x1c($sp)
.L800FCE6C:
/* B7400C 800FCE6C 8FB00018 */ lw $s0, 0x18($sp)
/* B74010 800FCE70 27BD0020 */ addiu $sp, $sp, 0x20
/* B74014 800FCE74 03E00008 */ jr $ra
/* B74018 800FCE78 00000000 */ nop

519
asm/code_800FCE80.s Normal file
View file

@ -0,0 +1,519 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800FCE80
/* B74020 800FCE80 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B74024 800FCE84 AFBF0014 */ sw $ra, 0x14($sp)
/* B74028 800FCE88 E7AC0020 */ swc1 $f12, 0x20($sp)
/* B7402C 800FCE8C 0C0400A4 */ jal sinf
/* B74030 800FCE90 C7AC0020 */ lwc1 $f12, 0x20($sp)
/* B74034 800FCE94 E7A0001C */ swc1 $f0, 0x1c($sp)
/* B74038 800FCE98 0C041184 */ jal cosf
/* B7403C 800FCE9C C7AC0020 */ lwc1 $f12, 0x20($sp)
/* B74040 800FCEA0 8FBF0014 */ lw $ra, 0x14($sp)
/* B74044 800FCEA4 C7A4001C */ lwc1 $f4, 0x1c($sp)
/* B74048 800FCEA8 27BD0020 */ addiu $sp, $sp, 0x20
/* B7404C 800FCEAC 03E00008 */ jr $ra
/* B74050 800FCEB0 46002003 */ div.s $f0, $f4, $f0
glabel func_800FCEB4
/* B74054 800FCEB4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B74058 800FCEB8 AFBF0014 */ sw $ra, 0x14($sp)
/* B7405C 800FCEBC 0C03F4E4 */ jal func_800FD390
/* B74060 800FCEC0 00000000 */ nop
/* B74064 800FCEC4 8FBF0014 */ lw $ra, 0x14($sp)
/* B74068 800FCEC8 27BD0018 */ addiu $sp, $sp, 0x18
/* B7406C 800FCECC 03E00008 */ jr $ra
/* B74070 800FCED0 00000000 */ nop
glabel func_800FCED4
/* B74074 800FCED4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B74078 800FCED8 AFBF0014 */ sw $ra, 0x14($sp)
/* B7407C 800FCEDC 0C03F4F2 */ jal func_800FD3C8
/* B74080 800FCEE0 00000000 */ nop
/* B74084 800FCEE4 8FBF0014 */ lw $ra, 0x14($sp)
/* B74088 800FCEE8 27BD0018 */ addiu $sp, $sp, 0x18
/* B7408C 800FCEEC 03E00008 */ jr $ra
/* B74090 800FCEF0 00000000 */ nop
glabel func_800FCEF4
/* B74094 800FCEF4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B74098 800FCEF8 AFBF0014 */ sw $ra, 0x14($sp)
/* B7409C 800FCEFC 0C03F51C */ jal func_800FD470
/* B740A0 800FCF00 00000000 */ nop
/* B740A4 800FCF04 8FBF0014 */ lw $ra, 0x14($sp)
/* B740A8 800FCF08 27BD0018 */ addiu $sp, $sp, 0x18
/* B740AC 800FCF0C 03E00008 */ jr $ra
/* B740B0 800FCF10 00000000 */ nop
glabel func_800FCF14
/* B740B4 800FCF14 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B740B8 800FCF18 AFBF0014 */ sw $ra, 0x14($sp)
/* B740BC 800FCF1C 0C03F500 */ jal func_800FD400
/* B740C0 800FCF20 00000000 */ nop
/* B740C4 800FCF24 8FBF0014 */ lw $ra, 0x14($sp)
/* B740C8 800FCF28 27BD0018 */ addiu $sp, $sp, 0x18
/* B740CC 800FCF2C 03E00008 */ jr $ra
/* B740D0 800FCF30 00000000 */ nop
glabel func_800FCF34
/* B740D4 800FCF34 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B740D8 800FCF38 AFBF0014 */ sw $ra, 0x14($sp)
/* B740DC 800FCF3C 0C03F50E */ jal func_800FD438
/* B740E0 800FCF40 00000000 */ nop
/* B740E4 800FCF44 8FBF0014 */ lw $ra, 0x14($sp)
/* B740E8 800FCF48 27BD0018 */ addiu $sp, $sp, 0x18
/* B740EC 800FCF4C 03E00008 */ jr $ra
/* B740F0 800FCF50 00000000 */ nop
glabel func_800FCF54
/* B740F4 800FCF54 460C6002 */ mul.s $f0, $f12, $f12
/* B740F8 800FCF58 3C028015 */ lui $v0, %hi(D_8014AAC0) # $v0, 0x8015
/* B740FC 800FCF5C 46006086 */ mov.s $f2, $f12
/* B74100 800FCF60 2442AAC0 */ addiu $v0, %lo(D_8014AAC0) # addiu $v0, $v0, -0x5540
/* B74104 800FCF64 46006382 */ mul.s $f14, $f12, $f0
/* B74108 800FCF68 00000000 */ nop
.L800FCF6C:
/* B7410C 800FCF6C C4440000 */ lwc1 $f4, ($v0)
/* B74110 800FCF70 24420004 */ addiu $v0, $v0, 4
/* B74114 800FCF74 460E2302 */ mul.s $f12, $f4, $f14
/* B74118 800FCF78 460C1400 */ add.s $f16, $f2, $f12
/* B7411C 800FCF7C 46101032 */ c.eq.s $f2, $f16
/* B74120 800FCF80 00000000 */ nop
/* B74124 800FCF84 45010004 */ bc1t .L800FCF98
/* B74128 800FCF88 00000000 */ nop
/* B7412C 800FCF8C 46007382 */ mul.s $f14, $f14, $f0
/* B74130 800FCF90 1000FFF6 */ b .L800FCF6C
/* B74134 800FCF94 46008086 */ mov.s $f2, $f16
.L800FCF98:
/* B74138 800FCF98 03E00008 */ jr $ra
/* B7413C 800FCF9C 46001006 */ mov.s $f0, $f2
glabel func_800FCFA0
/* B74140 800FCFA0 44808000 */ mtc1 $zero, $f16
/* B74144 800FCFA4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B74148 800FCFA8 AFBF0014 */ sw $ra, 0x14($sp)
/* B7414C 800FCFAC 460C803C */ c.lt.s $f16, $f12
/* B74150 800FCFB0 46006386 */ mov.s $f14, $f12
/* B74154 800FCFB4 3C018015 */ lui $at, %hi(D_8014AAE4)
/* B74158 800FCFB8 45020004 */ bc1fl .L800FCFCC
/* B7415C 800FCFBC 4610703C */ c.lt.s $f14, $f16
/* B74160 800FCFC0 1000000F */ b .L800FD000
/* B74164 800FCFC4 46006006 */ mov.s $f0, $f12
/* B74168 800FCFC8 4610703C */ c.lt.s $f14, $f16
.L800FCFCC:
/* B7416C 800FCFCC 00000000 */ nop
/* B74170 800FCFD0 45020004 */ bc1fl .L800FCFE4
/* B74174 800FCFD4 46107032 */ c.eq.s $f14, $f16
/* B74178 800FCFD8 10000009 */ b .L800FD000
/* B7417C 800FCFDC 46007007 */ neg.s $f0, $f14
/* B74180 800FCFE0 46107032 */ c.eq.s $f14, $f16
.L800FCFE4:
/* B74184 800FCFE4 3C018013 */ lui $at, %hi(D_801344A4)
/* B74188 800FCFE8 45000003 */ bc1f .L800FCFF8
/* B7418C 800FCFEC 00000000 */ nop
/* B74190 800FCFF0 10000030 */ b .L800FD0B4
/* B74194 800FCFF4 46008006 */ mov.s $f0, $f16
.L800FCFF8:
/* B74198 800FCFF8 1000002E */ b .L800FD0B4
/* B7419C 800FCFFC C42044A4 */ lwc1 $f0, %lo(D_801344A4)($at)
.L800FD000:
/* B741A0 800FD000 C424AAE4 */ lwc1 $f4, %lo(D_8014AAE4)($at)
/* B741A4 800FD004 3C018015 */ lui $at, %hi(D_8014AAE8)
/* B741A8 800FD008 4604003E */ c.le.s $f0, $f4
/* B741AC 800FD00C 00000000 */ nop
/* B741B0 800FD010 45000005 */ bc1f .L800FD028
/* B741B4 800FD014 00000000 */ nop
/* B741B8 800FD018 0C03F3D5 */ jal func_800FCF54
/* B741BC 800FD01C 46007306 */ mov.s $f12, $f14
/* B741C0 800FD020 10000025 */ b .L800FD0B8
/* B741C4 800FD024 8FBF0014 */ lw $ra, 0x14($sp)
.L800FD028:
/* B741C8 800FD028 C426AAE8 */ lwc1 $f6, %lo(D_8014AAE8)($at)
/* B741CC 800FD02C 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B741D0 800FD030 4600303E */ c.le.s $f6, $f0
/* B741D4 800FD034 00000000 */ nop
/* B741D8 800FD038 4502000D */ bc1fl .L800FD070
/* B741DC 800FD03C 44811000 */ mtc1 $at, $f2
/* B741E0 800FD040 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B741E4 800FD044 44811000 */ mtc1 $at, $f2
/* B741E8 800FD048 E7AE0018 */ swc1 $f14, 0x18($sp)
/* B741EC 800FD04C 0C03F3D5 */ jal func_800FCF54
/* B741F0 800FD050 46001303 */ div.s $f12, $f2, $f0
/* B741F4 800FD054 3C018015 */ lui $at, %hi(D_8014AAEC)
/* B741F8 800FD058 C428AAEC */ lwc1 $f8, %lo(D_8014AAEC)($at)
/* B741FC 800FD05C 44808000 */ mtc1 $zero, $f16
/* B74200 800FD060 C7AE0018 */ lwc1 $f14, 0x18($sp)
/* B74204 800FD064 1000000C */ b .L800FD098
/* B74208 800FD068 46004081 */ sub.s $f2, $f8, $f0
/* B7420C 800FD06C 44811000 */ mtc1 $at, $f2
.L800FD070:
/* B74210 800FD070 E7AE0018 */ swc1 $f14, 0x18($sp)
/* B74214 800FD074 46001281 */ sub.s $f10, $f2, $f0
/* B74218 800FD078 46001480 */ add.s $f18, $f2, $f0
/* B7421C 800FD07C 0C03F3D5 */ jal func_800FCF54
/* B74220 800FD080 46125303 */ div.s $f12, $f10, $f18
/* B74224 800FD084 3C018015 */ lui $at, %hi(D_8014AAF0)
/* B74228 800FD088 C424AAF0 */ lwc1 $f4, %lo(D_8014AAF0)($at)
/* B7422C 800FD08C 44808000 */ mtc1 $zero, $f16
/* B74230 800FD090 C7AE0018 */ lwc1 $f14, 0x18($sp)
/* B74234 800FD094 46002081 */ sub.s $f2, $f4, $f0
.L800FD098:
/* B74238 800FD098 460E803C */ c.lt.s $f16, $f14
/* B7423C 800FD09C 00000000 */ nop
/* B74240 800FD0A0 45020004 */ bc1fl .L800FD0B4
/* B74244 800FD0A4 46001007 */ neg.s $f0, $f2
/* B74248 800FD0A8 10000002 */ b .L800FD0B4
/* B7424C 800FD0AC 46001006 */ mov.s $f0, $f2
/* B74250 800FD0B0 46001007 */ neg.s $f0, $f2
.L800FD0B4:
/* B74254 800FD0B4 8FBF0014 */ lw $ra, 0x14($sp)
.L800FD0B8:
/* B74258 800FD0B8 27BD0018 */ addiu $sp, $sp, 0x18
/* B7425C 800FD0BC 03E00008 */ jr $ra
/* B74260 800FD0C0 00000000 */ nop
glabel func_800FD0C4
/* B74264 800FD0C4 3C01BF80 */ li $at, 0xBF800000 # 0.000000
/* B74268 800FD0C8 44810000 */ mtc1 $at, $f0
/* B7426C 800FD0CC 3C013F80 */ lui $at, 0x3f80
/* B74270 800FD0D0 460C003E */ c.le.s $f0, $f12
/* B74274 800FD0D4 00000000 */ nop
/* B74278 800FD0D8 4502000A */ bc1fl .L800FD104
/* B7427C 800FD0DC 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B74280 800FD0E0 44818000 */ mtc1 $at, $f16
/* B74284 800FD0E4 00000000 */ nop
/* B74288 800FD0E8 4610603E */ c.le.s $f12, $f16
/* B7428C 800FD0EC 00000000 */ nop
/* B74290 800FD0F0 45020004 */ bc1fl .L800FD104
/* B74294 800FD0F4 3C013F80 */ lui $at, 0x3f80
/* B74298 800FD0F8 10000013 */ b .L800FD148
/* B7429C 800FD0FC 00001025 */ move $v0, $zero
/* B742A0 800FD100 3C013F80 */ li $at, 0x3F800000 # 0.000000
.L800FD104:
/* B742A4 800FD104 44818000 */ mtc1 $at, $f16
/* B742A8 800FD108 24020001 */ li $v0, 1
/* B742AC 800FD10C 460C803C */ c.lt.s $f16, $f12
/* B742B0 800FD110 00000000 */ nop
/* B742B4 800FD114 45020004 */ bc1fl .L800FD128
/* B742B8 800FD118 4600603C */ c.lt.s $f12, $f0
/* B742BC 800FD11C 1000000A */ b .L800FD148
/* B742C0 800FD120 460C8303 */ div.s $f12, $f16, $f12
/* B742C4 800FD124 4600603C */ c.lt.s $f12, $f0
.L800FD128:
/* B742C8 800FD128 2402FFFF */ li $v0, -1
/* B742CC 800FD12C 3C018013 */ lui $at, %hi(D_801344A4)
/* B742D0 800FD130 45000003 */ bc1f .L800FD140
/* B742D4 800FD134 00000000 */ nop
/* B742D8 800FD138 10000003 */ b .L800FD148
/* B742DC 800FD13C 460C8303 */ div.s $f12, $f16, $f12
.L800FD140:
/* B742E0 800FD140 03E00008 */ jr $ra
/* B742E4 800FD144 C42044A4 */ lwc1 $f0, %lo(D_801344A4)($at)
.L800FD148:
/* B742E8 800FD148 3C014100 */ li $at, 0x41000000 # 0.000000
/* B742EC 800FD14C 460C6002 */ mul.s $f0, $f12, $f12
/* B742F0 800FD150 44801000 */ mtc1 $zero, $f2
/* B742F4 800FD154 44817000 */ mtc1 $at, $f14
/* B742F8 800FD158 24030008 */ li $v1, 8
.L800FD15C:
/* B742FC 800FD15C 460E7482 */ mul.s $f18, $f14, $f14
/* B74300 800FD160 460E7280 */ add.s $f10, $f14, $f14
/* B74304 800FD164 2463FFFC */ addiu $v1, $v1, -4
/* B74308 800FD168 46105280 */ add.s $f10, $f10, $f16
/* B7430C 800FD16C 46009482 */ mul.s $f18, $f18, $f0
/* B74310 800FD170 46107381 */ sub.s $f14, $f14, $f16
/* B74314 800FD174 460E7202 */ mul.s $f8, $f14, $f14
/* B74318 800FD178 46025280 */ add.s $f10, $f10, $f2
/* B7431C 800FD17C 460E7180 */ add.s $f6, $f14, $f14
/* B74320 800FD180 46004202 */ mul.s $f8, $f8, $f0
/* B74324 800FD184 460A9083 */ div.s $f2, $f18, $f10
/* B74328 800FD188 46103180 */ add.s $f6, $f6, $f16
/* B7432C 800FD18C 46107381 */ sub.s $f14, $f14, $f16
/* B74330 800FD190 460E7282 */ mul.s $f10, $f14, $f14
/* B74334 800FD194 46023180 */ add.s $f6, $f6, $f2
/* B74338 800FD198 460E7480 */ add.s $f18, $f14, $f14
/* B7433C 800FD19C 46005282 */ mul.s $f10, $f10, $f0
/* B74340 800FD1A0 46064083 */ div.s $f2, $f8, $f6
/* B74344 800FD1A4 46109480 */ add.s $f18, $f18, $f16
/* B74348 800FD1A8 46107381 */ sub.s $f14, $f14, $f16
/* B7434C 800FD1AC 460E7182 */ mul.s $f6, $f14, $f14
/* B74350 800FD1B0 46029480 */ add.s $f18, $f18, $f2
/* B74354 800FD1B4 460E7200 */ add.s $f8, $f14, $f14
/* B74358 800FD1B8 46003182 */ mul.s $f6, $f6, $f0
/* B7435C 800FD1BC 46125083 */ div.s $f2, $f10, $f18
/* B74360 800FD1C0 46104200 */ add.s $f8, $f8, $f16
/* B74364 800FD1C4 46107381 */ sub.s $f14, $f14, $f16
/* B74368 800FD1C8 46024200 */ add.s $f8, $f8, $f2
/* B7436C 800FD1CC 1460FFE3 */ bnez $v1, .L800FD15C
/* B74370 800FD1D0 46083083 */ div.s $f2, $f6, $f8
/* B74374 800FD1D4 46028100 */ add.s $f4, $f16, $f2
/* B74378 800FD1D8 14400003 */ bnez $v0, .L800FD1E8
/* B7437C 800FD1DC 46046083 */ div.s $f2, $f12, $f4
/* B74380 800FD1E0 03E00008 */ jr $ra
/* B74384 800FD1E4 46001006 */ mov.s $f0, $f2
.L800FD1E8:
/* B74388 800FD1E8 18400005 */ blez $v0, .L800FD200
/* B7438C 800FD1EC 3C018015 */ lui $at, %hi(D_8014AAF8)
/* B74390 800FD1F0 3C018015 */ lui $at, %hi(D_8014AAF4)
/* B74394 800FD1F4 C428AAF4 */ lwc1 $f8, %lo(D_8014AAF4)($at)
/* B74398 800FD1F8 03E00008 */ jr $ra
/* B7439C 800FD1FC 46024001 */ sub.s $f0, $f8, $f2
.L800FD200:
/* B743A0 800FD200 C42AAAF8 */ lwc1 $f10, %lo(D_8014AAF8)($at)
/* B743A4 800FD204 46025001 */ sub.s $f0, $f10, $f2
/* B743A8 800FD208 03E00008 */ jr $ra
/* B743AC 800FD20C 00000000 */ nop
glabel func_800FD210
/* B743B0 800FD210 3C0E8017 */ lui $t6, %hi(D_80175600) # $t6, 0x8017
/* B743B4 800FD214 8DCE5600 */ lw $t6, %lo(D_80175600)($t6)
/* B743B8 800FD218 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B743BC 800FD21C AFBF0014 */ sw $ra, 0x14($sp)
/* B743C0 800FD220 15C00005 */ bnez $t6, .L800FD238
/* B743C4 800FD224 00000000 */ nop
/* B743C8 800FD228 0C03F3E8 */ jal func_800FCFA0
/* B743CC 800FD22C 00000000 */ nop
/* B743D0 800FD230 10000004 */ b .L800FD244
/* B743D4 800FD234 8FBF0014 */ lw $ra, 0x14($sp)
.L800FD238:
/* B743D8 800FD238 0C03F431 */ jal func_800FD0C4
/* B743DC 800FD23C 00000000 */ nop
/* B743E0 800FD240 8FBF0014 */ lw $ra, 0x14($sp)
.L800FD244:
/* B743E4 800FD244 27BD0018 */ addiu $sp, $sp, 0x18
/* B743E8 800FD248 03E00008 */ jr $ra
/* B743EC 800FD24C 00000000 */ nop
glabel func_800FD250
/* B743F0 800FD250 44801000 */ mtc1 $zero, $f2
/* B743F4 800FD254 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B743F8 800FD258 F7B40010 */ sdc1 $f20, 0x10($sp)
/* B743FC 800FD25C 46027032 */ c.eq.s $f14, $f2
/* B74400 800FD260 46006506 */ mov.s $f20, $f12
/* B74404 800FD264 AFBF001C */ sw $ra, 0x1c($sp)
/* B74408 800FD268 45020017 */ bc1fl .L800FD2C8
/* B7440C 800FD26C 460E103E */ c.le.s $f2, $f14
/* B74410 800FD270 46026032 */ c.eq.s $f12, $f2
/* B74414 800FD274 00000000 */ nop
/* B74418 800FD278 45020004 */ bc1fl .L800FD28C
/* B7441C 800FD27C 4614103C */ c.lt.s $f2, $f20
/* B74420 800FD280 10000028 */ b .L800FD324
/* B74424 800FD284 46001006 */ mov.s $f0, $f2
/* B74428 800FD288 4614103C */ c.lt.s $f2, $f20
.L800FD28C:
/* B7442C 800FD28C 3C018015 */ lui $at, %hi(D_8014AAFC)
/* B74430 800FD290 45020004 */ bc1fl .L800FD2A4
/* B74434 800FD294 4602A03C */ c.lt.s $f20, $f2
/* B74438 800FD298 10000022 */ b .L800FD324
/* B7443C 800FD29C C420AAFC */ lwc1 $f0, %lo(D_8014AAFC)($at)
/* B74440 800FD2A0 4602A03C */ c.lt.s $f20, $f2
.L800FD2A4:
/* B74444 800FD2A4 3C018013 */ lui $at, %hi(D_801344A4)
/* B74448 800FD2A8 45000004 */ bc1f .L800FD2BC
/* B7444C 800FD2AC 00000000 */ nop
/* B74450 800FD2B0 3C018015 */ lui $at, %hi(D_8014AB00)
/* B74454 800FD2B4 1000001B */ b .L800FD324
/* B74458 800FD2B8 C420AB00 */ lwc1 $f0, %lo(D_8014AB00)($at)
.L800FD2BC:
/* B7445C 800FD2BC 10000019 */ b .L800FD324
/* B74460 800FD2C0 C42044A4 */ lwc1 $f0, %lo(D_801344A4)($at)
/* B74464 800FD2C4 460E103E */ c.le.s $f2, $f14
.L800FD2C8:
/* B74468 800FD2C8 00000000 */ nop
/* B7446C 800FD2CC 45020006 */ bc1fl .L800FD2E8
/* B74470 800FD2D0 4602A03C */ c.lt.s $f20, $f2
/* B74474 800FD2D4 0C03F484 */ jal func_800FD210
/* B74478 800FD2D8 460EA303 */ div.s $f12, $f20, $f14
/* B7447C 800FD2DC 10000012 */ b .L800FD328
/* B74480 800FD2E0 8FBF001C */ lw $ra, 0x1c($sp)
/* B74484 800FD2E4 4602A03C */ c.lt.s $f20, $f2
.L800FD2E8:
/* B74488 800FD2E8 00000000 */ nop
/* B7448C 800FD2EC 45020008 */ bc1fl .L800FD310
/* B74490 800FD2F0 460EA303 */ div.s $f12, $f20, $f14
/* B74494 800FD2F4 0C03F484 */ jal func_800FD210
/* B74498 800FD2F8 460EA303 */ div.s $f12, $f20, $f14
/* B7449C 800FD2FC 3C018015 */ lui $at, %hi(D_8014AB04)
/* B744A0 800FD300 C424AB04 */ lwc1 $f4, %lo(D_8014AB04)($at)
/* B744A4 800FD304 10000007 */ b .L800FD324
/* B744A8 800FD308 46040001 */ sub.s $f0, $f0, $f4
/* B744AC 800FD30C 460EA303 */ div.s $f12, $f20, $f14
.L800FD310:
/* B744B0 800FD310 0C03F484 */ jal func_800FD210
/* B744B4 800FD314 46006307 */ neg.s $f12, $f12
/* B744B8 800FD318 3C018015 */ lui $at, %hi(D_8014AB08)
/* B744BC 800FD31C C426AB08 */ lwc1 $f6, %lo(D_8014AB08)($at)
/* B744C0 800FD320 46003001 */ sub.s $f0, $f6, $f0
.L800FD324:
/* B744C4 800FD324 8FBF001C */ lw $ra, 0x1c($sp)
.L800FD328:
/* B744C8 800FD328 D7B40010 */ ldc1 $f20, 0x10($sp)
/* B744CC 800FD32C 27BD0020 */ addiu $sp, $sp, 0x20
/* B744D0 800FD330 03E00008 */ jr $ra
/* B744D4 800FD334 00000000 */ nop
glabel func_800FD338
/* B744D8 800FD338 460C6182 */ mul.s $f6, $f12, $f12
/* B744DC 800FD33C 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B744E0 800FD340 44812000 */ mtc1 $at, $f4
/* B744E4 800FD344 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B744E8 800FD348 AFBF0014 */ sw $ra, 0x14($sp)
/* B744EC 800FD34C 46062001 */ sub.s $f0, $f4, $f6
/* B744F0 800FD350 0C03F494 */ jal func_800FD250
/* B744F4 800FD354 46000384 */ sqrt.s $f14, $f0
/* B744F8 800FD358 8FBF0014 */ lw $ra, 0x14($sp)
/* B744FC 800FD35C 27BD0018 */ addiu $sp, $sp, 0x18
/* B74500 800FD360 03E00008 */ jr $ra
/* B74504 800FD364 00000000 */ nop
glabel func_800FD368
/* B74508 800FD368 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B7450C 800FD36C AFBF0014 */ sw $ra, 0x14($sp)
/* B74510 800FD370 0C03F4CE */ jal func_800FD338
/* B74514 800FD374 00000000 */ nop
/* B74518 800FD378 8FBF0014 */ lw $ra, 0x14($sp)
/* B7451C 800FD37C 3C018015 */ lui $at, %hi(D_8014AB0C)
/* B74520 800FD380 C424AB0C */ lwc1 $f4, %lo(D_8014AB0C)($at)
/* B74524 800FD384 27BD0018 */ addiu $sp, $sp, 0x18
/* B74528 800FD388 03E00008 */ jr $ra
/* B7452C 800FD38C 46002001 */ sub.s $f0, $f4, $f0
glabel func_800FD390
/* B74530 800FD390 4600630F */ floor.w.s $f12, $f12
/* B74534 800FD394 03E00008 */ jr $ra
/* B74538 800FD398 46806020 */ cvt.s.w $f0, $f12
glabel func_800FD39C
/* B7453C 800FD39C 4620630F */ floor.w.d $f12, $f12
/* B74540 800FD3A0 03E00008 */ jr $ra
/* B74544 800FD3A4 46806021 */ cvt.d.w $f0, $f12
glabel func_800FD3A8
/* B74548 800FD3A8 4600610F */ floor.w.s $f4, $f12
/* B7454C 800FD3AC 44022000 */ mfc1 $v0, $f4
/* B74550 800FD3B0 03E00008 */ jr $ra
/* B74554 800FD3B4 00000000 */ nop
glabel func_800FD3B8
/* B74558 800FD3B8 4620610F */ floor.w.d $f4, $f12
/* B7455C 800FD3BC 44022000 */ mfc1 $v0, $f4
/* B74560 800FD3C0 03E00008 */ jr $ra
/* B74564 800FD3C4 00000000 */ nop
glabel func_800FD3C8
/* B74568 800FD3C8 4600630E */ ceil.w.s $f12, $f12
/* B7456C 800FD3CC 03E00008 */ jr $ra
/* B74570 800FD3D0 46806020 */ cvt.s.w $f0, $f12
glabel func_800FD3D4
/* B74574 800FD3D4 4620630E */ ceil.w.d $f12, $f12
/* B74578 800FD3D8 03E00008 */ jr $ra
/* B7457C 800FD3DC 46806021 */ cvt.d.w $f0, $f12
glabel func_800FD3E0
/* B74580 800FD3E0 4600610E */ ceil.w.s $f4, $f12
/* B74584 800FD3E4 44022000 */ mfc1 $v0, $f4
/* B74588 800FD3E8 03E00008 */ jr $ra
/* B7458C 800FD3EC 00000000 */ nop
glabel func_800FD3F0
/* B74590 800FD3F0 4620610E */ ceil.w.d $f4, $f12
/* B74594 800FD3F4 44022000 */ mfc1 $v0, $f4
/* B74598 800FD3F8 03E00008 */ jr $ra
/* B7459C 800FD3FC 00000000 */ nop
glabel func_800FD400
/* B745A0 800FD400 4600630D */ trunc.w.s $f12, $f12
/* B745A4 800FD404 03E00008 */ jr $ra
/* B745A8 800FD408 46806020 */ cvt.s.w $f0, $f12
glabel func_800FD40C
/* B745AC 800FD40C 4620630D */ trunc.w.d $f12, $f12
/* B745B0 800FD410 03E00008 */ jr $ra
/* B745B4 800FD414 46806021 */ cvt.d.w $f0, $f12
glabel func_800FD418
/* B745B8 800FD418 4600610D */ trunc.w.s $f4, $f12
/* B745BC 800FD41C 44022000 */ mfc1 $v0, $f4
/* B745C0 800FD420 03E00008 */ jr $ra
/* B745C4 800FD424 00000000 */ nop
glabel func_800FD428
/* B745C8 800FD428 4620610D */ trunc.w.d $f4, $f12
/* B745CC 800FD42C 44022000 */ mfc1 $v0, $f4
/* B745D0 800FD430 03E00008 */ jr $ra
/* B745D4 800FD434 00000000 */ nop
glabel func_800FD438
/* B745D8 800FD438 4600630C */ round.w.s $f12, $f12
/* B745DC 800FD43C 03E00008 */ jr $ra
/* B745E0 800FD440 46806020 */ cvt.s.w $f0, $f12
glabel func_800FD444
/* B745E4 800FD444 4620630C */ round.w.d $f12, $f12
/* B745E8 800FD448 03E00008 */ jr $ra
/* B745EC 800FD44C 46806021 */ cvt.d.w $f0, $f12
glabel func_800FD450
/* B745F0 800FD450 4600610C */ round.w.s $f4, $f12
/* B745F4 800FD454 44022000 */ mfc1 $v0, $f4
/* B745F8 800FD458 03E00008 */ jr $ra
/* B745FC 800FD45C 00000000 */ nop
glabel func_800FD460
/* B74600 800FD460 4620610C */ round.w.d $f4, $f12
/* B74604 800FD464 44022000 */ mfc1 $v0, $f4
/* B74608 800FD468 03E00008 */ jr $ra
/* B7460C 800FD46C 00000000 */ nop
glabel func_800FD470
/* B74610 800FD470 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* B74614 800FD474 44812000 */ mtc1 $at, $f4
/* B74618 800FD478 00000000 */ nop
/* B7461C 800FD47C 46046000 */ add.s $f0, $f12, $f4
/* B74620 800FD480 4600000F */ floor.w.s $f0, $f0
/* B74624 800FD484 03E00008 */ jr $ra
/* B74628 800FD488 46800020 */ cvt.s.w $f0, $f0
glabel func_800FD48C
/* B7462C 800FD48C 3C013FE0 */ li $at, 0x3FE00000 # 0.000000
/* B74630 800FD490 44812800 */ mtc1 $at, $f5
/* B74634 800FD494 44802000 */ mtc1 $zero, $f4
/* B74638 800FD498 00000000 */ nop
/* B7463C 800FD49C 46246000 */ add.d $f0, $f12, $f4
/* B74640 800FD4A0 4620000F */ floor.w.d $f0, $f0
/* B74644 800FD4A4 03E00008 */ jr $ra
/* B74648 800FD4A8 46800021 */ cvt.d.w $f0, $f0
glabel func_800FD4AC
/* B7464C 800FD4AC 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* B74650 800FD4B0 44812000 */ mtc1 $at, $f4
/* B74654 800FD4B4 00000000 */ nop
/* B74658 800FD4B8 46046000 */ add.s $f0, $f12, $f4
/* B7465C 800FD4BC 4600000F */ floor.w.s $f0, $f0
/* B74660 800FD4C0 44020000 */ mfc1 $v0, $f0
/* B74664 800FD4C4 03E00008 */ jr $ra
/* B74668 800FD4C8 00000000 */ nop
glabel func_800FD4CC
/* B7466C 800FD4CC 3C013FE0 */ li $at, 0x3FE00000 # 0.000000
/* B74670 800FD4D0 44812800 */ mtc1 $at, $f5
/* B74674 800FD4D4 44802000 */ mtc1 $zero, $f4
/* B74678 800FD4D8 00000000 */ nop
/* B7467C 800FD4DC 46246000 */ add.d $f0, $f12, $f4
/* B74680 800FD4E0 4620000F */ floor.w.d $f0, $f0
/* B74684 800FD4E4 44020000 */ mfc1 $v0, $f0
/* B74688 800FD4E8 03E00008 */ jr $ra
/* B7468C 800FD4EC 00000000 */ nop

135
asm/code_800FD970.s Normal file
View file

@ -0,0 +1,135 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800FD970
/* B74B10 800FD970 3C038013 */ lui $v1, %hi(D_801344C0) # $v1, 0x8013
/* B74B14 800FD974 246344C0 */ addiu $v1, %lo(D_801344C0) # addiu $v1, $v1, 0x44c0
/* B74B18 800FD978 8C6E0000 */ lw $t6, ($v1)
/* B74B1C 800FD97C 3C010019 */ lui $at, (0x0019660D >> 16) # lui $at, 0x19
/* B74B20 800FD980 3421660D */ ori $at, (0x0019660D & 0xFFFF) # ori $at, $at, 0x660d
/* B74B24 800FD984 01C10019 */ multu $t6, $at
/* B74B28 800FD988 3C013C6E */ lui $at, (0x3C6EF35F >> 16) # lui $at, 0x3c6e
/* B74B2C 800FD98C 3421F35F */ ori $at, (0x3C6EF35F & 0xFFFF) # ori $at, $at, 0xf35f
/* B74B30 800FD990 00007812 */ mflo $t7
/* B74B34 800FD994 01E11021 */ addu $v0, $t7, $at
/* B74B38 800FD998 03E00008 */ jr $ra
/* B74B3C 800FD99C AC620000 */ sw $v0, ($v1)
glabel func_800FD9A0
/* B74B40 800FD9A0 3C018013 */ lui $at, %hi(D_801344C0)
/* B74B44 800FD9A4 03E00008 */ jr $ra
/* B74B48 800FD9A8 AC2444C0 */ sw $a0, %lo(D_801344C0)($at)
glabel Math_Rand_ZeroOne
/* B74B4C 800FD9AC 3C028013 */ lui $v0, %hi(D_801344C0) # $v0, 0x8013
/* B74B50 800FD9B0 244244C0 */ addiu $v0, %lo(D_801344C0) # addiu $v0, $v0, 0x44c0
/* B74B54 800FD9B4 8C4E0000 */ lw $t6, ($v0)
/* B74B58 800FD9B8 3C010019 */ lui $at, (0x0019660D >> 16) # lui $at, 0x19
/* B74B5C 800FD9BC 3421660D */ ori $at, (0x0019660D & 0xFFFF) # ori $at, $at, 0x660d
/* B74B60 800FD9C0 01C10019 */ multu $t6, $at
/* B74B64 800FD9C4 3C013C6E */ lui $at, (0x3C6EF35F >> 16) # lui $at, 0x3c6e
/* B74B68 800FD9C8 3421F35F */ ori $at, (0x3C6EF35F & 0xFFFF) # ori $at, $at, 0xf35f
/* B74B6C 800FD9CC 3C038017 */ lui $v1, %hi(D_80175640) # $v1, 0x8017
/* B74B70 800FD9D0 24635640 */ addiu $v1, %lo(D_80175640) # addiu $v1, $v1, 0x5640
/* B74B74 800FD9D4 00007812 */ mflo $t7
/* B74B78 800FD9D8 01E1C021 */ addu $t8, $t7, $at
/* B74B7C 800FD9DC 00184242 */ srl $t0, $t8, 9
/* B74B80 800FD9E0 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B74B84 800FD9E4 01014825 */ or $t1, $t0, $at
/* B74B88 800FD9E8 AC690000 */ sw $t1, ($v1)
/* B74B8C 800FD9EC C4640000 */ lwc1 $f4, ($v1)
/* B74B90 800FD9F0 44813000 */ mtc1 $at, $f6
/* B74B94 800FD9F4 AC580000 */ sw $t8, ($v0)
/* B74B98 800FD9F8 03E00008 */ jr $ra
/* B74B9C 800FD9FC 46062001 */ sub.s $f0, $f4, $f6
glabel func_800FDA00
/* B74BA0 800FDA00 3C028013 */ lui $v0, %hi(D_801344C0) # $v0, 0x8013
/* B74BA4 800FDA04 244244C0 */ addiu $v0, %lo(D_801344C0) # addiu $v0, $v0, 0x44c0
/* B74BA8 800FDA08 8C4E0000 */ lw $t6, ($v0)
/* B74BAC 800FDA0C 3C010019 */ lui $at, (0x0019660D >> 16) # lui $at, 0x19
/* B74BB0 800FDA10 3421660D */ ori $at, (0x0019660D & 0xFFFF) # ori $at, $at, 0x660d
/* B74BB4 800FDA14 01C10019 */ multu $t6, $at
/* B74BB8 800FDA18 3C013C6E */ lui $at, (0x3C6EF35F >> 16) # lui $at, 0x3c6e
/* B74BBC 800FDA1C 3421F35F */ ori $at, (0x3C6EF35F & 0xFFFF) # ori $at, $at, 0xf35f
/* B74BC0 800FDA20 3C038017 */ lui $v1, %hi(D_80175640) # $v1, 0x8017
/* B74BC4 800FDA24 24635640 */ addiu $v1, %lo(D_80175640) # addiu $v1, $v1, 0x5640
/* B74BC8 800FDA28 00007812 */ mflo $t7
/* B74BCC 800FDA2C 01E1C021 */ addu $t8, $t7, $at
/* B74BD0 800FDA30 00184242 */ srl $t0, $t8, 9
/* B74BD4 800FDA34 3C013F80 */ lui $at, 0x3f80
/* B74BD8 800FDA38 01014825 */ or $t1, $t0, $at
/* B74BDC 800FDA3C AC690000 */ sw $t1, ($v1)
/* B74BE0 800FDA40 3C013FC0 */ li $at, 0x3FC00000 # 0.000000
/* B74BE4 800FDA44 44813000 */ mtc1 $at, $f6
/* B74BE8 800FDA48 C4640000 */ lwc1 $f4, ($v1)
/* B74BEC 800FDA4C AC580000 */ sw $t8, ($v0)
/* B74BF0 800FDA50 03E00008 */ jr $ra
/* B74BF4 800FDA54 46062001 */ sub.s $f0, $f4, $f6
glabel func_800FDA58
/* B74BF8 800FDA58 03E00008 */ jr $ra
/* B74BFC 800FDA5C AC850000 */ sw $a1, ($a0)
glabel func_800FDA60
/* B74C00 800FDA60 8C830000 */ lw $v1, ($a0)
/* B74C04 800FDA64 3C010019 */ lui $at, (0x0019660D >> 16) # lui $at, 0x19
/* B74C08 800FDA68 3421660D */ ori $at, (0x0019660D & 0xFFFF) # ori $at, $at, 0x660d
/* B74C0C 800FDA6C 00610019 */ multu $v1, $at
/* B74C10 800FDA70 3C013C6E */ lui $at, (0x3C6EF35F >> 16) # lui $at, 0x3c6e
/* B74C14 800FDA74 3421F35F */ ori $at, (0x3C6EF35F & 0xFFFF) # ori $at, $at, 0xf35f
/* B74C18 800FDA78 00001812 */ mflo $v1
/* B74C1C 800FDA7C 00611021 */ addu $v0, $v1, $at
/* B74C20 800FDA80 03E00008 */ jr $ra
/* B74C24 800FDA84 AC820000 */ sw $v0, ($a0)
glabel func_800FDA88
/* B74C28 800FDA88 8C820000 */ lw $v0, ($a0)
/* B74C2C 800FDA8C 3C010019 */ lui $at, (0x0019660D >> 16) # lui $at, 0x19
/* B74C30 800FDA90 3421660D */ ori $at, (0x0019660D & 0xFFFF) # ori $at, $at, 0x660d
/* B74C34 800FDA94 00410019 */ multu $v0, $at
/* B74C38 800FDA98 3C013C6E */ lui $at, (0x3C6EF35F >> 16) # lui $at, 0x3c6e
/* B74C3C 800FDA9C 3421F35F */ ori $at, (0x3C6EF35F & 0xFFFF) # ori $at, $at, 0xf35f
/* B74C40 800FDAA0 3C038017 */ lui $v1, %hi(D_80175640) # $v1, 0x8017
/* B74C44 800FDAA4 24635640 */ addiu $v1, %lo(D_80175640) # addiu $v1, $v1, 0x5640
/* B74C48 800FDAA8 00001012 */ mflo $v0
/* B74C4C 800FDAAC 00411021 */ addu $v0, $v0, $at
/* B74C50 800FDAB0 00027242 */ srl $t6, $v0, 9
/* B74C54 800FDAB4 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B74C58 800FDAB8 01C17825 */ or $t7, $t6, $at
/* B74C5C 800FDABC AC820000 */ sw $v0, ($a0)
/* B74C60 800FDAC0 AC6F0000 */ sw $t7, ($v1)
/* B74C64 800FDAC4 C4640000 */ lwc1 $f4, ($v1)
/* B74C68 800FDAC8 44813000 */ mtc1 $at, $f6
/* B74C6C 800FDACC 03E00008 */ jr $ra
/* B74C70 800FDAD0 46062001 */ sub.s $f0, $f4, $f6
glabel func_800FDAD4
/* B74C74 800FDAD4 8C820000 */ lw $v0, ($a0)
/* B74C78 800FDAD8 3C010019 */ lui $at, (0x0019660D >> 16) # lui $at, 0x19
/* B74C7C 800FDADC 3421660D */ ori $at, (0x0019660D & 0xFFFF) # ori $at, $at, 0x660d
/* B74C80 800FDAE0 00410019 */ multu $v0, $at
/* B74C84 800FDAE4 3C013C6E */ lui $at, (0x3C6EF35F >> 16) # lui $at, 0x3c6e
/* B74C88 800FDAE8 3421F35F */ ori $at, (0x3C6EF35F & 0xFFFF) # ori $at, $at, 0xf35f
/* B74C8C 800FDAEC 3C038017 */ lui $v1, %hi(D_80175640) # $v1, 0x8017
/* B74C90 800FDAF0 24635640 */ addiu $v1, %lo(D_80175640) # addiu $v1, $v1, 0x5640
/* B74C94 800FDAF4 00001012 */ mflo $v0
/* B74C98 800FDAF8 00411021 */ addu $v0, $v0, $at
/* B74C9C 800FDAFC 00027242 */ srl $t6, $v0, 9
/* B74CA0 800FDB00 3C013F80 */ lui $at, 0x3f80
/* B74CA4 800FDB04 01C17825 */ or $t7, $t6, $at
/* B74CA8 800FDB08 AC820000 */ sw $v0, ($a0)
/* B74CAC 800FDB0C AC6F0000 */ sw $t7, ($v1)
/* B74CB0 800FDB10 3C013FC0 */ li $at, 0x3FC00000 # 0.000000
/* B74CB4 800FDB14 44813000 */ mtc1 $at, $f6
/* B74CB8 800FDB18 C4640000 */ lwc1 $f4, ($v1)
/* B74CBC 800FDB1C 03E00008 */ jr $ra
/* B74CC0 800FDB20 46062001 */ sub.s $f0, $f4, $f6

523
asm/code_800FF340.s Normal file
View file

@ -0,0 +1,523 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800FF340
/* B764E0 800FF340 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B764E4 800FF344 AFA5001C */ sw $a1, 0x1c($sp)
/* B764E8 800FF348 00802825 */ move $a1, $a0
/* B764EC 800FF34C AFBF0014 */ sw $ra, 0x14($sp)
/* B764F0 800FF350 AFA40018 */ sw $a0, 0x18($sp)
/* B764F4 800FF354 00C03825 */ move $a3, $a2
/* B764F8 800FF358 8FA6001C */ lw $a2, 0x1c($sp)
/* B764FC 800FF35C 0C0014B8 */ jal _Printf
/* B76500 800FF360 8C840000 */ lw $a0, ($a0)
/* B76504 800FF364 8FBF0014 */ lw $ra, 0x14($sp)
/* B76508 800FF368 27BD0018 */ addiu $sp, $sp, 0x18
/* B7650C 800FF36C 03E00008 */ jr $ra
/* B76510 800FF370 00000000 */ nop
glabel func_800FF374
/* B76514 800FF374 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B76518 800FF378 AFBF0014 */ sw $ra, 0x14($sp)
/* B7651C 800FF37C AFA60028 */ sw $a2, 0x28($sp)
/* B76520 800FF380 AFA50024 */ sw $a1, 0x24($sp)
/* B76524 800FF384 AFA7002C */ sw $a3, 0x2c($sp)
/* B76528 800FF388 0C03FCD0 */ jal func_800FF340
/* B7652C 800FF38C 27A60028 */ addiu $a2, $sp, 0x28
/* B76530 800FF390 8FBF0014 */ lw $ra, 0x14($sp)
/* B76534 800FF394 27BD0020 */ addiu $sp, $sp, 0x20
/* B76538 800FF398 03E00008 */ jr $ra
/* B7653C 800FF39C 00000000 */ nop
glabel func_800FF3A0
/* B76540 800FF3A0 27BDFF98 */ addiu $sp, $sp, -0x68
/* B76544 800FF3A4 AFBF0024 */ sw $ra, 0x24($sp)
/* B76548 800FF3A8 AFA40068 */ sw $a0, 0x68($sp)
/* B7654C 800FF3AC AFA5006C */ sw $a1, 0x6c($sp)
/* B76550 800FF3B0 27A5004C */ addiu $a1, $sp, 0x4c
/* B76554 800FF3B4 27A40050 */ addiu $a0, $sp, 0x50
/* B76558 800FF3B8 0C001874 */ jal osCreateMesgQueue
/* B7655C 800FF3BC 24060001 */ li $a2, 1
/* B76560 800FF3C0 240E0000 */ li $t6, 0
/* B76564 800FF3C4 240F0000 */ li $t7, 0
/* B76568 800FF3C8 27B80050 */ addiu $t8, $sp, 0x50
/* B7656C 800FF3CC AFB80018 */ sw $t8, 0x18($sp)
/* B76570 800FF3D0 AFAF0014 */ sw $t7, 0x14($sp)
/* B76574 800FF3D4 AFAE0010 */ sw $t6, 0x10($sp)
/* B76578 800FF3D8 27A40028 */ addiu $a0, $sp, 0x28
/* B7657C 800FF3DC 8FA60068 */ lw $a2, 0x68($sp)
/* B76580 800FF3E0 8FA7006C */ lw $a3, 0x6c($sp)
/* B76584 800FF3E4 0C0418B8 */ jal osSetTimer
/* B76588 800FF3E8 AFA0001C */ sw $zero, 0x1c($sp)
/* B7658C 800FF3EC 27A40050 */ addiu $a0, $sp, 0x50
/* B76590 800FF3F0 00002825 */ move $a1, $zero
/* B76594 800FF3F4 0C000CA0 */ jal osRecvMesg
/* B76598 800FF3F8 24060001 */ li $a2, 1
/* B7659C 800FF3FC 8FBF0024 */ lw $ra, 0x24($sp)
/* B765A0 800FF400 27BD0068 */ addiu $sp, $sp, 0x68
/* B765A4 800FF404 03E00008 */ jr $ra
/* B765A8 800FF408 00000000 */ nop
glabel func_800FF40C
/* B765AC 800FF40C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B765B0 800FF410 AFBF0014 */ sw $ra, 0x14($sp)
/* B765B4 800FF414 AFA40018 */ sw $a0, 0x18($sp)
/* B765B8 800FF418 00802825 */ move $a1, $a0
/* B765BC 800FF41C 24040000 */ li $a0, 0
/* B765C0 800FF420 24060000 */ li $a2, 0
/* B765C4 800FF424 0C000E1E */ jal __ll_mul
/* B765C8 800FF428 24070003 */ li $a3, 3
/* B765CC 800FF42C 00402025 */ move $a0, $v0
/* B765D0 800FF430 00602825 */ move $a1, $v1
/* B765D4 800FF434 24060000 */ li $a2, 0
/* B765D8 800FF438 0C000DDE */ jal __ull_div
/* B765DC 800FF43C 24070040 */ li $a3, 64
/* B765E0 800FF440 00402025 */ move $a0, $v0
/* B765E4 800FF444 0C03FCE8 */ jal func_800FF3A0
/* B765E8 800FF448 00602825 */ move $a1, $v1
/* B765EC 800FF44C 8FBF0014 */ lw $ra, 0x14($sp)
/* B765F0 800FF450 27BD0018 */ addiu $sp, $sp, 0x18
/* B765F4 800FF454 03E00008 */ jr $ra
/* B765F8 800FF458 00000000 */ nop
glabel func_800FF45C
/* B765FC 800FF45C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B76600 800FF460 AFBF0014 */ sw $ra, 0x14($sp)
/* B76604 800FF464 AFA40018 */ sw $a0, 0x18($sp)
/* B76608 800FF468 00802825 */ move $a1, $a0
/* B7660C 800FF46C 24040000 */ li $a0, 0
/* B76610 800FF470 24060000 */ li $a2, 0
/* B76614 800FF474 0C000E1E */ jal __ll_mul
/* B76618 800FF478 24070BB8 */ li $a3, 3000
/* B7661C 800FF47C 00402025 */ move $a0, $v0
/* B76620 800FF480 00602825 */ move $a1, $v1
/* B76624 800FF484 24060000 */ li $a2, 0
/* B76628 800FF488 0C000DDE */ jal __ull_div
/* B7662C 800FF48C 24070040 */ li $a3, 64
/* B76630 800FF490 00402025 */ move $a0, $v0
/* B76634 800FF494 0C03FCE8 */ jal func_800FF3A0
/* B76638 800FF498 00602825 */ move $a1, $v1
/* B7663C 800FF49C 8FBF0014 */ lw $ra, 0x14($sp)
/* B76640 800FF4A0 27BD0018 */ addiu $sp, $sp, 0x18
/* B76644 800FF4A4 03E00008 */ jr $ra
/* B76648 800FF4A8 00000000 */ nop
glabel func_800FF4AC
/* B7664C 800FF4AC 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B76650 800FF4B0 AFBF0014 */ sw $ra, 0x14($sp)
/* B76654 800FF4B4 AFA40018 */ sw $a0, 0x18($sp)
/* B76658 800FF4B8 00802825 */ move $a1, $a0
/* B7665C 800FF4BC 3C0702CB */ lui $a3, (0x02CB4178 >> 16) # lui $a3, 0x2cb
/* B76660 800FF4C0 34E74178 */ ori $a3, (0x02CB4178 & 0xFFFF) # ori $a3, $a3, 0x4178
/* B76664 800FF4C4 24040000 */ li $a0, 0
/* B76668 800FF4C8 0C000E1E */ jal __ll_mul
/* B7666C 800FF4CC 24060000 */ li $a2, 0
/* B76670 800FF4D0 00402025 */ move $a0, $v0
/* B76674 800FF4D4 00602825 */ move $a1, $v1
/* B76678 800FF4D8 24060000 */ li $a2, 0
/* B7667C 800FF4DC 0C000DDE */ jal __ull_div
/* B76680 800FF4E0 240703E8 */ li $a3, 1000
/* B76684 800FF4E4 00402025 */ move $a0, $v0
/* B76688 800FF4E8 0C03FCE8 */ jal func_800FF3A0
/* B7668C 800FF4EC 00602825 */ move $a1, $v1
/* B76690 800FF4F0 8FBF0014 */ lw $ra, 0x14($sp)
/* B76694 800FF4F4 27BD0018 */ addiu $sp, $sp, 0x18
/* B76698 800FF4F8 03E00008 */ jr $ra
/* B7669C 800FF4FC 00000000 */ nop
glabel func_800FF500
/* B766A0 800FF500 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B766A4 800FF504 AFBF0014 */ sw $ra, 0x14($sp)
/* B766A8 800FF508 AFA40018 */ sw $a0, 0x18($sp)
/* B766AC 800FF50C 00802825 */ move $a1, $a0
/* B766B0 800FF510 3C0702CB */ lui $a3, (0x02CB4178 >> 16) # lui $a3, 0x2cb
/* B766B4 800FF514 34E74178 */ ori $a3, (0x02CB4178 & 0xFFFF) # ori $a3, $a3, 0x4178
/* B766B8 800FF518 24040000 */ li $a0, 0
/* B766BC 800FF51C 0C000E1E */ jal __ll_mul
/* B766C0 800FF520 24060000 */ li $a2, 0
/* B766C4 800FF524 00402025 */ move $a0, $v0
/* B766C8 800FF528 0C03FCE8 */ jal func_800FF3A0
/* B766CC 800FF52C 00602825 */ move $a1, $v1
/* B766D0 800FF530 8FBF0014 */ lw $ra, 0x14($sp)
/* B766D4 800FF534 27BD0018 */ addiu $sp, $sp, 0x18
/* B766D8 800FF538 03E00008 */ jr $ra
/* B766DC 800FF53C 00000000 */ nop
glabel func_800FF540
/* B766E0 800FF540 30C300FF */ andi $v1, $a2, 0xff
/* B766E4 800FF544 00A03825 */ move $a3, $a1
/* B766E8 800FF548 AFA60008 */ sw $a2, 8($sp)
/* B766EC 800FF54C 18600014 */ blez $v1, .L800FF5A0
/* B766F0 800FF550 00001025 */ move $v0, $zero
.L800FF554:
/* B766F4 800FF554 000279C0 */ sll $t7, $v0, 7
/* B766F8 800FF558 24840001 */ addiu $a0, $a0, 1
/* B766FC 800FF55C 00EF3021 */ addu $a2, $a3, $t7
/* B76700 800FF560 00002825 */ move $a1, $zero
.L800FF564:
/* B76704 800FF564 0005C840 */ sll $t9, $a1, 1
/* B76708 800FF568 24A50001 */ addiu $a1, $a1, 1
/* B7670C 800FF56C 90980000 */ lbu $t8, ($a0)
/* B76710 800FF570 30A900FF */ andi $t1, $a1, 0xff
/* B76714 800FF574 29210040 */ slti $at, $t1, 0x40
/* B76718 800FF578 00D94021 */ addu $t0, $a2, $t9
/* B7671C 800FF57C 01202825 */ move $a1, $t1
/* B76720 800FF580 24840001 */ addiu $a0, $a0, 1
/* B76724 800FF584 1420FFF7 */ bnez $at, .L800FF564
/* B76728 800FF588 A5180000 */ sh $t8, ($t0)
/* B7672C 800FF58C 24420001 */ addiu $v0, $v0, 1
/* B76730 800FF590 304A00FF */ andi $t2, $v0, 0xff
/* B76734 800FF594 0143082A */ slt $at, $t2, $v1
/* B76738 800FF598 1420FFEE */ bnez $at, .L800FF554
/* B7673C 800FF59C 01401025 */ move $v0, $t2
.L800FF5A0:
/* B76740 800FF5A0 03E00008 */ jr $ra
/* B76744 800FF5A4 00000000 */ nop
glabel func_800FF5A8
/* B76748 800FF5A8 27BDFFF8 */ addiu $sp, $sp, -8
/* B7674C 800FF5AC AFB00004 */ sw $s0, 4($sp)
/* B76750 800FF5B0 00A08025 */ move $s0, $a1
/* B76754 800FF5B4 24020001 */ li $v0, 1
/* B76758 800FF5B8 00001825 */ move $v1, $zero
/* B7675C 800FF5BC 24060001 */ li $a2, 1
/* B76760 800FF5C0 24070001 */ li $a3, 1
.L800FF5C4:
/* B76764 800FF5C4 00E42821 */ addu $a1, $a3, $a0
/* B76768 800FF5C8 90AEFFFF */ lbu $t6, -1($a1)
/* B7676C 800FF5CC 19C0000C */ blez $t6, .L800FF600
.L800FF5D0:
/* B76770 800FF5D0 02037821 */ addu $t7, $s0, $v1
/* B76774 800FF5D4 A1E20000 */ sb $v0, ($t7)
/* B76778 800FF5D8 90AAFFFF */ lbu $t2, -1($a1)
/* B7677C 800FF5DC 24C60001 */ addiu $a2, $a2, 1
/* B76780 800FF5E0 00064400 */ sll $t0, $a2, 0x10
/* B76784 800FF5E4 24630001 */ addiu $v1, $v1, 1
/* B76788 800FF5E8 00083403 */ sra $a2, $t0, 0x10
/* B7678C 800FF5EC 0003C400 */ sll $t8, $v1, 0x10
/* B76790 800FF5F0 0146082A */ slt $at, $t2, $a2
/* B76794 800FF5F4 1020FFF6 */ beqz $at, .L800FF5D0
/* B76798 800FF5F8 00181C03 */ sra $v1, $t8, 0x10
/* B7679C 800FF5FC 24060001 */ li $a2, 1
.L800FF600:
/* B767A0 800FF600 24420001 */ addiu $v0, $v0, 1
/* B767A4 800FF604 304700FF */ andi $a3, $v0, 0xff
/* B767A8 800FF608 28E10011 */ slti $at, $a3, 0x11
/* B767AC 800FF60C 1420FFED */ bnez $at, .L800FF5C4
/* B767B0 800FF610 00E01025 */ move $v0, $a3
/* B767B4 800FF614 02036021 */ addu $t4, $s0, $v1
/* B767B8 800FF618 A1800000 */ sb $zero, ($t4)
/* B767BC 800FF61C 8FB00004 */ lw $s0, 4($sp)
/* B767C0 800FF620 27BD0008 */ addiu $sp, $sp, 8
/* B767C4 800FF624 03E00008 */ jr $ra
/* B767C8 800FF628 00601025 */ move $v0, $v1
glabel func_800FF62C
/* B767CC 800FF62C 90860000 */ lbu $a2, ($a0)
/* B767D0 800FF630 00001825 */ move $v1, $zero
/* B767D4 800FF634 00001025 */ move $v0, $zero
/* B767D8 800FF638 00C03825 */ move $a3, $a2
.L800FF63C:
/* B767DC 800FF63C 00037040 */ sll $t6, $v1, 1
.L800FF640:
/* B767E0 800FF640 24630001 */ addiu $v1, $v1, 1
/* B767E4 800FF644 0003C400 */ sll $t8, $v1, 0x10
/* B767E8 800FF648 00181C03 */ sra $v1, $t8, 0x10
/* B767EC 800FF64C 00AE7821 */ addu $t7, $a1, $t6
/* B767F0 800FF650 A5E20000 */ sh $v0, ($t7)
/* B767F4 800FF654 00645021 */ addu $t2, $v1, $a0
/* B767F8 800FF658 91480000 */ lbu $t0, ($t2)
/* B767FC 800FF65C 24420001 */ addiu $v0, $v0, 1
/* B76800 800FF660 3049FFFF */ andi $t1, $v0, 0xffff
/* B76804 800FF664 10E8FFF5 */ beq $a3, $t0, .L800FF63C
/* B76808 800FF668 01201025 */ move $v0, $t1
/* B7680C 800FF66C 11000008 */ beqz $t0, .L800FF690
.L800FF670:
/* B76810 800FF670 24C60001 */ addiu $a2, $a2, 1
/* B76814 800FF674 30C700FF */ andi $a3, $a2, 0xff
/* B76818 800FF678 00025840 */ sll $t3, $v0, 1
/* B7681C 800FF67C 3162FFFF */ andi $v0, $t3, 0xffff
/* B76820 800FF680 1507FFFB */ bne $t0, $a3, .L800FF670
/* B76824 800FF684 00E03025 */ move $a2, $a3
/* B76828 800FF688 1000FFED */ b .L800FF640
/* B7682C 800FF68C 00037040 */ sll $t6, $v1, 1
.L800FF690:
/* B76830 800FF690 03E00008 */ jr $ra
/* B76834 800FF694 00601025 */ move $v0, $v1
glabel func_800FF698
/* B76838 800FF698 27BDFFF8 */ addiu $sp, $sp, -8
/* B7683C 800FF69C AFB00004 */ sw $s0, 4($sp)
/* B76840 800FF6A0 00C08025 */ move $s0, $a2
/* B76844 800FF6A4 00A03825 */ move $a3, $a1
/* B76848 800FF6A8 00001825 */ move $v1, $zero
/* B7684C 800FF6AC 00001025 */ move $v0, $zero
/* B76850 800FF6B0 3408FFFF */ li $t0, 65535
.L800FF6B4:
/* B76854 800FF6B4 00442821 */ addu $a1, $v0, $a0
/* B76858 800FF6B8 90AE0000 */ lbu $t6, ($a1)
/* B7685C 800FF6BC 0002C840 */ sll $t9, $v0, 1
/* B76860 800FF6C0 00E27821 */ addu $t7, $a3, $v0
/* B76864 800FF6C4 11C00014 */ beqz $t6, .L800FF718
/* B76868 800FF6C8 00F94821 */ addu $t1, $a3, $t9
/* B7686C 800FF6CC 0003C840 */ sll $t9, $v1, 1
/* B76870 800FF6D0 A1E30000 */ sb $v1, ($t7)
/* B76874 800FF6D4 02194821 */ addu $t1, $s0, $t9
/* B76878 800FF6D8 952A0000 */ lhu $t2, ($t1)
/* B7687C 800FF6DC 0002C040 */ sll $t8, $v0, 1
/* B76880 800FF6E0 00F83021 */ addu $a2, $a3, $t8
/* B76884 800FF6E4 A4CA0010 */ sh $t2, 0x10($a2)
/* B76888 800FF6E8 90AB0000 */ lbu $t3, ($a1)
/* B7688C 800FF6EC 006B1821 */ addu $v1, $v1, $t3
/* B76890 800FF6F0 2463FFFF */ addiu $v1, $v1, -1
/* B76894 800FF6F4 306CFFFF */ andi $t4, $v1, 0xffff
/* B76898 800FF6F8 000C6840 */ sll $t5, $t4, 1
/* B7689C 800FF6FC 020D7021 */ addu $t6, $s0, $t5
/* B768A0 800FF700 95CF0000 */ lhu $t7, ($t6)
/* B768A4 800FF704 25830001 */ addiu $v1, $t4, 1
/* B768A8 800FF708 3078FFFF */ andi $t8, $v1, 0xffff
/* B768AC 800FF70C 03001825 */ move $v1, $t8
/* B768B0 800FF710 10000002 */ b .L800FF71C
/* B768B4 800FF714 A4CF0030 */ sh $t7, 0x30($a2)
.L800FF718:
/* B768B8 800FF718 A5280030 */ sh $t0, 0x30($t1)
.L800FF71C:
/* B768BC 800FF71C 24420001 */ addiu $v0, $v0, 1
/* B768C0 800FF720 304A00FF */ andi $t2, $v0, 0xff
/* B768C4 800FF724 29410010 */ slti $at, $t2, 0x10
/* B768C8 800FF728 1420FFE2 */ bnez $at, .L800FF6B4
/* B768CC 800FF72C 01401025 */ move $v0, $t2
/* B768D0 800FF730 8FB00004 */ lw $s0, 4($sp)
/* B768D4 800FF734 27BD0008 */ addiu $sp, $sp, 8
/* B768D8 800FF738 03E00008 */ jr $ra
/* B768DC 800FF73C 00601025 */ move $v0, $v1
glabel func_800FF740
/* B768E0 800FF740 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B768E4 800FF744 AFBF0014 */ sw $ra, 0x14($sp)
/* B768E8 800FF748 AFA50024 */ sw $a1, 0x24($sp)
/* B768EC 800FF74C AFA40020 */ sw $a0, 0x20($sp)
/* B768F0 800FF750 AFA60028 */ sw $a2, 0x28($sp)
/* B768F4 800FF754 AFA7002C */ sw $a3, 0x2c($sp)
/* B768F8 800FF758 0C03FD6A */ jal func_800FF5A8
/* B768FC 800FF75C 00C02825 */ move $a1, $a2
/* B76900 800FF760 00021C00 */ sll $v1, $v0, 0x10
/* B76904 800FF764 00037403 */ sra $t6, $v1, 0x10
/* B76908 800FF768 1040000B */ beqz $v0, .L800FF798
/* B7690C 800FF76C 01C01825 */ move $v1, $t6
/* B76910 800FF770 93A40033 */ lbu $a0, 0x33($sp)
/* B76914 800FF774 28410101 */ slti $at, $v0, 0x101
/* B76918 800FF778 10800003 */ beqz $a0, .L800FF788
/* B7691C 800FF77C 00000000 */ nop
/* B76920 800FF780 10200005 */ beqz $at, .L800FF798
/* B76924 800FF784 00000000 */ nop
.L800FF788:
/* B76928 800FF788 14800005 */ bnez $a0, .L800FF7A0
/* B7692C 800FF78C 28410011 */ slti $at, $v0, 0x11
/* B76930 800FF790 54200004 */ bnezl $at, .L800FF7A4
/* B76934 800FF794 8FA40028 */ lw $a0, 0x28($sp)
.L800FF798:
/* B76938 800FF798 10000014 */ b .L800FF7EC
/* B7693C 800FF79C 00001025 */ move $v0, $zero
.L800FF7A0:
/* B76940 800FF7A0 8FA40028 */ lw $a0, 0x28($sp)
.L800FF7A4:
/* B76944 800FF7A4 8FA5002C */ lw $a1, 0x2c($sp)
/* B76948 800FF7A8 0C03FD8B */ jal func_800FF62C
/* B7694C 800FF7AC A7A3001E */ sh $v1, 0x1e($sp)
/* B76950 800FF7B0 87A3001E */ lh $v1, 0x1e($sp)
/* B76954 800FF7B4 8FA40020 */ lw $a0, 0x20($sp)
/* B76958 800FF7B8 8FA50024 */ lw $a1, 0x24($sp)
/* B7695C 800FF7BC 10430003 */ beq $v0, $v1, .L800FF7CC
/* B76960 800FF7C0 8FA6002C */ lw $a2, 0x2c($sp)
/* B76964 800FF7C4 10000009 */ b .L800FF7EC
/* B76968 800FF7C8 00001025 */ move $v0, $zero
.L800FF7CC:
/* B7696C 800FF7CC 0C03FDA6 */ jal func_800FF698
/* B76970 800FF7D0 A7A3001E */ sh $v1, 0x1e($sp)
/* B76974 800FF7D4 87A3001E */ lh $v1, 0x1e($sp)
/* B76978 800FF7D8 50620004 */ beql $v1, $v0, .L800FF7EC
/* B7697C 800FF7DC 00601025 */ move $v0, $v1
/* B76980 800FF7E0 10000002 */ b .L800FF7EC
/* B76984 800FF7E4 00001025 */ move $v0, $zero
/* B76988 800FF7E8 00601025 */ move $v0, $v1
.L800FF7EC:
/* B7698C 800FF7EC 8FBF0014 */ lw $ra, 0x14($sp)
/* B76990 800FF7F0 27BD0020 */ addiu $sp, $sp, 0x20
/* B76994 800FF7F4 03E00008 */ jr $ra
/* B76998 800FF7F8 00000000 */ nop
glabel func_800FF7FC
/* B7699C 800FF7FC 27BDFFC0 */ addiu $sp, $sp, -0x40
/* B769A0 800FF800 AFB4002C */ sw $s4, 0x2c($sp)
/* B769A4 800FF804 93B40053 */ lbu $s4, 0x53($sp)
/* B769A8 800FF808 AFB60034 */ sw $s6, 0x34($sp)
/* B769AC 800FF80C AFB50030 */ sw $s5, 0x30($sp)
/* B769B0 800FF810 AFB30028 */ sw $s3, 0x28($sp)
/* B769B4 800FF814 AFB10020 */ sw $s1, 0x20($sp)
/* B769B8 800FF818 AFB0001C */ sw $s0, 0x1c($sp)
/* B769BC 800FF81C 00808025 */ move $s0, $a0
/* B769C0 800FF820 00A09825 */ move $s3, $a1
/* B769C4 800FF824 00C0A825 */ move $s5, $a2
/* B769C8 800FF828 00E0B025 */ move $s6, $a3
/* B769CC 800FF82C AFBF003C */ sw $ra, 0x3c($sp)
/* B769D0 800FF830 AFB70038 */ sw $s7, 0x38($sp)
/* B769D4 800FF834 AFB20024 */ sw $s2, 0x24($sp)
/* B769D8 800FF838 1A80001A */ blez $s4, .L800FF8A4
/* B769DC 800FF83C 00008825 */ move $s1, $zero
/* B769E0 800FF840 24170054 */ li $s7, 84
.L800FF844:
/* B769E4 800FF844 02370019 */ multu $s1, $s7
/* B769E8 800FF848 92020000 */ lbu $v0, ($s0)
/* B769EC 800FF84C 26100001 */ addiu $s0, $s0, 1
/* B769F0 800FF850 02002025 */ move $a0, $s0
/* B769F4 800FF854 00027103 */ sra $t6, $v0, 4
/* B769F8 800FF858 AFAE0010 */ sw $t6, 0x10($sp)
/* B769FC 800FF85C 02A03025 */ move $a2, $s5
/* B76A00 800FF860 02C03825 */ move $a3, $s6
/* B76A04 800FF864 00009012 */ mflo $s2
/* B76A08 800FF868 02532821 */ addu $a1, $s2, $s3
/* B76A0C 800FF86C 0C03FDD0 */ jal func_800FF740
/* B76A10 800FF870 00000000 */ nop
/* B76A14 800FF874 14400003 */ bnez $v0, .L800FF884
/* B76A18 800FF878 26100010 */ addiu $s0, $s0, 0x10
/* B76A1C 800FF87C 1000000A */ b .L800FF8A8
/* B76A20 800FF880 24020001 */ li $v0, 1
.L800FF884:
/* B76A24 800FF884 26310001 */ addiu $s1, $s1, 1
/* B76A28 800FF888 323800FF */ andi $t8, $s1, 0xff
/* B76A2C 800FF88C 02727821 */ addu $t7, $s3, $s2
/* B76A30 800FF890 0314082A */ slt $at, $t8, $s4
/* B76A34 800FF894 ADF00050 */ sw $s0, 0x50($t7)
/* B76A38 800FF898 03008825 */ move $s1, $t8
/* B76A3C 800FF89C 1420FFE9 */ bnez $at, .L800FF844
/* B76A40 800FF8A0 02028021 */ addu $s0, $s0, $v0
.L800FF8A4:
/* B76A44 800FF8A4 00001025 */ move $v0, $zero
.L800FF8A8:
/* B76A48 800FF8A8 8FBF003C */ lw $ra, 0x3c($sp)
/* B76A4C 800FF8AC 8FB0001C */ lw $s0, 0x1c($sp)
/* B76A50 800FF8B0 8FB10020 */ lw $s1, 0x20($sp)
/* B76A54 800FF8B4 8FB20024 */ lw $s2, 0x24($sp)
/* B76A58 800FF8B8 8FB30028 */ lw $s3, 0x28($sp)
/* B76A5C 800FF8BC 8FB4002C */ lw $s4, 0x2c($sp)
/* B76A60 800FF8C0 8FB50030 */ lw $s5, 0x30($sp)
/* B76A64 800FF8C4 8FB60034 */ lw $s6, 0x34($sp)
/* B76A68 800FF8C8 8FB70038 */ lw $s7, 0x38($sp)
/* B76A6C 800FF8CC 03E00008 */ jr $ra
/* B76A70 800FF8D0 27BD0040 */ addiu $sp, $sp, 0x40
glabel func_800FF8D4
/* B76A74 800FF8D4 27BDFFF0 */ addiu $sp, $sp, -0x10
/* B76A78 800FF8D8 AFB00008 */ sw $s0, 8($sp)
/* B76A7C 800FF8DC 87B00022 */ lh $s0, 0x22($sp)
/* B76A80 800FF8E0 AFB1000C */ sw $s1, 0xc($sp)
/* B76A84 800FF8E4 00A08825 */ move $s1, $a1
/* B76A88 800FF8E8 1A000020 */ blez $s0, .L800FF96C
/* B76A8C 800FF8EC 00001025 */ move $v0, $zero
/* B76A90 800FF8F0 93A50027 */ lbu $a1, 0x27($sp)
/* B76A94 800FF8F4 00447021 */ addu $t6, $v0, $a0
.L800FF8F8:
/* B76A98 800FF8F8 10A0000C */ beqz $a1, .L800FF92C
/* B76A9C 800FF8FC 91C30000 */ lbu $v1, ($t6)
/* B76AA0 800FF900 00027840 */ sll $t7, $v0, 1
/* B76AA4 800FF904 00EFC021 */ addu $t8, $a3, $t7
/* B76AA8 800FF908 97190000 */ lhu $t9, ($t8)
/* B76AAC 800FF90C 00034040 */ sll $t0, $v1, 1
/* B76AB0 800FF910 02284821 */ addu $t1, $s1, $t0
/* B76AB4 800FF914 00465021 */ addu $t2, $v0, $a2
/* B76AB8 800FF918 A5390100 */ sh $t9, 0x100($t1)
/* B76ABC 800FF91C 914B0000 */ lbu $t3, ($t2)
/* B76AC0 800FF920 02236021 */ addu $t4, $s1, $v1
/* B76AC4 800FF924 1000000B */ b .L800FF954
/* B76AC8 800FF928 A18B0000 */ sb $t3, ($t4)
.L800FF92C:
/* B76ACC 800FF92C 00026840 */ sll $t5, $v0, 1
/* B76AD0 800FF930 00ED7021 */ addu $t6, $a3, $t5
/* B76AD4 800FF934 95CF0000 */ lhu $t7, ($t6)
/* B76AD8 800FF938 0003C040 */ sll $t8, $v1, 1
/* B76ADC 800FF93C 02384021 */ addu $t0, $s1, $t8
/* B76AE0 800FF940 0046C821 */ addu $t9, $v0, $a2
/* B76AE4 800FF944 A50F0010 */ sh $t7, 0x10($t0)
/* B76AE8 800FF948 93290000 */ lbu $t1, ($t9)
/* B76AEC 800FF94C 02235021 */ addu $t2, $s1, $v1
/* B76AF0 800FF950 A1490000 */ sb $t1, ($t2)
.L800FF954:
/* B76AF4 800FF954 24420001 */ addiu $v0, $v0, 1
/* B76AF8 800FF958 00025C00 */ sll $t3, $v0, 0x10
/* B76AFC 800FF95C 000B1403 */ sra $v0, $t3, 0x10
/* B76B00 800FF960 0050082A */ slt $at, $v0, $s0
/* B76B04 800FF964 5420FFE4 */ bnezl $at, .L800FF8F8
/* B76B08 800FF968 00447021 */ addu $t6, $v0, $a0
.L800FF96C:
/* B76B0C 800FF96C 8FB00008 */ lw $s0, 8($sp)
/* B76B10 800FF970 8FB1000C */ lw $s1, 0xc($sp)
/* B76B14 800FF974 03E00008 */ jr $ra
/* B76B18 800FF978 27BD0010 */ addiu $sp, $sp, 0x10
glabel func_800FF97C
/* B76B1C 800FF97C 27BDFFD0 */ addiu $sp, $sp, -0x30
/* B76B20 800FF980 AFBF0024 */ sw $ra, 0x24($sp)
/* B76B24 800FF984 AFB00020 */ sw $s0, 0x20($sp)
/* B76B28 800FF988 AFA50034 */ sw $a1, 0x34($sp)
/* B76B2C 800FF98C AFA60038 */ sw $a2, 0x38($sp)
/* B76B30 800FF990 AFA7003C */ sw $a3, 0x3c($sp)
/* B76B34 800FF994 90830000 */ lbu $v1, ($a0)
/* B76B38 800FF998 24900001 */ addiu $s0, $a0, 1
/* B76B3C 800FF99C 02002025 */ move $a0, $s0
/* B76B40 800FF9A0 00037903 */ sra $t7, $v1, 4
/* B76B44 800FF9A4 A3AF002F */ sb $t7, 0x2f($sp)
/* B76B48 800FF9A8 0C03FD6A */ jal func_800FF5A8
/* B76B4C 800FF9AC 00C02825 */ move $a1, $a2
/* B76B50 800FF9B0 00024400 */ sll $t0, $v0, 0x10
/* B76B54 800FF9B4 0008C403 */ sra $t8, $t0, 0x10
/* B76B58 800FF9B8 03004025 */ move $t0, $t8
/* B76B5C 800FF9BC 10400009 */ beqz $v0, .L800FF9E4
/* B76B60 800FF9C0 93A3002F */ lbu $v1, 0x2f($sp)
/* B76B64 800FF9C4 10600003 */ beqz $v1, .L800FF9D4
/* B76B68 800FF9C8 28410101 */ slti $at, $v0, 0x101
/* B76B6C 800FF9CC 10200005 */ beqz $at, .L800FF9E4
/* B76B70 800FF9D0 00000000 */ nop
.L800FF9D4:
/* B76B74 800FF9D4 14600005 */ bnez $v1, .L800FF9EC
/* B76B78 800FF9D8 28410011 */ slti $at, $v0, 0x11
/* B76B7C 800FF9DC 54200004 */ bnezl $at, .L800FF9F0
/* B76B80 800FF9E0 8FA40038 */ lw $a0, 0x38($sp)
.L800FF9E4:
/* B76B84 800FF9E4 10000013 */ b .L800FFA34
/* B76B88 800FF9E8 24020001 */ li $v0, 1
.L800FF9EC:
/* B76B8C 800FF9EC 8FA40038 */ lw $a0, 0x38($sp)
.L800FF9F0:
/* B76B90 800FF9F0 8FA5003C */ lw $a1, 0x3c($sp)
/* B76B94 800FF9F4 A3A3002F */ sb $v1, 0x2f($sp)
/* B76B98 800FF9F8 0C03FD8B */ jal func_800FF62C
/* B76B9C 800FF9FC A7A8002C */ sh $t0, 0x2c($sp)
/* B76BA0 800FFA00 87A8002C */ lh $t0, 0x2c($sp)
/* B76BA4 800FFA04 93A3002F */ lbu $v1, 0x2f($sp)
/* B76BA8 800FFA08 26040010 */ addiu $a0, $s0, 0x10
/* B76BAC 800FFA0C 10480003 */ beq $v0, $t0, .L800FFA1C
/* B76BB0 800FFA10 8FA50034 */ lw $a1, 0x34($sp)
/* B76BB4 800FFA14 10000007 */ b .L800FFA34
/* B76BB8 800FFA18 24020001 */ li $v0, 1
.L800FFA1C:
/* B76BBC 800FFA1C 8FA60038 */ lw $a2, 0x38($sp)
/* B76BC0 800FFA20 8FA7003C */ lw $a3, 0x3c($sp)
/* B76BC4 800FFA24 AFA80010 */ sw $t0, 0x10($sp)
/* B76BC8 800FFA28 0C03FE35 */ jal func_800FF8D4
/* B76BCC 800FFA2C AFA30014 */ sw $v1, 0x14($sp)
/* B76BD0 800FFA30 00001025 */ move $v0, $zero
.L800FFA34:
/* B76BD4 800FFA34 8FBF0024 */ lw $ra, 0x24($sp)
/* B76BD8 800FFA38 8FB00020 */ lw $s0, 0x20($sp)
/* B76BDC 800FFA3C 27BD0030 */ addiu $sp, $sp, 0x30
/* B76BE0 800FFA40 03E00008 */ jr $ra
/* B76BE4 800FFA44 00000000 */ nop

433
asm/code_800FFA50.s Normal file
View file

@ -0,0 +1,433 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800FFA50
/* B76BF0 800FFA50 27BDFF98 */ addiu $sp, $sp, -0x68
/* B76BF4 800FFA54 AFBF003C */ sw $ra, 0x3c($sp)
/* B76BF8 800FFA58 AFBE0038 */ sw $fp, 0x38($sp)
/* B76BFC 800FFA5C AFB70034 */ sw $s7, 0x34($sp)
/* B76C00 800FFA60 AFB60030 */ sw $s6, 0x30($sp)
/* B76C04 800FFA64 AFB5002C */ sw $s5, 0x2c($sp)
/* B76C08 800FFA68 AFB40028 */ sw $s4, 0x28($sp)
/* B76C0C 800FFA6C AFB30024 */ sw $s3, 0x24($sp)
/* B76C10 800FFA70 AFB20020 */ sw $s2, 0x20($sp)
/* B76C14 800FFA74 AFB1001C */ sw $s1, 0x1c($sp)
/* B76C18 800FFA78 AFB00018 */ sw $s0, 0x18($sp)
/* B76C1C 800FFA7C AFA70074 */ sw $a3, 0x74($sp)
/* B76C20 800FFA80 AFA00058 */ sw $zero, 0x58($sp)
/* B76C24 800FFA84 8C8F0000 */ lw $t7, ($a0)
/* B76C28 800FFA88 3C018017 */ lui $at, %hi(D_80175660) # $at, 0x8017
/* B76C2C 800FFA8C 30EE00FF */ andi $t6, $a3, 0xff
/* B76C30 800FFA90 AC2F5660 */ sw $t7, %lo(D_80175660)($at)
/* B76C34 800FFA94 90980004 */ lbu $t8, 4($a0)
/* B76C38 800FFA98 01C03825 */ move $a3, $t6
/* B76C3C 800FFA9C 00A08825 */ move $s1, $a1
/* B76C40 800FFAA0 17000003 */ bnez $t8, .L800FFAB0
/* B76C44 800FFAA4 00C0B025 */ move $s6, $a2
/* B76C48 800FFAA8 10000007 */ b .L800FFAC8
/* B76C4C 800FFAAC 24020002 */ li $v0, 2
.L800FFAB0:
/* B76C50 800FFAB0 90990005 */ lbu $t9, 5($a0)
/* B76C54 800FFAB4 24010001 */ li $at, 1
/* B76C58 800FFAB8 24020004 */ li $v0, 4
/* B76C5C 800FFABC 17210002 */ bne $t9, $at, .L800FFAC8
/* B76C60 800FFAC0 24080080 */ li $t0, 128
/* B76C64 800FFAC4 AFA80058 */ sw $t0, 0x58($sp)
.L800FFAC8:
/* B76C68 800FFAC8 8C940008 */ lw $s4, 8($a0)
/* B76C6C 800FFACC 8C95000C */ lw $s5, 0xc($a0)
/* B76C70 800FFAD0 8C970010 */ lw $s7, 0x10($a0)
/* B76C74 800FFAD4 14E0000E */ bnez $a3, .L800FFB10
/* B76C78 800FFAD8 8C9E0014 */ lw $fp, 0x14($a0)
/* B76C7C 800FFADC 3C018017 */ lui $at, %hi(D_80175664) # $at, 0x8017
/* B76C80 800FFAE0 AC205664 */ sw $zero, %lo(D_80175664)($at)
/* B76C84 800FFAE4 3C018017 */ lui $at, %hi(D_80175668) # $at, 0x8017
/* B76C88 800FFAE8 24090020 */ li $t1, 32
/* B76C8C 800FFAEC A0295668 */ sb $t1, %lo(D_80175668)($at)
/* B76C90 800FFAF0 3C018017 */ lui $at, %hi(D_8017566C) # $at, 0x8017
/* B76C94 800FFAF4 AC20566C */ sw $zero, %lo(D_8017566C)($at)
/* B76C98 800FFAF8 3C018017 */ lui $at, %hi(D_80175669) # $at, 0x8017
/* B76C9C 800FFAFC A0205669 */ sb $zero, %lo(D_80175669)($at)
/* B76CA0 800FFB00 A7A00064 */ sh $zero, 0x64($sp)
/* B76CA4 800FFB04 A7A00062 */ sh $zero, 0x62($sp)
/* B76CA8 800FFB08 10000014 */ b .L800FFB5C
/* B76CAC 800FFB0C A7A00060 */ sh $zero, 0x60($sp)
.L800FFB10:
/* B76CB0 800FFB10 8FAA0078 */ lw $t2, 0x78($sp)
/* B76CB4 800FFB14 3C018017 */ lui $at, %hi(D_80175664) # $at, 0x8017
/* B76CB8 800FFB18 8D4B0000 */ lw $t3, ($t2)
/* B76CBC 800FFB1C AC2B5664 */ sw $t3, %lo(D_80175664)($at)
/* B76CC0 800FFB20 914C0004 */ lbu $t4, 4($t2)
/* B76CC4 800FFB24 3C018017 */ lui $at, %hi(D_80175668) # $at, 0x8017
/* B76CC8 800FFB28 A02C5668 */ sb $t4, %lo(D_80175668)($at)
/* B76CCC 800FFB2C 8D4D0008 */ lw $t5, 8($t2)
/* B76CD0 800FFB30 3C018017 */ lui $at, %hi(D_8017566C) # $at, 0x8017
/* B76CD4 800FFB34 AC2D566C */ sw $t5, %lo(D_8017566C)($at)
/* B76CD8 800FFB38 914E0005 */ lbu $t6, 5($t2)
/* B76CDC 800FFB3C 3C018017 */ lui $at, %hi(D_80175669) # $at, 0x8017
/* B76CE0 800FFB40 A02E5669 */ sb $t6, %lo(D_80175669)($at)
/* B76CE4 800FFB44 854F000C */ lh $t7, 0xc($t2)
/* B76CE8 800FFB48 A7AF0064 */ sh $t7, 0x64($sp)
/* B76CEC 800FFB4C 8558000E */ lh $t8, 0xe($t2)
/* B76CF0 800FFB50 A7B80062 */ sh $t8, 0x62($sp)
/* B76CF4 800FFB54 85590010 */ lh $t9, 0x10($t2)
/* B76CF8 800FFB58 A7B90060 */ sh $t9, 0x60($sp)
.L800FFB5C:
/* B76CFC 800FFB5C 12C00026 */ beqz $s6, .L800FFBF8
/* B76D00 800FFB60 00409025 */ move $s2, $v0
/* B76D04 800FFB64 27B30064 */ addiu $s3, $sp, 0x64
.L800FFB68:
/* B76D08 800FFB68 1240000C */ beqz $s2, .L800FFB9C
/* B76D0C 800FFB6C 00008025 */ move $s0, $zero
.L800FFB70:
/* B76D10 800FFB70 02802025 */ move $a0, $s4
/* B76D14 800FFB74 02A02825 */ move $a1, $s5
/* B76D18 800FFB78 02203025 */ move $a2, $s1
/* B76D1C 800FFB7C 0C03FF1E */ jal func_800FFC78
/* B76D20 800FFB80 02603825 */ move $a3, $s3
/* B76D24 800FFB84 10400003 */ beqz $v0, .L800FFB94
/* B76D28 800FFB88 26100001 */ addiu $s0, $s0, 1
/* B76D2C 800FFB8C 1000002E */ b .L800FFC48
/* B76D30 800FFB90 24020002 */ li $v0, 2
.L800FFB94:
/* B76D34 800FFB94 1612FFF6 */ bne $s0, $s2, .L800FFB70
/* B76D38 800FFB98 26310080 */ addiu $s1, $s1, 0x80
.L800FFB9C:
/* B76D3C 800FFB9C 02E02025 */ move $a0, $s7
/* B76D40 800FFBA0 03C02825 */ move $a1, $fp
/* B76D44 800FFBA4 02203025 */ move $a2, $s1
/* B76D48 800FFBA8 0C03FF1E */ jal func_800FFC78
/* B76D4C 800FFBAC 27A70062 */ addiu $a3, $sp, 0x62
/* B76D50 800FFBB0 10400003 */ beqz $v0, .L800FFBC0
/* B76D54 800FFBB4 26310080 */ addiu $s1, $s1, 0x80
/* B76D58 800FFBB8 10000023 */ b .L800FFC48
/* B76D5C 800FFBBC 24020002 */ li $v0, 2
.L800FFBC0:
/* B76D60 800FFBC0 02E02025 */ move $a0, $s7
/* B76D64 800FFBC4 03C02825 */ move $a1, $fp
/* B76D68 800FFBC8 02203025 */ move $a2, $s1
/* B76D6C 800FFBCC 0C03FF1E */ jal func_800FFC78
/* B76D70 800FFBD0 27A70060 */ addiu $a3, $sp, 0x60
/* B76D74 800FFBD4 10400003 */ beqz $v0, .L800FFBE4
/* B76D78 800FFBD8 8FA80058 */ lw $t0, 0x58($sp)
/* B76D7C 800FFBDC 1000001A */ b .L800FFC48
/* B76D80 800FFBE0 24020002 */ li $v0, 2
.L800FFBE4:
/* B76D84 800FFBE4 26D6FFFF */ addiu $s6, $s6, -1
/* B76D88 800FFBE8 26310080 */ addiu $s1, $s1, 0x80
/* B76D8C 800FFBEC 00084840 */ sll $t1, $t0, 1
/* B76D90 800FFBF0 16C0FFDD */ bnez $s6, .L800FFB68
/* B76D94 800FFBF4 02298821 */ addu $s1, $s1, $t1
.L800FFBF8:
/* B76D98 800FFBF8 3C0B8017 */ lui $t3, %hi(D_80175664) # $t3, 0x8017
/* B76D9C 800FFBFC 8FA30078 */ lw $v1, 0x78($sp)
/* B76DA0 800FFC00 8D6B5664 */ lw $t3, %lo(D_80175664)($t3)
/* B76DA4 800FFC04 3C0C8017 */ lui $t4, %hi(D_80175668) # $t4, 0x8017
/* B76DA8 800FFC08 3C0D8017 */ lui $t5, %hi(D_8017566C) # $t5, 0x8017
/* B76DAC 800FFC0C AC6B0000 */ sw $t3, ($v1)
/* B76DB0 800FFC10 918C5668 */ lbu $t4, %lo(D_80175668)($t4)
/* B76DB4 800FFC14 3C0E8017 */ lui $t6, %hi(D_80175669) # $t6, 0x8017
/* B76DB8 800FFC18 00001025 */ move $v0, $zero
/* B76DBC 800FFC1C A06C0004 */ sb $t4, 4($v1)
/* B76DC0 800FFC20 8DAD566C */ lw $t5, %lo(D_8017566C)($t5)
/* B76DC4 800FFC24 AC6D0008 */ sw $t5, 8($v1)
/* B76DC8 800FFC28 91CE5669 */ lbu $t6, %lo(D_80175669)($t6)
/* B76DCC 800FFC2C A06E0005 */ sb $t6, 5($v1)
/* B76DD0 800FFC30 87AF0064 */ lh $t7, 0x64($sp)
/* B76DD4 800FFC34 A46F000C */ sh $t7, 0xc($v1)
/* B76DD8 800FFC38 87B80062 */ lh $t8, 0x62($sp)
/* B76DDC 800FFC3C A478000E */ sh $t8, 0xe($v1)
/* B76DE0 800FFC40 87AA0060 */ lh $t2, 0x60($sp)
/* B76DE4 800FFC44 A46A0010 */ sh $t2, 0x10($v1)
.L800FFC48:
/* B76DE8 800FFC48 8FBF003C */ lw $ra, 0x3c($sp)
/* B76DEC 800FFC4C 8FB00018 */ lw $s0, 0x18($sp)
/* B76DF0 800FFC50 8FB1001C */ lw $s1, 0x1c($sp)
/* B76DF4 800FFC54 8FB20020 */ lw $s2, 0x20($sp)
/* B76DF8 800FFC58 8FB30024 */ lw $s3, 0x24($sp)
/* B76DFC 800FFC5C 8FB40028 */ lw $s4, 0x28($sp)
/* B76E00 800FFC60 8FB5002C */ lw $s5, 0x2c($sp)
/* B76E04 800FFC64 8FB60030 */ lw $s6, 0x30($sp)
/* B76E08 800FFC68 8FB70034 */ lw $s7, 0x34($sp)
/* B76E0C 800FFC6C 8FBE0038 */ lw $fp, 0x38($sp)
/* B76E10 800FFC70 03E00008 */ jr $ra
/* B76E14 800FFC74 27BD0068 */ addiu $sp, $sp, 0x68
glabel func_800FFC78
/* B76E18 800FFC78 27BDFFC8 */ addiu $sp, $sp, -0x38
/* B76E1C 800FFC7C AFB50028 */ sw $s5, 0x28($sp)
/* B76E20 800FFC80 AFB40024 */ sw $s4, 0x24($sp)
/* B76E24 800FFC84 AFB30020 */ sw $s3, 0x20($sp)
/* B76E28 800FFC88 AFB10018 */ sw $s1, 0x18($sp)
/* B76E2C 800FFC8C 00C08825 */ move $s1, $a2
/* B76E30 800FFC90 00A09825 */ move $s3, $a1
/* B76E34 800FFC94 27B40034 */ addiu $s4, $sp, 0x34
/* B76E38 800FFC98 27B50036 */ addiu $s5, $sp, 0x36
/* B76E3C 800FFC9C AFBF002C */ sw $ra, 0x2c($sp)
/* B76E40 800FFCA0 AFB2001C */ sw $s2, 0x1c($sp)
/* B76E44 800FFCA4 00E09025 */ move $s2, $a3
/* B76E48 800FFCA8 AFB00014 */ sw $s0, 0x14($sp)
/* B76E4C 800FFCAC 02A03025 */ move $a2, $s5
/* B76E50 800FFCB0 0C03FF85 */ jal func_800FFE14
/* B76E54 800FFCB4 02802825 */ move $a1, $s4
/* B76E58 800FFCB8 10400003 */ beqz $v0, .L800FFCC8
/* B76E5C 800FFCBC 87AF0034 */ lh $t7, 0x34($sp)
/* B76E60 800FFCC0 1000004B */ b .L800FFDF0
/* B76E64 800FFCC4 24020001 */ li $v0, 1
.L800FFCC8:
/* B76E68 800FFCC8 864E0000 */ lh $t6, ($s2)
/* B76E6C 800FFCCC 24100001 */ li $s0, 1
/* B76E70 800FFCD0 2A010040 */ slti $at, $s0, 0x40
/* B76E74 800FFCD4 01CFC021 */ addu $t8, $t6, $t7
/* B76E78 800FFCD8 A6580000 */ sh $t8, ($s2)
/* B76E7C 800FFCDC 86590000 */ lh $t9, ($s2)
/* B76E80 800FFCE0 2412000F */ li $s2, 15
/* B76E84 800FFCE4 10200041 */ beqz $at, .L800FFDEC
/* B76E88 800FFCE8 A6390000 */ sh $t9, ($s1)
/* B76E8C 800FFCEC 02602025 */ move $a0, $s3
.L800FFCF0:
/* B76E90 800FFCF0 02802825 */ move $a1, $s4
/* B76E94 800FFCF4 0C03FF85 */ jal func_800FFE14
/* B76E98 800FFCF8 02A03025 */ move $a2, $s5
/* B76E9C 800FFCFC 10400003 */ beqz $v0, .L800FFD0C
/* B76EA0 800FFD00 87A80034 */ lh $t0, 0x34($sp)
/* B76EA4 800FFD04 1000003A */ b .L800FFDF0
/* B76EA8 800FFD08 24020001 */ li $v0, 1
.L800FFD0C:
/* B76EAC 800FFD0C 1500001E */ bnez $t0, .L800FFD88
/* B76EB0 800FFD10 83A30036 */ lb $v1, 0x36($sp)
/* B76EB4 800FFD14 83A30036 */ lb $v1, 0x36($sp)
/* B76EB8 800FFD18 1472000F */ bne $v1, $s2, .L800FFD58
/* B76EBC 800FFD1C 246AFFFF */ addiu $t2, $v1, -1
/* B76EC0 800FFD20 0460002F */ bltz $v1, .L800FFDE0
/* B76EC4 800FFD24 A3AA0036 */ sb $t2, 0x36($sp)
.L800FFD28:
/* B76EC8 800FFD28 00105840 */ sll $t3, $s0, 1
/* B76ECC 800FFD2C 022B6021 */ addu $t4, $s1, $t3
/* B76ED0 800FFD30 A5800000 */ sh $zero, ($t4)
/* B76ED4 800FFD34 83AF0036 */ lb $t7, 0x36($sp)
/* B76ED8 800FFD38 26100001 */ addiu $s0, $s0, 1
/* B76EDC 800FFD3C 00106E00 */ sll $t5, $s0, 0x18
/* B76EE0 800FFD40 25F8FFFF */ addiu $t8, $t7, -1
/* B76EE4 800FFD44 A3B80036 */ sb $t8, 0x36($sp)
/* B76EE8 800FFD48 05E1FFF7 */ bgez $t7, .L800FFD28
/* B76EEC 800FFD4C 000D8603 */ sra $s0, $t5, 0x18
/* B76EF0 800FFD50 10000024 */ b .L800FFDE4
/* B76EF4 800FFD54 2A010040 */ slti $at, $s0, 0x40
.L800FFD58:
/* B76EF8 800FFD58 2A010040 */ slti $at, $s0, 0x40
/* B76EFC 800FFD5C 10200023 */ beqz $at, .L800FFDEC
.L800FFD60:
/* B76F00 800FFD60 0010C840 */ sll $t9, $s0, 1
/* B76F04 800FFD64 26100001 */ addiu $s0, $s0, 1
/* B76F08 800FFD68 00104E00 */ sll $t1, $s0, 0x18
/* B76F0C 800FFD6C 00098603 */ sra $s0, $t1, 0x18
/* B76F10 800FFD70 2A010040 */ slti $at, $s0, 0x40
/* B76F14 800FFD74 02394021 */ addu $t0, $s1, $t9
/* B76F18 800FFD78 1420FFF9 */ bnez $at, .L800FFD60
/* B76F1C 800FFD7C A5000000 */ sh $zero, ($t0)
/* B76F20 800FFD80 1000001B */ b .L800FFDF0
/* B76F24 800FFD84 00001025 */ move $v0, $zero
.L800FFD88:
/* B76F28 800FFD88 0003102A */ slt $v0, $zero, $v1
/* B76F2C 800FFD8C 246CFFFF */ addiu $t4, $v1, -1
/* B76F30 800FFD90 1040000C */ beqz $v0, .L800FFDC4
/* B76F34 800FFD94 A3AC0036 */ sb $t4, 0x36($sp)
.L800FFD98:
/* B76F38 800FFD98 00106840 */ sll $t5, $s0, 1
/* B76F3C 800FFD9C 022D7021 */ addu $t6, $s1, $t5
/* B76F40 800FFDA0 A5C00000 */ sh $zero, ($t6)
/* B76F44 800FFDA4 83B90036 */ lb $t9, 0x36($sp)
/* B76F48 800FFDA8 26100001 */ addiu $s0, $s0, 1
/* B76F4C 800FFDAC 00107E00 */ sll $t7, $s0, 0x18
/* B76F50 800FFDB0 0019102A */ slt $v0, $zero, $t9
/* B76F54 800FFDB4 2728FFFF */ addiu $t0, $t9, -1
/* B76F58 800FFDB8 A3A80036 */ sb $t0, 0x36($sp)
/* B76F5C 800FFDBC 1440FFF6 */ bnez $v0, .L800FFD98
/* B76F60 800FFDC0 000F8603 */ sra $s0, $t7, 0x18
.L800FFDC4:
/* B76F64 800FFDC4 87A90034 */ lh $t1, 0x34($sp)
/* B76F68 800FFDC8 00105040 */ sll $t2, $s0, 1
/* B76F6C 800FFDCC 26100001 */ addiu $s0, $s0, 1
/* B76F70 800FFDD0 00106600 */ sll $t4, $s0, 0x18
/* B76F74 800FFDD4 022A5821 */ addu $t3, $s1, $t2
/* B76F78 800FFDD8 000C8603 */ sra $s0, $t4, 0x18
/* B76F7C 800FFDDC A5690000 */ sh $t1, ($t3)
.L800FFDE0:
/* B76F80 800FFDE0 2A010040 */ slti $at, $s0, 0x40
.L800FFDE4:
/* B76F84 800FFDE4 5420FFC2 */ bnezl $at, .L800FFCF0
/* B76F88 800FFDE8 02602025 */ move $a0, $s3
.L800FFDEC:
/* B76F8C 800FFDEC 00001025 */ move $v0, $zero
.L800FFDF0:
/* B76F90 800FFDF0 8FBF002C */ lw $ra, 0x2c($sp)
/* B76F94 800FFDF4 8FB00014 */ lw $s0, 0x14($sp)
/* B76F98 800FFDF8 8FB10018 */ lw $s1, 0x18($sp)
/* B76F9C 800FFDFC 8FB2001C */ lw $s2, 0x1c($sp)
/* B76FA0 800FFE00 8FB30020 */ lw $s3, 0x20($sp)
/* B76FA4 800FFE04 8FB40024 */ lw $s4, 0x24($sp)
/* B76FA8 800FFE08 8FB50028 */ lw $s5, 0x28($sp)
/* B76FAC 800FFE0C 03E00008 */ jr $ra
/* B76FB0 800FFE10 27BD0038 */ addiu $sp, $sp, 0x38
glabel func_800FFE14
/* B76FB4 800FFE14 27BDFFD8 */ addiu $sp, $sp, -0x28
/* B76FB8 800FFE18 AFB00018 */ sw $s0, 0x18($sp)
/* B76FBC 800FFE1C 00808025 */ move $s0, $a0
/* B76FC0 800FFE20 AFBF001C */ sw $ra, 0x1c($sp)
/* B76FC4 800FFE24 AFA5002C */ sw $a1, 0x2c($sp)
/* B76FC8 800FFE28 AFA60030 */ sw $a2, 0x30($sp)
/* B76FCC 800FFE2C 24040010 */ li $a0, 16
/* B76FD0 800FFE30 0C03FFD4 */ jal func_800FFF50
/* B76FD4 800FFE34 A7A00024 */ sh $zero, 0x24($sp)
/* B76FD8 800FFE38 97A90024 */ lhu $t1, 0x24($sp)
/* B76FDC 800FFE3C 8FAA002C */ lw $t2, 0x2c($sp)
/* B76FE0 800FFE40 00003025 */ move $a2, $zero
/* B76FE4 800FFE44 2408000F */ li $t0, 15
/* B76FE8 800FFE48 3407FFFF */ li $a3, 65535
.L800FFE4C:
/* B76FEC 800FFE4C 00067040 */ sll $t6, $a2, 1
/* B76FF0 800FFE50 020E7821 */ addu $t7, $s0, $t6
/* B76FF4 800FFE54 95E40030 */ lhu $a0, 0x30($t7)
/* B76FF8 800FFE58 0106C023 */ subu $t8, $t0, $a2
/* B76FFC 800FFE5C 03021807 */ srav $v1, $v0, $t8
/* B77000 800FFE60 10E40005 */ beq $a3, $a0, .L800FFE78
/* B77004 800FFE64 00C02825 */ move $a1, $a2
/* B77008 800FFE68 3079FFFF */ andi $t9, $v1, 0xffff
/* B7700C 800FFE6C 0099082A */ slt $at, $a0, $t9
/* B77010 800FFE70 10200006 */ beqz $at, .L800FFE8C
/* B77014 800FFE74 3069FFFF */ andi $t1, $v1, 0xffff
.L800FFE78:
/* B77018 800FFE78 24C60001 */ addiu $a2, $a2, 1
/* B7701C 800FFE7C 30C500FF */ andi $a1, $a2, 0xff
/* B77020 800FFE80 28A10010 */ slti $at, $a1, 0x10
/* B77024 800FFE84 1420FFF1 */ bnez $at, .L800FFE4C
/* B77028 800FFE88 00A03025 */ move $a2, $a1
.L800FFE8C:
/* B7702C 800FFE8C 28A10010 */ slti $at, $a1, 0x10
/* B77030 800FFE90 14200003 */ bnez $at, .L800FFEA0
/* B77034 800FFE94 3C028017 */ lui $v0, %hi(D_80175668) # $v0, 0x8017
/* B77038 800FFE98 10000028 */ b .L800FFF3C
/* B7703C 800FFE9C 24020001 */ li $v0, 1
.L800FFEA0:
/* B77040 800FFEA0 02066021 */ addu $t4, $s0, $a2
/* B77044 800FFEA4 00067840 */ sll $t7, $a2, 1
/* B77048 800FFEA8 918D0000 */ lbu $t5, ($t4)
/* B7704C 800FFEAC 020FC021 */ addu $t8, $s0, $t7
/* B77050 800FFEB0 97190010 */ lhu $t9, 0x10($t8)
/* B77054 800FFEB4 8E0C0050 */ lw $t4, 0x50($s0)
/* B77058 800FFEB8 01A97021 */ addu $t6, $t5, $t1
/* B7705C 800FFEBC 01D95823 */ subu $t3, $t6, $t9
/* B77060 800FFEC0 016C6821 */ addu $t5, $t3, $t4
/* B77064 800FFEC4 91A40000 */ lbu $a0, ($t5)
/* B77068 800FFEC8 8FB80030 */ lw $t8, 0x30($sp)
/* B7706C 800FFECC 24425668 */ addiu $v0, %lo(D_80175668) # addiu $v0, $v0, 0x5668
/* B77070 800FFED0 00047903 */ sra $t7, $a0, 4
/* B77074 800FFED4 A30F0000 */ sb $t7, ($t8)
/* B77078 800FFED8 90590000 */ lbu $t9, ($v0)
/* B7707C 800FFEDC 308E000F */ andi $t6, $a0, 0xf
/* B77080 800FFEE0 01C02025 */ move $a0, $t6
/* B77084 800FFEE4 03255821 */ addu $t3, $t9, $a1
/* B77088 800FFEE8 256CFFF1 */ addiu $t4, $t3, -0xf
/* B7708C 800FFEEC A04C0000 */ sb $t4, ($v0)
/* B77090 800FFEF0 11C00011 */ beqz $t6, .L800FFF38
/* B77094 800FFEF4 A5400000 */ sh $zero, ($t2)
/* B77098 800FFEF8 0C03FFD4 */ jal func_800FFF50
/* B7709C 800FFEFC A3AE0026 */ sb $t6, 0x26($sp)
/* B770A0 800FFF00 8FAA002C */ lw $t2, 0x2c($sp)
/* B770A4 800FFF04 93A40026 */ lbu $a0, 0x26($sp)
/* B770A8 800FFF08 240F0001 */ li $t7, 1
/* B770AC 800FFF0C A5420000 */ sh $v0, ($t2)
/* B770B0 800FFF10 85450000 */ lh $a1, ($t2)
/* B770B4 800FFF14 248D001F */ addiu $t5, $a0, 0x1f
/* B770B8 800FFF18 01AFC004 */ sllv $t8, $t7, $t5
/* B770BC 800FFF1C 00B8082A */ slt $at, $a1, $t8
/* B770C0 800FFF20 10200005 */ beqz $at, .L800FFF38
/* B770C4 800FFF24 240EFFFF */ li $t6, -1
/* B770C8 800FFF28 008EC804 */ sllv $t9, $t6, $a0
/* B770CC 800FFF2C 00B95821 */ addu $t3, $a1, $t9
/* B770D0 800FFF30 256C0001 */ addiu $t4, $t3, 1
/* B770D4 800FFF34 A54C0000 */ sh $t4, ($t2)
.L800FFF38:
/* B770D8 800FFF38 00001025 */ move $v0, $zero
.L800FFF3C:
/* B770DC 800FFF3C 8FBF001C */ lw $ra, 0x1c($sp)
/* B770E0 800FFF40 8FB00018 */ lw $s0, 0x18($sp)
/* B770E4 800FFF44 27BD0028 */ addiu $sp, $sp, 0x28
/* B770E8 800FFF48 03E00008 */ jr $ra
/* B770EC 800FFF4C 00000000 */ nop
glabel func_800FFF50
/* B770F0 800FFF50 3C088017 */ lui $t0, %hi(D_80175668) # $t0, 0x8017
/* B770F4 800FFF54 25085668 */ addiu $t0, %lo(D_80175668) # addiu $t0, $t0, 0x5668
/* B770F8 800FFF58 91050000 */ lbu $a1, ($t0)
/* B770FC 800FFF5C AFA40000 */ sw $a0, ($sp)
/* B77100 800FFF60 308700FF */ andi $a3, $a0, 0xff
/* B77104 800FFF64 000510C3 */ sra $v0, $a1, 3
/* B77108 800FFF68 304E00FF */ andi $t6, $v0, 0xff
/* B7710C 800FFF6C 19C00029 */ blez $t6, .L80100014
/* B77110 800FFF70 01C01025 */ move $v0, $t6
/* B77114 800FFF74 3C068017 */ lui $a2, %hi(D_80175660) # $a2, 0x8017
/* B77118 800FFF78 3C0D8017 */ lui $t5, %hi(D_8017566C) # $t5, 0x8017
/* B7711C 800FFF7C 3C0A8017 */ lui $t2, %hi(D_80175669) # $t2, 0x8017
/* B77120 800FFF80 3C098017 */ lui $t1, %hi(D_80175664) # $t1, 0x8017
/* B77124 800FFF84 25295664 */ addiu $t1, %lo(D_80175664) # addiu $t1, $t1, 0x5664
/* B77128 800FFF88 254A5669 */ addiu $t2, %lo(D_80175669) # addiu $t2, $t2, 0x5669
/* B7712C 800FFF8C 25AD566C */ addiu $t5, %lo(D_8017566C) # addiu $t5, $t5, 0x566c
/* B77130 800FFF90 8CC65660 */ lw $a2, %lo(D_80175660)($a2)
/* B77134 800FFF94 240C0001 */ li $t4, 1
/* B77138 800FFF98 240B00FF */ li $t3, 255
.L800FFF9C:
/* B7713C 800FFF9C 8D240000 */ lw $a0, ($t1)
/* B77140 800FFFA0 91590000 */ lbu $t9, ($t2)
/* B77144 800FFFA4 91050000 */ lbu $a1, ($t0)
/* B77148 800FFFA8 00867821 */ addu $t7, $a0, $a2
/* B7714C 800FFFAC 91E30000 */ lbu $v1, ($t7)
/* B77150 800FFFB0 24980001 */ addiu $t8, $a0, 1
/* B77154 800FFFB4 13200006 */ beqz $t9, .L800FFFD0
/* B77158 800FFFB8 AD380000 */ sw $t8, ($t1)
/* B7715C 800FFFBC 14600004 */ bnez $v1, .L800FFFD0
/* B77160 800FFFC0 03067021 */ addu $t6, $t8, $a2
/* B77164 800FFFC4 91C30000 */ lbu $v1, ($t6)
/* B77168 800FFFC8 270F0001 */ addiu $t7, $t8, 1
/* B7716C 800FFFCC AD2F0000 */ sw $t7, ($t1)
.L800FFFD0:
/* B77170 800FFFD0 15630003 */ bne $t3, $v1, .L800FFFE0
/* B77174 800FFFD4 00602025 */ move $a0, $v1
/* B77178 800FFFD8 10000002 */ b .L800FFFE4
/* B7717C 800FFFDC A14C0000 */ sb $t4, ($t2)
.L800FFFE0:
/* B77180 800FFFE0 A1400000 */ sb $zero, ($t2)
.L800FFFE4:
/* B77184 800FFFE4 8DB80000 */ lw $t8, ($t5)
/* B77188 800FFFE8 2442FFFF */ addiu $v0, $v0, -1
/* B7718C 800FFFEC 0018CA00 */ sll $t9, $t8, 8
/* B77190 800FFFF0 ADB90000 */ sw $t9, ($t5)
/* B77194 800FFFF4 03247825 */ or $t7, $t9, $a0
/* B77198 800FFFF8 305900FF */ andi $t9, $v0, 0xff
/* B7719C 800FFFFC 24B8FFF8 */ addiu $t8, $a1, -8
/* B771A0 80100000 03201025 */ move $v0, $t9
/* B771A4 80100004 ADAF0000 */ sw $t7, ($t5)
/* B771A8 80100008 1F20FFE4 */ bgtz $t9, .L800FFF9C
/* B771AC 8010000C A1180000 */ sb $t8, ($t0)
/* B771B0 80100010 330500FF */ andi $a1, $t8, 0xff
.L80100014:
/* B771B4 80100014 3C0D8017 */ lui $t5, %hi(D_8017566C) # $t5, 0x8017
/* B771B8 80100018 25AD566C */ addiu $t5, %lo(D_8017566C) # addiu $t5, $t5, 0x566c
/* B771BC 8010001C 8DAE0000 */ lw $t6, ($t5)
/* B771C0 80100020 00077823 */ negu $t7, $a3
/* B771C4 80100024 00A7C021 */ addu $t8, $a1, $a3
/* B771C8 80100028 00AE1804 */ sllv $v1, $t6, $a1
/* B771CC 8010002C 01E31806 */ srlv $v1, $v1, $t7
/* B771D0 80100030 A1180000 */ sb $t8, ($t0)
/* B771D4 80100034 03E00008 */ jr $ra
/* B771D8 80100038 3062FFFF */ andi $v0, $v1, 0xffff

131
asm/code_80100040.s Normal file
View file

@ -0,0 +1,131 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80100040
/* B771E0 80100040 27BDFEB0 */ addiu $sp, $sp, -0x150
/* B771E4 80100044 AFBF002C */ sw $ra, 0x2c($sp)
/* B771E8 80100048 AFB50028 */ sw $s5, 0x28($sp)
/* B771EC 8010004C AFB40024 */ sw $s4, 0x24($sp)
/* B771F0 80100050 AFB30020 */ sw $s3, 0x20($sp)
/* B771F4 80100054 AFB2001C */ sw $s2, 0x1c($sp)
/* B771F8 80100058 AFB10018 */ sw $s1, 0x18($sp)
/* B771FC 8010005C AFB00014 */ sw $s0, 0x14($sp)
/* B77200 80100060 AFA50154 */ sw $a1, 0x154($sp)
/* B77204 80100064 8C8E0000 */ lw $t6, ($a0)
/* B77208 80100068 0080A025 */ move $s4, $a0
/* B7720C 8010006C 00008025 */ move $s0, $zero
/* B77210 80100070 31CF0001 */ andi $t7, $t6, 1
/* B77214 80100074 15E00003 */ bnez $t7, .L80100084
/* B77218 80100078 00000000 */ nop
/* B7721C 8010007C 1000004D */ b .L801001B4
/* B77220 80100080 24020005 */ li $v0, 5
.L80100084:
/* B77224 80100084 0C040AFC */ jal func_80102BF0
/* B77228 80100088 02802025 */ move $a0, $s4
/* B7722C 8010008C 50400004 */ beql $v0, $zero, .L801000A0
/* B77230 80100090 92980064 */ lbu $t8, 0x64($s4)
/* B77234 80100094 10000048 */ b .L801001B8
/* B77238 80100098 8FBF002C */ lw $ra, 0x2c($sp)
/* B7723C 8010009C 92980064 */ lbu $t8, 0x64($s4)
.L801000A0:
/* B77240 801000A0 00009825 */ move $s3, $zero
/* B77244 801000A4 24150080 */ li $s5, 128
/* B77248 801000A8 1B00003E */ blez $t8, .L801001A4
/* B7724C 801000AC 27B20148 */ addiu $s2, $sp, 0x148
/* B77250 801000B0 24110003 */ li $s1, 3
.L801000B4:
/* B77254 801000B4 02802025 */ move $a0, $s4
/* B77258 801000B8 27A50048 */ addiu $a1, $sp, 0x48
/* B7725C 801000BC 00003025 */ move $a2, $zero
/* B77260 801000C0 0C040B31 */ jal func_80102CC4
/* B77264 801000C4 326700FF */ andi $a3, $s3, 0xff
/* B77268 801000C8 10400003 */ beqz $v0, .L801000D8
/* B7726C 801000CC 00000000 */ nop
/* B77270 801000D0 10000039 */ b .L801001B8
/* B77274 801000D4 8FBF002C */ lw $ra, 0x2c($sp)
.L801000D8:
/* B77278 801000D8 5A600004 */ blezl $s3, .L801000EC
/* B7727C 801000DC 8E850060 */ lw $a1, 0x60($s4)
/* B77280 801000E0 10000002 */ b .L801000EC
/* B77284 801000E4 24050001 */ li $a1, 1
/* B77288 801000E8 8E850060 */ lw $a1, 0x60($s4)
.L801000EC:
/* B7728C 801000EC 28A10080 */ slti $at, $a1, 0x80
/* B77290 801000F0 10200026 */ beqz $at, .L8010018C
/* B77294 801000F4 00A01825 */ move $v1, $a1
/* B77298 801000F8 02A53023 */ subu $a2, $s5, $a1
/* B7729C 801000FC 30D90003 */ andi $t9, $a2, 3
/* B772A0 80100100 1320000C */ beqz $t9, .L80100134
/* B772A4 80100104 03252021 */ addu $a0, $t9, $a1
/* B772A8 80100108 00054040 */ sll $t0, $a1, 1
/* B772AC 8010010C 27A90048 */ addiu $t1, $sp, 0x48
/* B772B0 80100110 01091021 */ addu $v0, $t0, $t1
.L80100114:
/* B772B4 80100114 944A0000 */ lhu $t2, ($v0)
/* B772B8 80100118 24630001 */ addiu $v1, $v1, 1
/* B772BC 8010011C 162A0002 */ bne $s1, $t2, .L80100128
/* B772C0 80100120 00000000 */ nop
/* B772C4 80100124 26100001 */ addiu $s0, $s0, 1
.L80100128:
/* B772C8 80100128 1483FFFA */ bne $a0, $v1, .L80100114
/* B772CC 8010012C 24420002 */ addiu $v0, $v0, 2
/* B772D0 80100130 10750016 */ beq $v1, $s5, .L8010018C
.L80100134:
/* B772D4 80100134 00035840 */ sll $t3, $v1, 1
/* B772D8 80100138 27AC0048 */ addiu $t4, $sp, 0x48
/* B772DC 8010013C 016C1021 */ addu $v0, $t3, $t4
/* B772E0 80100140 944D0000 */ lhu $t5, ($v0)
.L80100144:
/* B772E4 80100144 562D0003 */ bnel $s1, $t5, .L80100154
/* B772E8 80100148 944E0002 */ lhu $t6, 2($v0)
/* B772EC 8010014C 26100001 */ addiu $s0, $s0, 1
/* B772F0 80100150 944E0002 */ lhu $t6, 2($v0)
.L80100154:
/* B772F4 80100154 562E0003 */ bnel $s1, $t6, .L80100164
/* B772F8 80100158 944F0004 */ lhu $t7, 4($v0)
/* B772FC 8010015C 26100001 */ addiu $s0, $s0, 1
/* B77300 80100160 944F0004 */ lhu $t7, 4($v0)
.L80100164:
/* B77304 80100164 562F0003 */ bnel $s1, $t7, .L80100174
/* B77308 80100168 94580006 */ lhu $t8, 6($v0)
/* B7730C 8010016C 26100001 */ addiu $s0, $s0, 1
/* B77310 80100170 94580006 */ lhu $t8, 6($v0)
.L80100174:
/* B77314 80100174 24420008 */ addiu $v0, $v0, 8
/* B77318 80100178 16380002 */ bne $s1, $t8, .L80100184
/* B7731C 8010017C 00000000 */ nop
/* B77320 80100180 26100001 */ addiu $s0, $s0, 1
.L80100184:
/* B77324 80100184 5452FFEF */ bnel $v0, $s2, .L80100144
/* B77328 80100188 944D0000 */ lhu $t5, ($v0)
.L8010018C:
/* B7732C 8010018C 92880064 */ lbu $t0, 0x64($s4)
/* B77330 80100190 26730001 */ addiu $s3, $s3, 1
/* B77334 80100194 327900FF */ andi $t9, $s3, 0xff
/* B77338 80100198 0328082A */ slt $at, $t9, $t0
/* B7733C 8010019C 1420FFC5 */ bnez $at, .L801000B4
/* B77340 801001A0 03209825 */ move $s3, $t9
.L801001A4:
/* B77344 801001A4 8FAA0154 */ lw $t2, 0x154($sp)
/* B77348 801001A8 00104A00 */ sll $t1, $s0, 8
/* B7734C 801001AC 00001025 */ move $v0, $zero
/* B77350 801001B0 AD490000 */ sw $t1, ($t2)
.L801001B4:
/* B77354 801001B4 8FBF002C */ lw $ra, 0x2c($sp)
.L801001B8:
/* B77358 801001B8 8FB00014 */ lw $s0, 0x14($sp)
/* B7735C 801001BC 8FB10018 */ lw $s1, 0x18($sp)
/* B77360 801001C0 8FB2001C */ lw $s2, 0x1c($sp)
/* B77364 801001C4 8FB30020 */ lw $s3, 0x20($sp)
/* B77368 801001C8 8FB40024 */ lw $s4, 0x24($sp)
/* B7736C 801001CC 8FB50028 */ lw $s5, 0x28($sp)
/* B77370 801001D0 03E00008 */ jr $ra
/* B77374 801001D4 27BD0150 */ addiu $sp, $sp, 0x150

53
asm/code_801001E0.s Normal file
View file

@ -0,0 +1,53 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_801001E0
/* B77380 801001E0 3C014780 */ li $at, 0x47800000 # 0.000000
/* B77384 801001E4 44812000 */ mtc1 $at, $f4
/* B77388 801001E8 44853000 */ mtc1 $a1, $f6
/* B7738C 801001EC AC800004 */ sw $zero, 4($a0)
/* B77390 801001F0 AC80000C */ sw $zero, 0xc($a0)
/* B77394 801001F4 46043202 */ mul.s $f8, $f6, $f4
/* B77398 801001F8 44863000 */ mtc1 $a2, $f6
/* B7739C 801001FC AC800010 */ sw $zero, 0x10($a0)
/* B773A0 80100200 AC800018 */ sw $zero, 0x18($a0)
/* B773A4 80100204 AC800024 */ sw $zero, 0x24($a0)
/* B773A8 80100208 AC80002C */ sw $zero, 0x2c($a0)
/* B773AC 8010020C AC800030 */ sw $zero, 0x30($a0)
/* B773B0 80100210 4600428D */ trunc.w.s $f10, $f8
/* B773B4 80100214 46043202 */ mul.s $f8, $f6, $f4
/* B773B8 80100218 44873000 */ mtc1 $a3, $f6
/* B773BC 8010021C AC800038 */ sw $zero, 0x38($a0)
/* B773C0 80100220 44095000 */ mfc1 $t1, $f10
/* B773C4 80100224 AC80003C */ sw $zero, 0x3c($a0)
/* B773C8 80100228 00095402 */ srl $t2, $t1, 0x10
/* B773CC 8010022C 4600428D */ trunc.w.s $f10, $f8
/* B773D0 80100230 46043202 */ mul.s $f8, $f6, $f4
/* B773D4 80100234 000A4400 */ sll $t0, $t2, 0x10
/* B773D8 80100238 00095400 */ sll $t2, $t1, 0x10
/* B773DC 8010023C 44095000 */ mfc1 $t1, $f10
/* B773E0 80100240 AC880000 */ sw $t0, ($a0)
/* B773E4 80100244 AC8A0020 */ sw $t2, 0x20($a0)
/* B773E8 80100248 00094402 */ srl $t0, $t1, 0x10
/* B773EC 8010024C 4600428D */ trunc.w.s $f10, $f8
/* B773F0 80100250 312AFFFF */ andi $t2, $t1, 0xffff
/* B773F4 80100254 AC8A0028 */ sw $t2, 0x28($a0)
/* B773F8 80100258 AC880008 */ sw $t0, 8($a0)
/* B773FC 8010025C 44095000 */ mfc1 $t1, $f10
/* B77400 80100260 00000000 */ nop
/* B77404 80100264 00095402 */ srl $t2, $t1, 0x10
/* B77408 80100268 000A4400 */ sll $t0, $t2, 0x10
/* B7740C 8010026C AC880014 */ sw $t0, 0x14($a0)
/* B77410 80100270 24080001 */ li $t0, 1
/* B77414 80100274 00095400 */ sll $t2, $t1, 0x10
/* B77418 80100278 AC8A0034 */ sw $t2, 0x34($a0)
/* B7741C 8010027C 03E00008 */ jr $ra
/* B77420 80100280 AC88001C */ sw $t0, 0x1c($a0)

367
asm/code_80100290.s Normal file
View file

@ -0,0 +1,367 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel sinf
/* B77430 80100290 E7AC0000 */ swc1 $f12, ($sp)
/* B77434 80100294 8FA20000 */ lw $v0, ($sp)
/* B77438 80100298 C7A40000 */ lwc1 $f4, ($sp)
/* B7743C 8010029C 00021D83 */ sra $v1, $v0, 0x16
/* B77440 801002A0 306E01FF */ andi $t6, $v1, 0x1ff
/* B77444 801002A4 29C100FF */ slti $at, $t6, 0xff
/* B77448 801002A8 10200019 */ beqz $at, .L80100310
/* B7744C 801002AC 01C01825 */ move $v1, $t6
/* B77450 801002B0 29C100E6 */ slti $at, $t6, 0xe6
/* B77454 801002B4 14200014 */ bnez $at, .L80100308
/* B77458 801002B8 460020A1 */ cvt.d.s $f2, $f4
/* B7745C 801002BC 46221302 */ mul.d $f12, $f2, $f2
/* B77460 801002C0 3C038015 */ lui $v1, %hi(D_8014B210) # $v1, 0x8015
/* B77464 801002C4 2463B210 */ addiu $v1, %lo(D_8014B210) # addiu $v1, $v1, -0x4df0
/* B77468 801002C8 D4660020 */ ldc1 $f6, 0x20($v1)
/* B7746C 801002CC D46A0018 */ ldc1 $f10, 0x18($v1)
/* B77470 801002D0 D4640010 */ ldc1 $f4, 0x10($v1)
/* B77474 801002D4 462C3202 */ mul.d $f8, $f6, $f12
/* B77478 801002D8 462A4400 */ add.d $f16, $f8, $f10
/* B7747C 801002DC D46A0008 */ ldc1 $f10, 8($v1)
/* B77480 801002E0 462C8482 */ mul.d $f18, $f16, $f12
/* B77484 801002E4 46249180 */ add.d $f6, $f18, $f4
/* B77488 801002E8 462C3202 */ mul.d $f8, $f6, $f12
/* B7748C 801002EC 46285380 */ add.d $f14, $f10, $f8
/* B77490 801002F0 462C1402 */ mul.d $f16, $f2, $f12
/* B77494 801002F4 00000000 */ nop
/* B77498 801002F8 462E8482 */ mul.d $f18, $f16, $f14
/* B7749C 801002FC 46229100 */ add.d $f4, $f18, $f2
/* B774A0 80100300 03E00008 */ jr $ra
/* B774A4 80100304 46202020 */ cvt.s.d $f0, $f4
.L80100308:
/* B774A8 80100308 03E00008 */ jr $ra
/* B774AC 8010030C C7A00000 */ lwc1 $f0, ($sp)
.L80100310:
/* B774B0 80100310 28610136 */ slti $at, $v1, 0x136
/* B774B4 80100314 10200044 */ beqz $at, .L80100428
/* B774B8 80100318 C7A40000 */ lwc1 $f4, ($sp)
/* B774BC 8010031C C7A60000 */ lwc1 $f6, ($sp)
/* B774C0 80100320 3C018015 */ lui $at, %hi(D_8014B238)
/* B774C4 80100324 D42AB238 */ ldc1 $f10, %lo(D_8014B238)($at)
/* B774C8 80100328 460030A1 */ cvt.d.s $f2, $f6
/* B774CC 8010032C 44804800 */ mtc1 $zero, $f9
/* B774D0 80100330 462A1002 */ mul.d $f0, $f2, $f10
/* B774D4 80100334 44804000 */ mtc1 $zero, $f8
/* B774D8 80100338 3C013FE0 */ li $at, 0x3FE00000 # 0.000000
/* B774DC 8010033C 4620403E */ c.le.d $f8, $f0
/* B774E0 80100340 00000000 */ nop
/* B774E4 80100344 4502000B */ bc1fl .L80100374
/* B774E8 80100348 44813800 */ mtc1 $at, $f7
/* B774EC 8010034C 3C013FE0 */ li $at, 0x3FE00000 # 0.000000
/* B774F0 80100350 44818800 */ mtc1 $at, $f17
/* B774F4 80100354 44808000 */ mtc1 $zero, $f16
/* B774F8 80100358 00000000 */ nop
/* B774FC 8010035C 46300480 */ add.d $f18, $f0, $f16
/* B77500 80100360 4620910D */ trunc.w.d $f4, $f18
/* B77504 80100364 44022000 */ mfc1 $v0, $f4
/* B77508 80100368 10000009 */ b .L80100390
/* B7750C 8010036C 44828000 */ mtc1 $v0, $f16
/* B77510 80100370 44813800 */ mtc1 $at, $f7
.L80100374:
/* B77514 80100374 44803000 */ mtc1 $zero, $f6
/* B77518 80100378 00000000 */ nop
/* B7751C 8010037C 46260281 */ sub.d $f10, $f0, $f6
/* B77520 80100380 4620520D */ trunc.w.d $f8, $f10
/* B77524 80100384 44024000 */ mfc1 $v0, $f8
/* B77528 80100388 00000000 */ nop
/* B7752C 8010038C 44828000 */ mtc1 $v0, $f16
.L80100390:
/* B77530 80100390 3C018015 */ lui $at, %hi(D_8014B240)
/* B77534 80100394 D432B240 */ ldc1 $f18, %lo(D_8014B240)($at)
/* B77538 80100398 46808021 */ cvt.d.w $f0, $f16
/* B7753C 8010039C 3C018015 */ lui $at, %hi(D_8014B248)
/* B77540 801003A0 D426B248 */ ldc1 $f6, %lo(D_8014B248)($at)
/* B77544 801003A4 3C038015 */ lui $v1, %hi(D_8014B210) # $v1, 0x8015
/* B77548 801003A8 2463B210 */ addiu $v1, %lo(D_8014B210) # addiu $v1, $v1, -0x4df0
/* B7754C 801003AC 46320102 */ mul.d $f4, $f0, $f18
/* B77550 801003B0 D4680020 */ ldc1 $f8, 0x20($v1)
/* B77554 801003B4 D4720018 */ ldc1 $f18, 0x18($v1)
/* B77558 801003B8 30590001 */ andi $t9, $v0, 1
/* B7755C 801003BC 46260282 */ mul.d $f10, $f0, $f6
/* B77560 801003C0 46241081 */ sub.d $f2, $f2, $f4
/* B77564 801003C4 462A1081 */ sub.d $f2, $f2, $f10
/* B77568 801003C8 D46A0010 */ ldc1 $f10, 0x10($v1)
/* B7756C 801003CC 46221302 */ mul.d $f12, $f2, $f2
/* B77570 801003D0 00000000 */ nop
/* B77574 801003D4 462C4402 */ mul.d $f16, $f8, $f12
/* B77578 801003D8 46328100 */ add.d $f4, $f16, $f18
/* B7757C 801003DC D4720008 */ ldc1 $f18, 8($v1)
/* B77580 801003E0 462C2182 */ mul.d $f6, $f4, $f12
/* B77584 801003E4 462A3200 */ add.d $f8, $f6, $f10
/* B77588 801003E8 462C4402 */ mul.d $f16, $f8, $f12
/* B7758C 801003EC 17200007 */ bnez $t9, .L8010040C
/* B77590 801003F0 46309380 */ add.d $f14, $f18, $f16
/* B77594 801003F4 462C1102 */ mul.d $f4, $f2, $f12
/* B77598 801003F8 00000000 */ nop
/* B7759C 801003FC 462E2182 */ mul.d $f6, $f4, $f14
/* B775A0 80100400 46223280 */ add.d $f10, $f6, $f2
/* B775A4 80100404 03E00008 */ jr $ra
/* B775A8 80100408 46205020 */ cvt.s.d $f0, $f10
.L8010040C:
/* B775AC 8010040C 462C1202 */ mul.d $f8, $f2, $f12
/* B775B0 80100410 00000000 */ nop
/* B775B4 80100414 462E4482 */ mul.d $f18, $f8, $f14
/* B775B8 80100418 46229400 */ add.d $f16, $f18, $f2
/* B775BC 8010041C 46208020 */ cvt.s.d $f0, $f16
/* B775C0 80100420 03E00008 */ jr $ra
/* B775C4 80100424 46000007 */ neg.s $f0, $f0
.L80100428:
/* B775C8 80100428 46042032 */ c.eq.s $f4, $f4
/* B775CC 8010042C 3C018015 */ lui $at, %hi(D_8014B250)
/* B775D0 80100430 45010004 */ bc1t .L80100444
/* B775D4 80100434 00000000 */ nop
/* B775D8 80100438 3C018015 */ lui $at, %hi(D_8014B2D0)
/* B775DC 8010043C 03E00008 */ jr $ra
/* B775E0 80100440 C420B2D0 */ lwc1 $f0, %lo(D_8014B2D0)($at)
.L80100444:
/* B775E4 80100444 C420B250 */ lwc1 $f0, %lo(D_8014B250)($at)
/* B775E8 80100448 03E00008 */ jr $ra
/* B775EC 8010044C 00000000 */ nop
glabel sins
/* B775F0 80100450 308EFFFF */ andi $t6, $a0, 0xffff
/* B775F4 80100454 000E7902 */ srl $t7, $t6, 4
/* B775F8 80100458 31F8FFFF */ andi $t8, $t7, 0xffff
/* B775FC 8010045C 33190400 */ andi $t9, $t8, 0x400
/* B77600 80100460 AFA40000 */ sw $a0, ($sp)
/* B77604 80100464 13200008 */ beqz $t9, .L80100488
/* B77608 80100468 03001025 */ move $v0, $t8
/* B7760C 8010046C 330803FF */ andi $t0, $t8, 0x3ff
/* B77610 80100470 00084840 */ sll $t1, $t0, 1
/* B77614 80100474 00095023 */ negu $t2, $t1
/* B77618 80100478 3C038013 */ lui $v1, %hi(D_80134CCE)
/* B7761C 8010047C 006A1821 */ addu $v1, $v1, $t2
/* B77620 80100480 10000006 */ b .L8010049C
/* B77624 80100484 84634CCE */ lh $v1, %lo(D_80134CCE)($v1)
.L80100488:
/* B77628 80100488 304B03FF */ andi $t3, $v0, 0x3ff
/* B7762C 8010048C 000B6040 */ sll $t4, $t3, 1
/* B77630 80100490 3C038013 */ lui $v1, %hi(D_801344D0)
/* B77634 80100494 006C1821 */ addu $v1, $v1, $t4
/* B77638 80100498 846344D0 */ lh $v1, %lo(D_801344D0)($v1)
.L8010049C:
/* B7763C 8010049C 304D0800 */ andi $t5, $v0, 0x800
/* B77640 801004A0 11A00005 */ beqz $t5, .L801004B8
/* B77644 801004A4 00601025 */ move $v0, $v1
/* B77648 801004A8 00031023 */ negu $v0, $v1
/* B7764C 801004AC 00027400 */ sll $t6, $v0, 0x10
/* B77650 801004B0 03E00008 */ jr $ra
/* B77654 801004B4 000E1403 */ sra $v0, $t6, 0x10
.L801004B8:
/* B77658 801004B8 03E00008 */ jr $ra
/* B7765C 801004BC 00000000 */ nop
glabel func_801004C0
/* B77660 801004C0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B77664 801004C4 AFBF0014 */ sw $ra, 0x14($sp)
/* B77668 801004C8 3C058017 */ lui $a1, %hi(D_80175670) # $a1, 0x8017
/* B7766C 801004CC 24A55670 */ addiu $a1, %lo(D_80175670) # addiu $a1, $a1, 0x5670
/* B77670 801004D0 0C001BC4 */ jal bcopy
/* B77674 801004D4 24060040 */ li $a2, 64
/* B77678 801004D8 3C048017 */ lui $a0, %hi(D_80175680) # $a0, 0x8017
/* B7767C 801004DC 8C845680 */ lw $a0, %lo(D_80175680)($a0)
/* B77680 801004E0 10800005 */ beqz $a0, .L801004F8
/* B77684 801004E4 00000000 */ nop
/* B77688 801004E8 0C001378 */ jal osVirtualToPhysical
/* B7768C 801004EC 00000000 */ nop
/* B77690 801004F0 3C018017 */ lui $at, %hi(D_80175680) # $at, 0x8017
/* B77694 801004F4 AC225680 */ sw $v0, %lo(D_80175680)($at)
.L801004F8:
/* B77698 801004F8 3C048017 */ lui $a0, %hi(D_80175688) # $a0, 0x8017
/* B7769C 801004FC 8C845688 */ lw $a0, %lo(D_80175688)($a0)
/* B776A0 80100500 10800005 */ beqz $a0, .L80100518
/* B776A4 80100504 00000000 */ nop
/* B776A8 80100508 0C001378 */ jal osVirtualToPhysical
/* B776AC 8010050C 00000000 */ nop
/* B776B0 80100510 3C018017 */ lui $at, %hi(D_80175688) # $at, 0x8017
/* B776B4 80100514 AC225688 */ sw $v0, %lo(D_80175688)($at)
.L80100518:
/* B776B8 80100518 3C048017 */ lui $a0, %hi(D_80175690) # $a0, 0x8017
/* B776BC 8010051C 8C845690 */ lw $a0, %lo(D_80175690)($a0)
/* B776C0 80100520 10800005 */ beqz $a0, .L80100538
/* B776C4 80100524 00000000 */ nop
/* B776C8 80100528 0C001378 */ jal osVirtualToPhysical
/* B776CC 8010052C 00000000 */ nop
/* B776D0 80100530 3C018017 */ lui $at, %hi(D_80175690) # $at, 0x8017
/* B776D4 80100534 AC225690 */ sw $v0, %lo(D_80175690)($at)
.L80100538:
/* B776D8 80100538 3C048017 */ lui $a0, %hi(D_80175698) # $a0, 0x8017
/* B776DC 8010053C 8C845698 */ lw $a0, %lo(D_80175698)($a0)
/* B776E0 80100540 10800005 */ beqz $a0, .L80100558
/* B776E4 80100544 00000000 */ nop
/* B776E8 80100548 0C001378 */ jal osVirtualToPhysical
/* B776EC 8010054C 00000000 */ nop
/* B776F0 80100550 3C018017 */ lui $at, %hi(D_80175698) # $at, 0x8017
/* B776F4 80100554 AC225698 */ sw $v0, %lo(D_80175698)($at)
.L80100558:
/* B776F8 80100558 3C048017 */ lui $a0, %hi(D_8017569C) # $a0, 0x8017
/* B776FC 8010055C 8C84569C */ lw $a0, %lo(D_8017569C)($a0)
/* B77700 80100560 10800005 */ beqz $a0, .L80100578
/* B77704 80100564 00000000 */ nop
/* B77708 80100568 0C001378 */ jal osVirtualToPhysical
/* B7770C 8010056C 00000000 */ nop
/* B77710 80100570 3C018017 */ lui $at, %hi(D_8017569C) # $at, 0x8017
/* B77714 80100574 AC22569C */ sw $v0, %lo(D_8017569C)($at)
.L80100578:
/* B77718 80100578 3C048017 */ lui $a0, %hi(D_801756A0) # $a0, 0x8017
/* B7771C 8010057C 8C8456A0 */ lw $a0, %lo(D_801756A0)($a0)
/* B77720 80100580 10800005 */ beqz $a0, .L80100598
/* B77724 80100584 00000000 */ nop
/* B77728 80100588 0C001378 */ jal osVirtualToPhysical
/* B7772C 8010058C 00000000 */ nop
/* B77730 80100590 3C018017 */ lui $at, %hi(D_801756A0) # $at, 0x8017
/* B77734 80100594 AC2256A0 */ sw $v0, %lo(D_801756A0)($at)
.L80100598:
/* B77738 80100598 3C048017 */ lui $a0, %hi(D_801756A8) # $a0, 0x8017
/* B7773C 8010059C 8C8456A8 */ lw $a0, %lo(D_801756A8)($a0)
/* B77740 801005A0 50800006 */ beql $a0, $zero, .L801005BC
/* B77744 801005A4 8FBF0014 */ lw $ra, 0x14($sp)
/* B77748 801005A8 0C001378 */ jal osVirtualToPhysical
/* B7774C 801005AC 00000000 */ nop
/* B77750 801005B0 3C018017 */ lui $at, %hi(D_801756A8) # $at, 0x8017
/* B77754 801005B4 AC2256A8 */ sw $v0, %lo(D_801756A8)($at)
/* B77758 801005B8 8FBF0014 */ lw $ra, 0x14($sp)
.L801005BC:
/* B7775C 801005BC 3C028017 */ lui $v0, %hi(D_80175670) # $v0, 0x8017
/* B77760 801005C0 24425670 */ addiu $v0, %lo(D_80175670) # addiu $v0, $v0, 0x5670
/* B77764 801005C4 03E00008 */ jr $ra
/* B77768 801005C8 27BD0018 */ addiu $sp, $sp, 0x18
glabel func_801005CC
/* B7776C 801005CC 27BDFFD8 */ addiu $sp, $sp, -0x28
/* B77770 801005D0 AFBF0024 */ sw $ra, 0x24($sp)
/* B77774 801005D4 AFB00014 */ sw $s0, 0x14($sp)
/* B77778 801005D8 00808025 */ move $s0, $a0
/* B7777C 801005DC AFB30020 */ sw $s3, 0x20($sp)
/* B77780 801005E0 AFB2001C */ sw $s2, 0x1c($sp)
/* B77784 801005E4 0C040130 */ jal func_801004C0
/* B77788 801005E8 AFB10018 */ sw $s1, 0x18($sp)
/* B7778C 801005EC 8C4E0004 */ lw $t6, 4($v0)
/* B77790 801005F0 00409025 */ move $s2, $v0
/* B77794 801005F4 02402025 */ move $a0, $s2
/* B77798 801005F8 31CF0001 */ andi $t7, $t6, 1
/* B7779C 801005FC 11E00013 */ beqz $t7, .L8010064C
/* B777A0 80100600 00000000 */ nop
/* B777A4 80100604 8C580038 */ lw $t8, 0x38($v0)
/* B777A8 80100608 8C59003C */ lw $t9, 0x3c($v0)
/* B777AC 8010060C 2401FFFE */ li $at, -2
/* B777B0 80100610 AC580018 */ sw $t8, 0x18($v0)
/* B777B4 80100614 AC59001C */ sw $t9, 0x1c($v0)
/* B777B8 80100618 8E080004 */ lw $t0, 4($s0)
/* B777BC 8010061C 01014824 */ and $t1, $t0, $at
/* B777C0 80100620 AE090004 */ sw $t1, 4($s0)
/* B777C4 80100624 8C4A0004 */ lw $t2, 4($v0)
/* B777C8 80100628 314B0004 */ andi $t3, $t2, 4
/* B777CC 8010062C 11600007 */ beqz $t3, .L8010064C
/* B777D0 80100630 00000000 */ nop
/* B777D4 80100634 8E0C0038 */ lw $t4, 0x38($s0)
/* B777D8 80100638 3C01A000 */ lui $at, 0xa000
/* B777DC 8010063C 258D0BFC */ addiu $t5, $t4, 0xbfc
/* B777E0 80100640 01A17025 */ or $t6, $t5, $at
/* B777E4 80100644 8DCF0000 */ lw $t7, ($t6)
/* B777E8 80100648 AC4F0010 */ sw $t7, 0x10($v0)
.L8010064C:
/* B777EC 8010064C 0C0011B0 */ jal osWritebackDCache
/* B777F0 80100650 24050040 */ li $a1, 64
/* B777F4 80100654 0C041920 */ jal __osSpSetStatus
/* B777F8 80100658 24042B00 */ li $a0, 11008
/* B777FC 8010065C 3C130400 */ lui $s3, (0x04001000 >> 16) # lui $s3, 0x400
/* B77800 80100660 36731000 */ ori $s3, (0x04001000 & 0xFFFF) # ori $s3, $s3, 0x1000
/* B77804 80100664 0C0419E8 */ jal func_801067A0
/* B77808 80100668 02602025 */ move $a0, $s3
/* B7780C 8010066C 2411FFFF */ li $s1, -1
/* B77810 80100670 54510006 */ bnel $v0, $s1, .L8010068C
/* B77814 80100674 3C100400 */ lui $s0, 0x400
.L80100678:
/* B77818 80100678 0C0419E8 */ jal func_801067A0
/* B7781C 8010067C 02602025 */ move $a0, $s3
/* B77820 80100680 1051FFFD */ beq $v0, $s1, .L80100678
/* B77824 80100684 00000000 */ nop
/* B77828 80100688 3C100400 */ lui $s0, (0x04000FC0 >> 16) # lui $s0, 0x400
.L8010068C:
/* B7782C 8010068C 36100FC0 */ ori $s0, (0x04000FC0 & 0xFFFF) # ori $s0, $s0, 0xfc0
/* B77830 80100690 02002825 */ move $a1, $s0
/* B77834 80100694 24040001 */ li $a0, 1
/* B77838 80100698 02403025 */ move $a2, $s2
/* B7783C 8010069C 0C0404D8 */ jal func_80101360
/* B77840 801006A0 24070040 */ li $a3, 64
/* B77844 801006A4 14510007 */ bne $v0, $s1, .L801006C4
/* B77848 801006A8 24040001 */ li $a0, 1
.L801006AC:
/* B7784C 801006AC 02002825 */ move $a1, $s0
/* B77850 801006B0 02403025 */ move $a2, $s2
/* B77854 801006B4 0C0404D8 */ jal func_80101360
/* B77858 801006B8 24070040 */ li $a3, 64
/* B7785C 801006BC 5051FFFB */ beql $v0, $s1, .L801006AC
/* B77860 801006C0 24040001 */ li $a0, 1
.L801006C4:
/* B77864 801006C4 0C040ECC */ jal func_80103B30
/* B77868 801006C8 00000000 */ nop
/* B7786C 801006CC 50400006 */ beql $v0, $zero, .L801006E8
/* B77870 801006D0 24040001 */ li $a0, 1
.L801006D4:
/* B77874 801006D4 0C040ECC */ jal func_80103B30
/* B77878 801006D8 00000000 */ nop
/* B7787C 801006DC 1440FFFD */ bnez $v0, .L801006D4
/* B77880 801006E0 00000000 */ nop
/* B77884 801006E4 24040001 */ li $a0, 1
.L801006E8:
/* B77888 801006E8 02602825 */ move $a1, $s3
/* B7788C 801006EC 8E460008 */ lw $a2, 8($s2)
/* B77890 801006F0 0C0404D8 */ jal func_80101360
/* B77894 801006F4 8E47000C */ lw $a3, 0xc($s2)
/* B77898 801006F8 14510007 */ bne $v0, $s1, .L80100718
/* B7789C 801006FC 24040001 */ li $a0, 1
.L80100700:
/* B778A0 80100700 02602825 */ move $a1, $s3
/* B778A4 80100704 8E460008 */ lw $a2, 8($s2)
/* B778A8 80100708 0C0404D8 */ jal func_80101360
/* B778AC 8010070C 8E47000C */ lw $a3, 0xc($s2)
/* B778B0 80100710 5051FFFB */ beql $v0, $s1, .L80100700
/* B778B4 80100714 24040001 */ li $a0, 1
.L80100718:
/* B778B8 80100718 8FBF0024 */ lw $ra, 0x24($sp)
/* B778BC 8010071C 8FB00014 */ lw $s0, 0x14($sp)
/* B778C0 80100720 8FB10018 */ lw $s1, 0x18($sp)
/* B778C4 80100724 8FB2001C */ lw $s2, 0x1c($sp)
/* B778C8 80100728 8FB30020 */ lw $s3, 0x20($sp)
/* B778CC 8010072C 03E00008 */ jr $ra
/* B778D0 80100730 27BD0028 */ addiu $sp, $sp, 0x28
glabel func_80100734
/* B778D4 80100734 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B778D8 80100738 AFBF0014 */ sw $ra, 0x14($sp)
/* B778DC 8010073C 0C040ECC */ jal func_80103B30
/* B778E0 80100740 AFA40018 */ sw $a0, 0x18($sp)
/* B778E4 80100744 10400005 */ beqz $v0, .L8010075C
/* B778E8 80100748 00000000 */ nop
.L8010074C:
/* B778EC 8010074C 0C040ECC */ jal func_80103B30
/* B778F0 80100750 00000000 */ nop
/* B778F4 80100754 1440FFFD */ bnez $v0, .L8010074C
/* B778F8 80100758 00000000 */ nop
.L8010075C:
/* B778FC 8010075C 0C041920 */ jal __osSpSetStatus
/* B77900 80100760 24040125 */ li $a0, 293
/* B77904 80100764 8FBF0014 */ lw $ra, 0x14($sp)
/* B77908 80100768 27BD0018 */ addiu $sp, $sp, 0x18
/* B7790C 8010076C 03E00008 */ jr $ra
/* B77910 80100770 00000000 */ nop

48
asm/code_80101360.s Normal file
View file

@ -0,0 +1,48 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80101360
/* B78500 80101360 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B78504 80101364 AFBF0014 */ sw $ra, 0x14($sp)
/* B78508 80101368 AFA40018 */ sw $a0, 0x18($sp)
/* B7850C 8010136C AFA5001C */ sw $a1, 0x1c($sp)
/* B78510 80101370 AFA60020 */ sw $a2, 0x20($sp)
/* B78514 80101374 0C040ECC */ jal func_80103B30
/* B78518 80101378 AFA70024 */ sw $a3, 0x24($sp)
/* B7851C 8010137C 10400003 */ beqz $v0, .L8010138C
/* B78520 80101380 8FAE001C */ lw $t6, 0x1c($sp)
/* B78524 80101384 10000013 */ b .L801013D4
/* B78528 80101388 2402FFFF */ li $v0, -1
.L8010138C:
/* B7852C 8010138C 3C0FA404 */ lui $t7, 0xa404
/* B78530 80101390 ADEE0000 */ sw $t6, ($t7)
/* B78534 80101394 0C001378 */ jal osVirtualToPhysical
/* B78538 80101398 8FA40020 */ lw $a0, 0x20($sp)
/* B7853C 8010139C 3C18A404 */ lui $t8, %hi(D_A4040004) # $t8, 0xa404
/* B78540 801013A0 AF020004 */ sw $v0, %lo(D_A4040004)($t8)
/* B78544 801013A4 8FB90018 */ lw $t9, 0x18($sp)
/* B78548 801013A8 8FAB0024 */ lw $t3, 0x24($sp)
/* B7854C 801013AC 00001025 */ move $v0, $zero
/* B78550 801013B0 17200006 */ bnez $t9, .L801013CC
/* B78554 801013B4 256CFFFF */ addiu $t4, $t3, -1
/* B78558 801013B8 8FA80024 */ lw $t0, 0x24($sp)
/* B7855C 801013BC 3C0AA404 */ lui $t2, %hi(D_A404000C) # $t2, 0xa404
/* B78560 801013C0 2509FFFF */ addiu $t1, $t0, -1
/* B78564 801013C4 10000003 */ b .L801013D4
/* B78568 801013C8 AD49000C */ sw $t1, %lo(D_A404000C)($t2)
.L801013CC:
/* B7856C 801013CC 3C0DA404 */ lui $t5, %hi(D_A4040008) # $t5, 0xa404
/* B78570 801013D0 ADAC0008 */ sw $t4, %lo(D_A4040008)($t5)
.L801013D4:
/* B78574 801013D4 8FBF0014 */ lw $ra, 0x14($sp)
/* B78578 801013D8 27BD0018 */ addiu $sp, $sp, 0x18
/* B7857C 801013DC 03E00008 */ jr $ra
/* B78580 801013E0 00000000 */ nop

340
asm/code_801014A0.s Normal file
View file

@ -0,0 +1,340 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel osSpTaskYield
/* B78640 801014A0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B78644 801014A4 AFBF0014 */ sw $ra, 0x14($sp)
/* B78648 801014A8 0C041920 */ jal __osSpSetStatus
/* B7864C 801014AC 24040400 */ li $a0, 1024
/* B78650 801014B0 8FBF0014 */ lw $ra, 0x14($sp)
/* B78654 801014B4 27BD0018 */ addiu $sp, $sp, 0x18
/* B78658 801014B8 03E00008 */ jr $ra
/* B7865C 801014BC 00000000 */ nop
glabel func_801014C0
/* B78660 801014C0 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B78664 801014C4 AFBF001C */ sw $ra, 0x1c($sp)
/* B78668 801014C8 AFB00018 */ sw $s0, 0x18($sp)
/* B7866C 801014CC AFA50024 */ sw $a1, 0x24($sp)
/* B78670 801014D0 AFA60028 */ sw $a2, 0x28($sp)
/* B78674 801014D4 90AF0000 */ lbu $t7, ($a1)
/* B78678 801014D8 90E20000 */ lbu $v0, ($a3)
/* B7867C 801014DC 00E08025 */ move $s0, $a3
/* B78680 801014E0 00A07025 */ move $t6, $a1
/* B78684 801014E4 104F000A */ beq $v0, $t7, .L80101510
/* B78688 801014E8 00003025 */ move $a2, $zero
/* B7868C 801014EC A0A20000 */ sb $v0, ($a1)
/* B78690 801014F0 91C70000 */ lbu $a3, ($t6)
/* B78694 801014F4 AFA40020 */ sw $a0, 0x20($sp)
/* B78698 801014F8 0C040B31 */ jal func_80102CC4
/* B7869C 801014FC 8FA50028 */ lw $a1, 0x28($sp)
/* B786A0 80101500 10400003 */ beqz $v0, .L80101510
/* B786A4 80101504 8FA40020 */ lw $a0, 0x20($sp)
/* B786A8 80101508 1000001E */ b .L80101584
/* B786AC 8010150C 8FBF001C */ lw $ra, 0x1c($sp)
.L80101510:
/* B786B0 80101510 92190001 */ lbu $t9, 1($s0)
/* B786B4 80101514 8FB80028 */ lw $t8, 0x28($sp)
/* B786B8 80101518 00194040 */ sll $t0, $t9, 1
/* B786BC 8010151C 03084821 */ addu $t1, $t8, $t0
/* B786C0 80101520 95210000 */ lhu $at, ($t1)
/* B786C4 80101524 A6010000 */ sh $at, ($s0)
/* B786C8 80101528 8C8C0060 */ lw $t4, 0x60($a0)
/* B786CC 8010152C 3023FFFF */ andi $v1, $at, 0xffff
/* B786D0 80101530 006C082A */ slt $at, $v1, $t4
/* B786D4 80101534 5420000C */ bnezl $at, .L80101568
/* B786D8 80101538 24010001 */ li $at, 1
/* B786DC 8010153C 920D0000 */ lbu $t5, ($s0)
/* B786E0 80101540 908F0064 */ lbu $t7, 0x64($a0)
/* B786E4 80101544 01AF082A */ slt $at, $t5, $t7
/* B786E8 80101548 50200007 */ beql $at, $zero, .L80101568
/* B786EC 8010154C 24010001 */ li $at, 1
/* B786F0 80101550 92020001 */ lbu $v0, 1($s0)
/* B786F4 80101554 18400003 */ blez $v0, .L80101564
/* B786F8 80101558 28410080 */ slti $at, $v0, 0x80
/* B786FC 8010155C 14200008 */ bnez $at, .L80101580
/* B78700 80101560 00001025 */ move $v0, $zero
.L80101564:
/* B78704 80101564 24010001 */ li $at, 1
.L80101568:
/* B78708 80101568 14610003 */ bne $v1, $at, .L80101578
/* B7870C 8010156C 00000000 */ nop
/* B78710 80101570 10000003 */ b .L80101580
/* B78714 80101574 24020005 */ li $v0, 5
.L80101578:
/* B78718 80101578 10000001 */ b .L80101580
/* B7871C 8010157C 24020003 */ li $v0, 3
.L80101580:
/* B78720 80101580 8FBF001C */ lw $ra, 0x1c($sp)
.L80101584:
/* B78724 80101584 8FB00018 */ lw $s0, 0x18($sp)
/* B78728 80101588 27BD0020 */ addiu $sp, $sp, 0x20
/* B7872C 8010158C 03E00008 */ jr $ra
/* B78730 80101590 00000000 */ nop
glabel func_80101594
/* B78734 80101594 27BDFE90 */ addiu $sp, $sp, -0x170
/* B78738 80101598 AFBF002C */ sw $ra, 0x2c($sp)
/* B7873C 8010159C AFB30028 */ sw $s3, 0x28($sp)
/* B78740 801015A0 AFB20024 */ sw $s2, 0x24($sp)
/* B78744 801015A4 AFB10020 */ sw $s1, 0x20($sp)
/* B78748 801015A8 AFB0001C */ sw $s0, 0x1c($sp)
/* B7874C 801015AC AFA60178 */ sw $a2, 0x178($sp)
/* B78750 801015B0 8C8E0050 */ lw $t6, 0x50($a0)
/* B78754 801015B4 30D000FF */ andi $s0, $a2, 0xff
/* B78758 801015B8 00E08825 */ move $s1, $a3
/* B7875C 801015BC 00AE082A */ slt $at, $a1, $t6
/* B78760 801015C0 10200003 */ beqz $at, .L801015D0
/* B78764 801015C4 00809025 */ move $s2, $a0
/* B78768 801015C8 04A10003 */ bgez $a1, .L801015D8
/* B7876C 801015CC 8FA20180 */ lw $v0, 0x180($sp)
.L801015D0:
/* B78770 801015D0 100000C7 */ b .L801018F0
/* B78774 801015D4 24020005 */ li $v0, 5
.L801015D8:
/* B78778 801015D8 18400003 */ blez $v0, .L801015E8
/* B7877C 801015DC 304F001F */ andi $t7, $v0, 0x1f
/* B78780 801015E0 11E00003 */ beqz $t7, .L801015F0
/* B78784 801015E4 00000000 */ nop
.L801015E8:
/* B78788 801015E8 100000C1 */ b .L801018F0
/* B7878C 801015EC 24020005 */ li $v0, 5
.L801015F0:
/* B78790 801015F0 06200003 */ bltz $s1, .L80101600
/* B78794 801015F4 3238001F */ andi $t8, $s1, 0x1f
/* B78798 801015F8 53000004 */ beql $t8, $zero, .L8010160C
/* B7879C 801015FC 8E590000 */ lw $t9, ($s2)
.L80101600:
/* B787A0 80101600 100000BB */ b .L801018F0
/* B787A4 80101604 24020005 */ li $v0, 5
/* B787A8 80101608 8E590000 */ lw $t9, ($s2)
.L8010160C:
/* B787AC 8010160C 02402025 */ move $a0, $s2
/* B787B0 80101610 33280001 */ andi $t0, $t9, 1
/* B787B4 80101614 15000003 */ bnez $t0, .L80101624
/* B787B8 80101618 00000000 */ nop
/* B787BC 8010161C 100000B4 */ b .L801018F0
/* B787C0 80101620 24020005 */ li $v0, 5
.L80101624:
/* B787C4 80101624 0C040AFC */ jal func_80102BF0
/* B787C8 80101628 AFA50174 */ sw $a1, 0x174($sp)
/* B787CC 8010162C 24010002 */ li $at, 2
/* B787D0 80101630 54410004 */ bnel $v0, $at, .L80101644
/* B787D4 80101634 92490065 */ lbu $t1, 0x65($s2)
/* B787D8 80101638 100000AD */ b .L801018F0
/* B787DC 8010163C 24020002 */ li $v0, 2
/* B787E0 80101640 92490065 */ lbu $t1, 0x65($s2)
.L80101644:
/* B787E4 80101644 02402025 */ move $a0, $s2
/* B787E8 80101648 51200008 */ beql $t1, $zero, .L8010166C
/* B787EC 8010164C 8E4A005C */ lw $t2, 0x5c($s2)
/* B787F0 80101650 0C041320 */ jal func_80104C80
/* B787F4 80101654 00002825 */ move $a1, $zero
/* B787F8 80101658 50400004 */ beql $v0, $zero, .L8010166C
/* B787FC 8010165C 8E4A005C */ lw $t2, 0x5c($s2)
/* B78800 80101660 100000A4 */ b .L801018F4
/* B78804 80101664 8FBF002C */ lw $ra, 0x2c($sp)
/* B78808 80101668 8E4A005C */ lw $t2, 0x5c($s2)
.L8010166C:
/* B7880C 8010166C 8FAB0174 */ lw $t3, 0x174($sp)
/* B78810 80101670 8E440004 */ lw $a0, 4($s2)
/* B78814 80101674 8E450008 */ lw $a1, 8($s2)
/* B78818 80101678 014B3021 */ addu $a2, $t2, $t3
/* B7881C 8010167C 30CCFFFF */ andi $t4, $a2, 0xffff
/* B78820 80101680 01803025 */ move $a2, $t4
/* B78824 80101684 0C0417D0 */ jal func_80105F40
/* B78828 80101688 27A7014C */ addiu $a3, $sp, 0x14c
/* B7882C 8010168C 10400003 */ beqz $v0, .L8010169C
/* B78830 80101690 97AD0150 */ lhu $t5, 0x150($sp)
/* B78834 80101694 10000097 */ b .L801018F4
/* B78838 80101698 8FBF002C */ lw $ra, 0x2c($sp)
.L8010169C:
/* B7883C 8010169C 11A00003 */ beqz $t5, .L801016AC
/* B78840 801016A0 8FAE014C */ lw $t6, 0x14c($sp)
/* B78844 801016A4 15C00003 */ bnez $t6, .L801016B4
/* B78848 801016A8 97AF0152 */ lhu $t7, 0x152($sp)
.L801016AC:
/* B7884C 801016AC 10000090 */ b .L801018F0
/* B78850 801016B0 24020005 */ li $v0, 5
.L801016B4:
/* B78854 801016B4 8E580060 */ lw $t8, 0x60($s2)
/* B78858 801016B8 93B90152 */ lbu $t9, 0x152($sp)
/* B7885C 801016BC 97AA0152 */ lhu $t2, 0x152($sp)
/* B78860 801016C0 01F8082A */ slt $at, $t7, $t8
/* B78864 801016C4 5420000A */ bnezl $at, .L801016F0
/* B78868 801016C8 24010001 */ li $at, 1
/* B7886C 801016CC 92480064 */ lbu $t0, 0x64($s2)
/* B78870 801016D0 93A90153 */ lbu $t1, 0x153($sp)
/* B78874 801016D4 0328082A */ slt $at, $t9, $t0
/* B78878 801016D8 50200005 */ beql $at, $zero, .L801016F0
/* B7887C 801016DC 24010001 */ li $at, 1
/* B78880 801016E0 19200002 */ blez $t1, .L801016EC
/* B78884 801016E4 29210080 */ slti $at, $t1, 0x80
/* B78888 801016E8 14200007 */ bnez $at, .L80101708
.L801016EC:
/* B7888C 801016EC 24010001 */ li $at, 1
.L801016F0:
/* B78890 801016F0 15410003 */ bne $t2, $at, .L80101700
/* B78894 801016F4 00000000 */ nop
/* B78898 801016F8 1000007D */ b .L801018F0
/* B7889C 801016FC 24020005 */ li $v0, 5
.L80101700:
/* B788A0 80101700 1000007B */ b .L801018F0
/* B788A4 80101704 24020003 */ li $v0, 3
.L80101708:
/* B788A8 80101708 16000007 */ bnez $s0, .L80101728
/* B788AC 8010170C AFB00034 */ sw $s0, 0x34($sp)
/* B788B0 80101710 93AC0154 */ lbu $t4, 0x154($sp)
/* B788B4 80101714 318D0002 */ andi $t5, $t4, 2
/* B788B8 80101718 55A00004 */ bnezl $t5, .L8010172C
/* B788BC 8010171C 97AF0152 */ lhu $t7, 0x152($sp)
/* B788C0 80101720 10000073 */ b .L801018F0
/* B788C4 80101724 24020006 */ li $v0, 6
.L80101728:
/* B788C8 80101728 97AF0152 */ lhu $t7, 0x152($sp)
.L8010172C:
/* B788CC 8010172C 240E00FF */ li $t6, 255
/* B788D0 80101730 A3AE003B */ sb $t6, 0x3b($sp)
/* B788D4 80101734 06210003 */ bgez $s1, .L80101744
/* B788D8 80101738 00111143 */ sra $v0, $s1, 5
/* B788DC 8010173C 2621001F */ addiu $at, $s1, 0x1f
/* B788E0 80101740 00011143 */ sra $v0, $at, 5
.L80101744:
/* B788E4 80101744 28410008 */ slti $at, $v0, 8
/* B788E8 80101748 00408025 */ move $s0, $v0
/* B788EC 8010174C 1420000D */ bnez $at, .L80101784
/* B788F0 80101750 A7AF0048 */ sh $t7, 0x48($sp)
/* B788F4 80101754 02402025 */ move $a0, $s2
.L80101758:
/* B788F8 80101758 27A5003B */ addiu $a1, $sp, 0x3b
/* B788FC 8010175C 27A6004C */ addiu $a2, $sp, 0x4c
/* B78900 80101760 0C040530 */ jal func_801014C0
/* B78904 80101764 27A70048 */ addiu $a3, $sp, 0x48
/* B78908 80101768 10400003 */ beqz $v0, .L80101778
/* B7890C 8010176C 2610FFF8 */ addiu $s0, $s0, -8
/* B78910 80101770 10000060 */ b .L801018F4
/* B78914 80101774 8FBF002C */ lw $ra, 0x2c($sp)
.L80101778:
/* B78918 80101778 2A010008 */ slti $at, $s0, 8
/* B7891C 8010177C 5020FFF6 */ beql $at, $zero, .L80101758
/* B78920 80101780 02402025 */ move $a0, $s2
.L80101784:
/* B78924 80101784 8FA20180 */ lw $v0, 0x180($sp)
/* B78928 80101788 8FB10184 */ lw $s1, 0x184($sp)
/* B7892C 8010178C 04410003 */ bgez $v0, .L8010179C
/* B78930 80101790 0002C143 */ sra $t8, $v0, 5
/* B78934 80101794 2441001F */ addiu $at, $v0, 0x1f
/* B78938 80101798 0001C143 */ sra $t8, $at, 5
.L8010179C:
/* B7893C 8010179C 1B000031 */ blez $t8, .L80101864
/* B78940 801017A0 03009825 */ move $s3, $t8
.L801017A4:
/* B78944 801017A4 24010008 */ li $at, 8
/* B78948 801017A8 16010009 */ bne $s0, $at, .L801017D0
/* B7894C 801017AC 02402025 */ move $a0, $s2
/* B78950 801017B0 27A5003B */ addiu $a1, $sp, 0x3b
/* B78954 801017B4 27A6004C */ addiu $a2, $sp, 0x4c
/* B78958 801017B8 0C040530 */ jal func_801014C0
/* B7895C 801017BC 27A70048 */ addiu $a3, $sp, 0x48
/* B78960 801017C0 10400003 */ beqz $v0, .L801017D0
/* B78964 801017C4 00008025 */ move $s0, $zero
/* B78968 801017C8 1000004A */ b .L801018F4
/* B7896C 801017CC 8FBF002C */ lw $ra, 0x2c($sp)
.L801017D0:
/* B78970 801017D0 93B90048 */ lbu $t9, 0x48($sp)
/* B78974 801017D4 92480065 */ lbu $t0, 0x65($s2)
/* B78978 801017D8 02402025 */ move $a0, $s2
/* B7897C 801017DC 53280008 */ beql $t9, $t0, .L80101800
/* B78980 801017E0 93A90049 */ lbu $t1, 0x49($sp)
/* B78984 801017E4 0C041320 */ jal func_80104C80
/* B78988 801017E8 03202825 */ move $a1, $t9
/* B7898C 801017EC 50400004 */ beql $v0, $zero, .L80101800
/* B78990 801017F0 93A90049 */ lbu $t1, 0x49($sp)
/* B78994 801017F4 1000003F */ b .L801018F4
/* B78998 801017F8 8FBF002C */ lw $ra, 0x2c($sp)
/* B7899C 801017FC 93A90049 */ lbu $t1, 0x49($sp)
.L80101800:
/* B789A0 80101800 8FAC0034 */ lw $t4, 0x34($sp)
/* B789A4 80101804 02203825 */ move $a3, $s1
/* B789A8 80101808 000950C0 */ sll $t2, $t1, 3
/* B789AC 8010180C 01503021 */ addu $a2, $t2, $s0
/* B789B0 80101810 30CBFFFF */ andi $t3, $a2, 0xffff
/* B789B4 80101814 15800007 */ bnez $t4, .L80101834
/* B789B8 80101818 01603025 */ move $a2, $t3
/* B789BC 8010181C 8E440004 */ lw $a0, 4($s2)
/* B789C0 80101820 8E450008 */ lw $a1, 8($s2)
/* B789C4 80101824 0C0417D0 */ jal func_80105F40
/* B789C8 80101828 02203825 */ move $a3, $s1
/* B789CC 8010182C 10000006 */ b .L80101848
/* B789D0 80101830 00401825 */ move $v1, $v0
.L80101834:
/* B789D4 80101834 8E440004 */ lw $a0, 4($s2)
/* B789D8 80101838 8E450008 */ lw $a1, 8($s2)
/* B789DC 8010183C 0C04173C */ jal func_80105CF0
/* B789E0 80101840 AFA00010 */ sw $zero, 0x10($sp)
/* B789E4 80101844 00401825 */ move $v1, $v0
.L80101848:
/* B789E8 80101848 10400003 */ beqz $v0, .L80101858
/* B789EC 8010184C 26310020 */ addiu $s1, $s1, 0x20
/* B789F0 80101850 10000027 */ b .L801018F0
/* B789F4 80101854 00601025 */ move $v0, $v1
.L80101858:
/* B789F8 80101858 2673FFFF */ addiu $s3, $s3, -1
/* B789FC 8010185C 1660FFD1 */ bnez $s3, .L801017A4
/* B78A00 80101860 26100001 */ addiu $s0, $s0, 1
.L80101864:
/* B78A04 80101864 8FAD0034 */ lw $t5, 0x34($sp)
/* B78A08 80101868 93A20154 */ lbu $v0, 0x154($sp)
/* B78A0C 8010186C 24010001 */ li $at, 1
/* B78A10 80101870 15A1001C */ bne $t5, $at, .L801018E4
/* B78A14 80101874 304E0002 */ andi $t6, $v0, 2
/* B78A18 80101878 15C0001A */ bnez $t6, .L801018E4
/* B78A1C 8010187C 344F0002 */ ori $t7, $v0, 2
/* B78A20 80101880 A3AF0154 */ sb $t7, 0x154($sp)
/* B78A24 80101884 92580065 */ lbu $t8, 0x65($s2)
/* B78A28 80101888 02402025 */ move $a0, $s2
/* B78A2C 8010188C 53000008 */ beql $t8, $zero, .L801018B0
/* B78A30 80101890 8E48005C */ lw $t0, 0x5c($s2)
/* B78A34 80101894 0C041320 */ jal func_80104C80
/* B78A38 80101898 00002825 */ move $a1, $zero
/* B78A3C 8010189C 50400004 */ beql $v0, $zero, .L801018B0
/* B78A40 801018A0 8E48005C */ lw $t0, 0x5c($s2)
/* B78A44 801018A4 10000013 */ b .L801018F4
/* B78A48 801018A8 8FBF002C */ lw $ra, 0x2c($sp)
/* B78A4C 801018AC 8E48005C */ lw $t0, 0x5c($s2)
.L801018B0:
/* B78A50 801018B0 8FB90174 */ lw $t9, 0x174($sp)
/* B78A54 801018B4 8E440004 */ lw $a0, 4($s2)
/* B78A58 801018B8 8E450008 */ lw $a1, 8($s2)
/* B78A5C 801018BC 01193021 */ addu $a2, $t0, $t9
/* B78A60 801018C0 30C9FFFF */ andi $t1, $a2, 0xffff
/* B78A64 801018C4 01203025 */ move $a2, $t1
/* B78A68 801018C8 AFA00010 */ sw $zero, 0x10($sp)
/* B78A6C 801018CC 0C04173C */ jal func_80105CF0
/* B78A70 801018D0 27A7014C */ addiu $a3, $sp, 0x14c
/* B78A74 801018D4 50400004 */ beql $v0, $zero, .L801018E8
/* B78A78 801018D8 8E440004 */ lw $a0, 4($s2)
/* B78A7C 801018DC 10000005 */ b .L801018F4
/* B78A80 801018E0 8FBF002C */ lw $ra, 0x2c($sp)
.L801018E4:
/* B78A84 801018E4 8E440004 */ lw $a0, 4($s2)
.L801018E8:
/* B78A88 801018E8 0C040644 */ jal func_80101910
/* B78A8C 801018EC 8E450008 */ lw $a1, 8($s2)
.L801018F0:
/* B78A90 801018F0 8FBF002C */ lw $ra, 0x2c($sp)
.L801018F4:
/* B78A94 801018F4 8FB0001C */ lw $s0, 0x1c($sp)
/* B78A98 801018F8 8FB10020 */ lw $s1, 0x20($sp)
/* B78A9C 801018FC 8FB20024 */ lw $s2, 0x24($sp)
/* B78AA0 80101900 8FB30028 */ lw $s3, 0x28($sp)
/* B78AA4 80101904 03E00008 */ jr $ra
/* B78AA8 80101908 27BD0170 */ addiu $sp, $sp, 0x170

166
asm/code_80101910.s Normal file
View file

@ -0,0 +1,166 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80101910
/* B78AB0 80101910 27BDFFD0 */ addiu $sp, $sp, -0x30
/* B78AB4 80101914 AFA40030 */ sw $a0, 0x30($sp)
/* B78AB8 80101918 AFBF0014 */ sw $ra, 0x14($sp)
/* B78ABC 8010191C AFA50034 */ sw $a1, 0x34($sp)
/* B78AC0 80101920 240E00FA */ li $t6, 250
/* B78AC4 80101924 3C018013 */ lui $at, %hi(D_80134CF4) # $at, 0x8013
/* B78AC8 80101928 00A02025 */ move $a0, $a1
/* B78ACC 8010192C A02E4CF4 */ sb $t6, %lo(D_80134CF4)($at)
/* B78AD0 80101930 0C040678 */ jal func_801019E0
/* B78AD4 80101934 00002825 */ move $a1, $zero
/* B78AD8 80101938 3C058017 */ lui $a1, %hi(D_80175960) # $a1, 0x8017
/* B78ADC 8010193C 24A55960 */ addiu $a1, %lo(D_80175960) # addiu $a1, $a1, 0x5960
/* B78AE0 80101940 0C0404FC */ jal __osSiRawStartDma /*(s32 dir, void *addr)*/
/* B78AE4 80101944 24040001 */ li $a0, 1
/* B78AE8 80101948 8FA40030 */ lw $a0, 0x30($sp)
/* B78AEC 8010194C 27A50028 */ addiu $a1, $sp, 0x28
/* B78AF0 80101950 0C000CA0 */ jal osRecvMesg
/* B78AF4 80101954 24060001 */ li $a2, 1
/* B78AF8 80101958 3C058017 */ lui $a1, %hi(D_80175960) # $a1, 0x8017
/* B78AFC 8010195C 24A55960 */ addiu $a1, %lo(D_80175960) # addiu $a1, $a1, 0x5960
/* B78B00 80101960 0C0404FC */ jal __osSiRawStartDma /*(s32 dir, void *addr)*/
/* B78B04 80101964 00002025 */ move $a0, $zero
/* B78B08 80101968 AFA2002C */ sw $v0, 0x2c($sp)
/* B78B0C 8010196C 8FA40030 */ lw $a0, 0x30($sp)
/* B78B10 80101970 27A50028 */ addiu $a1, $sp, 0x28
/* B78B14 80101974 0C000CA0 */ jal osRecvMesg
/* B78B18 80101978 24060001 */ li $a2, 1
/* B78B1C 8010197C 8FA40034 */ lw $a0, 0x34($sp)
/* B78B20 80101980 0C0406A9 */ jal func_80101AA4
/* B78B24 80101984 27A50024 */ addiu $a1, $sp, 0x24
/* B78B28 80101988 93A20026 */ lbu $v0, 0x26($sp)
/* B78B2C 8010198C 93B80027 */ lbu $t8, 0x27($sp)
/* B78B30 80101990 8FBF0014 */ lw $ra, 0x14($sp)
/* B78B34 80101994 30430001 */ andi $v1, $v0, 1
/* B78B38 80101998 10600005 */ beqz $v1, .L801019B0
/* B78B3C 8010199C 304F0002 */ andi $t7, $v0, 2
/* B78B40 801019A0 11E00003 */ beqz $t7, .L801019B0
/* B78B44 801019A4 00000000 */ nop
/* B78B48 801019A8 1000000B */ b .L801019D8
/* B78B4C 801019AC 24020002 */ li $v0, 2
.L801019B0:
/* B78B50 801019B0 17000003 */ bnez $t8, .L801019C0
/* B78B54 801019B4 00000000 */ nop
/* B78B58 801019B8 14600003 */ bnez $v1, .L801019C8
/* B78B5C 801019BC 30590004 */ andi $t9, $v0, 4
.L801019C0:
/* B78B60 801019C0 10000005 */ b .L801019D8
/* B78B64 801019C4 24020001 */ li $v0, 1
.L801019C8:
/* B78B68 801019C8 13200003 */ beqz $t9, .L801019D8
/* B78B6C 801019CC 8FA2002C */ lw $v0, 0x2c($sp)
/* B78B70 801019D0 10000001 */ b .L801019D8
/* B78B74 801019D4 24020004 */ li $v0, 4
.L801019D8:
/* B78B78 801019D8 03E00008 */ jr $ra
/* B78B7C 801019DC 27BD0030 */ addiu $sp, $sp, 0x30
glabel func_801019E0
/* B78B80 801019E0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B78B84 801019E4 3C068017 */ lui $a2, %hi(D_80175960)
/* B78B88 801019E8 240700FE */ li $a3, 254
/* B78B8C 801019EC 3C018017 */ lui $at, %hi(_osCont_lastPollType) # $at, 0x8017
/* B78B90 801019F0 24C25960 */ addiu $v0, $a2, %lo(D_80175960)
/* B78B94 801019F4 AFA5001C */ sw $a1, 0x1c($sp)
/* B78B98 801019F8 A0275810 */ sb $a3, %lo(_osCont_lastPollType)($at)
/* B78B9C 801019FC 240F0001 */ li $t7, 1
/* B78BA0 80101A00 AC4F003C */ sw $t7, 0x3c($v0)
/* B78BA4 80101A04 24180001 */ li $t8, 1
/* B78BA8 80101A08 24190003 */ li $t9, 3
/* B78BAC 80101A0C 240800FF */ li $t0, 255
/* B78BB0 80101A10 240900FF */ li $t1, 255
/* B78BB4 80101A14 240A00FF */ li $t2, 255
/* B78BB8 80101A18 A3B8000C */ sb $t8, 0xc($sp)
/* B78BBC 80101A1C A3B9000D */ sb $t9, 0xd($sp)
/* B78BC0 80101A20 A3A5000E */ sb $a1, 0xe($sp)
/* B78BC4 80101A24 A3A8000F */ sb $t0, 0xf($sp)
/* B78BC8 80101A28 A3A90010 */ sb $t1, 0x10($sp)
/* B78BCC 80101A2C A3AA0011 */ sb $t2, 0x11($sp)
/* B78BD0 80101A30 18800010 */ blez $a0, .L80101A74
/* B78BD4 80101A34 00001825 */ move $v1, $zero
/* B78BD8 80101A38 30860003 */ andi $a2, $a0, 3
/* B78BDC 80101A3C 10C00006 */ beqz $a2, .L80101A58
/* B78BE0 80101A40 00C02825 */ move $a1, $a2
.L80101A44:
/* B78BE4 80101A44 24630001 */ addiu $v1, $v1, 1
/* B78BE8 80101A48 A0400000 */ sb $zero, ($v0)
/* B78BEC 80101A4C 14A3FFFD */ bne $a1, $v1, .L80101A44
/* B78BF0 80101A50 24420001 */ addiu $v0, $v0, 1
/* B78BF4 80101A54 10640007 */ beq $v1, $a0, .L80101A74
.L80101A58:
/* B78BF8 80101A58 24630004 */ addiu $v1, $v1, 4
/* B78BFC 80101A5C A0400001 */ sb $zero, 1($v0)
/* B78C00 80101A60 A0400002 */ sb $zero, 2($v0)
/* B78C04 80101A64 A0400003 */ sb $zero, 3($v0)
/* B78C08 80101A68 24420004 */ addiu $v0, $v0, 4
/* B78C0C 80101A6C 1464FFFA */ bne $v1, $a0, .L80101A58
/* B78C10 80101A70 A040FFFC */ sb $zero, -4($v0)
.L80101A74:
/* B78C14 80101A74 27AB000C */ addiu $t3, $sp, 0xc
/* B78C18 80101A78 8D610000 */ lw $at, ($t3)
/* B78C1C 80101A7C 24420006 */ addiu $v0, $v0, 6
/* B78C20 80101A80 A841FFFA */ swl $at, -6($v0)
/* B78C24 80101A84 B841FFFD */ swr $at, -3($v0)
/* B78C28 80101A88 91610004 */ lbu $at, 4($t3)
/* B78C2C 80101A8C A041FFFE */ sb $at, -2($v0)
/* B78C30 80101A90 916D0005 */ lbu $t5, 5($t3)
/* B78C34 80101A94 A0470000 */ sb $a3, ($v0)
/* B78C38 80101A98 27BD0018 */ addiu $sp, $sp, 0x18
/* B78C3C 80101A9C 03E00008 */ jr $ra
/* B78C40 80101AA0 A04DFFFF */ sb $t5, -1($v0)
glabel func_80101AA4
/* B78C44 80101AA4 3C028017 */ lui $v0, %hi(D_80175960) # $v0, 0x8017
/* B78C48 80101AA8 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B78C4C 80101AAC 24425960 */ addiu $v0, %lo(D_80175960) # addiu $v0, $v0, 0x5960
/* B78C50 80101AB0 1880000B */ blez $a0, .L80101AE0
/* B78C54 80101AB4 00001825 */ move $v1, $zero
/* B78C58 80101AB8 30870003 */ andi $a3, $a0, 3
/* B78C5C 80101ABC 10E00005 */ beqz $a3, .L80101AD4
/* B78C60 80101AC0 00E03025 */ move $a2, $a3
.L80101AC4:
/* B78C64 80101AC4 24630001 */ addiu $v1, $v1, 1
/* B78C68 80101AC8 14C3FFFE */ bne $a2, $v1, .L80101AC4
/* B78C6C 80101ACC 24420001 */ addiu $v0, $v0, 1
/* B78C70 80101AD0 10640003 */ beq $v1, $a0, .L80101AE0
.L80101AD4:
/* B78C74 80101AD4 24630004 */ addiu $v1, $v1, 4
/* B78C78 80101AD8 1464FFFE */ bne $v1, $a0, .L80101AD4
/* B78C7C 80101ADC 24420004 */ addiu $v0, $v0, 4
.L80101AE0:
/* B78C80 80101AE0 88410000 */ lwl $at, ($v0)
/* B78C84 80101AE4 98410003 */ lwr $at, 3($v0)
/* B78C88 80101AE8 27AE000C */ addiu $t6, $sp, 0xc
/* B78C8C 80101AEC ADC10000 */ sw $at, ($t6)
/* B78C90 80101AF0 90410004 */ lbu $at, 4($v0)
/* B78C94 80101AF4 A1C10004 */ sb $at, 4($t6)
/* B78C98 80101AF8 90580005 */ lbu $t8, 5($v0)
/* B78C9C 80101AFC A1D80005 */ sb $t8, 5($t6)
/* B78CA0 80101B00 93B9000D */ lbu $t9, 0xd($sp)
/* B78CA4 80101B04 332800C0 */ andi $t0, $t9, 0xc0
/* B78CA8 80101B08 00084903 */ sra $t1, $t0, 4
/* B78CAC 80101B0C 312A00FF */ andi $t2, $t1, 0xff
/* B78CB0 80101B10 15400008 */ bnez $t2, .L80101B34
/* B78CB4 80101B14 A0A90003 */ sb $t1, 3($a1)
/* B78CB8 80101B18 93AB0010 */ lbu $t3, 0x10($sp)
/* B78CBC 80101B1C 93AD000F */ lbu $t5, 0xf($sp)
/* B78CC0 80101B20 000B6200 */ sll $t4, $t3, 8
/* B78CC4 80101B24 018D7825 */ or $t7, $t4, $t5
/* B78CC8 80101B28 A4AF0000 */ sh $t7, ($a1)
/* B78CCC 80101B2C 93AE0011 */ lbu $t6, 0x11($sp)
/* B78CD0 80101B30 A0AE0002 */ sb $t6, 2($a1)
.L80101B34:
/* B78CD4 80101B34 03E00008 */ jr $ra
/* B78CD8 80101B38 27BD0018 */ addiu $sp, $sp, 0x18

30
asm/code_80101B40.s Normal file
View file

@ -0,0 +1,30 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80101B40
/* B78CE0 80101B40 3C083F80 */ lui $t0, 0x3f80
/* B78CE4 80101B44 AC880000 */ sw $t0, ($a0)
/* B78CE8 80101B48 AC800004 */ sw $zero, 4($a0)
/* B78CEC 80101B4C AC800008 */ sw $zero, 8($a0)
/* B78CF0 80101B50 AC80000C */ sw $zero, 0xc($a0)
/* B78CF4 80101B54 AC800010 */ sw $zero, 0x10($a0)
/* B78CF8 80101B58 AC880014 */ sw $t0, 0x14($a0)
/* B78CFC 80101B5C AC800018 */ sw $zero, 0x18($a0)
/* B78D00 80101B60 AC80001C */ sw $zero, 0x1c($a0)
/* B78D04 80101B64 AC800020 */ sw $zero, 0x20($a0)
/* B78D08 80101B68 AC800024 */ sw $zero, 0x24($a0)
/* B78D0C 80101B6C AC880028 */ sw $t0, 0x28($a0)
/* B78D10 80101B70 AC80002C */ sw $zero, 0x2c($a0)
/* B78D14 80101B74 AC800030 */ sw $zero, 0x30($a0)
/* B78D18 80101B78 AC800034 */ sw $zero, 0x34($a0)
/* B78D1C 80101B7C AC800038 */ sw $zero, 0x38($a0)
/* B78D20 80101B80 03E00008 */ jr $ra
/* B78D24 80101B84 AC88003C */ sw $t0, 0x3c($a0)

212
asm/code_80101B90.s Normal file
View file

@ -0,0 +1,212 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80101B90
/* B78D30 80101B90 27BDFF88 */ addiu $sp, $sp, -0x78
/* B78D34 80101B94 AFBF0044 */ sw $ra, 0x44($sp)
/* B78D38 80101B98 F7BE0038 */ sdc1 $f30, 0x38($sp)
/* B78D3C 80101B9C F7BC0030 */ sdc1 $f28, 0x30($sp)
/* B78D40 80101BA0 F7BA0028 */ sdc1 $f26, 0x28($sp)
/* B78D44 80101BA4 F7B80020 */ sdc1 $f24, 0x20($sp)
/* B78D48 80101BA8 F7B60018 */ sdc1 $f22, 0x18($sp)
/* B78D4C 80101BAC F7B40010 */ sdc1 $f20, 0x10($sp)
/* B78D50 80101BB0 AFA5007C */ sw $a1, 0x7c($sp)
/* B78D54 80101BB4 AFA60080 */ sw $a2, 0x80($sp)
/* B78D58 80101BB8 AFA70084 */ sw $a3, 0x84($sp)
/* B78D5C 80101BBC 0C0406D0 */ jal func_80101B40
/* B78D60 80101BC0 AFA40078 */ sw $a0, 0x78($sp)
/* B78D64 80101BC4 C7A40088 */ lwc1 $f4, 0x88($sp)
/* B78D68 80101BC8 C7A6007C */ lwc1 $f6, 0x7c($sp)
/* B78D6C 80101BCC C7A8008C */ lwc1 $f8, 0x8c($sp)
/* B78D70 80101BD0 C7AA0080 */ lwc1 $f10, 0x80($sp)
/* B78D74 80101BD4 46062081 */ sub.s $f2, $f4, $f6
/* B78D78 80101BD8 C7A60084 */ lwc1 $f6, 0x84($sp)
/* B78D7C 80101BDC C7A40090 */ lwc1 $f4, 0x90($sp)
/* B78D80 80101BE0 460A4301 */ sub.s $f12, $f8, $f10
/* B78D84 80101BE4 46021202 */ mul.s $f8, $f2, $f2
/* B78D88 80101BE8 3C01BFF0 */ li $at, 0xBFF00000 # 0.000000
/* B78D8C 80101BEC 46062381 */ sub.s $f14, $f4, $f6
/* B78D90 80101BF0 460C6282 */ mul.s $f10, $f12, $f12
/* B78D94 80101BF4 44814800 */ mtc1 $at, $f9
/* B78D98 80101BF8 3C013FF0 */ li $at, 0x3FF00000 # 0.000000
/* B78D9C 80101BFC 460E7182 */ mul.s $f6, $f14, $f14
/* B78DA0 80101C00 8FA40078 */ lw $a0, 0x78($sp)
/* B78DA4 80101C04 460A4100 */ add.s $f4, $f8, $f10
/* B78DA8 80101C08 44804000 */ mtc1 $zero, $f8
/* B78DAC 80101C0C 46062000 */ add.s $f0, $f4, $f6
/* B78DB0 80101C10 46000004 */ sqrt.s $f0, $f0
/* B78DB4 80101C14 460002A1 */ cvt.d.s $f10, $f0
/* B78DB8 80101C18 462A4103 */ div.d $f4, $f8, $f10
/* B78DBC 80101C1C 46202420 */ cvt.s.d $f16, $f4
/* B78DC0 80101C20 46101702 */ mul.s $f28, $f2, $f16
/* B78DC4 80101C24 00000000 */ nop
/* B78DC8 80101C28 46106182 */ mul.s $f6, $f12, $f16
/* B78DCC 80101C2C 00000000 */ nop
/* B78DD0 80101C30 46107282 */ mul.s $f10, $f14, $f16
/* B78DD4 80101C34 E7A60054 */ swc1 $f6, 0x54($sp)
/* B78DD8 80101C38 C7A60098 */ lwc1 $f6, 0x98($sp)
/* B78DDC 80101C3C C7BE0054 */ lwc1 $f30, 0x54($sp)
/* B78DE0 80101C40 E7AA0050 */ swc1 $f10, 0x50($sp)
/* B78DE4 80101C44 C7A40050 */ lwc1 $f4, 0x50($sp)
/* B78DE8 80101C48 46043282 */ mul.s $f10, $f6, $f4
/* B78DEC 80101C4C C7A6009C */ lwc1 $f6, 0x9c($sp)
/* B78DF0 80101C50 E7A40068 */ swc1 $f4, 0x68($sp)
/* B78DF4 80101C54 C7B00068 */ lwc1 $f16, 0x68($sp)
/* B78DF8 80101C58 461E3182 */ mul.s $f6, $f6, $f30
/* B78DFC 80101C5C 46065281 */ sub.s $f10, $f10, $f6
/* B78E00 80101C60 C7A60094 */ lwc1 $f6, 0x94($sp)
/* B78E04 80101C64 E7AA004C */ swc1 $f10, 0x4c($sp)
/* B78E08 80101C68 46043282 */ mul.s $f10, $f6, $f4
/* B78E0C 80101C6C C7A6009C */ lwc1 $f6, 0x9c($sp)
/* B78E10 80101C70 C7B6004C */ lwc1 $f22, 0x4c($sp)
/* B78E14 80101C74 461C3102 */ mul.s $f4, $f6, $f28
/* B78E18 80101C78 C7A6004C */ lwc1 $f6, 0x4c($sp)
/* B78E1C 80101C7C 460A2601 */ sub.s $f24, $f4, $f10
/* B78E20 80101C80 C7A40094 */ lwc1 $f4, 0x94($sp)
/* B78E24 80101C84 461E2282 */ mul.s $f10, $f4, $f30
/* B78E28 80101C88 C7A40098 */ lwc1 $f4, 0x98($sp)
/* B78E2C 80101C8C E7B80050 */ swc1 $f24, 0x50($sp)
/* B78E30 80101C90 461C2202 */ mul.s $f8, $f4, $f28
/* B78E34 80101C94 46085681 */ sub.s $f26, $f10, $f8
/* B78E38 80101C98 4618C282 */ mul.s $f10, $f24, $f24
/* B78E3C 80101C9C C7A8004C */ lwc1 $f8, 0x4c($sp)
/* B78E40 80101CA0 44815800 */ mtc1 $at, $f11
/* B78E44 80101CA4 E7BA0058 */ swc1 $f26, 0x58($sp)
/* B78E48 80101CA8 46064202 */ mul.s $f8, $f8, $f6
/* B78E4C 80101CAC 460A4180 */ add.s $f6, $f8, $f10
/* B78E50 80101CB0 461AD202 */ mul.s $f8, $f26, $f26
/* B78E54 80101CB4 44805000 */ mtc1 $zero, $f10
/* B78E58 80101CB8 46083000 */ add.s $f0, $f6, $f8
/* B78E5C 80101CBC 46000004 */ sqrt.s $f0, $f0
/* B78E60 80101CC0 46000121 */ cvt.d.s $f4, $f0
/* B78E64 80101CC4 46245183 */ div.d $f6, $f10, $f4
/* B78E68 80101CC8 46203520 */ cvt.s.d $f20, $f6
/* B78E6C 80101CCC 4614B582 */ mul.s $f22, $f22, $f20
/* B78E70 80101CD0 00000000 */ nop
/* B78E74 80101CD4 4614C602 */ mul.s $f24, $f24, $f20
/* B78E78 80101CD8 00000000 */ nop
/* B78E7C 80101CDC 4614D682 */ mul.s $f26, $f26, $f20
/* B78E80 80101CE0 00000000 */ nop
/* B78E84 80101CE4 461AF202 */ mul.s $f8, $f30, $f26
/* B78E88 80101CE8 00000000 */ nop
/* B78E8C 80101CEC 46188282 */ mul.s $f10, $f16, $f24
/* B78E90 80101CF0 00000000 */ nop
/* B78E94 80101CF4 46168102 */ mul.s $f4, $f16, $f22
/* B78E98 80101CF8 00000000 */ nop
/* B78E9C 80101CFC 461AE182 */ mul.s $f6, $f28, $f26
/* B78EA0 80101D00 460A4081 */ sub.s $f2, $f8, $f10
/* B78EA4 80101D04 4618E202 */ mul.s $f8, $f28, $f24
/* B78EA8 80101D08 00000000 */ nop
/* B78EAC 80101D0C 4616F282 */ mul.s $f10, $f30, $f22
/* B78EB0 80101D10 46062301 */ sub.s $f12, $f4, $f6
/* B78EB4 80101D14 46021102 */ mul.s $f4, $f2, $f2
/* B78EB8 80101D18 44812800 */ mtc1 $at, $f5
/* B78EBC 80101D1C 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B78EC0 80101D20 460C6182 */ mul.s $f6, $f12, $f12
/* B78EC4 80101D24 460A4381 */ sub.s $f14, $f8, $f10
/* B78EC8 80101D28 460E7282 */ mul.s $f10, $f14, $f14
/* B78ECC 80101D2C 46062200 */ add.s $f8, $f4, $f6
/* B78ED0 80101D30 44802000 */ mtc1 $zero, $f4
/* B78ED4 80101D34 460A4000 */ add.s $f0, $f8, $f10
/* B78ED8 80101D38 46000004 */ sqrt.s $f0, $f0
/* B78EDC 80101D3C 460001A1 */ cvt.d.s $f6, $f0
/* B78EE0 80101D40 46262203 */ div.d $f8, $f4, $f6
/* B78EE4 80101D44 46204520 */ cvt.s.d $f20, $f8
/* B78EE8 80101D48 46141282 */ mul.s $f10, $f2, $f20
/* B78EEC 80101D4C E7AA0094 */ swc1 $f10, 0x94($sp)
/* B78EF0 80101D50 E4960000 */ swc1 $f22, ($a0)
/* B78EF4 80101D54 E4980010 */ swc1 $f24, 0x10($a0)
/* B78EF8 80101D58 E49A0020 */ swc1 $f26, 0x20($a0)
/* B78EFC 80101D5C C7A4007C */ lwc1 $f4, 0x7c($sp)
/* B78F00 80101D60 C7A80080 */ lwc1 $f8, 0x80($sp)
/* B78F04 80101D64 46162182 */ mul.s $f6, $f4, $f22
/* B78F08 80101D68 00000000 */ nop
/* B78F0C 80101D6C 46184282 */ mul.s $f10, $f8, $f24
/* B78F10 80101D70 C7A80084 */ lwc1 $f8, 0x84($sp)
/* B78F14 80101D74 460A3100 */ add.s $f4, $f6, $f10
/* B78F18 80101D78 461A4182 */ mul.s $f6, $f8, $f26
/* B78F1C 80101D7C 46062280 */ add.s $f10, $f4, $f6
/* B78F20 80101D80 46146002 */ mul.s $f0, $f12, $f20
/* B78F24 80101D84 46005207 */ neg.s $f8, $f10
/* B78F28 80101D88 46147082 */ mul.s $f2, $f14, $f20
/* B78F2C 80101D8C E4880030 */ swc1 $f8, 0x30($a0)
/* B78F30 80101D90 C7BA007C */ lwc1 $f26, 0x7c($sp)
/* B78F34 80101D94 C7B00094 */ lwc1 $f16, 0x94($sp)
/* B78F38 80101D98 C7B80080 */ lwc1 $f24, 0x80($sp)
/* B78F3C 80101D9C C7B60084 */ lwc1 $f22, 0x84($sp)
/* B78F40 80101DA0 4610D102 */ mul.s $f4, $f26, $f16
/* B78F44 80101DA4 C7B20068 */ lwc1 $f18, 0x68($sp)
/* B78F48 80101DA8 E4800014 */ swc1 $f0, 0x14($a0)
/* B78F4C 80101DAC 4600C182 */ mul.s $f6, $f24, $f0
/* B78F50 80101DB0 44800000 */ mtc1 $zero, $f0
/* B78F54 80101DB4 E4820024 */ swc1 $f2, 0x24($a0)
/* B78F58 80101DB8 4602B202 */ mul.s $f8, $f22, $f2
/* B78F5C 80101DBC E49C0008 */ swc1 $f28, 8($a0)
/* B78F60 80101DC0 E49E0018 */ swc1 $f30, 0x18($a0)
/* B78F64 80101DC4 E4900004 */ swc1 $f16, 4($a0)
/* B78F68 80101DC8 E4920028 */ swc1 $f18, 0x28($a0)
/* B78F6C 80101DCC 46062280 */ add.s $f10, $f4, $f6
/* B78F70 80101DD0 E480000C */ swc1 $f0, 0xc($a0)
/* B78F74 80101DD4 E480001C */ swc1 $f0, 0x1c($a0)
/* B78F78 80101DD8 E480002C */ swc1 $f0, 0x2c($a0)
/* B78F7C 80101DDC 46085100 */ add.s $f4, $f10, $f8
/* B78F80 80101DE0 461CD282 */ mul.s $f10, $f26, $f28
/* B78F84 80101DE4 00000000 */ nop
/* B78F88 80101DE8 461EC202 */ mul.s $f8, $f24, $f30
/* B78F8C 80101DEC 46002187 */ neg.s $f6, $f4
/* B78F90 80101DF0 E4860034 */ swc1 $f6, 0x34($a0)
/* B78F94 80101DF4 4612B182 */ mul.s $f6, $f22, $f18
/* B78F98 80101DF8 46085100 */ add.s $f4, $f10, $f8
/* B78F9C 80101DFC 46062280 */ add.s $f10, $f4, $f6
/* B78FA0 80101E00 44812000 */ mtc1 $at, $f4
/* B78FA4 80101E04 46005207 */ neg.s $f8, $f10
/* B78FA8 80101E08 E484003C */ swc1 $f4, 0x3c($a0)
/* B78FAC 80101E0C E4880038 */ swc1 $f8, 0x38($a0)
/* B78FB0 80101E10 8FBF0044 */ lw $ra, 0x44($sp)
/* B78FB4 80101E14 D7BE0038 */ ldc1 $f30, 0x38($sp)
/* B78FB8 80101E18 D7BC0030 */ ldc1 $f28, 0x30($sp)
/* B78FBC 80101E1C D7BA0028 */ ldc1 $f26, 0x28($sp)
/* B78FC0 80101E20 D7B80020 */ ldc1 $f24, 0x20($sp)
/* B78FC4 80101E24 D7B60018 */ ldc1 $f22, 0x18($sp)
/* B78FC8 80101E28 D7B40010 */ ldc1 $f20, 0x10($sp)
/* B78FCC 80101E2C 03E00008 */ jr $ra
/* B78FD0 80101E30 27BD0078 */ addiu $sp, $sp, 0x78
glabel func_80101E34
/* B78FD4 80101E34 27BDFF90 */ addiu $sp, $sp, -0x70
/* B78FD8 80101E38 44856000 */ mtc1 $a1, $f12
/* B78FDC 80101E3C 44867000 */ mtc1 $a2, $f14
/* B78FE0 80101E40 C7A40080 */ lwc1 $f4, 0x80($sp)
/* B78FE4 80101E44 C7A60084 */ lwc1 $f6, 0x84($sp)
/* B78FE8 80101E48 C7A80088 */ lwc1 $f8, 0x88($sp)
/* B78FEC 80101E4C C7AA008C */ lwc1 $f10, 0x8c($sp)
/* B78FF0 80101E50 C7B00090 */ lwc1 $f16, 0x90($sp)
/* B78FF4 80101E54 C7B20094 */ lwc1 $f18, 0x94($sp)
/* B78FF8 80101E58 AFBF002C */ sw $ra, 0x2c($sp)
/* B78FFC 80101E5C AFA40070 */ sw $a0, 0x70($sp)
/* B79000 80101E60 44056000 */ mfc1 $a1, $f12
/* B79004 80101E64 44067000 */ mfc1 $a2, $f14
/* B79008 80101E68 AFA7007C */ sw $a3, 0x7c($sp)
/* B7900C 80101E6C 27A40030 */ addiu $a0, $sp, 0x30
/* B79010 80101E70 E7A40010 */ swc1 $f4, 0x10($sp)
/* B79014 80101E74 E7A60014 */ swc1 $f6, 0x14($sp)
/* B79018 80101E78 E7A80018 */ swc1 $f8, 0x18($sp)
/* B7901C 80101E7C E7AA001C */ swc1 $f10, 0x1c($sp)
/* B79020 80101E80 E7B00020 */ swc1 $f16, 0x20($sp)
/* B79024 80101E84 0C0406E4 */ jal func_80101B90
/* B79028 80101E88 E7B20024 */ swc1 $f18, 0x24($sp)
/* B7902C 80101E8C 27A40030 */ addiu $a0, $sp, 0x30
/* B79030 80101E90 0C041938 */ jal func_801064E0
/* B79034 80101E94 8FA50070 */ lw $a1, 0x70($sp)
/* B79038 80101E98 8FBF002C */ lw $ra, 0x2c($sp)
/* B7903C 80101E9C 27BD0070 */ addiu $sp, $sp, 0x70
/* B79040 80101EA0 03E00008 */ jr $ra
/* B79044 80101EA4 00000000 */ nop

337
asm/code_80101EB0.s Normal file
View file

@ -0,0 +1,337 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80101EB0
/* B79050 80101EB0 27BDFD68 */ addiu $sp, $sp, -0x298
/* B79054 80101EB4 AFB70040 */ sw $s7, 0x40($sp)
/* B79058 80101EB8 AFB6003C */ sw $s6, 0x3c($sp)
/* B7905C 80101EBC AFB50038 */ sw $s5, 0x38($sp)
/* B79060 80101EC0 AFB30030 */ sw $s3, 0x30($sp)
/* B79064 80101EC4 AFA5029C */ sw $a1, 0x29c($sp)
/* B79068 80101EC8 30AEFFFF */ andi $t6, $a1, 0xffff
/* B7906C 80101ECC 01C02825 */ move $a1, $t6
/* B79070 80101ED0 00809825 */ move $s3, $a0
/* B79074 80101ED4 AFBF0044 */ sw $ra, 0x44($sp)
/* B79078 80101ED8 AFB40034 */ sw $s4, 0x34($sp)
/* B7907C 80101EDC AFB2002C */ sw $s2, 0x2c($sp)
/* B79080 80101EE0 AFB10028 */ sw $s1, 0x28($sp)
/* B79084 80101EE4 AFB00024 */ sw $s0, 0x24($sp)
/* B79088 80101EE8 AFA702A4 */ sw $a3, 0x2a4($sp)
/* B7908C 80101EEC 0000B025 */ move $s6, $zero
/* B79090 80101EF0 0000B825 */ move $s7, $zero
/* B79094 80101EF4 11C00003 */ beqz $t6, .L80101F04
/* B79098 80101EF8 0000A825 */ move $s5, $zero
/* B7909C 80101EFC 14C00003 */ bnez $a2, .L80101F0C
/* B790A0 80101F00 8FB102AC */ lw $s1, 0x2ac($sp)
.L80101F04:
/* B790A4 80101F04 100000AC */ b .L801021B8
/* B790A8 80101F08 24020005 */ li $v0, 5
.L80101F0C:
/* B790AC 80101F0C 263000FF */ addiu $s0, $s1, 0xff
/* B790B0 80101F10 8FB802A8 */ lw $t8, 0x2a8($sp)
/* B790B4 80101F14 8FB902B0 */ lw $t9, 0x2b0($sp)
/* B790B8 80101F18 06010003 */ bgez $s0, .L80101F28
/* B790BC 80101F1C 00107A03 */ sra $t7, $s0, 8
/* B790C0 80101F20 260100FF */ addiu $at, $s0, 0xff
/* B790C4 80101F24 00017A03 */ sra $t7, $at, 8
.L80101F28:
/* B790C8 80101F28 01E08025 */ move $s0, $t7
/* B790CC 80101F2C 01E0A025 */ move $s4, $t7
/* B790D0 80101F30 02602025 */ move $a0, $s3
/* B790D4 80101F34 8FA702A4 */ lw $a3, 0x2a4($sp)
/* B790D8 80101F38 A7A5029E */ sh $a1, 0x29e($sp)
/* B790DC 80101F3C AFA602A0 */ sw $a2, 0x2a0($sp)
/* B790E0 80101F40 AFB80010 */ sw $t8, 0x10($sp)
/* B790E4 80101F44 0C040C04 */ jal func_80103010
/* B790E8 80101F48 AFB90014 */ sw $t9, 0x14($sp)
/* B790EC 80101F4C 10400005 */ beqz $v0, .L80101F64
/* B790F0 80101F50 24010005 */ li $at, 5
/* B790F4 80101F54 50410004 */ beql $v0, $at, .L80101F68
/* B790F8 80101F58 8FA802B0 */ lw $t0, 0x2b0($sp)
/* B790FC 80101F5C 10000097 */ b .L801021BC
/* B79100 80101F60 8FBF0044 */ lw $ra, 0x44($sp)
.L80101F64:
/* B79104 80101F64 8FA802B0 */ lw $t0, 0x2b0($sp)
.L80101F68:
/* B79108 80101F68 2401FFFF */ li $at, -1
/* B7910C 80101F6C 02602025 */ move $a0, $s3
/* B79110 80101F70 8D090000 */ lw $t1, ($t0)
/* B79114 80101F74 11210003 */ beq $t1, $at, .L80101F84
/* B79118 80101F78 00000000 */ nop
/* B7911C 80101F7C 1000008E */ b .L801021B8
/* B79120 80101F80 24020009 */ li $v0, 9
.L80101F84:
/* B79124 80101F84 0C040010 */ jal func_80100040
/* B79128 80101F88 27A50054 */ addiu $a1, $sp, 0x54
/* B7912C 80101F8C 8FAA0054 */ lw $t2, 0x54($sp)
/* B79130 80101F90 0151082A */ slt $at, $t2, $s1
/* B79134 80101F94 10200003 */ beqz $at, .L80101FA4
/* B79138 80101F98 00000000 */ nop
/* B7913C 80101F9C 10000086 */ b .L801021B8
/* B79140 80101FA0 24020007 */ li $v0, 7
.L80101FA4:
/* B79144 80101FA4 16000003 */ bnez $s0, .L80101FB4
/* B79148 80101FA8 02602025 */ move $a0, $s3
/* B7914C 80101FAC 10000082 */ b .L801021B8
/* B79150 80101FB0 24020005 */ li $v0, 5
.L80101FB4:
/* B79154 80101FB4 8FAB02B0 */ lw $t3, 0x2b0($sp)
/* B79158 80101FB8 00002825 */ move $a1, $zero
/* B7915C 80101FBC 00003025 */ move $a2, $zero
/* B79160 80101FC0 00003825 */ move $a3, $zero
/* B79164 80101FC4 AFA00010 */ sw $zero, 0x10($sp)
/* B79168 80101FC8 0C040C04 */ jal func_80103010
/* B7916C 80101FCC AFAB0014 */ sw $t3, 0x14($sp)
/* B79170 80101FD0 10400005 */ beqz $v0, .L80101FE8
/* B79174 80101FD4 24010005 */ li $at, 5
/* B79178 80101FD8 50410004 */ beql $v0, $at, .L80101FEC
/* B7917C 80101FDC 8FAC02B0 */ lw $t4, 0x2b0($sp)
/* B79180 80101FE0 10000076 */ b .L801021BC
/* B79184 80101FE4 8FBF0044 */ lw $ra, 0x44($sp)
.L80101FE8:
/* B79188 80101FE8 8FAC02B0 */ lw $t4, 0x2b0($sp)
.L80101FEC:
/* B7918C 80101FEC 2401FFFF */ li $at, -1
/* B79190 80101FF0 8D8D0000 */ lw $t5, ($t4)
/* B79194 80101FF4 55A10004 */ bnel $t5, $at, .L80102008
/* B79198 80101FF8 926E0064 */ lbu $t6, 0x64($s3)
/* B7919C 80101FFC 1000006E */ b .L801021B8
/* B791A0 80102000 24020008 */ li $v0, 8
/* B791A4 80102004 926E0064 */ lbu $t6, 0x64($s3)
.L80102008:
/* B791A8 80102008 00008025 */ move $s0, $zero
/* B791AC 8010200C 27B20180 */ addiu $s2, $sp, 0x180
/* B791B0 80102010 19C00049 */ blez $t6, .L80102138
/* B791B4 80102014 27B10080 */ addiu $s1, $sp, 0x80
.L80102018:
/* B791B8 80102018 02602025 */ move $a0, $s3
/* B791BC 8010201C 02402825 */ move $a1, $s2
/* B791C0 80102020 00003025 */ move $a2, $zero
/* B791C4 80102024 0C040B31 */ jal func_80102CC4
/* B791C8 80102028 320700FF */ andi $a3, $s0, 0xff
/* B791CC 8010202C 10400003 */ beqz $v0, .L8010203C
/* B791D0 80102030 02602025 */ move $a0, $s3
/* B791D4 80102034 10000061 */ b .L801021BC
/* B791D8 80102038 8FBF0044 */ lw $ra, 0x44($sp)
.L8010203C:
/* B791DC 8010203C 27AF0290 */ addiu $t7, $sp, 0x290
/* B791E0 80102040 27B8028C */ addiu $t8, $sp, 0x28c
/* B791E4 80102044 AFB80018 */ sw $t8, 0x18($sp)
/* B791E8 80102048 AFAF0014 */ sw $t7, 0x14($sp)
/* B791EC 8010204C 02402825 */ move $a1, $s2
/* B791F0 80102050 02803025 */ move $a2, $s4
/* B791F4 80102054 27A70294 */ addiu $a3, $sp, 0x294
/* B791F8 80102058 0C040879 */ jal func_801021E4
/* B791FC 8010205C AFB00010 */ sw $s0, 0x10($sp)
/* B79200 80102060 10400003 */ beqz $v0, .L80102070
/* B79204 80102064 8FA30294 */ lw $v1, 0x294($sp)
/* B79208 80102068 10000054 */ b .L801021BC
/* B7920C 8010206C 8FBF0044 */ lw $ra, 0x44($sp)
.L80102070:
/* B79210 80102070 2401FFFF */ li $at, -1
/* B79214 80102074 5061002B */ beql $v1, $at, .L80102124
/* B79218 80102078 926B0064 */ lbu $t3, 0x64($s3)
/* B7921C 8010207C 16A00004 */ bnez $s5, .L80102090
/* B79220 80102080 0016C840 */ sll $t9, $s6, 1
/* B79224 80102084 A3A30051 */ sb $v1, 0x51($sp)
/* B79228 80102088 1000000D */ b .L801020C0
/* B7922C 8010208C A3B00050 */ sb $s0, 0x50($sp)
.L80102090:
/* B79230 80102090 02391021 */ addu $v0, $s1, $t9
/* B79234 80102094 A0500000 */ sb $s0, ($v0)
/* B79238 80102098 A0430001 */ sb $v1, 1($v0)
/* B7923C 8010209C 02602025 */ move $a0, $s3
/* B79240 801020A0 02202825 */ move $a1, $s1
/* B79244 801020A4 24060001 */ li $a2, 1
/* B79248 801020A8 0C040B31 */ jal func_80102CC4
/* B7924C 801020AC 32E700FF */ andi $a3, $s7, 0xff
/* B79250 801020B0 50400004 */ beql $v0, $zero, .L801020C4
/* B79254 801020B4 8FA80290 */ lw $t0, 0x290($sp)
/* B79258 801020B8 10000040 */ b .L801021BC
/* B7925C 801020BC 8FBF0044 */ lw $ra, 0x44($sp)
.L801020C0:
/* B79260 801020C0 8FA80290 */ lw $t0, 0x290($sp)
.L801020C4:
/* B79264 801020C4 02402025 */ move $a0, $s2
/* B79268 801020C8 02202825 */ move $a1, $s1
/* B7926C 801020CC 0114082A */ slt $at, $t0, $s4
/* B79270 801020D0 5020000A */ beql $at, $zero, .L801020FC
/* B79274 801020D4 0000A025 */ move $s4, $zero
/* B79278 801020D8 0C001BC4 */ jal bcopy
/* B7927C 801020DC 24060100 */ li $a2, 256
/* B79280 801020E0 8FA90290 */ lw $t1, 0x290($sp)
/* B79284 801020E4 8FB6028C */ lw $s6, 0x28c($sp)
/* B79288 801020E8 321700FF */ andi $s7, $s0, 0xff
/* B7928C 801020EC 26B50001 */ addiu $s5, $s5, 1
/* B79290 801020F0 1000000B */ b .L80102120
/* B79294 801020F4 0289A023 */ subu $s4, $s4, $t1
/* B79298 801020F8 0000A025 */ move $s4, $zero
.L801020FC:
/* B7929C 801020FC 02602025 */ move $a0, $s3
/* B792A0 80102100 02402825 */ move $a1, $s2
/* B792A4 80102104 24060001 */ li $a2, 1
/* B792A8 80102108 0C040B31 */ jal func_80102CC4
/* B792AC 8010210C 320700FF */ andi $a3, $s0, 0xff
/* B792B0 80102110 10400009 */ beqz $v0, .L80102138
/* B792B4 80102114 00000000 */ nop
/* B792B8 80102118 10000028 */ b .L801021BC
/* B792BC 8010211C 8FBF0044 */ lw $ra, 0x44($sp)
.L80102120:
/* B792C0 80102120 926B0064 */ lbu $t3, 0x64($s3)
.L80102124:
/* B792C4 80102124 26100001 */ addiu $s0, $s0, 1
/* B792C8 80102128 320A00FF */ andi $t2, $s0, 0xff
/* B792CC 8010212C 014B082A */ slt $at, $t2, $t3
/* B792D0 80102130 1420FFB9 */ bnez $at, .L80102018
/* B792D4 80102134 01408025 */ move $s0, $t2
.L80102138:
/* B792D8 80102138 1E800004 */ bgtz $s4, .L8010214C
/* B792DC 8010213C 8FA30294 */ lw $v1, 0x294($sp)
/* B792E0 80102140 2401FFFF */ li $at, -1
/* B792E4 80102144 14610003 */ bne $v1, $at, .L80102154
/* B792E8 80102148 97AC0050 */ lhu $t4, 0x50($sp)
.L8010214C:
/* B792EC 8010214C 1000001A */ b .L801021B8
/* B792F0 80102150 24020003 */ li $v0, 3
.L80102154:
/* B792F4 80102154 97AD029E */ lhu $t5, 0x29e($sp)
/* B792F8 80102158 8FAE02A0 */ lw $t6, 0x2a0($sp)
/* B792FC 8010215C A7AC0066 */ sh $t4, 0x66($sp)
/* B79300 80102160 A7A0006A */ sh $zero, 0x6a($sp)
/* B79304 80102164 8FA402A4 */ lw $a0, 0x2a4($sp)
/* B79308 80102168 27A50070 */ addiu $a1, $sp, 0x70
/* B7930C 8010216C 24060010 */ li $a2, 16
/* B79310 80102170 A7AD0064 */ sh $t5, 0x64($sp)
/* B79314 80102174 0C001BC4 */ jal bcopy
/* B79318 80102178 AFAE0060 */ sw $t6, 0x60($sp)
/* B7931C 8010217C 8FA402A8 */ lw $a0, 0x2a8($sp)
/* B79320 80102180 27A5006C */ addiu $a1, $sp, 0x6c
/* B79324 80102184 0C001BC4 */ jal bcopy
/* B79328 80102188 24060004 */ li $a2, 4
/* B7932C 8010218C 8FAF02B0 */ lw $t7, 0x2b0($sp)
/* B79330 80102190 8E79005C */ lw $t9, 0x5c($s3)
/* B79334 80102194 8E640004 */ lw $a0, 4($s3)
/* B79338 80102198 8DF80000 */ lw $t8, ($t7)
/* B7933C 8010219C 8E650008 */ lw $a1, 8($s3)
/* B79340 801021A0 AFA00010 */ sw $zero, 0x10($sp)
/* B79344 801021A4 03193021 */ addu $a2, $t8, $t9
/* B79348 801021A8 30C8FFFF */ andi $t0, $a2, 0xffff
/* B7934C 801021AC 01003025 */ move $a2, $t0
/* B79350 801021B0 0C04173C */ jal func_80105CF0
/* B79354 801021B4 27A70060 */ addiu $a3, $sp, 0x60
.L801021B8:
/* B79358 801021B8 8FBF0044 */ lw $ra, 0x44($sp)
.L801021BC:
/* B7935C 801021BC 8FB00024 */ lw $s0, 0x24($sp)
/* B79360 801021C0 8FB10028 */ lw $s1, 0x28($sp)
/* B79364 801021C4 8FB2002C */ lw $s2, 0x2c($sp)
/* B79368 801021C8 8FB30030 */ lw $s3, 0x30($sp)
/* B7936C 801021CC 8FB40034 */ lw $s4, 0x34($sp)
/* B79370 801021D0 8FB50038 */ lw $s5, 0x38($sp)
/* B79374 801021D4 8FB6003C */ lw $s6, 0x3c($sp)
/* B79378 801021D8 8FB70040 */ lw $s7, 0x40($sp)
/* B7937C 801021DC 03E00008 */ jr $ra
/* B79380 801021E0 27BD0298 */ addiu $sp, $sp, 0x298
glabel func_801021E4
/* B79384 801021E4 27BDFFF0 */ addiu $sp, $sp, -0x10
/* B79388 801021E8 AFB00008 */ sw $s0, 8($sp)
/* B7938C 801021EC 93B00023 */ lbu $s0, 0x23($sp)
/* B79390 801021F0 AFB1000C */ sw $s1, 0xc($sp)
/* B79394 801021F4 00C08825 */ move $s1, $a2
/* B79398 801021F8 1A000003 */ blez $s0, .L80102208
/* B7939C 801021FC 240B0080 */ li $t3, 128
/* B793A0 80102200 10000002 */ b .L8010220C
/* B793A4 80102204 24020001 */ li $v0, 1
.L80102208:
/* B793A8 80102208 8C820060 */ lw $v0, 0x60($a0)
.L8010220C:
/* B793AC 8010220C 28410080 */ slti $at, $v0, 0x80
/* B793B0 80102210 1020000A */ beqz $at, .L8010223C
/* B793B4 80102214 00401825 */ move $v1, $v0
/* B793B8 80102218 00027040 */ sll $t6, $v0, 1
/* B793BC 8010221C 00AE1021 */ addu $v0, $a1, $t6
/* B793C0 80102220 240A0003 */ li $t2, 3
.L80102224:
/* B793C4 80102224 944F0000 */ lhu $t7, ($v0)
/* B793C8 80102228 514F0005 */ beql $t2, $t7, .L80102240
/* B793CC 8010222C 240B0080 */ li $t3, 128
/* B793D0 80102230 24630001 */ addiu $v1, $v1, 1
/* B793D4 80102234 146BFFFB */ bne $v1, $t3, .L80102224
/* B793D8 80102238 24420002 */ addiu $v0, $v0, 2
.L8010223C:
/* B793DC 8010223C 240B0080 */ li $t3, 128
.L80102240:
/* B793E0 80102240 146B0005 */ bne $v1, $t3, .L80102258
/* B793E4 80102244 240A0003 */ li $t2, 3
/* B793E8 80102248 2418FFFF */ li $t8, -1
/* B793EC 8010224C ACF80000 */ sw $t8, ($a3)
/* B793F0 80102250 10000030 */ b .L80102314
/* B793F4 80102254 00001025 */ move $v0, $zero
.L80102258:
/* B793F8 80102258 8FA60024 */ lw $a2, 0x24($sp)
/* B793FC 8010225C 00602025 */ move $a0, $v1
/* B79400 80102260 24190001 */ li $t9, 1
/* B79404 80102264 00604025 */ move $t0, $v1
/* B79408 80102268 2A210002 */ slti $at, $s1, 2
/* B7940C 8010226C 24630001 */ addiu $v1, $v1, 1
/* B79410 80102270 14200018 */ bnez $at, .L801022D4
/* B79414 80102274 ACD90000 */ sw $t9, ($a2)
/* B79418 80102278 28610080 */ slti $at, $v1, 0x80
/* B7941C 8010227C 10200015 */ beqz $at, .L801022D4
/* B79420 80102280 00036040 */ sll $t4, $v1, 1
/* B79424 80102284 00AC1021 */ addu $v0, $a1, $t4
/* B79428 80102288 944D0000 */ lhu $t5, ($v0)
.L8010228C:
/* B7942C 8010228C 00087040 */ sll $t6, $t0, 1
/* B79430 80102290 00AE4821 */ addu $t1, $a1, $t6
/* B79434 80102294 554D0008 */ bnel $t2, $t5, .L801022B8
/* B79438 80102298 8CD90000 */ lw $t9, ($a2)
/* B7943C 8010229C A1300000 */ sb $s0, ($t1)
/* B79440 801022A0 A1230001 */ sb $v1, 1($t1)
/* B79444 801022A4 8CCF0000 */ lw $t7, ($a2)
/* B79448 801022A8 00604025 */ move $t0, $v1
/* B7944C 801022AC 25F80001 */ addiu $t8, $t7, 1
/* B79450 801022B0 ACD80000 */ sw $t8, ($a2)
/* B79454 801022B4 8CD90000 */ lw $t9, ($a2)
.L801022B8:
/* B79458 801022B8 24630001 */ addiu $v1, $v1, 1
/* B7945C 801022BC 24420002 */ addiu $v0, $v0, 2
/* B79460 801022C0 0331082A */ slt $at, $t9, $s1
/* B79464 801022C4 10200003 */ beqz $at, .L801022D4
/* B79468 801022C8 28610080 */ slti $at, $v1, 0x80
/* B7946C 801022CC 5420FFEF */ bnezl $at, .L8010228C
/* B79470 801022D0 944D0000 */ lhu $t5, ($v0)
.L801022D4:
/* B79474 801022D4 146B0008 */ bne $v1, $t3, .L801022F8
/* B79478 801022D8 ACE40000 */ sw $a0, ($a3)
/* B7947C 801022DC 8CCC0000 */ lw $t4, ($a2)
/* B79480 801022E0 8FAD0028 */ lw $t5, 0x28($sp)
/* B79484 801022E4 0191082A */ slt $at, $t4, $s1
/* B79488 801022E8 50200004 */ beql $at, $zero, .L801022FC
/* B7948C 801022EC 00087840 */ sll $t7, $t0, 1
/* B79490 801022F0 10000007 */ b .L80102310
/* B79494 801022F4 ADA80000 */ sw $t0, ($t5)
.L801022F8:
/* B79498 801022F8 00087840 */ sll $t7, $t0, 1
.L801022FC:
/* B7949C 801022FC 00AFC021 */ addu $t8, $a1, $t7
/* B794A0 80102300 240E0001 */ li $t6, 1
/* B794A4 80102304 A70E0000 */ sh $t6, ($t8)
/* B794A8 80102308 8FB90028 */ lw $t9, 0x28($sp)
/* B794AC 8010230C AF200000 */ sw $zero, ($t9)
.L80102310:
/* B794B0 80102310 00001025 */ move $v0, $zero
.L80102314:
/* B794B4 80102314 8FB00008 */ lw $s0, 8($sp)
/* B794B8 80102318 8FB1000C */ lw $s1, 0xc($sp)
/* B794BC 8010231C 03E00008 */ jr $ra
/* B794C0 80102320 27BD0010 */ addiu $sp, $sp, 0x10

74
asm/code_80102330.s Normal file
View file

@ -0,0 +1,74 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel osStopTimer
/* B794D0 80102330 27BDFFD0 */ addiu $sp, $sp, -0x30
/* B794D4 80102334 AFA40030 */ sw $a0, 0x30($sp)
/* B794D8 80102338 8FAE0030 */ lw $t6, 0x30($sp)
/* B794DC 8010233C AFBF001C */ sw $ra, 0x1c($sp)
/* B794E0 80102340 AFB00018 */ sw $s0, 0x18($sp)
/* B794E4 80102344 8DCF0000 */ lw $t7, ($t6)
/* B794E8 80102348 15E00003 */ bnez $t7, .L80102358
/* B794EC 8010234C 00000000 */ nop
/* B794F0 80102350 1000002C */ b .L80102404
/* B794F4 80102354 2402FFFF */ li $v0, -1
.L80102358:
/* B794F8 80102358 0C001CA0 */ jal __osDisableInt
/* B794FC 8010235C 00000000 */ nop
/* B79500 80102360 8FB80030 */ lw $t8, 0x30($sp)
/* B79504 80102364 3C088001 */ lui $t0, %hi(__osTimerList) # $t0, 0x8001
/* B79508 80102368 8D08ADF0 */ lw $t0, %lo(__osTimerList)($t0)
/* B7950C 8010236C 8F190000 */ lw $t9, ($t8)
/* B79510 80102370 00408025 */ move $s0, $v0
/* B79514 80102374 1328000D */ beq $t9, $t0, .L801023AC
/* B79518 80102378 AFB90028 */ sw $t9, 0x28($sp)
/* B7951C 8010237C 27290010 */ addiu $t1, $t9, 0x10
/* B79520 80102380 AFA90024 */ sw $t1, 0x24($sp)
/* B79524 80102384 8D2B0004 */ lw $t3, 4($t1)
/* B79528 80102388 8F0D0014 */ lw $t5, 0x14($t8)
/* B7952C 8010238C 8D2A0000 */ lw $t2, ($t1)
/* B79530 80102390 8F0C0010 */ lw $t4, 0x10($t8)
/* B79534 80102394 016D7821 */ addu $t7, $t3, $t5
/* B79538 80102398 01ED082B */ sltu $at, $t7, $t5
/* B7953C 8010239C 002A7021 */ addu $t6, $at, $t2
/* B79540 801023A0 01CC7021 */ addu $t6, $t6, $t4
/* B79544 801023A4 AD2E0000 */ sw $t6, ($t1)
/* B79548 801023A8 AD2F0004 */ sw $t7, 4($t1)
.L801023AC:
/* B7954C 801023AC 8FA80030 */ lw $t0, 0x30($sp)
/* B79550 801023B0 3C0F8001 */ lui $t7, %hi(__osTimerList) # $t7, 0x8001
/* B79554 801023B4 8D190000 */ lw $t9, ($t0)
/* B79558 801023B8 8D180004 */ lw $t8, 4($t0)
/* B7955C 801023BC AF190000 */ sw $t9, ($t8)
/* B79560 801023C0 8FAA0030 */ lw $t2, 0x30($sp)
/* B79564 801023C4 8D4B0004 */ lw $t3, 4($t2)
/* B79568 801023C8 8D4C0000 */ lw $t4, ($t2)
/* B7956C 801023CC AD8B0004 */ sw $t3, 4($t4)
/* B79570 801023D0 8FAD0030 */ lw $t5, 0x30($sp)
/* B79574 801023D4 ADA00000 */ sw $zero, ($t5)
/* B79578 801023D8 8FAE0030 */ lw $t6, 0x30($sp)
/* B7957C 801023DC ADC00004 */ sw $zero, 4($t6)
/* B79580 801023E0 8DEFADF0 */ lw $t7, %lo(__osTimerList)($t7)
/* B79584 801023E4 8DE90000 */ lw $t1, ($t7)
/* B79588 801023E8 152F0003 */ bne $t1, $t7, .L801023F8
/* B7958C 801023EC 00000000 */ nop
/* B79590 801023F0 0C001BC0 */ jal __osSetCompare
/* B79594 801023F4 00002025 */ move $a0, $zero
.L801023F8:
/* B79598 801023F8 0C001CBC */ jal __osRestoreInt
/* B7959C 801023FC 02002025 */ move $a0, $s0
/* B795A0 80102400 00001025 */ move $v0, $zero
.L80102404:
/* B795A4 80102404 8FBF001C */ lw $ra, 0x1c($sp)
/* B795A8 80102408 8FB00018 */ lw $s0, 0x18($sp)
/* B795AC 8010240C 27BD0030 */ addiu $sp, $sp, 0x30
/* B795B0 80102410 03E00008 */ jr $ra
/* B795B4 80102414 00000000 */ nop

836
asm/code_80102420.s Normal file
View file

@ -0,0 +1,836 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80102420
/* B795C0 80102420 00001825 */ move $v1, $zero
/* B795C4 80102424 00801025 */ move $v0, $a0
/* B795C8 80102428 18A00016 */ blez $a1, .L80102484
/* B795CC 8010242C 00003025 */ move $a2, $zero
/* B795D0 80102430 30A70003 */ andi $a3, $a1, 3
/* B795D4 80102434 10E00008 */ beqz $a3, .L80102458
/* B795D8 80102438 00E02025 */ move $a0, $a3
.L8010243C:
/* B795DC 8010243C 904E0000 */ lbu $t6, ($v0)
/* B795E0 80102440 24C60001 */ addiu $a2, $a2, 1
/* B795E4 80102444 24420001 */ addiu $v0, $v0, 1
/* B795E8 80102448 1486FFFC */ bne $a0, $a2, .L8010243C
/* B795EC 8010244C 006E1821 */ addu $v1, $v1, $t6
/* B795F0 80102450 50C5000D */ beql $a2, $a1, .L80102488
/* B795F4 80102454 00601025 */ move $v0, $v1
.L80102458:
/* B795F8 80102458 904F0000 */ lbu $t7, ($v0)
/* B795FC 8010245C 90580001 */ lbu $t8, 1($v0)
/* B79600 80102460 90590002 */ lbu $t9, 2($v0)
/* B79604 80102464 006F1821 */ addu $v1, $v1, $t7
/* B79608 80102468 90480003 */ lbu $t0, 3($v0)
/* B7960C 8010246C 00781821 */ addu $v1, $v1, $t8
/* B79610 80102470 24C60004 */ addiu $a2, $a2, 4
/* B79614 80102474 00791821 */ addu $v1, $v1, $t9
/* B79618 80102478 24420004 */ addiu $v0, $v0, 4
/* B7961C 8010247C 14C5FFF6 */ bne $a2, $a1, .L80102458
/* B79620 80102480 00681821 */ addu $v1, $v1, $t0
.L80102484:
/* B79624 80102484 00601025 */ move $v0, $v1
.L80102488:
/* B79628 80102488 3049FFFF */ andi $t1, $v0, 0xffff
/* B7962C 8010248C 03E00008 */ jr $ra
/* B79630 80102490 01201025 */ move $v0, $t1
glabel func_80102494
/* B79634 80102494 A4C00000 */ sh $zero, ($a2)
/* B79638 80102498 A4A00000 */ sh $zero, ($a1)
/* B7963C 8010249C 94820000 */ lhu $v0, ($a0)
/* B79640 801024A0 24870004 */ addiu $a3, $a0, 4
/* B79644 801024A4 24E90002 */ addiu $t1, $a3, 2
/* B79648 801024A8 0002C021 */ addu $t8, $zero, $v0
/* B7964C 801024AC A4B80000 */ sh $t8, ($a1)
/* B79650 801024B0 94D90000 */ lhu $t9, ($a2)
/* B79654 801024B4 00406827 */ not $t5, $v0
/* B79658 801024B8 24EA0004 */ addiu $t2, $a3, 4
/* B7965C 801024BC 032D7021 */ addu $t6, $t9, $t5
/* B79660 801024C0 A4CE0000 */ sh $t6, ($a2)
/* B79664 801024C4 94AF0000 */ lhu $t7, ($a1)
/* B79668 801024C8 94820002 */ lhu $v0, 2($a0)
/* B7966C 801024CC 2404001C */ li $a0, 28
/* B79670 801024D0 24EB0006 */ addiu $t3, $a3, 6
/* B79674 801024D4 01E2C021 */ addu $t8, $t7, $v0
/* B79678 801024D8 A4B80000 */ sh $t8, ($a1)
/* B7967C 801024DC 94D90000 */ lhu $t9, ($a2)
/* B79680 801024E0 00406827 */ not $t5, $v0
/* B79684 801024E4 24030004 */ li $v1, 4
/* B79688 801024E8 032D7021 */ addu $t6, $t9, $t5
/* B7968C 801024EC A4CE0000 */ sh $t6, ($a2)
.L801024F0:
/* B79690 801024F0 94E20000 */ lhu $v0, ($a3)
/* B79694 801024F4 94AF0000 */ lhu $t7, ($a1)
/* B79698 801024F8 24630008 */ addiu $v1, $v1, 8
/* B7969C 801024FC 00406827 */ not $t5, $v0
/* B796A0 80102500 01E2C021 */ addu $t8, $t7, $v0
/* B796A4 80102504 A4B80000 */ sh $t8, ($a1)
/* B796A8 80102508 94D90000 */ lhu $t9, ($a2)
/* B796AC 8010250C 24E70008 */ addiu $a3, $a3, 8
/* B796B0 80102510 25290008 */ addiu $t1, $t1, 8
/* B796B4 80102514 032D7021 */ addu $t6, $t9, $t5
/* B796B8 80102518 A4CE0000 */ sh $t6, ($a2)
/* B796BC 8010251C 94AF0000 */ lhu $t7, ($a1)
/* B796C0 80102520 9522FFF8 */ lhu $v0, -8($t1)
/* B796C4 80102524 254A0008 */ addiu $t2, $t2, 8
/* B796C8 80102528 256B0008 */ addiu $t3, $t3, 8
/* B796CC 8010252C 01E2C021 */ addu $t8, $t7, $v0
/* B796D0 80102530 A4B80000 */ sh $t8, ($a1)
/* B796D4 80102534 94D90000 */ lhu $t9, ($a2)
/* B796D8 80102538 00406827 */ not $t5, $v0
/* B796DC 8010253C 032D7021 */ addu $t6, $t9, $t5
/* B796E0 80102540 A4CE0000 */ sh $t6, ($a2)
/* B796E4 80102544 94AF0000 */ lhu $t7, ($a1)
/* B796E8 80102548 9542FFF8 */ lhu $v0, -8($t2)
/* B796EC 8010254C 01E2C021 */ addu $t8, $t7, $v0
/* B796F0 80102550 A4B80000 */ sh $t8, ($a1)
/* B796F4 80102554 94D90000 */ lhu $t9, ($a2)
/* B796F8 80102558 00406827 */ not $t5, $v0
/* B796FC 8010255C 032D7021 */ addu $t6, $t9, $t5
/* B79700 80102560 A4CE0000 */ sh $t6, ($a2)
/* B79704 80102564 94AF0000 */ lhu $t7, ($a1)
/* B79708 80102568 9562FFF8 */ lhu $v0, -8($t3)
/* B7970C 8010256C 01E2C021 */ addu $t8, $t7, $v0
/* B79710 80102570 A4B80000 */ sh $t8, ($a1)
/* B79714 80102574 94D90000 */ lhu $t9, ($a2)
/* B79718 80102578 00406827 */ not $t5, $v0
/* B7971C 8010257C 032D7021 */ addu $t6, $t9, $t5
/* B79720 80102580 1464FFDB */ bne $v1, $a0, .L801024F0
/* B79724 80102584 A4CE0000 */ sh $t6, ($a2)
/* B79728 80102588 03E00008 */ jr $ra
/* B7972C 8010258C 00001025 */ move $v0, $zero
glabel func_80102590
/* B79730 80102590 27BDFF60 */ addiu $sp, $sp, -0xa0
/* B79734 80102594 AFBF003C */ sw $ra, 0x3c($sp)
/* B79738 80102598 AFB60038 */ sw $s6, 0x38($sp)
/* B7973C 8010259C AFB50034 */ sw $s5, 0x34($sp)
/* B79740 801025A0 AFB40030 */ sw $s4, 0x30($sp)
/* B79744 801025A4 AFB3002C */ sw $s3, 0x2c($sp)
/* B79748 801025A8 AFB20028 */ sw $s2, 0x28($sp)
/* B7974C 801025AC AFB10024 */ sw $s1, 0x24($sp)
/* B79750 801025B0 AFB00020 */ sw $s0, 0x20($sp)
/* B79754 801025B4 240EFFFF */ li $t6, -1
/* B79758 801025B8 00809025 */ move $s2, $a0
/* B7975C 801025BC 00C0A025 */ move $s4, $a2
/* B79760 801025C0 00A0B025 */ move $s6, $a1
/* B79764 801025C4 00009825 */ move $s3, $zero
/* B79768 801025C8 0C001BA8 */ jal osGetCount
/* B7976C 801025CC ACCE0000 */ sw $t6, ($a2)
/* B79770 801025D0 AE820004 */ sw $v0, 4($s4)
/* B79774 801025D4 8ED9000C */ lw $t9, 0xc($s6)
/* B79778 801025D8 8ED80008 */ lw $t8, 8($s6)
/* B7977C 801025DC 02402025 */ move $a0, $s2
/* B79780 801025E0 AE99000C */ sw $t9, 0xc($s4)
/* B79784 801025E4 AE980008 */ sw $t8, 8($s4)
/* B79788 801025E8 8EC90014 */ lw $t1, 0x14($s6)
/* B7978C 801025EC 8EC80010 */ lw $t0, 0x10($s6)
/* B79790 801025F0 AE890014 */ sw $t1, 0x14($s4)
/* B79794 801025F4 AE880010 */ sw $t0, 0x10($s4)
/* B79798 801025F8 924F0065 */ lbu $t7, 0x65($s2)
/* B7979C 801025FC 51E00008 */ beql $t7, $zero, .L80102620
/* B797A0 80102600 27B1007C */ addiu $s1, $sp, 0x7c
/* B797A4 80102604 0C041320 */ jal func_80104C80
/* B797A8 80102608 00002825 */ move $a1, $zero
/* B797AC 8010260C 50400004 */ beql $v0, $zero, .L80102620
/* B797B0 80102610 27B1007C */ addiu $s1, $sp, 0x7c
/* B797B4 80102614 100000A9 */ b .L801028BC
/* B797B8 80102618 8FBF003C */ lw $ra, 0x3c($sp)
/* B797BC 8010261C 27B1007C */ addiu $s1, $sp, 0x7c
.L80102620:
/* B797C0 80102620 0220A825 */ move $s5, $s1
/* B797C4 80102624 27B0009C */ addiu $s0, $sp, 0x9c
/* B797C8 80102628 02402025 */ move $a0, $s2
.L8010262C:
/* B797CC 8010262C 0C041320 */ jal func_80104C80
/* B797D0 80102630 326500FF */ andi $a1, $s3, 0xff
/* B797D4 80102634 10400003 */ beqz $v0, .L80102644
/* B797D8 80102638 00003025 */ move $a2, $zero
/* B797DC 8010263C 1000009F */ b .L801028BC
/* B797E0 80102640 8FBF003C */ lw $ra, 0x3c($sp)
.L80102644:
/* B797E4 80102644 8E440004 */ lw $a0, 4($s2)
/* B797E8 80102648 8E450008 */ lw $a1, 8($s2)
/* B797EC 8010264C 0C0417D0 */ jal func_80105F40
/* B797F0 80102650 02A03825 */ move $a3, $s5
/* B797F4 80102654 10400003 */ beqz $v0, .L80102664
/* B797F8 80102658 366B0080 */ ori $t3, $s3, 0x80
/* B797FC 8010265C 10000097 */ b .L801028BC
/* B79800 80102660 8FBF003C */ lw $ra, 0x3c($sp)
.L80102664:
/* B79804 80102664 A3AB007C */ sb $t3, 0x7c($sp)
/* B79808 80102668 27A2007D */ addiu $v0, $sp, 0x7d
.L8010266C:
/* B7980C 8010266C 904C0000 */ lbu $t4, ($v0)
/* B79810 80102670 24420001 */ addiu $v0, $v0, 1
/* B79814 80102674 0050082B */ sltu $at, $v0, $s0
/* B79818 80102678 01806827 */ not $t5, $t4
/* B7981C 8010267C 1420FFFB */ bnez $at, .L8010266C
/* B79820 80102680 A04DFFFF */ sb $t5, -1($v0)
/* B79824 80102684 8E440004 */ lw $a0, 4($s2)
/* B79828 80102688 8E450008 */ lw $a1, 8($s2)
/* B7982C 8010268C AFA00010 */ sw $zero, 0x10($sp)
/* B79830 80102690 00003025 */ move $a2, $zero
/* B79834 80102694 0C04173C */ jal func_80105CF0
/* B79838 80102698 02A03825 */ move $a3, $s5
/* B7983C 8010269C 10400003 */ beqz $v0, .L801026AC
/* B79840 801026A0 00003025 */ move $a2, $zero
/* B79844 801026A4 10000085 */ b .L801028BC
/* B79848 801026A8 8FBF003C */ lw $ra, 0x3c($sp)
.L801026AC:
/* B7984C 801026AC 8E440004 */ lw $a0, 4($s2)
/* B79850 801026B0 8E450008 */ lw $a1, 8($s2)
/* B79854 801026B4 0C0417D0 */ jal func_80105F40
/* B79858 801026B8 27A7005C */ addiu $a3, $sp, 0x5c
/* B7985C 801026BC 10400003 */ beqz $v0, .L801026CC
/* B79860 801026C0 27A3005C */ addiu $v1, $sp, 0x5c
/* B79864 801026C4 1000007D */ b .L801028BC
/* B79868 801026C8 8FBF003C */ lw $ra, 0x3c($sp)
.L801026CC:
/* B7986C 801026CC 27A2007C */ addiu $v0, $sp, 0x7c
.L801026D0:
/* B79870 801026D0 906E0000 */ lbu $t6, ($v1)
/* B79874 801026D4 90580000 */ lbu $t8, ($v0)
/* B79878 801026D8 55D80006 */ bnel $t6, $t8, .L801026F4
/* B7987C 801026DC 27B9007C */ addiu $t9, $sp, 0x7c
/* B79880 801026E0 24630001 */ addiu $v1, $v1, 1
/* B79884 801026E4 0071082B */ sltu $at, $v1, $s1
/* B79888 801026E8 1420FFF9 */ bnez $at, .L801026D0
/* B7988C 801026EC 24420001 */ addiu $v0, $v0, 1
/* B79890 801026F0 27B9007C */ addiu $t9, $sp, 0x7c
.L801026F4:
/* B79894 801026F4 14790018 */ bne $v1, $t9, .L80102758
/* B79898 801026F8 02402025 */ move $a0, $s2
/* B7989C 801026FC 5A600013 */ blezl $s3, .L8010274C
/* B798A0 80102700 26730001 */ addiu $s3, $s3, 1
/* B798A4 80102704 0C041320 */ jal func_80104C80
/* B798A8 80102708 00002825 */ move $a1, $zero
/* B798AC 8010270C 10400003 */ beqz $v0, .L8010271C
/* B798B0 80102710 00003025 */ move $a2, $zero
/* B798B4 80102714 10000069 */ b .L801028BC
/* B798B8 80102718 8FBF003C */ lw $ra, 0x3c($sp)
.L8010271C:
/* B798BC 8010271C 8E440004 */ lw $a0, 4($s2)
/* B798C0 80102720 8E450008 */ lw $a1, 8($s2)
/* B798C4 80102724 0C0417D0 */ jal func_80105F40
/* B798C8 80102728 02A03825 */ move $a3, $s5
/* B798CC 8010272C 10400003 */ beqz $v0, .L8010273C
/* B798D0 80102730 93A8007C */ lbu $t0, 0x7c($sp)
/* B798D4 80102734 10000061 */ b .L801028BC
/* B798D8 80102738 8FBF003C */ lw $ra, 0x3c($sp)
.L8010273C:
/* B798DC 8010273C 24010080 */ li $at, 128
/* B798E0 80102740 55010006 */ bnel $t0, $at, .L8010275C
/* B798E4 80102744 92490065 */ lbu $t1, 0x65($s2)
/* B798E8 80102748 26730001 */ addiu $s3, $s3, 1
.L8010274C:
/* B798EC 8010274C 2A61003E */ slti $at, $s3, 0x3e
/* B798F0 80102750 5420FFB6 */ bnezl $at, .L8010262C
/* B798F4 80102754 02402025 */ move $a0, $s2
.L80102758:
/* B798F8 80102758 92490065 */ lbu $t1, 0x65($s2)
.L8010275C:
/* B798FC 8010275C 02402025 */ move $a0, $s2
/* B79900 80102760 11200007 */ beqz $t1, .L80102780
/* B79904 80102764 00000000 */ nop
/* B79908 80102768 0C041320 */ jal func_80104C80
/* B7990C 8010276C 00002825 */ move $a1, $zero
/* B79910 80102770 10400003 */ beqz $v0, .L80102780
/* B79914 80102774 00000000 */ nop
/* B79918 80102778 10000050 */ b .L801028BC
/* B7991C 8010277C 8FBF003C */ lw $ra, 0x3c($sp)
.L80102780:
/* B79920 80102780 1A600003 */ blez $s3, .L80102790
/* B79924 80102784 02802025 */ move $a0, $s4
/* B79928 80102788 10000002 */ b .L80102794
/* B7992C 8010278C 24020001 */ li $v0, 1
.L80102790:
/* B79930 80102790 00001025 */ move $v0, $zero
.L80102794:
/* B79934 80102794 96CF0018 */ lhu $t7, 0x18($s6)
/* B79938 80102798 A293001A */ sb $s3, 0x1a($s4)
/* B7993C 8010279C 2685001C */ addiu $a1, $s4, 0x1c
/* B79940 801027A0 31EAFFFE */ andi $t2, $t7, 0xfffe
/* B79944 801027A4 01425825 */ or $t3, $t2, $v0
/* B79948 801027A8 A68B0018 */ sh $t3, 0x18($s4)
/* B7994C 801027AC 92CC001B */ lbu $t4, 0x1b($s6)
/* B79950 801027B0 2686001E */ addiu $a2, $s4, 0x1e
/* B79954 801027B4 0C040925 */ jal func_80102494
/* B79958 801027B8 A28C001B */ sb $t4, 0x1b($s4)
/* B7995C 801027BC 240D0001 */ li $t5, 1
/* B79960 801027C0 240E0003 */ li $t6, 3
/* B79964 801027C4 24180004 */ li $t8, 4
/* B79968 801027C8 24190006 */ li $t9, 6
/* B7996C 801027CC A7AD0048 */ sh $t5, 0x48($sp)
/* B79970 801027D0 A7AE004A */ sh $t6, 0x4a($sp)
/* B79974 801027D4 A7B8004C */ sh $t8, 0x4c($sp)
/* B79978 801027D8 A7B9004E */ sh $t9, 0x4e($sp)
/* B7997C 801027DC 27B00048 */ addiu $s0, $sp, 0x48
/* B79980 801027E0 27B10050 */ addiu $s1, $sp, 0x50
/* B79984 801027E4 8E440004 */ lw $a0, 4($s2)
.L801027E8:
/* B79988 801027E8 8E450008 */ lw $a1, 8($s2)
/* B7998C 801027EC 96060000 */ lhu $a2, ($s0)
/* B79990 801027F0 24080001 */ li $t0, 1
/* B79994 801027F4 AFA80010 */ sw $t0, 0x10($sp)
/* B79998 801027F8 0C04173C */ jal func_80105CF0
/* B7999C 801027FC 02803825 */ move $a3, $s4
/* B799A0 80102800 10400003 */ beqz $v0, .L80102810
/* B799A4 80102804 26100002 */ addiu $s0, $s0, 2
/* B799A8 80102808 1000002C */ b .L801028BC
/* B799AC 8010280C 8FBF003C */ lw $ra, 0x3c($sp)
.L80102810:
/* B799B0 80102810 0211082B */ sltu $at, $s0, $s1
/* B799B4 80102814 5420FFF4 */ bnezl $at, .L801027E8
/* B799B8 80102818 8E440004 */ lw $a0, 4($s2)
/* B799BC 8010281C 8E440004 */ lw $a0, 4($s2)
/* B799C0 80102820 8E450008 */ lw $a1, 8($s2)
/* B799C4 80102824 24060001 */ li $a2, 1
/* B799C8 80102828 0C0417D0 */ jal func_80105F40
/* B799CC 8010282C 02A03825 */ move $a3, $s5
/* B799D0 80102830 10400003 */ beqz $v0, .L80102840
/* B799D4 80102834 02801825 */ move $v1, $s4
/* B799D8 80102838 10000020 */ b .L801028BC
/* B799DC 8010283C 8FBF003C */ lw $ra, 0x3c($sp)
.L80102840:
/* B799E0 80102840 27A2007C */ addiu $v0, $sp, 0x7c
/* B799E4 80102844 27A4009C */ addiu $a0, $sp, 0x9c
.L80102848:
/* B799E8 80102848 90490000 */ lbu $t1, ($v0)
/* B799EC 8010284C 906F0000 */ lbu $t7, ($v1)
/* B799F0 80102850 512F0004 */ beql $t1, $t7, .L80102864
/* B799F4 80102854 904A0001 */ lbu $t2, 1($v0)
/* B799F8 80102858 10000017 */ b .L801028B8
/* B799FC 8010285C 2402000B */ li $v0, 11
/* B79A00 80102860 904A0001 */ lbu $t2, 1($v0)
.L80102864:
/* B79A04 80102864 906B0001 */ lbu $t3, 1($v1)
/* B79A08 80102868 514B0004 */ beql $t2, $t3, .L8010287C
/* B79A0C 8010286C 904C0002 */ lbu $t4, 2($v0)
/* B79A10 80102870 10000011 */ b .L801028B8
/* B79A14 80102874 2402000B */ li $v0, 11
/* B79A18 80102878 904C0002 */ lbu $t4, 2($v0)
.L8010287C:
/* B79A1C 8010287C 906D0002 */ lbu $t5, 2($v1)
/* B79A20 80102880 518D0004 */ beql $t4, $t5, .L80102894
/* B79A24 80102884 904E0003 */ lbu $t6, 3($v0)
/* B79A28 80102888 1000000B */ b .L801028B8
/* B79A2C 8010288C 2402000B */ li $v0, 11
/* B79A30 80102890 904E0003 */ lbu $t6, 3($v0)
.L80102894:
/* B79A34 80102894 90780003 */ lbu $t8, 3($v1)
/* B79A38 80102898 24420004 */ addiu $v0, $v0, 4
/* B79A3C 8010289C 11D80003 */ beq $t6, $t8, .L801028AC
/* B79A40 801028A0 00000000 */ nop
/* B79A44 801028A4 10000004 */ b .L801028B8
/* B79A48 801028A8 2402000B */ li $v0, 11
.L801028AC:
/* B79A4C 801028AC 1444FFE6 */ bne $v0, $a0, .L80102848
/* B79A50 801028B0 24630004 */ addiu $v1, $v1, 4
/* B79A54 801028B4 00001025 */ move $v0, $zero
.L801028B8:
/* B79A58 801028B8 8FBF003C */ lw $ra, 0x3c($sp)
.L801028BC:
/* B79A5C 801028BC 8FB00020 */ lw $s0, 0x20($sp)
/* B79A60 801028C0 8FB10024 */ lw $s1, 0x24($sp)
/* B79A64 801028C4 8FB20028 */ lw $s2, 0x28($sp)
/* B79A68 801028C8 8FB3002C */ lw $s3, 0x2c($sp)
/* B79A6C 801028CC 8FB40030 */ lw $s4, 0x30($sp)
/* B79A70 801028D0 8FB50034 */ lw $s5, 0x34($sp)
/* B79A74 801028D4 8FB60038 */ lw $s6, 0x38($sp)
/* B79A78 801028D8 03E00008 */ jr $ra
/* B79A7C 801028DC 27BD00A0 */ addiu $sp, $sp, 0xa0
glabel func_801028E0
/* B79A80 801028E0 27BDFFA0 */ addiu $sp, $sp, -0x60
/* B79A84 801028E4 AFBF003C */ sw $ra, 0x3c($sp)
/* B79A88 801028E8 AFB60038 */ sw $s6, 0x38($sp)
/* B79A8C 801028EC AFB50034 */ sw $s5, 0x34($sp)
/* B79A90 801028F0 AFB40030 */ sw $s4, 0x30($sp)
/* B79A94 801028F4 AFB3002C */ sw $s3, 0x2c($sp)
/* B79A98 801028F8 AFB20028 */ sw $s2, 0x28($sp)
/* B79A9C 801028FC AFB10024 */ sw $s1, 0x24($sp)
/* B79AA0 80102900 AFB00020 */ sw $s0, 0x20($sp)
/* B79AA4 80102904 908E0065 */ lbu $t6, 0x65($a0)
/* B79AA8 80102908 00A09025 */ move $s2, $a1
/* B79AAC 8010290C 00809825 */ move $s3, $a0
/* B79AB0 80102910 51C00008 */ beql $t6, $zero, .L80102934
/* B79AB4 80102914 240F0001 */ li $t7, 1
/* B79AB8 80102918 0C041320 */ jal func_80104C80
/* B79ABC 8010291C 00002825 */ move $a1, $zero
/* B79AC0 80102920 50400004 */ beql $v0, $zero, .L80102934
/* B79AC4 80102924 240F0001 */ li $t7, 1
/* B79AC8 80102928 1000003D */ b .L80102A20
/* B79ACC 8010292C 8FBF003C */ lw $ra, 0x3c($sp)
/* B79AD0 80102930 240F0001 */ li $t7, 1
.L80102934:
/* B79AD4 80102934 24180003 */ li $t8, 3
/* B79AD8 80102938 24190004 */ li $t9, 4
/* B79ADC 8010293C 24080006 */ li $t0, 6
/* B79AE0 80102940 A7AF0058 */ sh $t7, 0x58($sp)
/* B79AE4 80102944 A7B8005A */ sh $t8, 0x5a($sp)
/* B79AE8 80102948 A7B9005C */ sh $t9, 0x5c($sp)
/* B79AEC 8010294C A7A8005E */ sh $t0, 0x5e($sp)
/* B79AF0 80102950 24110001 */ li $s1, 1
/* B79AF4 80102954 27B0005A */ addiu $s0, $sp, 0x5a
/* B79AF8 80102958 27B60050 */ addiu $s6, $sp, 0x50
/* B79AFC 8010295C 24150004 */ li $s5, 4
/* B79B00 80102960 27B40052 */ addiu $s4, $sp, 0x52
.L80102964:
/* B79B04 80102964 8E640004 */ lw $a0, 4($s3)
/* B79B08 80102968 8E650008 */ lw $a1, 8($s3)
/* B79B0C 8010296C 96060000 */ lhu $a2, ($s0)
/* B79B10 80102970 0C0417D0 */ jal func_80105F40
/* B79B14 80102974 02403825 */ move $a3, $s2
/* B79B18 80102978 10400003 */ beqz $v0, .L80102988
/* B79B1C 8010297C 02402025 */ move $a0, $s2
/* B79B20 80102980 10000027 */ b .L80102A20
/* B79B24 80102984 8FBF003C */ lw $ra, 0x3c($sp)
.L80102988:
/* B79B28 80102988 02802825 */ move $a1, $s4
/* B79B2C 8010298C 0C040925 */ jal func_80102494
/* B79B30 80102990 02C03025 */ move $a2, $s6
/* B79B34 80102994 97A90052 */ lhu $t1, 0x52($sp)
/* B79B38 80102998 964A001C */ lhu $t2, 0x1c($s2)
/* B79B3C 8010299C 97AB0050 */ lhu $t3, 0x50($sp)
/* B79B40 801029A0 552A0005 */ bnel $t1, $t2, .L801029B8
/* B79B44 801029A4 26310001 */ addiu $s1, $s1, 1
/* B79B48 801029A8 964C001E */ lhu $t4, 0x1e($s2)
/* B79B4C 801029AC 116C0004 */ beq $t3, $t4, .L801029C0
/* B79B50 801029B0 00000000 */ nop
/* B79B54 801029B4 26310001 */ addiu $s1, $s1, 1
.L801029B8:
/* B79B58 801029B8 1635FFEA */ bne $s1, $s5, .L80102964
/* B79B5C 801029BC 26100002 */ addiu $s0, $s0, 2
.L801029C0:
/* B79B60 801029C0 16350003 */ bne $s1, $s5, .L801029D0
/* B79B64 801029C4 00008025 */ move $s0, $zero
/* B79B68 801029C8 10000014 */ b .L80102A1C
/* B79B6C 801029CC 2402000A */ li $v0, 10
.L801029D0:
/* B79B70 801029D0 27B40058 */ addiu $s4, $sp, 0x58
.L801029D4:
/* B79B74 801029D4 1211000D */ beq $s0, $s1, .L80102A0C
/* B79B78 801029D8 00106840 */ sll $t5, $s0, 1
/* B79B7C 801029DC 028D7021 */ addu $t6, $s4, $t5
/* B79B80 801029E0 95C60000 */ lhu $a2, ($t6)
/* B79B84 801029E4 8E640004 */ lw $a0, 4($s3)
/* B79B88 801029E8 8E650008 */ lw $a1, 8($s3)
/* B79B8C 801029EC 240F0001 */ li $t7, 1
/* B79B90 801029F0 AFAF0010 */ sw $t7, 0x10($sp)
/* B79B94 801029F4 0C04173C */ jal func_80105CF0
/* B79B98 801029F8 02403825 */ move $a3, $s2
/* B79B9C 801029FC 50400004 */ beql $v0, $zero, .L80102A10
/* B79BA0 80102A00 26100001 */ addiu $s0, $s0, 1
/* B79BA4 80102A04 10000006 */ b .L80102A20
/* B79BA8 80102A08 8FBF003C */ lw $ra, 0x3c($sp)
.L80102A0C:
/* B79BAC 80102A0C 26100001 */ addiu $s0, $s0, 1
.L80102A10:
/* B79BB0 80102A10 1615FFF0 */ bne $s0, $s5, .L801029D4
/* B79BB4 80102A14 00000000 */ nop
/* B79BB8 80102A18 00001025 */ move $v0, $zero
.L80102A1C:
/* B79BBC 80102A1C 8FBF003C */ lw $ra, 0x3c($sp)
.L80102A20:
/* B79BC0 80102A20 8FB00020 */ lw $s0, 0x20($sp)
/* B79BC4 80102A24 8FB10024 */ lw $s1, 0x24($sp)
/* B79BC8 80102A28 8FB20028 */ lw $s2, 0x28($sp)
/* B79BCC 80102A2C 8FB3002C */ lw $s3, 0x2c($sp)
/* B79BD0 80102A30 8FB40030 */ lw $s4, 0x30($sp)
/* B79BD4 80102A34 8FB50034 */ lw $s5, 0x34($sp)
/* B79BD8 80102A38 8FB60038 */ lw $s6, 0x38($sp)
/* B79BDC 80102A3C 03E00008 */ jr $ra
/* B79BE0 80102A40 27BD0060 */ addiu $sp, $sp, 0x60
glabel func_80102A44
/* B79BE4 80102A44 27BDFF90 */ addiu $sp, $sp, -0x70
/* B79BE8 80102A48 AFBF001C */ sw $ra, 0x1c($sp)
/* B79BEC 80102A4C AFB10018 */ sw $s1, 0x18($sp)
/* B79BF0 80102A50 AFB00014 */ sw $s0, 0x14($sp)
/* B79BF4 80102A54 908E0065 */ lbu $t6, 0x65($a0)
/* B79BF8 80102A58 00808025 */ move $s0, $a0
/* B79BFC 80102A5C 51C00008 */ beql $t6, $zero, .L80102A80
/* B79C00 80102A60 8E040004 */ lw $a0, 4($s0)
/* B79C04 80102A64 0C041320 */ jal func_80104C80
/* B79C08 80102A68 00002825 */ move $a1, $zero
/* B79C0C 80102A6C 50400004 */ beql $v0, $zero, .L80102A80
/* B79C10 80102A70 8E040004 */ lw $a0, 4($s0)
/* B79C14 80102A74 1000005A */ b .L80102BE0
/* B79C18 80102A78 8FBF001C */ lw $ra, 0x1c($sp)
/* B79C1C 80102A7C 8E040004 */ lw $a0, 4($s0)
.L80102A80:
/* B79C20 80102A80 8E050008 */ lw $a1, 8($s0)
/* B79C24 80102A84 24060001 */ li $a2, 1
/* B79C28 80102A88 0C0417D0 */ jal func_80105F40
/* B79C2C 80102A8C 27A7004C */ addiu $a3, $sp, 0x4c
/* B79C30 80102A90 10400003 */ beqz $v0, .L80102AA0
/* B79C34 80102A94 27A4004C */ addiu $a0, $sp, 0x4c
/* B79C38 80102A98 10000051 */ b .L80102BE0
/* B79C3C 80102A9C 8FBF001C */ lw $ra, 0x1c($sp)
.L80102AA0:
/* B79C40 80102AA0 27A5006E */ addiu $a1, $sp, 0x6e
/* B79C44 80102AA4 0C040925 */ jal func_80102494
/* B79C48 80102AA8 27A6006C */ addiu $a2, $sp, 0x6c
/* B79C4C 80102AAC 97AF006E */ lhu $t7, 0x6e($sp)
/* B79C50 80102AB0 97B80068 */ lhu $t8, 0x68($sp)
/* B79C54 80102AB4 27A5004C */ addiu $a1, $sp, 0x4c
/* B79C58 80102AB8 00A08825 */ move $s1, $a1
/* B79C5C 80102ABC 15F80004 */ bne $t7, $t8, .L80102AD0
/* B79C60 80102AC0 97B9006C */ lhu $t9, 0x6c($sp)
/* B79C64 80102AC4 97A9006A */ lhu $t1, 0x6a($sp)
/* B79C68 80102AC8 53290015 */ beql $t9, $t1, .L80102B20
/* B79C6C 80102ACC 962A0018 */ lhu $t2, 0x18($s1)
.L80102AD0:
/* B79C70 80102AD0 0C040A38 */ jal func_801028E0
/* B79C74 80102AD4 02002025 */ move $a0, $s0
/* B79C78 80102AD8 2401000A */ li $at, 10
/* B79C7C 80102ADC 1441000B */ bne $v0, $at, .L80102B0C
/* B79C80 80102AE0 00401825 */ move $v1, $v0
/* B79C84 80102AE4 02002025 */ move $a0, $s0
/* B79C88 80102AE8 27A5004C */ addiu $a1, $sp, 0x4c
/* B79C8C 80102AEC 0C040964 */ jal func_80102590
/* B79C90 80102AF0 27A60028 */ addiu $a2, $sp, 0x28
/* B79C94 80102AF4 10400003 */ beqz $v0, .L80102B04
/* B79C98 80102AF8 00000000 */ nop
/* B79C9C 80102AFC 10000038 */ b .L80102BE0
/* B79CA0 80102B00 8FBF001C */ lw $ra, 0x1c($sp)
.L80102B04:
/* B79CA4 80102B04 10000005 */ b .L80102B1C
/* B79CA8 80102B08 27B10028 */ addiu $s1, $sp, 0x28
.L80102B0C:
/* B79CAC 80102B0C 50400004 */ beql $v0, $zero, .L80102B20
/* B79CB0 80102B10 962A0018 */ lhu $t2, 0x18($s1)
/* B79CB4 80102B14 10000031 */ b .L80102BDC
/* B79CB8 80102B18 00601025 */ move $v0, $v1
.L80102B1C:
/* B79CBC 80102B1C 962A0018 */ lhu $t2, 0x18($s1)
.L80102B20:
/* B79CC0 80102B20 02002025 */ move $a0, $s0
/* B79CC4 80102B24 02202825 */ move $a1, $s1
/* B79CC8 80102B28 314B0001 */ andi $t3, $t2, 1
/* B79CCC 80102B2C 5560000D */ bnezl $t3, .L80102B64
/* B79CD0 80102B30 02202025 */ move $a0, $s1
/* B79CD4 80102B34 0C040964 */ jal func_80102590
/* B79CD8 80102B38 27A60028 */ addiu $a2, $sp, 0x28
/* B79CDC 80102B3C 10400003 */ beqz $v0, .L80102B4C
/* B79CE0 80102B40 97AC0040 */ lhu $t4, 0x40($sp)
/* B79CE4 80102B44 10000026 */ b .L80102BE0
/* B79CE8 80102B48 8FBF001C */ lw $ra, 0x1c($sp)
.L80102B4C:
/* B79CEC 80102B4C 318D0001 */ andi $t5, $t4, 1
/* B79CF0 80102B50 15A00003 */ bnez $t5, .L80102B60
/* B79CF4 80102B54 27B10028 */ addiu $s1, $sp, 0x28
/* B79CF8 80102B58 10000020 */ b .L80102BDC
/* B79CFC 80102B5C 2402000B */ li $v0, 11
.L80102B60:
/* B79D00 80102B60 02202025 */ move $a0, $s1
.L80102B64:
/* B79D04 80102B64 2605000C */ addiu $a1, $s0, 0xc
/* B79D08 80102B68 0C001BC4 */ jal bcopy
/* B79D0C 80102B6C 24060020 */ li $a2, 32
/* B79D10 80102B70 922E001B */ lbu $t6, 0x1b($s1)
/* B79D14 80102B74 24090010 */ li $t1, 16
/* B79D18 80102B78 240A0008 */ li $t2, 8
/* B79D1C 80102B7C AE0E004C */ sw $t6, 0x4c($s0)
/* B79D20 80102B80 922F001A */ lbu $t7, 0x1a($s1)
/* B79D24 80102B84 AE090050 */ sw $t1, 0x50($s0)
/* B79D28 80102B88 AE0A0054 */ sw $t2, 0x54($s0)
/* B79D2C 80102B8C 31E200FF */ andi $v0, $t7, 0xff
/* B79D30 80102B90 000218C0 */ sll $v1, $v0, 3
/* B79D34 80102B94 0002C040 */ sll $t8, $v0, 1
/* B79D38 80102B98 24680008 */ addiu $t0, $v1, 8
/* B79D3C 80102B9C 27190003 */ addiu $t9, $t8, 3
/* B79D40 80102BA0 01035821 */ addu $t3, $t0, $v1
/* B79D44 80102BA4 AE190060 */ sw $t9, 0x60($s0)
/* B79D48 80102BA8 AE080058 */ sw $t0, 0x58($s0)
/* B79D4C 80102BAC AE0B005C */ sw $t3, 0x5c($s0)
/* B79D50 80102BB0 8E040004 */ lw $a0, 4($s0)
/* B79D54 80102BB4 8E050008 */ lw $a1, 8($s0)
/* B79D58 80102BB8 24060007 */ li $a2, 7
/* B79D5C 80102BBC 2607002C */ addiu $a3, $s0, 0x2c
/* B79D60 80102BC0 0C0417D0 */ jal func_80105F40
/* B79D64 80102BC4 A20F0064 */ sb $t7, 0x64($s0)
/* B79D68 80102BC8 50400004 */ beql $v0, $zero, .L80102BDC
/* B79D6C 80102BCC 00001025 */ move $v0, $zero
/* B79D70 80102BD0 10000003 */ b .L80102BE0
/* B79D74 80102BD4 8FBF001C */ lw $ra, 0x1c($sp)
/* B79D78 80102BD8 00001025 */ move $v0, $zero
.L80102BDC:
/* B79D7C 80102BDC 8FBF001C */ lw $ra, 0x1c($sp)
.L80102BE0:
/* B79D80 80102BE0 8FB00014 */ lw $s0, 0x14($sp)
/* B79D84 80102BE4 8FB10018 */ lw $s1, 0x18($sp)
/* B79D88 80102BE8 03E00008 */ jr $ra
/* B79D8C 80102BEC 27BD0070 */ addiu $sp, $sp, 0x70
glabel func_80102BF0
/* B79D90 80102BF0 27BDFFB8 */ addiu $sp, $sp, -0x48
/* B79D94 80102BF4 AFBF001C */ sw $ra, 0x1c($sp)
/* B79D98 80102BF8 AFB00018 */ sw $s0, 0x18($sp)
/* B79D9C 80102BFC 908E0065 */ lbu $t6, 0x65($a0)
/* B79DA0 80102C00 00808025 */ move $s0, $a0
/* B79DA4 80102C04 51C0000F */ beql $t6, $zero, .L80102C44
/* B79DA8 80102C08 8E040004 */ lw $a0, 4($s0)
/* B79DAC 80102C0C 0C041320 */ jal func_80104C80
/* B79DB0 80102C10 00002825 */ move $a1, $zero
/* B79DB4 80102C14 24010002 */ li $at, 2
/* B79DB8 80102C18 14410005 */ bne $v0, $at, .L80102C30
/* B79DBC 80102C1C 00401825 */ move $v1, $v0
/* B79DC0 80102C20 02002025 */ move $a0, $s0
/* B79DC4 80102C24 0C041320 */ jal func_80104C80
/* B79DC8 80102C28 00002825 */ move $a1, $zero
/* B79DCC 80102C2C 00401825 */ move $v1, $v0
.L80102C30:
/* B79DD0 80102C30 50400004 */ beql $v0, $zero, .L80102C44
/* B79DD4 80102C34 8E040004 */ lw $a0, 4($s0)
/* B79DD8 80102C38 1000001D */ b .L80102CB0
/* B79DDC 80102C3C 00601025 */ move $v0, $v1
/* B79DE0 80102C40 8E040004 */ lw $a0, 4($s0)
.L80102C44:
/* B79DE4 80102C44 8E050008 */ lw $a1, 8($s0)
/* B79DE8 80102C48 24060001 */ li $a2, 1
/* B79DEC 80102C4C 0C0417D0 */ jal func_80105F40
/* B79DF0 80102C50 27A70028 */ addiu $a3, $sp, 0x28
/* B79DF4 80102C54 1040000D */ beqz $v0, .L80102C8C
/* B79DF8 80102C58 24010002 */ li $at, 2
/* B79DFC 80102C5C 10410003 */ beq $v0, $at, .L80102C6C
/* B79E00 80102C60 24060001 */ li $a2, 1
/* B79E04 80102C64 10000013 */ b .L80102CB4
/* B79E08 80102C68 8FBF001C */ lw $ra, 0x1c($sp)
.L80102C6C:
/* B79E0C 80102C6C 8E040004 */ lw $a0, 4($s0)
/* B79E10 80102C70 8E050008 */ lw $a1, 8($s0)
/* B79E14 80102C74 0C0417D0 */ jal func_80105F40
/* B79E18 80102C78 27A70028 */ addiu $a3, $sp, 0x28
/* B79E1C 80102C7C 50400004 */ beql $v0, $zero, .L80102C90
/* B79E20 80102C80 2604000C */ addiu $a0, $s0, 0xc
/* B79E24 80102C84 1000000B */ b .L80102CB4
/* B79E28 80102C88 8FBF001C */ lw $ra, 0x1c($sp)
.L80102C8C:
/* B79E2C 80102C8C 2604000C */ addiu $a0, $s0, 0xc
.L80102C90:
/* B79E30 80102C90 27A50028 */ addiu $a1, $sp, 0x28
/* B79E34 80102C94 0C001A30 */ jal bcmp
/* B79E38 80102C98 24060020 */ li $a2, 32
/* B79E3C 80102C9C 50400004 */ beql $v0, $zero, .L80102CB0
/* B79E40 80102CA0 00001025 */ move $v0, $zero
/* B79E44 80102CA4 10000002 */ b .L80102CB0
/* B79E48 80102CA8 24020002 */ li $v0, 2
/* B79E4C 80102CAC 00001025 */ move $v0, $zero
.L80102CB0:
/* B79E50 80102CB0 8FBF001C */ lw $ra, 0x1c($sp)
.L80102CB4:
/* B79E54 80102CB4 8FB00018 */ lw $s0, 0x18($sp)
/* B79E58 80102CB8 27BD0048 */ addiu $sp, $sp, 0x48
/* B79E5C 80102CBC 03E00008 */ jr $ra
/* B79E60 80102CC0 00000000 */ nop
glabel func_80102CC4
/* B79E64 80102CC4 27BDFFA8 */ addiu $sp, $sp, -0x58
/* B79E68 80102CC8 AFB40030 */ sw $s4, 0x30($sp)
/* B79E6C 80102CCC 30D400FF */ andi $s4, $a2, 0xff
/* B79E70 80102CD0 AFB20028 */ sw $s2, 0x28($sp)
/* B79E74 80102CD4 00809025 */ move $s2, $a0
/* B79E78 80102CD8 AFBF0034 */ sw $ra, 0x34($sp)
/* B79E7C 80102CDC AFB3002C */ sw $s3, 0x2c($sp)
/* B79E80 80102CE0 AFB10024 */ sw $s1, 0x24($sp)
/* B79E84 80102CE4 AFB00020 */ sw $s0, 0x20($sp)
/* B79E88 80102CE8 AFA5005C */ sw $a1, 0x5c($sp)
/* B79E8C 80102CEC AFA60060 */ sw $a2, 0x60($sp)
/* B79E90 80102CF0 16800011 */ bnez $s4, .L80102D38
/* B79E94 80102CF4 AFA70064 */ sw $a3, 0x64($sp)
/* B79E98 80102CF8 3C0F8013 */ lui $t7, %hi(D_80134CF4) # $t7, 0x8013
/* B79E9C 80102CFC 91EF4CF4 */ lbu $t7, %lo(D_80134CF4)($t7)
/* B79EA0 80102D00 93B80067 */ lbu $t8, 0x67($sp)
/* B79EA4 80102D04 3C198013 */ lui $t9, %hi(D_80134CF0) # $t9, 0x8013
/* B79EA8 80102D08 55F8000C */ bnel $t7, $t8, .L80102D3C
/* B79EAC 80102D0C 92490065 */ lbu $t1, 0x65($s2)
/* B79EB0 80102D10 8F394CF0 */ lw $t9, %lo(D_80134CF0)($t9)
/* B79EB4 80102D14 8C880008 */ lw $t0, 8($a0)
/* B79EB8 80102D18 3C048017 */ lui $a0, %hi(D_80175860) # $a0, 0x8017
/* B79EBC 80102D1C 24845860 */ addiu $a0, %lo(D_80175860) # addiu $a0, $a0, 0x5860
/* B79EC0 80102D20 57280006 */ bnel $t9, $t0, .L80102D3C
/* B79EC4 80102D24 92490065 */ lbu $t1, 0x65($s2)
/* B79EC8 80102D28 0C001BC4 */ jal bcopy
/* B79ECC 80102D2C 24060100 */ li $a2, 256
/* B79ED0 80102D30 10000091 */ b .L80102F78
/* B79ED4 80102D34 00001025 */ move $v0, $zero
.L80102D38:
/* B79ED8 80102D38 92490065 */ lbu $t1, 0x65($s2)
.L80102D3C:
/* B79EDC 80102D3C 02402025 */ move $a0, $s2
/* B79EE0 80102D40 51200008 */ beql $t1, $zero, .L80102D64
/* B79EE4 80102D44 93A30067 */ lbu $v1, 0x67($sp)
/* B79EE8 80102D48 0C041320 */ jal func_80104C80
/* B79EEC 80102D4C 00002825 */ move $a1, $zero
/* B79EF0 80102D50 50400004 */ beql $v0, $zero, .L80102D64
/* B79EF4 80102D54 93A30067 */ lbu $v1, 0x67($sp)
/* B79EF8 80102D58 10000088 */ b .L80102F7C
/* B79EFC 80102D5C 8FBF0034 */ lw $ra, 0x34($sp)
/* B79F00 80102D60 93A30067 */ lbu $v1, 0x67($sp)
.L80102D64:
/* B79F04 80102D64 24020001 */ li $v0, 1
/* B79F08 80102D68 240A0001 */ li $t2, 1
/* B79F0C 80102D6C 58600004 */ blezl $v1, .L80102D80
/* B79F10 80102D70 8E4B0060 */ lw $t3, 0x60($s2)
/* B79F14 80102D74 10000003 */ b .L80102D84
/* B79F18 80102D78 AFAA0048 */ sw $t2, 0x48($sp)
/* B79F1C 80102D7C 8E4B0060 */ lw $t3, 0x60($s2)
.L80102D80:
/* B79F20 80102D80 AFAB0048 */ sw $t3, 0x48($sp)
.L80102D84:
/* B79F24 80102D84 1454000C */ bne $v0, $s4, .L80102DB8
/* B79F28 80102D88 8FAD0048 */ lw $t5, 0x48($sp)
/* B79F2C 80102D8C 8FAC005C */ lw $t4, 0x5c($sp)
/* B79F30 80102D90 000D2823 */ negu $a1, $t5
/* B79F34 80102D94 00057840 */ sll $t7, $a1, 1
/* B79F38 80102D98 000D7040 */ sll $t6, $t5, 1
/* B79F3C 80102D9C 25E50100 */ addiu $a1, $t7, 0x100
/* B79F40 80102DA0 AFA3003C */ sw $v1, 0x3c($sp)
/* B79F44 80102DA4 0C040908 */ jal func_80102420
/* B79F48 80102DA8 018E2021 */ addu $a0, $t4, $t6
/* B79F4C 80102DAC 8FB8005C */ lw $t8, 0x5c($sp)
/* B79F50 80102DB0 8FA3003C */ lw $v1, 0x3c($sp)
/* B79F54 80102DB4 A3020001 */ sb $v0, 1($t8)
.L80102DB8:
/* B79F58 80102DB8 00008025 */ move $s0, $zero
/* B79F5C 80102DBC 8FB1005C */ lw $s1, 0x5c($sp)
/* B79F60 80102DC0 000398C0 */ sll $s3, $v1, 3
.L80102DC4:
/* B79F64 80102DC4 24020001 */ li $v0, 1
/* B79F68 80102DC8 14540016 */ bne $v0, $s4, .L80102E24
/* B79F6C 80102DCC 8E450008 */ lw $a1, 8($s2)
/* B79F70 80102DD0 8E590054 */ lw $t9, 0x54($s2)
/* B79F74 80102DD4 8E440004 */ lw $a0, 4($s2)
/* B79F78 80102DD8 AFA00010 */ sw $zero, 0x10($sp)
/* B79F7C 80102DDC 03334021 */ addu $t0, $t9, $s3
/* B79F80 80102DE0 01103021 */ addu $a2, $t0, $s0
/* B79F84 80102DE4 30C9FFFF */ andi $t1, $a2, 0xffff
/* B79F88 80102DE8 01203025 */ move $a2, $t1
/* B79F8C 80102DEC 0C04173C */ jal func_80105CF0
/* B79F90 80102DF0 02203825 */ move $a3, $s1
/* B79F94 80102DF4 8E4A0058 */ lw $t2, 0x58($s2)
/* B79F98 80102DF8 8E440004 */ lw $a0, 4($s2)
/* B79F9C 80102DFC 8E450008 */ lw $a1, 8($s2)
/* B79FA0 80102E00 01535821 */ addu $t3, $t2, $s3
/* B79FA4 80102E04 01703021 */ addu $a2, $t3, $s0
/* B79FA8 80102E08 30CCFFFF */ andi $t4, $a2, 0xffff
/* B79FAC 80102E0C 01803025 */ move $a2, $t4
/* B79FB0 80102E10 AFA00010 */ sw $zero, 0x10($sp)
/* B79FB4 80102E14 0C04173C */ jal func_80105CF0
/* B79FB8 80102E18 02203825 */ move $a3, $s1
/* B79FBC 80102E1C 1000000A */ b .L80102E48
/* B79FC0 80102E20 00401825 */ move $v1, $v0
.L80102E24:
/* B79FC4 80102E24 8E4E0054 */ lw $t6, 0x54($s2)
/* B79FC8 80102E28 8E440004 */ lw $a0, 4($s2)
/* B79FCC 80102E2C 02203825 */ move $a3, $s1
/* B79FD0 80102E30 01D36821 */ addu $t5, $t6, $s3
/* B79FD4 80102E34 01B03021 */ addu $a2, $t5, $s0
/* B79FD8 80102E38 30CFFFFF */ andi $t7, $a2, 0xffff
/* B79FDC 80102E3C 0C0417D0 */ jal func_80105F40
/* B79FE0 80102E40 01E03025 */ move $a2, $t7
/* B79FE4 80102E44 00401825 */ move $v1, $v0
.L80102E48:
/* B79FE8 80102E48 10400003 */ beqz $v0, .L80102E58
/* B79FEC 80102E4C 26100001 */ addiu $s0, $s0, 1
/* B79FF0 80102E50 10000049 */ b .L80102F78
/* B79FF4 80102E54 00601025 */ move $v0, $v1
.L80102E58:
/* B79FF8 80102E58 2A010008 */ slti $at, $s0, 8
/* B79FFC 80102E5C 1420FFD9 */ bnez $at, .L80102DC4
/* B7A000 80102E60 26310020 */ addiu $s1, $s1, 0x20
/* B7A004 80102E64 16800038 */ bnez $s4, .L80102F48
/* B7A008 80102E68 8FB90048 */ lw $t9, 0x48($sp)
/* B7A00C 80102E6C 8FB8005C */ lw $t8, 0x5c($sp)
/* B7A010 80102E70 00192823 */ negu $a1, $t9
/* B7A014 80102E74 00054840 */ sll $t1, $a1, 1
/* B7A018 80102E78 00194040 */ sll $t0, $t9, 1
/* B7A01C 80102E7C 25250100 */ addiu $a1, $t1, 0x100
/* B7A020 80102E80 0308A021 */ addu $s4, $t8, $t0
/* B7A024 80102E84 02802025 */ move $a0, $s4
/* B7A028 80102E88 0C040908 */ jal func_80102420
/* B7A02C 80102E8C AFA5003C */ sw $a1, 0x3c($sp)
/* B7A030 80102E90 8FAB005C */ lw $t3, 0x5c($sp)
/* B7A034 80102E94 304A00FF */ andi $t2, $v0, 0xff
/* B7A038 80102E98 00008025 */ move $s0, $zero
/* B7A03C 80102E9C 916C0001 */ lbu $t4, 1($t3)
/* B7A040 80102EA0 01608825 */ move $s1, $t3
/* B7A044 80102EA4 514C0029 */ beql $t2, $t4, .L80102F4C
/* B7A048 80102EA8 93AB0067 */ lbu $t3, 0x67($sp)
.L80102EAC:
/* B7A04C 80102EAC 8E4E0058 */ lw $t6, 0x58($s2)
/* B7A050 80102EB0 8E440004 */ lw $a0, 4($s2)
/* B7A054 80102EB4 8E450008 */ lw $a1, 8($s2)
/* B7A058 80102EB8 01D36821 */ addu $t5, $t6, $s3
/* B7A05C 80102EBC 01B03021 */ addu $a2, $t5, $s0
/* B7A060 80102EC0 30CFFFFF */ andi $t7, $a2, 0xffff
/* B7A064 80102EC4 01E03025 */ move $a2, $t7
/* B7A068 80102EC8 0C0417D0 */ jal func_80105F40
/* B7A06C 80102ECC 02203825 */ move $a3, $s1
/* B7A070 80102ED0 26100001 */ addiu $s0, $s0, 1
/* B7A074 80102ED4 2A010008 */ slti $at, $s0, 8
/* B7A078 80102ED8 1420FFF4 */ bnez $at, .L80102EAC
/* B7A07C 80102EDC 26310020 */ addiu $s1, $s1, 0x20
/* B7A080 80102EE0 02802025 */ move $a0, $s4
/* B7A084 80102EE4 0C040908 */ jal func_80102420
/* B7A088 80102EE8 8FA5003C */ lw $a1, 0x3c($sp)
/* B7A08C 80102EEC 8FA8005C */ lw $t0, 0x5c($sp)
/* B7A090 80102EF0 305800FF */ andi $t8, $v0, 0xff
/* B7A094 80102EF4 00008025 */ move $s0, $zero
/* B7A098 80102EF8 91190001 */ lbu $t9, 1($t0)
/* B7A09C 80102EFC 8FB1005C */ lw $s1, 0x5c($sp)
/* B7A0A0 80102F00 13190003 */ beq $t8, $t9, .L80102F10
/* B7A0A4 80102F04 00000000 */ nop
/* B7A0A8 80102F08 1000001B */ b .L80102F78
/* B7A0AC 80102F0C 24020003 */ li $v0, 3
.L80102F10:
/* B7A0B0 80102F10 8E490054 */ lw $t1, 0x54($s2)
/* B7A0B4 80102F14 8E440004 */ lw $a0, 4($s2)
/* B7A0B8 80102F18 8E450008 */ lw $a1, 8($s2)
/* B7A0BC 80102F1C 01335021 */ addu $t2, $t1, $s3
/* B7A0C0 80102F20 01503021 */ addu $a2, $t2, $s0
/* B7A0C4 80102F24 30CCFFFF */ andi $t4, $a2, 0xffff
/* B7A0C8 80102F28 01803025 */ move $a2, $t4
/* B7A0CC 80102F2C AFA00010 */ sw $zero, 0x10($sp)
/* B7A0D0 80102F30 0C04173C */ jal func_80105CF0
/* B7A0D4 80102F34 02203825 */ move $a3, $s1
/* B7A0D8 80102F38 26100001 */ addiu $s0, $s0, 1
/* B7A0DC 80102F3C 24010008 */ li $at, 8
/* B7A0E0 80102F40 1601FFF3 */ bne $s0, $at, .L80102F10
/* B7A0E4 80102F44 26310020 */ addiu $s1, $s1, 0x20
.L80102F48:
/* B7A0E8 80102F48 93AB0067 */ lbu $t3, 0x67($sp)
.L80102F4C:
/* B7A0EC 80102F4C 3C018013 */ lui $at, %hi(D_80134CF4) # $at, 0x8013
/* B7A0F0 80102F50 3C058017 */ lui $a1, %hi(D_80175860) # $a1, 0x8017
/* B7A0F4 80102F54 24A55860 */ addiu $a1, %lo(D_80175860) # addiu $a1, $a1, 0x5860
/* B7A0F8 80102F58 8FA4005C */ lw $a0, 0x5c($sp)
/* B7A0FC 80102F5C 24060100 */ li $a2, 256
/* B7A100 80102F60 0C001BC4 */ jal bcopy
/* B7A104 80102F64 A02B4CF4 */ sb $t3, %lo(D_80134CF4)($at)
/* B7A108 80102F68 8E4E0008 */ lw $t6, 8($s2)
/* B7A10C 80102F6C 3C018013 */ lui $at, %hi(D_80134CF0) # $at, 0x8013
/* B7A110 80102F70 00001025 */ move $v0, $zero
/* B7A114 80102F74 AC2E4CF0 */ sw $t6, %lo(D_80134CF0)($at)
.L80102F78:
/* B7A118 80102F78 8FBF0034 */ lw $ra, 0x34($sp)
.L80102F7C:
/* B7A11C 80102F7C 8FB00020 */ lw $s0, 0x20($sp)
/* B7A120 80102F80 8FB10024 */ lw $s1, 0x24($sp)
/* B7A124 80102F84 8FB20028 */ lw $s2, 0x28($sp)
/* B7A128 80102F88 8FB3002C */ lw $s3, 0x2c($sp)
/* B7A12C 80102F8C 8FB40030 */ lw $s4, 0x30($sp)
/* B7A130 80102F90 03E00008 */ jr $ra
/* B7A134 80102F94 27BD0058 */ addiu $sp, $sp, 0x58

39
asm/code_80102FA0.s Normal file
View file

@ -0,0 +1,39 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80102FA0
/* B7A140 80102FA0 3C013780 */ li $at, 0x37800000 # 0.000000
/* B7A144 80102FA4 44810000 */ mtc1 $at, $f0
/* B7A148 80102FA8 3C19FFFF */ li $t9, 0xFFFF0000 # 0.000000
/* B7A14C 80102FAC 24B80020 */ addiu $t8, $a1, 0x20
.L80102FB0:
/* B7A150 80102FB0 8CA80000 */ lw $t0, ($a1)
/* B7A154 80102FB4 8CA90020 */ lw $t1, 0x20($a1)
/* B7A158 80102FB8 24A50004 */ addiu $a1, $a1, 4
/* B7A15C 80102FBC 01195024 */ and $t2, $t0, $t9
/* B7A160 80102FC0 00095C02 */ srl $t3, $t1, 0x10
/* B7A164 80102FC4 014B6025 */ or $t4, $t2, $t3
/* B7A168 80102FC8 448C2000 */ mtc1 $t4, $f4
/* B7A16C 80102FCC 00086C00 */ sll $t5, $t0, 0x10
/* B7A170 80102FD0 312EFFFF */ andi $t6, $t1, 0xffff
/* B7A174 80102FD4 01AE7825 */ or $t7, $t5, $t6
/* B7A178 80102FD8 468021A0 */ cvt.s.w $f6, $f4
/* B7A17C 80102FDC 448F5000 */ mtc1 $t7, $f10
/* B7A180 80102FE0 24840008 */ addiu $a0, $a0, 8
/* B7A184 80102FE4 46805420 */ cvt.s.w $f16, $f10
/* B7A188 80102FE8 46003202 */ mul.s $f8, $f6, $f0
/* B7A18C 80102FEC 00000000 */ nop
/* B7A190 80102FF0 46008482 */ mul.s $f18, $f16, $f0
/* B7A194 80102FF4 E488FFF8 */ swc1 $f8, -8($a0)
/* B7A198 80102FF8 14B8FFED */ bne $a1, $t8, .L80102FB0
/* B7A19C 80102FFC E492FFFC */ swc1 $f18, -4($a0)
/* B7A1A0 80103000 03E00008 */ jr $ra
/* B7A1A4 80103004 00000000 */ nop

140
asm/code_80103010.s Normal file
View file

@ -0,0 +1,140 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80103010
/* B7A1B0 80103010 27BDFF88 */ addiu $sp, $sp, -0x78
/* B7A1B4 80103014 AFBF003C */ sw $ra, 0x3c($sp)
/* B7A1B8 80103018 AFBE0038 */ sw $fp, 0x38($sp)
/* B7A1BC 8010301C AFB70034 */ sw $s7, 0x34($sp)
/* B7A1C0 80103020 AFB60030 */ sw $s6, 0x30($sp)
/* B7A1C4 80103024 AFB5002C */ sw $s5, 0x2c($sp)
/* B7A1C8 80103028 AFB40028 */ sw $s4, 0x28($sp)
/* B7A1CC 8010302C AFB30024 */ sw $s3, 0x24($sp)
/* B7A1D0 80103030 AFB20020 */ sw $s2, 0x20($sp)
/* B7A1D4 80103034 AFB1001C */ sw $s1, 0x1c($sp)
/* B7A1D8 80103038 AFB00018 */ sw $s0, 0x18($sp)
/* B7A1DC 8010303C AFA5007C */ sw $a1, 0x7c($sp)
/* B7A1E0 80103040 8C8E0000 */ lw $t6, ($a0)
/* B7A1E4 80103044 00809025 */ move $s2, $a0
/* B7A1E8 80103048 00E0A825 */ move $s5, $a3
/* B7A1EC 8010304C 31CF0001 */ andi $t7, $t6, 1
/* B7A1F0 80103050 30B7FFFF */ andi $s7, $a1, 0xffff
/* B7A1F4 80103054 15E00003 */ bnez $t7, .L80103064
/* B7A1F8 80103058 00C0F025 */ move $fp, $a2
/* B7A1FC 8010305C 10000051 */ b .L801031A4
/* B7A200 80103060 24020005 */ li $v0, 5
.L80103064:
/* B7A204 80103064 0C040AFC */ jal func_80102BF0
/* B7A208 80103068 02402025 */ move $a0, $s2
/* B7A20C 8010306C 50400004 */ beql $v0, $zero, .L80103080
/* B7A210 80103070 8E580050 */ lw $t8, 0x50($s2)
/* B7A214 80103074 1000004C */ b .L801031A8
/* B7A218 80103078 8FBF003C */ lw $ra, 0x3c($sp)
/* B7A21C 8010307C 8E580050 */ lw $t8, 0x50($s2)
.L80103080:
/* B7A220 80103080 00009825 */ move $s3, $zero
/* B7A224 80103084 27B60050 */ addiu $s6, $sp, 0x50
/* B7A228 80103088 1B000042 */ blez $t8, .L80103194
/* B7A22C 8010308C 8FB40088 */ lw $s4, 0x88($sp)
/* B7A230 80103090 27B10060 */ addiu $s1, $sp, 0x60
/* B7A234 80103094 27B00054 */ addiu $s0, $sp, 0x54
/* B7A238 80103098 8E59005C */ lw $t9, 0x5c($s2)
.L8010309C:
/* B7A23C 8010309C 8E440004 */ lw $a0, 4($s2)
/* B7A240 801030A0 8E450008 */ lw $a1, 8($s2)
/* B7A244 801030A4 03333021 */ addu $a2, $t9, $s3
/* B7A248 801030A8 30C8FFFF */ andi $t0, $a2, 0xffff
/* B7A24C 801030AC 01003025 */ move $a2, $t0
/* B7A250 801030B0 0C0417D0 */ jal func_80105F40
/* B7A254 801030B4 02C03825 */ move $a3, $s6
/* B7A258 801030B8 50400004 */ beql $v0, $zero, .L801030CC
/* B7A25C 801030BC 8E440004 */ lw $a0, 4($s2)
/* B7A260 801030C0 10000039 */ b .L801031A8
/* B7A264 801030C4 8FBF003C */ lw $ra, 0x3c($sp)
/* B7A268 801030C8 8E440004 */ lw $a0, 4($s2)
.L801030CC:
/* B7A26C 801030CC 0C040644 */ jal func_80101910
/* B7A270 801030D0 8E450008 */ lw $a1, 8($s2)
/* B7A274 801030D4 10400003 */ beqz $v0, .L801030E4
/* B7A278 801030D8 00403025 */ move $a2, $v0
/* B7A27C 801030DC 10000032 */ b .L801031A8
/* B7A280 801030E0 8FBF003C */ lw $ra, 0x3c($sp)
.L801030E4:
/* B7A284 801030E4 97A90054 */ lhu $t1, 0x54($sp)
/* B7A288 801030E8 8FAA0050 */ lw $t2, 0x50($sp)
/* B7A28C 801030EC 56E90025 */ bnel $s7, $t1, .L80103184
/* B7A290 801030F0 8E580050 */ lw $t8, 0x50($s2)
/* B7A294 801030F4 555E0023 */ bnel $t2, $fp, .L80103184
/* B7A298 801030F8 8E580050 */ lw $t8, 0x50($s2)
/* B7A29C 801030FC 12A0000C */ beqz $s5, .L80103130
/* B7A2A0 80103100 00002025 */ move $a0, $zero
/* B7A2A4 80103104 27A20050 */ addiu $v0, $sp, 0x50
/* B7A2A8 80103108 02A01825 */ move $v1, $s5
.L8010310C:
/* B7A2AC 8010310C 904B0010 */ lbu $t3, 0x10($v0)
/* B7A2B0 80103110 906C0000 */ lbu $t4, ($v1)
/* B7A2B4 80103114 24420001 */ addiu $v0, $v0, 1
/* B7A2B8 80103118 116C0003 */ beq $t3, $t4, .L80103128
/* B7A2BC 8010311C 00000000 */ nop
/* B7A2C0 80103120 10000003 */ b .L80103130
/* B7A2C4 80103124 24040001 */ li $a0, 1
.L80103128:
/* B7A2C8 80103128 1451FFF8 */ bne $v0, $s1, .L8010310C
/* B7A2CC 8010312C 24630001 */ addiu $v1, $v1, 1
.L80103130:
/* B7A2D0 80103130 1280000D */ beqz $s4, .L80103168
/* B7A2D4 80103134 00000000 */ nop
/* B7A2D8 80103138 1480000B */ bnez $a0, .L80103168
/* B7A2DC 8010313C 27A20050 */ addiu $v0, $sp, 0x50
/* B7A2E0 80103140 02801825 */ move $v1, $s4
.L80103144:
/* B7A2E4 80103144 904D000C */ lbu $t5, 0xc($v0)
/* B7A2E8 80103148 906E0000 */ lbu $t6, ($v1)
/* B7A2EC 8010314C 24420001 */ addiu $v0, $v0, 1
/* B7A2F0 80103150 11AE0003 */ beq $t5, $t6, .L80103160
/* B7A2F4 80103154 00000000 */ nop
/* B7A2F8 80103158 10000003 */ b .L80103168
/* B7A2FC 8010315C 24040001 */ li $a0, 1
.L80103160:
/* B7A300 80103160 1450FFF8 */ bne $v0, $s0, .L80103144
/* B7A304 80103164 24630001 */ addiu $v1, $v1, 1
.L80103168:
/* B7A308 80103168 54800006 */ bnezl $a0, .L80103184
/* B7A30C 8010316C 8E580050 */ lw $t8, 0x50($s2)
/* B7A310 80103170 8FAF008C */ lw $t7, 0x8c($sp)
/* B7A314 80103174 00C01025 */ move $v0, $a2
/* B7A318 80103178 1000000A */ b .L801031A4
/* B7A31C 8010317C ADF30000 */ sw $s3, ($t7)
/* B7A320 80103180 8E580050 */ lw $t8, 0x50($s2)
.L80103184:
/* B7A324 80103184 26730001 */ addiu $s3, $s3, 1
/* B7A328 80103188 0278082A */ slt $at, $s3, $t8
/* B7A32C 8010318C 5420FFC3 */ bnezl $at, .L8010309C
/* B7A330 80103190 8E59005C */ lw $t9, 0x5c($s2)
.L80103194:
/* B7A334 80103194 8FA8008C */ lw $t0, 0x8c($sp)
/* B7A338 80103198 2419FFFF */ li $t9, -1
/* B7A33C 8010319C 24020005 */ li $v0, 5
/* B7A340 801031A0 AD190000 */ sw $t9, ($t0)
.L801031A4:
/* B7A344 801031A4 8FBF003C */ lw $ra, 0x3c($sp)
.L801031A8:
/* B7A348 801031A8 8FB00018 */ lw $s0, 0x18($sp)
/* B7A34C 801031AC 8FB1001C */ lw $s1, 0x1c($sp)
/* B7A350 801031B0 8FB20020 */ lw $s2, 0x20($sp)
/* B7A354 801031B4 8FB30024 */ lw $s3, 0x24($sp)
/* B7A358 801031B8 8FB40028 */ lw $s4, 0x28($sp)
/* B7A35C 801031BC 8FB5002C */ lw $s5, 0x2c($sp)
/* B7A360 801031C0 8FB60030 */ lw $s6, 0x30($sp)
/* B7A364 801031C4 8FB70034 */ lw $s7, 0x34($sp)
/* B7A368 801031C8 8FBE0038 */ lw $fp, 0x38($sp)
/* B7A36C 801031CC 03E00008 */ jr $ra
/* B7A370 801031D0 27BD0078 */ addiu $sp, $sp, 0x78

623
asm/code_801031F0.s Normal file
View file

@ -0,0 +1,623 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_801031F0
/* B7A390 801031F0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B7A394 801031F4 AFBF0014 */ sw $ra, 0x14($sp)
/* B7A398 801031F8 0C0419E8 */ jal func_801067A0
/* B7A39C 801031FC 00002025 */ move $a0, $zero
/* B7A3A0 80103200 8FBF0014 */ lw $ra, 0x14($sp)
/* B7A3A4 80103204 27BD0018 */ addiu $sp, $sp, 0x18
/* B7A3A8 80103208 03E00008 */ jr $ra
/* B7A3AC 8010320C 00000000 */ nop
glabel func_80103210
/* B7A3B0 80103210 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B7A3B4 80103214 AFBF0014 */ sw $ra, 0x14($sp)
/* B7A3B8 80103218 0C0402E8 */ jal __osSiGetAccess
/* B7A3BC 8010321C AFA40020 */ sw $a0, 0x20($sp)
/* B7A3C0 80103220 3C0E8017 */ lui $t6, %hi(_osCont_lastPollType) # $t6, 0x8017
/* B7A3C4 80103224 91CE5810 */ lbu $t6, %lo(_osCont_lastPollType)($t6)
/* B7A3C8 80103228 11C0000B */ beqz $t6, .L80103258
/* B7A3CC 8010322C 00000000 */ nop
/* B7A3D0 80103230 0C040386 */ jal __osPackRequestData
/* B7A3D4 80103234 00002025 */ move $a0, $zero
/* B7A3D8 80103238 3C058017 */ lui $a1, %hi(_osPifInternalBuff) # $a1, 0x8017
/* B7A3DC 8010323C 24A557D0 */ addiu $a1, %lo(_osPifInternalBuff) # addiu $a1, $a1, 0x57d0
/* B7A3E0 80103240 0C0404FC */ jal __osSiRawStartDma /*(s32 dir, void *addr)*/
/* B7A3E4 80103244 24040001 */ li $a0, 1
/* B7A3E8 80103248 8FA40020 */ lw $a0, 0x20($sp)
/* B7A3EC 8010324C 00002825 */ move $a1, $zero
/* B7A3F0 80103250 0C000CA0 */ jal osRecvMesg
/* B7A3F4 80103254 24060001 */ li $a2, 1
.L80103258:
/* B7A3F8 80103258 3C058017 */ lui $a1, %hi(_osPifInternalBuff) # $a1, 0x8017
/* B7A3FC 8010325C 24A557D0 */ addiu $a1, %lo(_osPifInternalBuff) # addiu $a1, $a1, 0x57d0
/* B7A400 80103260 0C0404FC */ jal __osSiRawStartDma /*(s32 dir, void *addr)*/
/* B7A404 80103264 00002025 */ move $a0, $zero
/* B7A408 80103268 3C018017 */ lui $at, %hi(_osCont_lastPollType) # $at, 0x8017
/* B7A40C 8010326C AFA2001C */ sw $v0, 0x1c($sp)
/* B7A410 80103270 0C0402F9 */ jal __osSiRelAccess
/* B7A414 80103274 A0205810 */ sb $zero, %lo(_osCont_lastPollType)($at)
/* B7A418 80103278 8FBF0014 */ lw $ra, 0x14($sp)
/* B7A41C 8010327C 8FA2001C */ lw $v0, 0x1c($sp)
/* B7A420 80103280 27BD0020 */ addiu $sp, $sp, 0x20
/* B7A424 80103284 03E00008 */ jr $ra
/* B7A428 80103288 00000000 */ nop
glabel func_8010328C
/* B7A42C 8010328C 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B7A430 80103290 AFBF0014 */ sw $ra, 0x14($sp)
/* B7A434 80103294 00802825 */ move $a1, $a0
/* B7A438 80103298 0C04035B */ jal __osContGetInitData
/* B7A43C 8010329C 27A4001F */ addiu $a0, $sp, 0x1f
/* B7A440 801032A0 8FBF0014 */ lw $ra, 0x14($sp)
/* B7A444 801032A4 27BD0020 */ addiu $sp, $sp, 0x20
/* B7A448 801032A8 03E00008 */ jr $ra
/* B7A44C 801032AC 00000000 */ nop
glabel func_801032B0
/* B7A450 801032B0 27BDFF70 */ addiu $sp, $sp, -0x90
/* B7A454 801032B4 AFBF003C */ sw $ra, 0x3c($sp)
/* B7A458 801032B8 F7BC0030 */ sdc1 $f28, 0x30($sp)
/* B7A45C 801032BC F7BA0028 */ sdc1 $f26, 0x28($sp)
/* B7A460 801032C0 F7B80020 */ sdc1 $f24, 0x20($sp)
/* B7A464 801032C4 F7B60018 */ sdc1 $f22, 0x18($sp)
/* B7A468 801032C8 F7B40010 */ sdc1 $f20, 0x10($sp)
/* B7A46C 801032CC AFA7009C */ sw $a3, 0x9c($sp)
/* B7A470 801032D0 AFA40090 */ sw $a0, 0x90($sp)
/* B7A474 801032D4 AFA50094 */ sw $a1, 0x94($sp)
/* B7A478 801032D8 0C0406D0 */ jal func_80101B40
/* B7A47C 801032DC AFA60098 */ sw $a2, 0x98($sp)
/* B7A480 801032E0 C7A800A8 */ lwc1 $f8, 0xa8($sp)
/* B7A484 801032E4 C7A6009C */ lwc1 $f6, 0x9c($sp)
/* B7A488 801032E8 C7AA00AC */ lwc1 $f10, 0xac($sp)
/* B7A48C 801032EC C7A400A0 */ lwc1 $f4, 0xa0($sp)
/* B7A490 801032F0 46064301 */ sub.s $f12, $f8, $f6
/* B7A494 801032F4 C7A600A4 */ lwc1 $f6, 0xa4($sp)
/* B7A498 801032F8 C7A800B0 */ lwc1 $f8, 0xb0($sp)
/* B7A49C 801032FC 46045381 */ sub.s $f14, $f10, $f4
/* B7A4A0 80103300 460C6282 */ mul.s $f10, $f12, $f12
/* B7A4A4 80103304 3C013FF0 */ li $at, 0x3FF00000 # 0.000000
/* B7A4A8 80103308 46064401 */ sub.s $f16, $f8, $f6
/* B7A4AC 8010330C 460E7102 */ mul.s $f4, $f14, $f14
/* B7A4B0 80103310 4481B800 */ mtc1 $at, $f23
/* B7A4B4 80103314 3C01BFF0 */ li $at, 0xBFF00000 # 0.000000
/* B7A4B8 80103318 46108182 */ mul.s $f6, $f16, $f16
/* B7A4BC 8010331C 44815800 */ mtc1 $at, $f11
/* B7A4C0 80103320 C7B400B8 */ lwc1 $f20, 0xb8($sp)
/* B7A4C4 80103324 4480B000 */ mtc1 $zero, $f22
/* B7A4C8 80103328 3C018015 */ lui $at, %hi(D_8014B270)
/* B7A4CC 8010332C 46045200 */ add.s $f8, $f10, $f4
/* B7A4D0 80103330 44805000 */ mtc1 $zero, $f10
/* B7A4D4 80103334 8FA200D8 */ lw $v0, 0xd8($sp)
/* B7A4D8 80103338 8FA300DC */ lw $v1, 0xdc($sp)
/* B7A4DC 8010333C 46064000 */ add.s $f0, $f8, $f6
/* B7A4E0 80103340 8FA40090 */ lw $a0, 0x90($sp)
/* B7A4E4 80103344 8FA50094 */ lw $a1, 0x94($sp)
/* B7A4E8 80103348 8FA60098 */ lw $a2, 0x98($sp)
/* B7A4EC 8010334C 46000004 */ sqrt.s $f0, $f0
/* B7A4F0 80103350 00027040 */ sll $t6, $v0, 1
/* B7A4F4 80103354 00037840 */ sll $t7, $v1, 1
/* B7A4F8 80103358 46000121 */ cvt.d.s $f4, $f0
/* B7A4FC 8010335C 46245203 */ div.d $f8, $f10, $f4
/* B7A500 80103360 462044A0 */ cvt.s.d $f18, $f8
/* B7A504 80103364 46126182 */ mul.s $f6, $f12, $f18
/* B7A508 80103368 E7A60054 */ swc1 $f6, 0x54($sp)
/* B7A50C 8010336C 46127102 */ mul.s $f4, $f14, $f18
/* B7A510 80103370 C7AA0054 */ lwc1 $f10, 0x54($sp)
/* B7A514 80103374 46128182 */ mul.s $f6, $f16, $f18
/* B7A518 80103378 E7AA0088 */ swc1 $f10, 0x88($sp)
/* B7A51C 8010337C E7A40050 */ swc1 $f4, 0x50($sp)
/* B7A520 80103380 C7A80050 */ lwc1 $f8, 0x50($sp)
/* B7A524 80103384 C7A400BC */ lwc1 $f4, 0xbc($sp)
/* B7A528 80103388 E7A6004C */ swc1 $f6, 0x4c($sp)
/* B7A52C 8010338C C7AA004C */ lwc1 $f10, 0x4c($sp)
/* B7A530 80103390 E7A80084 */ swc1 $f8, 0x84($sp)
/* B7A534 80103394 C7A80050 */ lwc1 $f8, 0x50($sp)
/* B7A538 80103398 E7AA0080 */ swc1 $f10, 0x80($sp)
/* B7A53C 8010339C C7AA004C */ lwc1 $f10, 0x4c($sp)
/* B7A540 801033A0 46082182 */ mul.s $f6, $f4, $f8
/* B7A544 801033A4 00000000 */ nop
/* B7A548 801033A8 460AA102 */ mul.s $f4, $f20, $f10
/* B7A54C 801033AC C7AA00BC */ lwc1 $f10, 0xbc($sp)
/* B7A550 801033B0 46062201 */ sub.s $f8, $f4, $f6
/* B7A554 801033B4 C7A40054 */ lwc1 $f4, 0x54($sp)
/* B7A558 801033B8 46045182 */ mul.s $f6, $f10, $f4
/* B7A55C 801033BC E7A80048 */ swc1 $f8, 0x48($sp)
/* B7A560 801033C0 C7A800B4 */ lwc1 $f8, 0xb4($sp)
/* B7A564 801033C4 C7AA004C */ lwc1 $f10, 0x4c($sp)
/* B7A568 801033C8 C7B80048 */ lwc1 $f24, 0x48($sp)
/* B7A56C 801033CC 460A4102 */ mul.s $f4, $f8, $f10
/* B7A570 801033D0 C7AA00B4 */ lwc1 $f10, 0xb4($sp)
/* B7A574 801033D4 46043201 */ sub.s $f8, $f6, $f4
/* B7A578 801033D8 C7A60050 */ lwc1 $f6, 0x50($sp)
/* B7A57C 801033DC E7A8004C */ swc1 $f8, 0x4c($sp)
/* B7A580 801033E0 46065102 */ mul.s $f4, $f10, $f6
/* B7A584 801033E4 C7A80054 */ lwc1 $f8, 0x54($sp)
/* B7A588 801033E8 C7BA004C */ lwc1 $f26, 0x4c($sp)
/* B7A58C 801033EC 4608A282 */ mul.s $f10, $f20, $f8
/* B7A590 801033F0 C7A80048 */ lwc1 $f8, 0x48($sp)
/* B7A594 801033F4 C7B400C0 */ lwc1 $f20, 0xc0($sp)
/* B7A598 801033F8 460A2181 */ sub.s $f6, $f4, $f10
/* B7A59C 801033FC C7A40048 */ lwc1 $f4, 0x48($sp)
/* B7A5A0 80103400 46044282 */ mul.s $f10, $f8, $f4
/* B7A5A4 80103404 E7A60054 */ swc1 $f6, 0x54($sp)
/* B7A5A8 80103408 C7A6004C */ lwc1 $f6, 0x4c($sp)
/* B7A5AC 8010340C C7A8004C */ lwc1 $f8, 0x4c($sp)
/* B7A5B0 80103410 C7BC0054 */ lwc1 $f28, 0x54($sp)
/* B7A5B4 80103414 46083102 */ mul.s $f4, $f6, $f8
/* B7A5B8 80103418 C7A80054 */ lwc1 $f8, 0x54($sp)
/* B7A5BC 8010341C 46045180 */ add.s $f6, $f10, $f4
/* B7A5C0 80103420 C7AA0054 */ lwc1 $f10, 0x54($sp)
/* B7A5C4 80103424 460A4102 */ mul.s $f4, $f8, $f10
/* B7A5C8 80103428 46043000 */ add.s $f0, $f6, $f4
/* B7A5CC 8010342C C7A60084 */ lwc1 $f6, 0x84($sp)
/* B7A5D0 80103430 46000004 */ sqrt.s $f0, $f0
/* B7A5D4 80103434 46000221 */ cvt.d.s $f8, $f0
/* B7A5D8 80103438 4628B283 */ div.d $f10, $f22, $f8
/* B7A5DC 8010343C C7A80080 */ lwc1 $f8, 0x80($sp)
/* B7A5E0 80103440 462050A0 */ cvt.s.d $f2, $f10
/* B7A5E4 80103444 4602C602 */ mul.s $f24, $f24, $f2
/* B7A5E8 80103448 00000000 */ nop
/* B7A5EC 8010344C 4602D682 */ mul.s $f26, $f26, $f2
/* B7A5F0 80103450 00000000 */ nop
/* B7A5F4 80103454 4602E702 */ mul.s $f28, $f28, $f2
/* B7A5F8 80103458 00000000 */ nop
/* B7A5FC 8010345C 461C3102 */ mul.s $f4, $f6, $f28
/* B7A600 80103460 C7A60080 */ lwc1 $f6, 0x80($sp)
/* B7A604 80103464 461A4282 */ mul.s $f10, $f8, $f26
/* B7A608 80103468 460A2381 */ sub.s $f14, $f4, $f10
/* B7A60C 8010346C 46183202 */ mul.s $f8, $f6, $f24
/* B7A610 80103470 C7A40088 */ lwc1 $f4, 0x88($sp)
/* B7A614 80103474 C7A60088 */ lwc1 $f6, 0x88($sp)
/* B7A618 80103478 461C2282 */ mul.s $f10, $f4, $f28
/* B7A61C 8010347C 460A4401 */ sub.s $f16, $f8, $f10
/* B7A620 80103480 461A3102 */ mul.s $f4, $f6, $f26
/* B7A624 80103484 C7A80084 */ lwc1 $f8, 0x84($sp)
/* B7A628 80103488 46184282 */ mul.s $f10, $f8, $f24
/* B7A62C 8010348C 460A2481 */ sub.s $f18, $f4, $f10
/* B7A630 80103490 460E7182 */ mul.s $f6, $f14, $f14
/* B7A634 80103494 00000000 */ nop
/* B7A638 80103498 46108202 */ mul.s $f8, $f16, $f16
/* B7A63C 8010349C 46083100 */ add.s $f4, $f6, $f8
/* B7A640 801034A0 46129282 */ mul.s $f10, $f18, $f18
/* B7A644 801034A4 460A2000 */ add.s $f0, $f4, $f10
/* B7A648 801034A8 46000004 */ sqrt.s $f0, $f0
/* B7A64C 801034AC 460001A1 */ cvt.d.s $f6, $f0
/* B7A650 801034B0 4626B203 */ div.d $f8, $f22, $f6
/* B7A654 801034B4 462040A0 */ cvt.s.d $f2, $f8
/* B7A658 801034B8 C7A800C4 */ lwc1 $f8, 0xc4($sp)
/* B7A65C 801034BC 46027102 */ mul.s $f4, $f14, $f2
/* B7A660 801034C0 00000000 */ nop
/* B7A664 801034C4 46028282 */ mul.s $f10, $f16, $f2
/* B7A668 801034C8 E7A400B4 */ swc1 $f4, 0xb4($sp)
/* B7A66C 801034CC 46029182 */ mul.s $f6, $f18, $f2
/* B7A670 801034D0 C7A400C4 */ lwc1 $f4, 0xc4($sp)
/* B7A674 801034D4 E7AA00B8 */ swc1 $f10, 0xb8($sp)
/* B7A678 801034D8 46044282 */ mul.s $f10, $f8, $f4
/* B7A67C 801034DC C7A400C8 */ lwc1 $f4, 0xc8($sp)
/* B7A680 801034E0 E7A600BC */ swc1 $f6, 0xbc($sp)
/* B7A684 801034E4 4614A182 */ mul.s $f6, $f20, $f20
/* B7A688 801034E8 460A3200 */ add.s $f8, $f6, $f10
/* B7A68C 801034EC C7A600C8 */ lwc1 $f6, 0xc8($sp)
/* B7A690 801034F0 46062282 */ mul.s $f10, $f4, $f6
/* B7A694 801034F4 460A4000 */ add.s $f0, $f8, $f10
/* B7A698 801034F8 C7A800C4 */ lwc1 $f8, 0xc4($sp)
/* B7A69C 801034FC 46000004 */ sqrt.s $f0, $f0
/* B7A6A0 80103500 46000121 */ cvt.d.s $f4, $f0
/* B7A6A4 80103504 4624B183 */ div.d $f6, $f22, $f4
/* B7A6A8 80103508 C7A400C8 */ lwc1 $f4, 0xc8($sp)
/* B7A6AC 8010350C 462030A0 */ cvt.s.d $f2, $f6
/* B7A6B0 80103510 4602A502 */ mul.s $f20, $f20, $f2
/* B7A6B4 80103514 00000000 */ nop
/* B7A6B8 80103518 46024282 */ mul.s $f10, $f8, $f2
/* B7A6BC 8010351C 00000000 */ nop
/* B7A6C0 80103520 46022182 */ mul.s $f6, $f4, $f2
/* B7A6C4 80103524 E7B400C0 */ swc1 $f20, 0xc0($sp)
/* B7A6C8 80103528 C7A800C0 */ lwc1 $f8, 0xc0($sp)
/* B7A6CC 8010352C C7A40088 */ lwc1 $f4, 0x88($sp)
/* B7A6D0 80103530 E7AA00C4 */ swc1 $f10, 0xc4($sp)
/* B7A6D4 80103534 46044080 */ add.s $f2, $f8, $f4
/* B7A6D8 80103538 E7A600C8 */ swc1 $f6, 0xc8($sp)
/* B7A6DC 8010353C C7A60084 */ lwc1 $f6, 0x84($sp)
/* B7A6E0 80103540 C7A400C8 */ lwc1 $f4, 0xc8($sp)
/* B7A6E4 80103544 46065200 */ add.s $f8, $f10, $f6
/* B7A6E8 80103548 C7AA0080 */ lwc1 $f10, 0x80($sp)
/* B7A6EC 8010354C E7A80050 */ swc1 $f8, 0x50($sp)
/* B7A6F0 80103550 460A2180 */ add.s $f6, $f4, $f10
/* B7A6F4 80103554 C7A40050 */ lwc1 $f4, 0x50($sp)
/* B7A6F8 80103558 C7A80050 */ lwc1 $f8, 0x50($sp)
/* B7A6FC 8010355C E7A6004C */ swc1 $f6, 0x4c($sp)
/* B7A700 80103560 46044282 */ mul.s $f10, $f8, $f4
/* B7A704 80103564 C7A4004C */ lwc1 $f4, 0x4c($sp)
/* B7A708 80103568 46021182 */ mul.s $f6, $f2, $f2
/* B7A70C 8010356C 460A3200 */ add.s $f8, $f6, $f10
/* B7A710 80103570 C7A6004C */ lwc1 $f6, 0x4c($sp)
/* B7A714 80103574 46062282 */ mul.s $f10, $f4, $f6
/* B7A718 80103578 D424B270 */ ldc1 $f4, %lo(D_8014B270)($at)
/* B7A71C 8010357C 460A4000 */ add.s $f0, $f8, $f10
/* B7A720 80103580 46000004 */ sqrt.s $f0, $f0
/* B7A724 80103584 460003A1 */ cvt.d.s $f14, $f0
/* B7A728 80103588 462E203C */ c.lt.d $f4, $f14
/* B7A72C 8010358C 00000000 */ nop
/* B7A730 80103590 45000037 */ bc1f .L80103670
/* B7A734 80103594 00000000 */ nop
/* B7A738 80103598 462EB183 */ div.d $f6, $f22, $f14
/* B7A73C 8010359C C7A80050 */ lwc1 $f8, 0x50($sp)
/* B7A740 801035A0 C7AA004C */ lwc1 $f10, 0x4c($sp)
/* B7A744 801035A4 8FA200D8 */ lw $v0, 0xd8($sp)
/* B7A748 801035A8 3C014000 */ li $at, 0x40000000 # 0.000000
/* B7A74C 801035AC 8FA300DC */ lw $v1, 0xdc($sp)
/* B7A750 801035B0 00024080 */ sll $t0, $v0, 2
/* B7A754 801035B4 00035880 */ sll $t3, $v1, 2
/* B7A758 801035B8 46203320 */ cvt.s.d $f12, $f6
/* B7A75C 801035BC 460C1402 */ mul.s $f16, $f2, $f12
/* B7A760 801035C0 00000000 */ nop
/* B7A764 801035C4 460C4482 */ mul.s $f18, $f8, $f12
/* B7A768 801035C8 00000000 */ nop
/* B7A76C 801035CC 460C5502 */ mul.s $f20, $f10, $f12
/* B7A770 801035D0 00000000 */ nop
/* B7A774 801035D4 46188102 */ mul.s $f4, $f16, $f24
/* B7A778 801035D8 00000000 */ nop
/* B7A77C 801035DC 461A9182 */ mul.s $f6, $f18, $f26
/* B7A780 801035E0 46062200 */ add.s $f8, $f4, $f6
/* B7A784 801035E4 461CA282 */ mul.s $f10, $f20, $f28
/* B7A788 801035E8 44823000 */ mtc1 $v0, $f6
/* B7A78C 801035EC 460A4100 */ add.s $f4, $f8, $f10
/* B7A790 801035F0 46803220 */ cvt.s.w $f8, $f6
/* B7A794 801035F4 44813000 */ mtc1 $at, $f6
/* B7A798 801035F8 46082282 */ mul.s $f10, $f4, $f8
/* B7A79C 801035FC 44884000 */ mtc1 $t0, $f8
/* B7A7A0 80103600 46065102 */ mul.s $f4, $f10, $f6
/* B7A7A4 80103604 468042A0 */ cvt.s.w $f10, $f8
/* B7A7A8 80103608 46045180 */ add.s $f6, $f10, $f4
/* B7A7AC 8010360C 4600320D */ trunc.w.s $f8, $f6
/* B7A7B0 80103610 440A4000 */ mfc1 $t2, $f8
/* B7A7B4 80103614 00000000 */ nop
/* B7A7B8 80103618 ACCA0000 */ sw $t2, ($a2)
/* B7A7BC 8010361C C7AA00B4 */ lwc1 $f10, 0xb4($sp)
/* B7A7C0 80103620 C7A600B8 */ lwc1 $f6, 0xb8($sp)
/* B7A7C4 80103624 460A8102 */ mul.s $f4, $f16, $f10
/* B7A7C8 80103628 00000000 */ nop
/* B7A7CC 8010362C 46069202 */ mul.s $f8, $f18, $f6
/* B7A7D0 80103630 C7A600BC */ lwc1 $f6, 0xbc($sp)
/* B7A7D4 80103634 46082280 */ add.s $f10, $f4, $f8
/* B7A7D8 80103638 4606A102 */ mul.s $f4, $f20, $f6
/* B7A7DC 8010363C 44833000 */ mtc1 $v1, $f6
/* B7A7E0 80103640 46045200 */ add.s $f8, $f10, $f4
/* B7A7E4 80103644 468032A0 */ cvt.s.w $f10, $f6
/* B7A7E8 80103648 44813000 */ mtc1 $at, $f6
/* B7A7EC 8010364C 460A4102 */ mul.s $f4, $f8, $f10
/* B7A7F0 80103650 448B5000 */ mtc1 $t3, $f10
/* B7A7F4 80103654 46062202 */ mul.s $f8, $f4, $f6
/* B7A7F8 80103658 46805120 */ cvt.s.w $f4, $f10
/* B7A7FC 8010365C 46082180 */ add.s $f6, $f4, $f8
/* B7A800 80103660 4600328D */ trunc.w.s $f10, $f6
/* B7A804 80103664 440D5000 */ mfc1 $t5, $f10
/* B7A808 80103668 10000003 */ b .L80103678
/* B7A80C 8010366C ACCD0004 */ sw $t5, 4($a2)
.L80103670:
/* B7A810 80103670 ACCE0000 */ sw $t6, ($a2)
/* B7A814 80103674 ACCF0004 */ sw $t7, 4($a2)
.L80103678:
/* B7A818 80103678 C7A400CC */ lwc1 $f4, 0xcc($sp)
/* B7A81C 8010367C C7A600D0 */ lwc1 $f6, 0xd0($sp)
/* B7A820 80103680 3C018015 */ lui $at, %hi(D_8014B278)
/* B7A824 80103684 46042202 */ mul.s $f8, $f4, $f4
/* B7A828 80103688 E7A40040 */ swc1 $f4, 0x40($sp)
/* B7A82C 8010368C 00026040 */ sll $t4, $v0, 1
/* B7A830 80103690 46063282 */ mul.s $f10, $f6, $f6
/* B7A834 80103694 00036840 */ sll $t5, $v1, 1
/* B7A838 80103698 460A4200 */ add.s $f8, $f8, $f10
/* B7A83C 8010369C C7AA00D4 */ lwc1 $f10, 0xd4($sp)
/* B7A840 801036A0 460A5102 */ mul.s $f4, $f10, $f10
/* B7A844 801036A4 46044000 */ add.s $f0, $f8, $f4
/* B7A848 801036A8 46000004 */ sqrt.s $f0, $f0
/* B7A84C 801036AC 46000221 */ cvt.d.s $f8, $f0
/* B7A850 801036B0 4628B103 */ div.d $f4, $f22, $f8
/* B7A854 801036B4 C7A80040 */ lwc1 $f8, 0x40($sp)
/* B7A858 801036B8 462020A0 */ cvt.s.d $f2, $f4
/* B7A85C 801036BC 46024102 */ mul.s $f4, $f8, $f2
/* B7A860 801036C0 00000000 */ nop
/* B7A864 801036C4 46023202 */ mul.s $f8, $f6, $f2
/* B7A868 801036C8 00000000 */ nop
/* B7A86C 801036CC 46025182 */ mul.s $f6, $f10, $f2
/* B7A870 801036D0 C7AA0088 */ lwc1 $f10, 0x88($sp)
/* B7A874 801036D4 E7A400CC */ swc1 $f4, 0xcc($sp)
/* B7A878 801036D8 E7A800D0 */ swc1 $f8, 0xd0($sp)
/* B7A87C 801036DC 460A2100 */ add.s $f4, $f4, $f10
/* B7A880 801036E0 C7AA0084 */ lwc1 $f10, 0x84($sp)
/* B7A884 801036E4 E7A600D4 */ swc1 $f6, 0xd4($sp)
/* B7A888 801036E8 460A4200 */ add.s $f8, $f8, $f10
/* B7A88C 801036EC C7AA0080 */ lwc1 $f10, 0x80($sp)
/* B7A890 801036F0 E7A40054 */ swc1 $f4, 0x54($sp)
/* B7A894 801036F4 460A3180 */ add.s $f6, $f6, $f10
/* B7A898 801036F8 46042282 */ mul.s $f10, $f4, $f4
/* B7A89C 801036FC E7A80050 */ swc1 $f8, 0x50($sp)
/* B7A8A0 80103700 E7A6004C */ swc1 $f6, 0x4c($sp)
/* B7A8A4 80103704 E7A60040 */ swc1 $f6, 0x40($sp)
/* B7A8A8 80103708 46084182 */ mul.s $f6, $f8, $f8
/* B7A8AC 8010370C 46065280 */ add.s $f10, $f10, $f6
/* B7A8B0 80103710 C7A60040 */ lwc1 $f6, 0x40($sp)
/* B7A8B4 80103714 E7A40040 */ swc1 $f4, 0x40($sp)
/* B7A8B8 80103718 46063102 */ mul.s $f4, $f6, $f6
/* B7A8BC 8010371C 46045000 */ add.s $f0, $f10, $f4
/* B7A8C0 80103720 D42AB278 */ ldc1 $f10, %lo(D_8014B278)($at)
/* B7A8C4 80103724 46000004 */ sqrt.s $f0, $f0
/* B7A8C8 80103728 460003A1 */ cvt.d.s $f14, $f0
/* B7A8CC 8010372C 462E503C */ c.lt.d $f10, $f14
/* B7A8D0 80103730 00000000 */ nop
/* B7A8D4 80103734 45000035 */ bc1f .L8010380C
/* B7A8D8 80103738 00000000 */ nop
/* B7A8DC 8010373C 462EB103 */ div.d $f4, $f22, $f14
/* B7A8E0 80103740 C7AA0040 */ lwc1 $f10, 0x40($sp)
/* B7A8E4 80103744 3C014000 */ li $at, 0x40000000 # 0.000000
/* B7A8E8 80103748 44811000 */ mtc1 $at, $f2
/* B7A8EC 8010374C 0002C080 */ sll $t8, $v0, 2
/* B7A8F0 80103750 00034880 */ sll $t1, $v1, 2
/* B7A8F4 80103754 46202320 */ cvt.s.d $f12, $f4
/* B7A8F8 80103758 460C5402 */ mul.s $f16, $f10, $f12
/* B7A8FC 8010375C 00000000 */ nop
/* B7A900 80103760 460C4482 */ mul.s $f18, $f8, $f12
/* B7A904 80103764 00000000 */ nop
/* B7A908 80103768 460C3502 */ mul.s $f20, $f6, $f12
/* B7A90C 8010376C 00000000 */ nop
/* B7A910 80103770 46188102 */ mul.s $f4, $f16, $f24
/* B7A914 80103774 00000000 */ nop
/* B7A918 80103778 461A9282 */ mul.s $f10, $f18, $f26
/* B7A91C 8010377C 460A2200 */ add.s $f8, $f4, $f10
/* B7A920 80103780 461CA182 */ mul.s $f6, $f20, $f28
/* B7A924 80103784 44825000 */ mtc1 $v0, $f10
/* B7A928 80103788 46064100 */ add.s $f4, $f8, $f6
/* B7A92C 8010378C 46805220 */ cvt.s.w $f8, $f10
/* B7A930 80103790 46082182 */ mul.s $f6, $f4, $f8
/* B7A934 80103794 44982000 */ mtc1 $t8, $f4
/* B7A938 80103798 00000000 */ nop
/* B7A93C 8010379C 46802220 */ cvt.s.w $f8, $f4
/* B7A940 801037A0 46023282 */ mul.s $f10, $f6, $f2
/* B7A944 801037A4 460A4180 */ add.s $f6, $f8, $f10
/* B7A948 801037A8 4600310D */ trunc.w.s $f4, $f6
/* B7A94C 801037AC 44082000 */ mfc1 $t0, $f4
/* B7A950 801037B0 00000000 */ nop
/* B7A954 801037B4 ACC80008 */ sw $t0, 8($a2)
/* B7A958 801037B8 C7A800B4 */ lwc1 $f8, 0xb4($sp)
/* B7A95C 801037BC C7A600B8 */ lwc1 $f6, 0xb8($sp)
/* B7A960 801037C0 46088282 */ mul.s $f10, $f16, $f8
/* B7A964 801037C4 00000000 */ nop
/* B7A968 801037C8 46069102 */ mul.s $f4, $f18, $f6
/* B7A96C 801037CC C7A600BC */ lwc1 $f6, 0xbc($sp)
/* B7A970 801037D0 46045200 */ add.s $f8, $f10, $f4
/* B7A974 801037D4 4606A282 */ mul.s $f10, $f20, $f6
/* B7A978 801037D8 44833000 */ mtc1 $v1, $f6
/* B7A97C 801037DC 460A4100 */ add.s $f4, $f8, $f10
/* B7A980 801037E0 46803220 */ cvt.s.w $f8, $f6
/* B7A984 801037E4 46082282 */ mul.s $f10, $f4, $f8
/* B7A988 801037E8 44892000 */ mtc1 $t1, $f4
/* B7A98C 801037EC 00000000 */ nop
/* B7A990 801037F0 46802220 */ cvt.s.w $f8, $f4
/* B7A994 801037F4 46025182 */ mul.s $f6, $f10, $f2
/* B7A998 801037F8 46064280 */ add.s $f10, $f8, $f6
/* B7A99C 801037FC 4600510D */ trunc.w.s $f4, $f10
/* B7A9A0 80103800 440B2000 */ mfc1 $t3, $f4
/* B7A9A4 80103804 10000003 */ b .L80103814
/* B7A9A8 80103808 ACCB000C */ sw $t3, 0xc($a2)
.L8010380C:
/* B7A9AC 8010380C ACCC0008 */ sw $t4, 8($a2)
/* B7A9B0 80103810 ACCD000C */ sw $t5, 0xc($a2)
.L80103814:
/* B7A9B4 80103814 3C0142FE */ li $at, 0x42FE0000 # 0.000000
/* B7A9B8 80103818 44811000 */ mtc1 $at, $f2
/* B7A9BC 8010381C 3C014300 */ li $at, 0x43000000 # 0.000000
/* B7A9C0 80103820 44817000 */ mtc1 $at, $f14
/* B7A9C4 80103824 24020080 */ li $v0, 128
/* B7A9C8 80103828 460EC302 */ mul.s $f12, $f24, $f14
/* B7A9CC 8010382C 4602603C */ c.lt.s $f12, $f2
/* B7A9D0 80103830 00000000 */ nop
/* B7A9D4 80103834 45020004 */ bc1fl .L80103848
/* B7A9D8 80103838 46001006 */ mov.s $f0, $f2
/* B7A9DC 8010383C 10000002 */ b .L80103848
/* B7A9E0 80103840 46006006 */ mov.s $f0, $f12
/* B7A9E4 80103844 46001006 */ mov.s $f0, $f2
.L80103848:
/* B7A9E8 80103848 460ED302 */ mul.s $f12, $f26, $f14
/* B7A9EC 8010384C 4600020D */ trunc.w.s $f8, $f0
/* B7A9F0 80103850 4602603C */ c.lt.s $f12, $f2
/* B7A9F4 80103854 44184000 */ mfc1 $t8, $f8
/* B7A9F8 80103858 45000003 */ bc1f .L80103868
/* B7A9FC 8010385C A0B80008 */ sb $t8, 8($a1)
/* B7AA00 80103860 10000002 */ b .L8010386C
/* B7AA04 80103864 46006006 */ mov.s $f0, $f12
.L80103868:
/* B7AA08 80103868 46001006 */ mov.s $f0, $f2
.L8010386C:
/* B7AA0C 8010386C 460EE302 */ mul.s $f12, $f28, $f14
/* B7AA10 80103870 4600018D */ trunc.w.s $f6, $f0
/* B7AA14 80103874 4602603C */ c.lt.s $f12, $f2
/* B7AA18 80103878 44093000 */ mfc1 $t1, $f6
/* B7AA1C 8010387C 45000003 */ bc1f .L8010388C
/* B7AA20 80103880 A0A90009 */ sb $t1, 9($a1)
/* B7AA24 80103884 10000002 */ b .L80103890
/* B7AA28 80103888 46006006 */ mov.s $f0, $f12
.L8010388C:
/* B7AA2C 8010388C 46001006 */ mov.s $f0, $f2
.L80103890:
/* B7AA30 80103890 4600028D */ trunc.w.s $f10, $f0
/* B7AA34 80103894 440C5000 */ mfc1 $t4, $f10
/* B7AA38 80103898 00000000 */ nop
/* B7AA3C 8010389C A0AC000A */ sb $t4, 0xa($a1)
/* B7AA40 801038A0 C7A400B4 */ lwc1 $f4, 0xb4($sp)
/* B7AA44 801038A4 460E2302 */ mul.s $f12, $f4, $f14
/* B7AA48 801038A8 4602603C */ c.lt.s $f12, $f2
/* B7AA4C 801038AC 00000000 */ nop
/* B7AA50 801038B0 45020004 */ bc1fl .L801038C4
/* B7AA54 801038B4 46001006 */ mov.s $f0, $f2
/* B7AA58 801038B8 10000002 */ b .L801038C4
/* B7AA5C 801038BC 46006006 */ mov.s $f0, $f12
/* B7AA60 801038C0 46001006 */ mov.s $f0, $f2
.L801038C4:
/* B7AA64 801038C4 4600020D */ trunc.w.s $f8, $f0
/* B7AA68 801038C8 440F4000 */ mfc1 $t7, $f8
/* B7AA6C 801038CC 00000000 */ nop
/* B7AA70 801038D0 A0AF0018 */ sb $t7, 0x18($a1)
/* B7AA74 801038D4 C7A600B8 */ lwc1 $f6, 0xb8($sp)
/* B7AA78 801038D8 460E3302 */ mul.s $f12, $f6, $f14
/* B7AA7C 801038DC 4602603C */ c.lt.s $f12, $f2
/* B7AA80 801038E0 00000000 */ nop
/* B7AA84 801038E4 45020004 */ bc1fl .L801038F8
/* B7AA88 801038E8 46001006 */ mov.s $f0, $f2
/* B7AA8C 801038EC 10000002 */ b .L801038F8
/* B7AA90 801038F0 46006006 */ mov.s $f0, $f12
/* B7AA94 801038F4 46001006 */ mov.s $f0, $f2
.L801038F8:
/* B7AA98 801038F8 4600028D */ trunc.w.s $f10, $f0
/* B7AA9C 801038FC 44085000 */ mfc1 $t0, $f10
/* B7AAA0 80103900 00000000 */ nop
/* B7AAA4 80103904 A0A80019 */ sb $t0, 0x19($a1)
/* B7AAA8 80103908 C7A400BC */ lwc1 $f4, 0xbc($sp)
/* B7AAAC 8010390C 460E2302 */ mul.s $f12, $f4, $f14
/* B7AAB0 80103910 4602603C */ c.lt.s $f12, $f2
/* B7AAB4 80103914 00000000 */ nop
/* B7AAB8 80103918 45020004 */ bc1fl .L8010392C
/* B7AABC 8010391C 46001006 */ mov.s $f0, $f2
/* B7AAC0 80103920 10000002 */ b .L8010392C
/* B7AAC4 80103924 46006006 */ mov.s $f0, $f12
/* B7AAC8 80103928 46001006 */ mov.s $f0, $f2
.L8010392C:
/* B7AACC 8010392C 4600020D */ trunc.w.s $f8, $f0
/* B7AAD0 80103930 A0A00000 */ sb $zero, ($a1)
/* B7AAD4 80103934 A0A00001 */ sb $zero, 1($a1)
/* B7AAD8 80103938 A0A00002 */ sb $zero, 2($a1)
/* B7AADC 8010393C 440B4000 */ mfc1 $t3, $f8
/* B7AAE0 80103940 A0A00003 */ sb $zero, 3($a1)
/* B7AAE4 80103944 A0A00004 */ sb $zero, 4($a1)
/* B7AAE8 80103948 A0A00005 */ sb $zero, 5($a1)
/* B7AAEC 8010394C A0A00006 */ sb $zero, 6($a1)
/* B7AAF0 80103950 A0A00007 */ sb $zero, 7($a1)
/* B7AAF4 80103954 A0A00010 */ sb $zero, 0x10($a1)
/* B7AAF8 80103958 A0A20011 */ sb $v0, 0x11($a1)
/* B7AAFC 8010395C A0A00012 */ sb $zero, 0x12($a1)
/* B7AB00 80103960 A0A00013 */ sb $zero, 0x13($a1)
/* B7AB04 80103964 A0A00014 */ sb $zero, 0x14($a1)
/* B7AB08 80103968 A0A20015 */ sb $v0, 0x15($a1)
/* B7AB0C 8010396C A0A00016 */ sb $zero, 0x16($a1)
/* B7AB10 80103970 A0A00017 */ sb $zero, 0x17($a1)
/* B7AB14 80103974 A0AB001A */ sb $t3, 0x1a($a1)
/* B7AB18 80103978 E4980000 */ swc1 $f24, ($a0)
/* B7AB1C 8010397C C7AE009C */ lwc1 $f14, 0x9c($sp)
/* B7AB20 80103980 C7A200A0 */ lwc1 $f2, 0xa0($sp)
/* B7AB24 80103984 C7AC00A4 */ lwc1 $f12, 0xa4($sp)
/* B7AB28 80103988 46187182 */ mul.s $f6, $f14, $f24
/* B7AB2C 8010398C E49A0010 */ swc1 $f26, 0x10($a0)
/* B7AB30 80103990 E49C0020 */ swc1 $f28, 0x20($a0)
/* B7AB34 80103994 461A1282 */ mul.s $f10, $f2, $f26
/* B7AB38 80103998 44800000 */ mtc1 $zero, $f0
/* B7AB3C 8010399C 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B7AB40 801039A0 461C6202 */ mul.s $f8, $f12, $f28
/* B7AB44 801039A4 460A3100 */ add.s $f4, $f6, $f10
/* B7AB48 801039A8 46082180 */ add.s $f6, $f4, $f8
/* B7AB4C 801039AC 46003287 */ neg.s $f10, $f6
/* B7AB50 801039B0 E48A0030 */ swc1 $f10, 0x30($a0)
/* B7AB54 801039B4 C7A400B4 */ lwc1 $f4, 0xb4($sp)
/* B7AB58 801039B8 E4840004 */ swc1 $f4, 4($a0)
/* B7AB5C 801039BC C7A800B8 */ lwc1 $f8, 0xb8($sp)
/* B7AB60 801039C0 E4880014 */ swc1 $f8, 0x14($a0)
/* B7AB64 801039C4 C7A600BC */ lwc1 $f6, 0xbc($sp)
/* B7AB68 801039C8 E4860024 */ swc1 $f6, 0x24($a0)
/* B7AB6C 801039CC C7AA00B4 */ lwc1 $f10, 0xb4($sp)
/* B7AB70 801039D0 C7A800B8 */ lwc1 $f8, 0xb8($sp)
/* B7AB74 801039D4 460A7102 */ mul.s $f4, $f14, $f10
/* B7AB78 801039D8 00000000 */ nop
/* B7AB7C 801039DC 46081182 */ mul.s $f6, $f2, $f8
/* B7AB80 801039E0 C7A800BC */ lwc1 $f8, 0xbc($sp)
/* B7AB84 801039E4 46062280 */ add.s $f10, $f4, $f6
/* B7AB88 801039E8 46086102 */ mul.s $f4, $f12, $f8
/* B7AB8C 801039EC 46045180 */ add.s $f6, $f10, $f4
/* B7AB90 801039F0 46003207 */ neg.s $f8, $f6
/* B7AB94 801039F4 E4880034 */ swc1 $f8, 0x34($a0)
/* B7AB98 801039F8 C7AA0088 */ lwc1 $f10, 0x88($sp)
/* B7AB9C 801039FC E48A0008 */ swc1 $f10, 8($a0)
/* B7ABA0 80103A00 C7A40084 */ lwc1 $f4, 0x84($sp)
/* B7ABA4 80103A04 E4840018 */ swc1 $f4, 0x18($a0)
/* B7ABA8 80103A08 C7A60080 */ lwc1 $f6, 0x80($sp)
/* B7ABAC 80103A0C E4860028 */ swc1 $f6, 0x28($a0)
/* B7ABB0 80103A10 C7A80088 */ lwc1 $f8, 0x88($sp)
/* B7ABB4 80103A14 C7A40084 */ lwc1 $f4, 0x84($sp)
/* B7ABB8 80103A18 46087282 */ mul.s $f10, $f14, $f8
/* B7ABBC 80103A1C 00000000 */ nop
/* B7ABC0 80103A20 46041182 */ mul.s $f6, $f2, $f4
/* B7ABC4 80103A24 C7A40080 */ lwc1 $f4, 0x80($sp)
/* B7ABC8 80103A28 E480000C */ swc1 $f0, 0xc($a0)
/* B7ABCC 80103A2C E480001C */ swc1 $f0, 0x1c($a0)
/* B7ABD0 80103A30 E480002C */ swc1 $f0, 0x2c($a0)
/* B7ABD4 80103A34 46065200 */ add.s $f8, $f10, $f6
/* B7ABD8 80103A38 46046282 */ mul.s $f10, $f12, $f4
/* B7ABDC 80103A3C 460A4180 */ add.s $f6, $f8, $f10
/* B7ABE0 80103A40 44814000 */ mtc1 $at, $f8
/* B7ABE4 80103A44 46003107 */ neg.s $f4, $f6
/* B7ABE8 80103A48 E488003C */ swc1 $f8, 0x3c($a0)
/* B7ABEC 80103A4C E4840038 */ swc1 $f4, 0x38($a0)
/* B7ABF0 80103A50 8FBF003C */ lw $ra, 0x3c($sp)
/* B7ABF4 80103A54 D7BC0030 */ ldc1 $f28, 0x30($sp)
/* B7ABF8 80103A58 D7BA0028 */ ldc1 $f26, 0x28($sp)
/* B7ABFC 80103A5C D7B80020 */ ldc1 $f24, 0x20($sp)
/* B7AC00 80103A60 D7B60018 */ ldc1 $f22, 0x18($sp)
/* B7AC04 80103A64 D7B40010 */ ldc1 $f20, 0x10($sp)
/* B7AC08 80103A68 03E00008 */ jr $ra
/* B7AC0C 80103A6C 27BD0090 */ addiu $sp, $sp, 0x90
glabel func_80103A70
/* B7AC10 80103A70 27BDFF68 */ addiu $sp, $sp, -0x98
/* B7AC14 80103A74 C7A400A8 */ lwc1 $f4, 0xa8($sp)
/* B7AC18 80103A78 C7A600AC */ lwc1 $f6, 0xac($sp)
/* B7AC1C 80103A7C C7A800B0 */ lwc1 $f8, 0xb0($sp)
/* B7AC20 80103A80 E7A40010 */ swc1 $f4, 0x10($sp)
/* B7AC24 80103A84 E7A60014 */ swc1 $f6, 0x14($sp)
/* B7AC28 80103A88 C7A600C4 */ lwc1 $f6, 0xc4($sp)
/* B7AC2C 80103A8C C7A400C0 */ lwc1 $f4, 0xc0($sp)
/* B7AC30 80103A90 C7AA00B4 */ lwc1 $f10, 0xb4($sp)
/* B7AC34 80103A94 C7B000B8 */ lwc1 $f16, 0xb8($sp)
/* B7AC38 80103A98 C7B200BC */ lwc1 $f18, 0xbc($sp)
/* B7AC3C 80103A9C 44876000 */ mtc1 $a3, $f12
/* B7AC40 80103AA0 E7A80018 */ swc1 $f8, 0x18($sp)
/* B7AC44 80103AA4 E7A6002C */ swc1 $f6, 0x2c($sp)
/* B7AC48 80103AA8 E7A40028 */ swc1 $f4, 0x28($sp)
/* B7AC4C 80103AAC E7AA001C */ swc1 $f10, 0x1c($sp)
/* B7AC50 80103AB0 E7B00020 */ swc1 $f16, 0x20($sp)
/* B7AC54 80103AB4 E7B20024 */ swc1 $f18, 0x24($sp)
/* B7AC58 80103AB8 C7B200D4 */ lwc1 $f18, 0xd4($sp)
/* B7AC5C 80103ABC C7B000D0 */ lwc1 $f16, 0xd0($sp)
/* B7AC60 80103AC0 C7AA00CC */ lwc1 $f10, 0xcc($sp)
/* B7AC64 80103AC4 C7A400D8 */ lwc1 $f4, 0xd8($sp)
/* B7AC68 80103AC8 C7A600DC */ lwc1 $f6, 0xdc($sp)
/* B7AC6C 80103ACC C7A800C8 */ lwc1 $f8, 0xc8($sp)
/* B7AC70 80103AD0 8FAE00E0 */ lw $t6, 0xe0($sp)
/* B7AC74 80103AD4 8FAF00E4 */ lw $t7, 0xe4($sp)
/* B7AC78 80103AD8 AFBF0054 */ sw $ra, 0x54($sp)
/* B7AC7C 80103ADC AFA40098 */ sw $a0, 0x98($sp)
/* B7AC80 80103AE0 44076000 */ mfc1 $a3, $f12
/* B7AC84 80103AE4 27A40058 */ addiu $a0, $sp, 0x58
/* B7AC88 80103AE8 E7B2003C */ swc1 $f18, 0x3c($sp)
/* B7AC8C 80103AEC E7B00038 */ swc1 $f16, 0x38($sp)
/* B7AC90 80103AF0 E7AA0034 */ swc1 $f10, 0x34($sp)
/* B7AC94 80103AF4 E7A40040 */ swc1 $f4, 0x40($sp)
/* B7AC98 80103AF8 E7A60044 */ swc1 $f6, 0x44($sp)
/* B7AC9C 80103AFC E7A80030 */ swc1 $f8, 0x30($sp)
/* B7ACA0 80103B00 AFAE0048 */ sw $t6, 0x48($sp)
/* B7ACA4 80103B04 0C040CAC */ jal func_801032B0
/* B7ACA8 80103B08 AFAF004C */ sw $t7, 0x4c($sp)
/* B7ACAC 80103B0C 27A40058 */ addiu $a0, $sp, 0x58
/* B7ACB0 80103B10 0C041938 */ jal func_801064E0
/* B7ACB4 80103B14 8FA50098 */ lw $a1, 0x98($sp)
/* B7ACB8 80103B18 8FBF0054 */ lw $ra, 0x54($sp)
/* B7ACBC 80103B1C 27BD0098 */ addiu $sp, $sp, 0x98
/* B7ACC0 80103B20 03E00008 */ jr $ra
/* B7ACC4 80103B24 00000000 */ nop

31
asm/code_80103B60.s Normal file
View file

@ -0,0 +1,31 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80103B60
/* B7AD00 80103B60 20080001 */ addi $t0, $zero, 1
/* B7AD04 80103B64 00084C00 */ sll $t1, $t0, 0x10
/* B7AD08 80103B68 AC890000 */ sw $t1, ($a0)
/* B7AD0C 80103B6C AC800004 */ sw $zero, 4($a0)
/* B7AD10 80103B70 AC880008 */ sw $t0, 8($a0)
/* B7AD14 80103B74 AC80000C */ sw $zero, 0xc($a0)
/* B7AD18 80103B78 AC800010 */ sw $zero, 0x10($a0)
/* B7AD1C 80103B7C AC890014 */ sw $t1, 0x14($a0)
/* B7AD20 80103B80 AC800018 */ sw $zero, 0x18($a0)
/* B7AD24 80103B84 AC88001C */ sw $t0, 0x1c($a0)
/* B7AD28 80103B88 AC800020 */ sw $zero, 0x20($a0)
/* B7AD2C 80103B8C AC800024 */ sw $zero, 0x24($a0)
/* B7AD30 80103B90 AC800028 */ sw $zero, 0x28($a0)
/* B7AD34 80103B94 AC80002C */ sw $zero, 0x2c($a0)
/* B7AD38 80103B98 AC800030 */ sw $zero, 0x30($a0)
/* B7AD3C 80103B9C AC800034 */ sw $zero, 0x34($a0)
/* B7AD40 80103BA0 AC800038 */ sw $zero, 0x38($a0)
/* B7AD44 80103BA4 03E00008 */ jr $ra
/* B7AD48 80103BA8 AC80003C */ sw $zero, 0x3c($a0)

145
asm/code_80103BB0.s Normal file
View file

@ -0,0 +1,145 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80103BB0
/* B7AD50 80103BB0 3C018013 */ lui $at, %hi(D_80134D00)
/* B7AD54 80103BB4 C4204D00 */ lwc1 $f0, %lo(D_80134D00)($at)
/* B7AD58 80103BB8 44856000 */ mtc1 $a1, $f12
/* B7AD5C 80103BBC 44867000 */ mtc1 $a2, $f14
/* B7AD60 80103BC0 27BDFFB8 */ addiu $sp, $sp, -0x48
/* B7AD64 80103BC4 46006302 */ mul.s $f12, $f12, $f0
/* B7AD68 80103BC8 F7B40018 */ sdc1 $f20, 0x18($sp)
/* B7AD6C 80103BCC 4487A000 */ mtc1 $a3, $f20
/* B7AD70 80103BD0 46007382 */ mul.s $f14, $f14, $f0
/* B7AD74 80103BD4 AFBF002C */ sw $ra, 0x2c($sp)
/* B7AD78 80103BD8 AFB00028 */ sw $s0, 0x28($sp)
/* B7AD7C 80103BDC 4600A502 */ mul.s $f20, $f20, $f0
/* B7AD80 80103BE0 00808025 */ move $s0, $a0
/* B7AD84 80103BE4 F7B60020 */ sdc1 $f22, 0x20($sp)
/* B7AD88 80103BE8 E7AC004C */ swc1 $f12, 0x4c($sp)
/* B7AD8C 80103BEC E7AE0050 */ swc1 $f14, 0x50($sp)
/* B7AD90 80103BF0 0C0400A4 */ jal sinf
/* B7AD94 80103BF4 E7B40054 */ swc1 $f20, 0x54($sp)
/* B7AD98 80103BF8 C7AC004C */ lwc1 $f12, 0x4c($sp)
/* B7AD9C 80103BFC 0C041184 */ jal cosf
/* B7ADA0 80103C00 46000506 */ mov.s $f20, $f0
/* B7ADA4 80103C04 46000586 */ mov.s $f22, $f0
/* B7ADA8 80103C08 0C0400A4 */ jal sinf
/* B7ADAC 80103C0C C7AC0050 */ lwc1 $f12, 0x50($sp)
/* B7ADB0 80103C10 E7A00040 */ swc1 $f0, 0x40($sp)
/* B7ADB4 80103C14 0C041184 */ jal cosf
/* B7ADB8 80103C18 C7AC0050 */ lwc1 $f12, 0x50($sp)
/* B7ADBC 80103C1C C7AC0054 */ lwc1 $f12, 0x54($sp)
/* B7ADC0 80103C20 0C0400A4 */ jal sinf
/* B7ADC4 80103C24 E7A00034 */ swc1 $f0, 0x34($sp)
/* B7ADC8 80103C28 C7AC0054 */ lwc1 $f12, 0x54($sp)
/* B7ADCC 80103C2C 0C041184 */ jal cosf
/* B7ADD0 80103C30 E7A0003C */ swc1 $f0, 0x3c($sp)
/* B7ADD4 80103C34 C7B00034 */ lwc1 $f16, 0x34($sp)
/* B7ADD8 80103C38 C7A20058 */ lwc1 $f2, 0x58($sp)
/* B7ADDC 80103C3C C7AE003C */ lwc1 $f14, 0x3c($sp)
/* B7ADE0 80103C40 46008102 */ mul.s $f4, $f16, $f0
/* B7ADE4 80103C44 44809000 */ mtc1 $zero, $f18
/* B7ADE8 80103C48 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B7ADEC 80103C4C 46022182 */ mul.s $f6, $f4, $f2
/* B7ADF0 80103C50 00000000 */ nop
/* B7ADF4 80103C54 460E8202 */ mul.s $f8, $f16, $f14
/* B7ADF8 80103C58 E6060000 */ swc1 $f6, ($s0)
/* B7ADFC 80103C5C 46024282 */ mul.s $f10, $f8, $f2
/* B7AE00 80103C60 E60A0004 */ swc1 $f10, 4($s0)
/* B7AE04 80103C64 C7A40040 */ lwc1 $f4, 0x40($sp)
/* B7AE08 80103C68 E612000C */ swc1 $f18, 0xc($s0)
/* B7AE0C 80103C6C 46002187 */ neg.s $f6, $f4
/* B7AE10 80103C70 46023202 */ mul.s $f8, $f6, $f2
/* B7AE14 80103C74 E6080008 */ swc1 $f8, 8($s0)
/* B7AE18 80103C78 C7AA0040 */ lwc1 $f10, 0x40($sp)
/* B7AE1C 80103C7C E612001C */ swc1 $f18, 0x1c($s0)
/* B7AE20 80103C80 460AA302 */ mul.s $f12, $f20, $f10
/* B7AE24 80103C84 00000000 */ nop
/* B7AE28 80103C88 46006102 */ mul.s $f4, $f12, $f0
/* B7AE2C 80103C8C 00000000 */ nop
/* B7AE30 80103C90 460EB182 */ mul.s $f6, $f22, $f14
/* B7AE34 80103C94 46062201 */ sub.s $f8, $f4, $f6
/* B7AE38 80103C98 46024282 */ mul.s $f10, $f8, $f2
/* B7AE3C 80103C9C 00000000 */ nop
/* B7AE40 80103CA0 460E6102 */ mul.s $f4, $f12, $f14
/* B7AE44 80103CA4 00000000 */ nop
/* B7AE48 80103CA8 4600B182 */ mul.s $f6, $f22, $f0
/* B7AE4C 80103CAC E60A0010 */ swc1 $f10, 0x10($s0)
/* B7AE50 80103CB0 46062200 */ add.s $f8, $f4, $f6
/* B7AE54 80103CB4 46024282 */ mul.s $f10, $f8, $f2
/* B7AE58 80103CB8 00000000 */ nop
/* B7AE5C 80103CBC 4610A102 */ mul.s $f4, $f20, $f16
/* B7AE60 80103CC0 E60A0014 */ swc1 $f10, 0x14($s0)
/* B7AE64 80103CC4 46022182 */ mul.s $f6, $f4, $f2
/* B7AE68 80103CC8 E6060018 */ swc1 $f6, 0x18($s0)
/* B7AE6C 80103CCC C7A80040 */ lwc1 $f8, 0x40($sp)
/* B7AE70 80103CD0 E612002C */ swc1 $f18, 0x2c($s0)
/* B7AE74 80103CD4 4608B302 */ mul.s $f12, $f22, $f8
/* B7AE78 80103CD8 00000000 */ nop
/* B7AE7C 80103CDC 46006282 */ mul.s $f10, $f12, $f0
/* B7AE80 80103CE0 00000000 */ nop
/* B7AE84 80103CE4 460EA102 */ mul.s $f4, $f20, $f14
/* B7AE88 80103CE8 46045180 */ add.s $f6, $f10, $f4
/* B7AE8C 80103CEC 46023202 */ mul.s $f8, $f6, $f2
/* B7AE90 80103CF0 00000000 */ nop
/* B7AE94 80103CF4 460E6282 */ mul.s $f10, $f12, $f14
/* B7AE98 80103CF8 00000000 */ nop
/* B7AE9C 80103CFC 4600A102 */ mul.s $f4, $f20, $f0
/* B7AEA0 80103D00 E6080020 */ swc1 $f8, 0x20($s0)
/* B7AEA4 80103D04 46045181 */ sub.s $f6, $f10, $f4
/* B7AEA8 80103D08 46023202 */ mul.s $f8, $f6, $f2
/* B7AEAC 80103D0C 00000000 */ nop
/* B7AEB0 80103D10 4610B282 */ mul.s $f10, $f22, $f16
/* B7AEB4 80103D14 E6080024 */ swc1 $f8, 0x24($s0)
/* B7AEB8 80103D18 46025102 */ mul.s $f4, $f10, $f2
/* B7AEBC 80103D1C E6040028 */ swc1 $f4, 0x28($s0)
/* B7AEC0 80103D20 C7A6005C */ lwc1 $f6, 0x5c($sp)
/* B7AEC4 80103D24 44812000 */ mtc1 $at, $f4
/* B7AEC8 80103D28 E6060030 */ swc1 $f6, 0x30($s0)
/* B7AECC 80103D2C C7A80060 */ lwc1 $f8, 0x60($sp)
/* B7AED0 80103D30 E6080034 */ swc1 $f8, 0x34($s0)
/* B7AED4 80103D34 C7AA0064 */ lwc1 $f10, 0x64($sp)
/* B7AED8 80103D38 E604003C */ swc1 $f4, 0x3c($s0)
/* B7AEDC 80103D3C E60A0038 */ swc1 $f10, 0x38($s0)
/* B7AEE0 80103D40 8FBF002C */ lw $ra, 0x2c($sp)
/* B7AEE4 80103D44 8FB00028 */ lw $s0, 0x28($sp)
/* B7AEE8 80103D48 D7B60020 */ ldc1 $f22, 0x20($sp)
/* B7AEEC 80103D4C D7B40018 */ ldc1 $f20, 0x18($sp)
/* B7AEF0 80103D50 03E00008 */ jr $ra
/* B7AEF4 80103D54 27BD0048 */ addiu $sp, $sp, 0x48
glabel func_80103D58
/* B7AEF8 80103D58 27BDFF98 */ addiu $sp, $sp, -0x68
/* B7AEFC 80103D5C 44856000 */ mtc1 $a1, $f12
/* B7AF00 80103D60 44867000 */ mtc1 $a2, $f14
/* B7AF04 80103D64 C7A40078 */ lwc1 $f4, 0x78($sp)
/* B7AF08 80103D68 C7A6007C */ lwc1 $f6, 0x7c($sp)
/* B7AF0C 80103D6C C7A80080 */ lwc1 $f8, 0x80($sp)
/* B7AF10 80103D70 C7AA0084 */ lwc1 $f10, 0x84($sp)
/* B7AF14 80103D74 AFBF0024 */ sw $ra, 0x24($sp)
/* B7AF18 80103D78 AFA40068 */ sw $a0, 0x68($sp)
/* B7AF1C 80103D7C 44056000 */ mfc1 $a1, $f12
/* B7AF20 80103D80 44067000 */ mfc1 $a2, $f14
/* B7AF24 80103D84 AFA70074 */ sw $a3, 0x74($sp)
/* B7AF28 80103D88 27A40028 */ addiu $a0, $sp, 0x28
/* B7AF2C 80103D8C E7A40010 */ swc1 $f4, 0x10($sp)
/* B7AF30 80103D90 E7A60014 */ swc1 $f6, 0x14($sp)
/* B7AF34 80103D94 E7A80018 */ swc1 $f8, 0x18($sp)
/* B7AF38 80103D98 0C040EEC */ jal func_80103BB0
/* B7AF3C 80103D9C E7AA001C */ swc1 $f10, 0x1c($sp)
/* B7AF40 80103DA0 27A40028 */ addiu $a0, $sp, 0x28
/* B7AF44 80103DA4 0C041938 */ jal func_801064E0
/* B7AF48 80103DA8 8FA50068 */ lw $a1, 0x68($sp)
/* B7AF4C 80103DAC 8FBF0024 */ lw $ra, 0x24($sp)
/* B7AF50 80103DB0 27BD0068 */ addiu $sp, $sp, 0x68
/* B7AF54 80103DB4 03E00008 */ jr $ra
/* B7AF58 80103DB8 00000000 */ nop

251
asm/code_80103DC0.s Normal file
View file

@ -0,0 +1,251 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80103DC0
/* B7AF60 80103DC0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B7AF64 80103DC4 AFBF0014 */ sw $ra, 0x14($sp)
/* B7AF68 80103DC8 0C04191C */ jal __osSpGetStatus
/* B7AF6C 80103DCC AFA40018 */ sw $a0, 0x18($sp)
/* B7AF70 80103DD0 304E0100 */ andi $t6, $v0, 0x100
/* B7AF74 80103DD4 11C00003 */ beqz $t6, .L80103DE4
/* B7AF78 80103DD8 8FA40018 */ lw $a0, 0x18($sp)
/* B7AF7C 80103DDC 10000002 */ b .L80103DE8
/* B7AF80 80103DE0 24030001 */ li $v1, 1
.L80103DE4:
/* B7AF84 80103DE4 00001825 */ move $v1, $zero
.L80103DE8:
/* B7AF88 80103DE8 304F0080 */ andi $t7, $v0, 0x80
/* B7AF8C 80103DEC 51E00008 */ beql $t7, $zero, .L80103E10
/* B7AF90 80103DF0 8FBF0014 */ lw $ra, 0x14($sp)
/* B7AF94 80103DF4 8C980004 */ lw $t8, 4($a0)
/* B7AF98 80103DF8 2401FFFD */ li $at, -3
/* B7AF9C 80103DFC 0303C825 */ or $t9, $t8, $v1
/* B7AFA0 80103E00 AC990004 */ sw $t9, 4($a0)
/* B7AFA4 80103E04 03214824 */ and $t1, $t9, $at
/* B7AFA8 80103E08 AC890004 */ sw $t1, 4($a0)
/* B7AFAC 80103E0C 8FBF0014 */ lw $ra, 0x14($sp)
.L80103E10:
/* B7AFB0 80103E10 27BD0018 */ addiu $sp, $sp, 0x18
/* B7AFB4 80103E14 00601025 */ move $v0, $v1
/* B7AFB8 80103E18 03E00008 */ jr $ra
/* B7AFBC 80103E1C 00000000 */ nop
glabel func_80103E20
/* B7AFC0 80103E20 27BDFFB8 */ addiu $sp, $sp, -0x48
/* B7AFC4 80103E24 AFB00018 */ sw $s0, 0x18($sp)
/* B7AFC8 80103E28 00808025 */ move $s0, $a0
/* B7AFCC 80103E2C AFBF001C */ sw $ra, 0x1c($sp)
/* B7AFD0 80103E30 AFA5004C */ sw $a1, 0x4c($sp)
/* B7AFD4 80103E34 AFA60050 */ sw $a2, 0x50($sp)
/* B7AFD8 80103E38 AFA70054 */ sw $a3, 0x54($sp)
/* B7AFDC 80103E3C 27A60058 */ addiu $a2, $sp, 0x58
/* B7AFE0 80103E40 27A50054 */ addiu $a1, $sp, 0x54
/* B7AFE4 80103E44 0C041058 */ jal func_80104160
/* B7AFE8 80103E48 27A40050 */ addiu $a0, $sp, 0x50
/* B7AFEC 80103E4C 3C018013 */ lui $at, %hi(D_80134D10)
/* B7AFF0 80103E50 C7AC004C */ lwc1 $f12, 0x4c($sp)
/* B7AFF4 80103E54 C4244D10 */ lwc1 $f4, %lo(D_80134D10)($at)
/* B7AFF8 80103E58 46046302 */ mul.s $f12, $f12, $f4
/* B7AFFC 80103E5C 0C0400A4 */ jal sinf
/* B7B000 80103E60 E7AC004C */ swc1 $f12, 0x4c($sp)
/* B7B004 80103E64 C7AC004C */ lwc1 $f12, 0x4c($sp)
/* B7B008 80103E68 0C041184 */ jal cosf
/* B7B00C 80103E6C E7A00044 */ swc1 $f0, 0x44($sp)
/* B7B010 80103E70 C7AC0050 */ lwc1 $f12, 0x50($sp)
/* B7B014 80103E74 C7A80054 */ lwc1 $f8, 0x54($sp)
/* B7B018 80103E78 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B7B01C 80103E7C 44813000 */ mtc1 $at, $f6
/* B7B020 80103E80 46086282 */ mul.s $f10, $f12, $f8
/* B7B024 80103E84 C7A40058 */ lwc1 $f4, 0x58($sp)
/* B7B028 80103E88 46003081 */ sub.s $f2, $f6, $f0
/* B7B02C 80103E8C 02002025 */ move $a0, $s0
/* B7B030 80103E90 E7A00040 */ swc1 $f0, 0x40($sp)
/* B7B034 80103E94 46025482 */ mul.s $f18, $f10, $f2
/* B7B038 80103E98 00000000 */ nop
/* B7B03C 80103E9C 46044182 */ mul.s $f6, $f8, $f4
/* B7B040 80103EA0 E7B2003C */ swc1 $f18, 0x3c($sp)
/* B7B044 80103EA4 46023282 */ mul.s $f10, $f6, $f2
/* B7B048 80103EA8 00000000 */ nop
/* B7B04C 80103EAC 460C2202 */ mul.s $f8, $f4, $f12
/* B7B050 80103EB0 E7AA0038 */ swc1 $f10, 0x38($sp)
/* B7B054 80103EB4 46024182 */ mul.s $f6, $f8, $f2
/* B7B058 80103EB8 0C0406D0 */ jal func_80101B40
/* B7B05C 80103EBC E7A60034 */ swc1 $f6, 0x34($sp)
/* B7B060 80103EC0 C7AE0044 */ lwc1 $f14, 0x44($sp)
/* B7B064 80103EC4 C7AA0050 */ lwc1 $f10, 0x50($sp)
/* B7B068 80103EC8 C7A40054 */ lwc1 $f4, 0x54($sp)
/* B7B06C 80103ECC C7A60058 */ lwc1 $f6, 0x58($sp)
/* B7B070 80103ED0 460E5002 */ mul.s $f0, $f10, $f14
/* B7B074 80103ED4 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B7B078 80103ED8 C7B00040 */ lwc1 $f16, 0x40($sp)
/* B7B07C 80103EDC 460E2202 */ mul.s $f8, $f4, $f14
/* B7B080 80103EE0 C7B2003C */ lwc1 $f18, 0x3c($sp)
/* B7B084 80103EE4 460E3102 */ mul.s $f4, $f6, $f14
/* B7B088 80103EE8 00000000 */ nop
/* B7B08C 80103EEC 460A5082 */ mul.s $f2, $f10, $f10
/* B7B090 80103EF0 E7A80028 */ swc1 $f8, 0x28($sp)
/* B7B094 80103EF4 44814000 */ mtc1 $at, $f8
/* B7B098 80103EF8 E7A40024 */ swc1 $f4, 0x24($sp)
/* B7B09C 80103EFC 46024181 */ sub.s $f6, $f8, $f2
/* B7B0A0 80103F00 46103102 */ mul.s $f4, $f6, $f16
/* B7B0A4 80103F04 46022280 */ add.s $f10, $f4, $f2
/* B7B0A8 80103F08 E60A0000 */ swc1 $f10, ($s0)
/* B7B0AC 80103F0C C7A80038 */ lwc1 $f8, 0x38($sp)
/* B7B0B0 80103F10 46004181 */ sub.s $f6, $f8, $f0
/* B7B0B4 80103F14 E6060024 */ swc1 $f6, 0x24($s0)
/* B7B0B8 80103F18 C7A40038 */ lwc1 $f4, 0x38($sp)
/* B7B0BC 80103F1C 44813000 */ mtc1 $at, $f6
/* B7B0C0 80103F20 46002280 */ add.s $f10, $f4, $f0
/* B7B0C4 80103F24 E60A0018 */ swc1 $f10, 0x18($s0)
/* B7B0C8 80103F28 C7A80054 */ lwc1 $f8, 0x54($sp)
/* B7B0CC 80103F2C 46084302 */ mul.s $f12, $f8, $f8
/* B7B0D0 80103F30 460C3101 */ sub.s $f4, $f6, $f12
/* B7B0D4 80103F34 46102282 */ mul.s $f10, $f4, $f16
/* B7B0D8 80103F38 460C5200 */ add.s $f8, $f10, $f12
/* B7B0DC 80103F3C E6080014 */ swc1 $f8, 0x14($s0)
/* B7B0E0 80103F40 C7A20034 */ lwc1 $f2, 0x34($sp)
/* B7B0E4 80103F44 C7A60028 */ lwc1 $f6, 0x28($sp)
/* B7B0E8 80103F48 46061100 */ add.s $f4, $f2, $f6
/* B7B0EC 80103F4C E6040020 */ swc1 $f4, 0x20($s0)
/* B7B0F0 80103F50 C7AA0028 */ lwc1 $f10, 0x28($sp)
/* B7B0F4 80103F54 44812000 */ mtc1 $at, $f4
/* B7B0F8 80103F58 460A1201 */ sub.s $f8, $f2, $f10
/* B7B0FC 80103F5C E6080008 */ swc1 $f8, 8($s0)
/* B7B100 80103F60 C7A60058 */ lwc1 $f6, 0x58($sp)
/* B7B104 80103F64 46063002 */ mul.s $f0, $f6, $f6
/* B7B108 80103F68 46002281 */ sub.s $f10, $f4, $f0
/* B7B10C 80103F6C 46105202 */ mul.s $f8, $f10, $f16
/* B7B110 80103F70 46004180 */ add.s $f6, $f8, $f0
/* B7B114 80103F74 E6060028 */ swc1 $f6, 0x28($s0)
/* B7B118 80103F78 C7A40024 */ lwc1 $f4, 0x24($sp)
/* B7B11C 80103F7C 46049281 */ sub.s $f10, $f18, $f4
/* B7B120 80103F80 E60A0010 */ swc1 $f10, 0x10($s0)
/* B7B124 80103F84 C7A80024 */ lwc1 $f8, 0x24($sp)
/* B7B128 80103F88 46089180 */ add.s $f6, $f18, $f8
/* B7B12C 80103F8C E6060004 */ swc1 $f6, 4($s0)
/* B7B130 80103F90 8FBF001C */ lw $ra, 0x1c($sp)
/* B7B134 80103F94 8FB00018 */ lw $s0, 0x18($sp)
/* B7B138 80103F98 27BD0048 */ addiu $sp, $sp, 0x48
/* B7B13C 80103F9C 03E00008 */ jr $ra
/* B7B140 80103FA0 00000000 */ nop
glabel func_80103FA4
/* B7B144 80103FA4 27BDFFA0 */ addiu $sp, $sp, -0x60
/* B7B148 80103FA8 44856000 */ mtc1 $a1, $f12
/* B7B14C 80103FAC 44867000 */ mtc1 $a2, $f14
/* B7B150 80103FB0 C7A40070 */ lwc1 $f4, 0x70($sp)
/* B7B154 80103FB4 AFBF001C */ sw $ra, 0x1c($sp)
/* B7B158 80103FB8 AFA40060 */ sw $a0, 0x60($sp)
/* B7B15C 80103FBC 44056000 */ mfc1 $a1, $f12
/* B7B160 80103FC0 44067000 */ mfc1 $a2, $f14
/* B7B164 80103FC4 AFA7006C */ sw $a3, 0x6c($sp)
/* B7B168 80103FC8 27A40020 */ addiu $a0, $sp, 0x20
/* B7B16C 80103FCC 0C040F88 */ jal func_80103E20
/* B7B170 80103FD0 E7A40010 */ swc1 $f4, 0x10($sp)
/* B7B174 80103FD4 27A40020 */ addiu $a0, $sp, 0x20
/* B7B178 80103FD8 0C041938 */ jal func_801064E0
/* B7B17C 80103FDC 8FA50060 */ lw $a1, 0x60($sp)
/* B7B180 80103FE0 8FBF001C */ lw $ra, 0x1c($sp)
/* B7B184 80103FE4 27BD0060 */ addiu $sp, $sp, 0x60
/* B7B188 80103FE8 03E00008 */ jr $ra
/* B7B18C 80103FEC 00000000 */ nop
glabel func_80103FF0
/* B7B190 80103FF0 3C058001 */ lui $a1, %hi(osViClock)
/* B7B194 80103FF4 24A5ACF8 */ addiu $a1, %lo(osViClock) # addiu $a1, $a1, -0x5308
/* B7B198 80103FF8 8CAE0000 */ lw $t6, ($a1)
/* B7B19C 80103FFC 44844000 */ mtc1 $a0, $f8
/* B7B1A0 80104000 3C014F80 */ li $at, 0x4F800000 # 0.000000
/* B7B1A4 80104004 448E2000 */ mtc1 $t6, $f4
/* B7B1A8 80104008 468042A0 */ cvt.s.w $f10, $f8
/* B7B1AC 8010400C 04810004 */ bgez $a0, .L80104020
/* B7B1B0 80104010 468021A0 */ cvt.s.w $f6, $f4
/* B7B1B4 80104014 44818000 */ mtc1 $at, $f16
/* B7B1B8 80104018 00000000 */ nop
/* B7B1BC 8010401C 46105280 */ add.s $f10, $f10, $f16
.L80104020:
/* B7B1C0 80104020 460A3483 */ div.s $f18, $f6, $f10
/* B7B1C4 80104024 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* B7B1C8 80104028 44812000 */ mtc1 $at, $f4
/* B7B1CC 8010402C 24030001 */ li $v1, 1
/* B7B1D0 80104030 3C014F00 */ lui $at, 0x4f00
/* B7B1D4 80104034 3C08A450 */ lui $t0, 0xa450
/* B7B1D8 80104038 3C0AA450 */ li $t2, 0xA4500000 # 0.000000
/* B7B1DC 8010403C 46049000 */ add.s $f0, $f18, $f4
/* B7B1E0 80104040 444FF800 */ cfc1 $t7, $31
/* B7B1E4 80104044 44C3F800 */ ctc1 $v1, $31
/* B7B1E8 80104048 00000000 */ nop
/* B7B1EC 8010404C 46000224 */ cvt.w.s $f8, $f0
/* B7B1F0 80104050 4443F800 */ cfc1 $v1, $31
/* B7B1F4 80104054 00000000 */ nop
/* B7B1F8 80104058 30630078 */ andi $v1, $v1, 0x78
/* B7B1FC 8010405C 50600013 */ beql $v1, $zero, .L801040AC
/* B7B200 80104060 44034000 */ mfc1 $v1, $f8
/* B7B204 80104064 44814000 */ mtc1 $at, $f8
/* B7B208 80104068 24030001 */ li $v1, 1
/* B7B20C 8010406C 46080201 */ sub.s $f8, $f0, $f8
/* B7B210 80104070 44C3F800 */ ctc1 $v1, $31
/* B7B214 80104074 00000000 */ nop
/* B7B218 80104078 46004224 */ cvt.w.s $f8, $f8
/* B7B21C 8010407C 4443F800 */ cfc1 $v1, $31
/* B7B220 80104080 00000000 */ nop
/* B7B224 80104084 30630078 */ andi $v1, $v1, 0x78
/* B7B228 80104088 14600005 */ bnez $v1, .L801040A0
/* B7B22C 8010408C 00000000 */ nop
/* B7B230 80104090 44034000 */ mfc1 $v1, $f8
/* B7B234 80104094 3C018000 */ lui $at, 0x8000
/* B7B238 80104098 10000007 */ b .L801040B8
/* B7B23C 8010409C 00611825 */ or $v1, $v1, $at
.L801040A0:
/* B7B240 801040A0 10000005 */ b .L801040B8
/* B7B244 801040A4 2403FFFF */ li $v1, -1
/* B7B248 801040A8 44034000 */ mfc1 $v1, $f8
.L801040AC:
/* B7B24C 801040AC 00000000 */ nop
/* B7B250 801040B0 0460FFFB */ bltz $v1, .L801040A0
/* B7B254 801040B4 00000000 */ nop
.L801040B8:
/* B7B258 801040B8 44CFF800 */ ctc1 $t7, $31
/* B7B25C 801040BC 2C610084 */ sltiu $at, $v1, 0x84
/* B7B260 801040C0 10200003 */ beqz $at, .L801040D0
/* B7B264 801040C4 2479FFFF */ addiu $t9, $v1, -1
/* B7B268 801040C8 03E00008 */ jr $ra
/* B7B26C 801040CC 2402FFFF */ li $v0, -1
.L801040D0:
/* B7B270 801040D0 24010042 */ li $at, 66
/* B7B274 801040D4 0061001B */ divu $zero, $v1, $at
/* B7B278 801040D8 00001012 */ mflo $v0
/* B7B27C 801040DC 305800FF */ andi $t8, $v0, 0xff
/* B7B280 801040E0 2B010011 */ slti $at, $t8, 0x11
/* B7B284 801040E4 14200002 */ bnez $at, .L801040F0
/* B7B288 801040E8 304400FF */ andi $a0, $v0, 0xff
/* B7B28C 801040EC 24040010 */ li $a0, 16
.L801040F0:
/* B7B290 801040F0 AD190010 */ sw $t9, 0x10($t0)
/* B7B294 801040F4 2489FFFF */ addiu $t1, $a0, -1
/* B7B298 801040F8 AD490014 */ sw $t1, 0x14($t2)
/* B7B29C 801040FC 8CAB0000 */ lw $t3, ($a1)
/* B7B2A0 80104100 0163001A */ div $zero, $t3, $v1
/* B7B2A4 80104104 00001012 */ mflo $v0
/* B7B2A8 80104108 14600002 */ bnez $v1, .L80104114
/* B7B2AC 8010410C 00000000 */ nop
/* B7B2B0 80104110 0007000D */ break 7
.L80104114:
/* B7B2B4 80104114 2401FFFF */ li $at, -1
/* B7B2B8 80104118 14610004 */ bne $v1, $at, .L8010412C
/* B7B2BC 8010411C 3C018000 */ lui $at, 0x8000
/* B7B2C0 80104120 15610002 */ bne $t3, $at, .L8010412C
/* B7B2C4 80104124 00000000 */ nop
/* B7B2C8 80104128 0006000D */ break 6
.L8010412C:
/* B7B2CC 8010412C 03E00008 */ jr $ra
/* B7B2D0 80104130 00000000 */ nop

37
asm/code_80104160.s Normal file
View file

@ -0,0 +1,37 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
/* B7B2F0 80104150 00000000 */ nop
/* B7B2F4 80104154 00000000 */ nop
/* B7B2F8 80104158 00000000 */ nop
/* B7B2FC 8010415C 00000000 */ nop
glabel func_80104160
/* B7B300 80104160 C4840000 */ lwc1 $f4, ($a0)
/* B7B304 80104164 C4A60000 */ lwc1 $f6, ($a1)
/* B7B308 80104168 C4C80000 */ lwc1 $f8, ($a2)
/* B7B30C 8010416C 46042282 */ mul.s $f10, $f4, $f4
/* B7B310 80104170 3C083F80 */ li $t0, 0x3F800000 # 0.000000
/* B7B314 80104174 46063402 */ mul.s $f16, $f6, $f6
/* B7B318 80104178 46105480 */ add.s $f18, $f10, $f16
/* B7B31C 8010417C 46084402 */ mul.s $f16, $f8, $f8
/* B7B320 80104180 46128280 */ add.s $f10, $f16, $f18
/* B7B324 80104184 44889000 */ mtc1 $t0, $f18
/* B7B328 80104188 46005404 */ sqrt.s $f16, $f10
/* B7B32C 8010418C 46109283 */ div.s $f10, $f18, $f16
/* B7B330 80104190 460A2402 */ mul.s $f16, $f4, $f10
/* B7B334 80104194 00000000 */ nop
/* B7B338 80104198 460A3482 */ mul.s $f18, $f6, $f10
/* B7B33C 8010419C 00000000 */ nop
/* B7B340 801041A0 460A4102 */ mul.s $f4, $f8, $f10
/* B7B344 801041A4 E4900000 */ swc1 $f16, ($a0)
/* B7B348 801041A8 E4B20000 */ swc1 $f18, ($a1)
/* B7B34C 801041AC 03E00008 */ jr $ra
/* B7B350 801041B0 E4C40000 */ swc1 $f4, ($a2)

184
asm/code_801041E0.s Normal file
View file

@ -0,0 +1,184 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_801041E0
/* B7B380 801041E0 27BDFE90 */ addiu $sp, $sp, -0x170
/* B7B384 801041E4 AFB20024 */ sw $s2, 0x24($sp)
/* B7B388 801041E8 AFA50174 */ sw $a1, 0x174($sp)
/* B7B38C 801041EC 30AEFFFF */ andi $t6, $a1, 0xffff
/* B7B390 801041F0 01C02825 */ move $a1, $t6
/* B7B394 801041F4 00809025 */ move $s2, $a0
/* B7B398 801041F8 AFBF0034 */ sw $ra, 0x34($sp)
/* B7B39C 801041FC AFB50030 */ sw $s5, 0x30($sp)
/* B7B3A0 80104200 AFB4002C */ sw $s4, 0x2c($sp)
/* B7B3A4 80104204 AFB30028 */ sw $s3, 0x28($sp)
/* B7B3A8 80104208 AFB10020 */ sw $s1, 0x20($sp)
/* B7B3AC 8010420C 11C00003 */ beqz $t6, .L8010421C
/* B7B3B0 80104210 AFB0001C */ sw $s0, 0x1c($sp)
/* B7B3B4 80104214 14C00003 */ bnez $a2, .L80104224
/* B7B3B8 80104218 02402025 */ move $a0, $s2
.L8010421C:
/* B7B3BC 8010421C 1000005D */ b .L80104394
/* B7B3C0 80104220 24020005 */ li $v0, 5
.L80104224:
/* B7B3C4 80104224 8FAF0180 */ lw $t7, 0x180($sp)
/* B7B3C8 80104228 27B8016C */ addiu $t8, $sp, 0x16c
/* B7B3CC 8010422C AFB80014 */ sw $t8, 0x14($sp)
/* B7B3D0 80104230 0C040C04 */ jal func_80103010
/* B7B3D4 80104234 AFAF0010 */ sw $t7, 0x10($sp)
/* B7B3D8 80104238 50400004 */ beql $v0, $zero, .L8010424C
/* B7B3DC 8010423C 92590065 */ lbu $t9, 0x65($s2)
/* B7B3E0 80104240 10000055 */ b .L80104398
/* B7B3E4 80104244 8FBF0034 */ lw $ra, 0x34($sp)
/* B7B3E8 80104248 92590065 */ lbu $t9, 0x65($s2)
.L8010424C:
/* B7B3EC 8010424C 02402025 */ move $a0, $s2
/* B7B3F0 80104250 53200008 */ beql $t9, $zero, .L80104274
/* B7B3F4 80104254 8E48005C */ lw $t0, 0x5c($s2)
/* B7B3F8 80104258 0C041320 */ jal func_80104C80
/* B7B3FC 8010425C 00002825 */ move $a1, $zero
/* B7B400 80104260 50400004 */ beql $v0, $zero, .L80104274
/* B7B404 80104264 8E48005C */ lw $t0, 0x5c($s2)
/* B7B408 80104268 1000004B */ b .L80104398
/* B7B40C 8010426C 8FBF0034 */ lw $ra, 0x34($sp)
/* B7B410 80104270 8E48005C */ lw $t0, 0x5c($s2)
.L80104274:
/* B7B414 80104274 8FA9016C */ lw $t1, 0x16c($sp)
/* B7B418 80104278 8E440004 */ lw $a0, 4($s2)
/* B7B41C 8010427C 8E450008 */ lw $a1, 8($s2)
/* B7B420 80104280 01093021 */ addu $a2, $t0, $t1
/* B7B424 80104284 30CAFFFF */ andi $t2, $a2, 0xffff
/* B7B428 80104288 01403025 */ move $a2, $t2
/* B7B42C 8010428C 0C0417D0 */ jal func_80105F40
/* B7B430 80104290 27A70048 */ addiu $a3, $sp, 0x48
/* B7B434 80104294 10400003 */ beqz $v0, .L801042A4
/* B7B438 80104298 93B0004E */ lbu $s0, 0x4e($sp)
/* B7B43C 8010429C 1000003E */ b .L80104398
/* B7B440 801042A0 8FBF0034 */ lw $ra, 0x34($sp)
.L801042A4:
/* B7B444 801042A4 92420064 */ lbu $v0, 0x64($s2)
/* B7B448 801042A8 93B3004F */ lbu $s3, 0x4f($sp)
/* B7B44C 801042AC 24150001 */ li $s5, 1
/* B7B450 801042B0 0202082A */ slt $at, $s0, $v0
/* B7B454 801042B4 10200026 */ beqz $at, .L80104350
/* B7B458 801042B8 27B40044 */ addiu $s4, $sp, 0x44
/* B7B45C 801042BC 27B10068 */ addiu $s1, $sp, 0x68
/* B7B460 801042C0 02402025 */ move $a0, $s2
.L801042C4:
/* B7B464 801042C4 02202825 */ move $a1, $s1
/* B7B468 801042C8 00003025 */ move $a2, $zero
/* B7B46C 801042CC 0C040B31 */ jal func_80102CC4
/* B7B470 801042D0 320700FF */ andi $a3, $s0, 0xff
/* B7B474 801042D4 10400003 */ beqz $v0, .L801042E4
/* B7B478 801042D8 02402025 */ move $a0, $s2
/* B7B47C 801042DC 1000002E */ b .L80104398
/* B7B480 801042E0 8FBF0034 */ lw $ra, 0x34($sp)
.L801042E4:
/* B7B484 801042E4 02202825 */ move $a1, $s1
/* B7B488 801042E8 326600FF */ andi $a2, $s3, 0xff
/* B7B48C 801042EC 320700FF */ andi $a3, $s0, 0xff
/* B7B490 801042F0 0C0410EE */ jal func_801043B8
/* B7B494 801042F4 AFB40010 */ sw $s4, 0x10($sp)
/* B7B498 801042F8 10400003 */ beqz $v0, .L80104308
/* B7B49C 801042FC 02402025 */ move $a0, $s2
/* B7B4A0 80104300 10000025 */ b .L80104398
/* B7B4A4 80104304 8FBF0034 */ lw $ra, 0x34($sp)
.L80104308:
/* B7B4A8 80104308 02202825 */ move $a1, $s1
/* B7B4AC 8010430C 24060001 */ li $a2, 1
/* B7B4B0 80104310 0C040B31 */ jal func_80102CC4
/* B7B4B4 80104314 320700FF */ andi $a3, $s0, 0xff
/* B7B4B8 80104318 10400003 */ beqz $v0, .L80104328
/* B7B4BC 8010431C 97AC0044 */ lhu $t4, 0x44($sp)
/* B7B4C0 80104320 1000001D */ b .L80104398
/* B7B4C4 80104324 8FBF0034 */ lw $ra, 0x34($sp)
.L80104328:
/* B7B4C8 80104328 56AC0004 */ bnel $s5, $t4, .L8010433C
/* B7B4CC 8010432C 92420064 */ lbu $v0, 0x64($s2)
/* B7B4D0 80104330 10000007 */ b .L80104350
/* B7B4D4 80104334 92420064 */ lbu $v0, 0x64($s2)
/* B7B4D8 80104338 92420064 */ lbu $v0, 0x64($s2)
.L8010433C:
/* B7B4DC 8010433C 93B00044 */ lbu $s0, 0x44($sp)
/* B7B4E0 80104340 93B30045 */ lbu $s3, 0x45($sp)
/* B7B4E4 80104344 0202082A */ slt $at, $s0, $v0
/* B7B4E8 80104348 5420FFDE */ bnezl $at, .L801042C4
/* B7B4EC 8010434C 02402025 */ move $a0, $s2
.L80104350:
/* B7B4F0 80104350 0202082A */ slt $at, $s0, $v0
/* B7B4F4 80104354 14200003 */ bnez $at, .L80104364
/* B7B4F8 80104358 27A40048 */ addiu $a0, $sp, 0x48
/* B7B4FC 8010435C 1000000D */ b .L80104394
/* B7B500 80104360 24020003 */ li $v0, 3
.L80104364:
/* B7B504 80104364 0C001114 */ jal bzero
/* B7B508 80104368 24050020 */ li $a1, 32
/* B7B50C 8010436C 8E4D005C */ lw $t5, 0x5c($s2)
/* B7B510 80104370 8FAE016C */ lw $t6, 0x16c($sp)
/* B7B514 80104374 8E440004 */ lw $a0, 4($s2)
/* B7B518 80104378 8E450008 */ lw $a1, 8($s2)
/* B7B51C 8010437C 01AE3021 */ addu $a2, $t5, $t6
/* B7B520 80104380 30CFFFFF */ andi $t7, $a2, 0xffff
/* B7B524 80104384 01E03025 */ move $a2, $t7
/* B7B528 80104388 AFA00010 */ sw $zero, 0x10($sp)
/* B7B52C 8010438C 0C04173C */ jal func_80105CF0
/* B7B530 80104390 27A70048 */ addiu $a3, $sp, 0x48
.L80104394:
/* B7B534 80104394 8FBF0034 */ lw $ra, 0x34($sp)
.L80104398:
/* B7B538 80104398 8FB0001C */ lw $s0, 0x1c($sp)
/* B7B53C 8010439C 8FB10020 */ lw $s1, 0x20($sp)
/* B7B540 801043A0 8FB20024 */ lw $s2, 0x24($sp)
/* B7B544 801043A4 8FB30028 */ lw $s3, 0x28($sp)
/* B7B548 801043A8 8FB4002C */ lw $s4, 0x2c($sp)
/* B7B54C 801043AC 8FB50030 */ lw $s5, 0x30($sp)
/* B7B550 801043B0 03E00008 */ jr $ra
/* B7B554 801043B4 27BD0170 */ addiu $sp, $sp, 0x170
glabel func_801043B8
/* B7B558 801043B8 27BDFFF0 */ addiu $sp, $sp, -0x10
/* B7B55C 801043BC 30E200FF */ andi $v0, $a3, 0xff
/* B7B560 801043C0 30CE00FF */ andi $t6, $a2, 0xff
/* B7B564 801043C4 0002C200 */ sll $t8, $v0, 8
/* B7B568 801043C8 AFA60018 */ sw $a2, 0x18($sp)
/* B7B56C 801043CC AFA7001C */ sw $a3, 0x1c($sp)
/* B7B570 801043D0 030EC821 */ addu $t9, $t8, $t6
/* B7B574 801043D4 A7B9000C */ sh $t9, 0xc($sp)
/* B7B578 801043D8 24070003 */ li $a3, 3
/* B7B57C 801043DC 27A6000C */ addiu $a2, $sp, 0xc
/* B7B580 801043E0 27A30008 */ addiu $v1, $sp, 8
/* B7B584 801043E4 94C10000 */ lhu $at, ($a2)
.L801043E8:
/* B7B588 801043E8 A4610000 */ sh $at, ($v1)
/* B7B58C 801043EC 93AB000D */ lbu $t3, 0xd($sp)
/* B7B590 801043F0 000B6040 */ sll $t4, $t3, 1
/* B7B594 801043F4 00AC6821 */ addu $t5, $a1, $t4
/* B7B598 801043F8 95A10000 */ lhu $at, ($t5)
/* B7B59C 801043FC A4C10000 */ sh $at, ($a2)
/* B7B5A0 80104400 93B90009 */ lbu $t9, 9($sp)
/* B7B5A4 80104404 00194840 */ sll $t1, $t9, 1
/* B7B5A8 80104408 00A94021 */ addu $t0, $a1, $t1
/* B7B5AC 8010440C A5070000 */ sh $a3, ($t0)
/* B7B5B0 80104410 8C8B0060 */ lw $t3, 0x60($a0)
/* B7B5B4 80104414 97AA000C */ lhu $t2, 0xc($sp)
/* B7B5B8 80104418 93AC000C */ lbu $t4, 0xc($sp)
/* B7B5BC 8010441C 014B082A */ slt $at, $t2, $t3
/* B7B5C0 80104420 54200004 */ bnezl $at, .L80104434
/* B7B5C4 80104424 8FAF0020 */ lw $t7, 0x20($sp)
/* B7B5C8 80104428 504CFFEF */ beql $v0, $t4, .L801043E8
/* B7B5CC 8010442C 94C10000 */ lhu $at, ($a2)
/* B7B5D0 80104430 8FAF0020 */ lw $t7, 0x20($sp)
.L80104434:
/* B7B5D4 80104434 94C10000 */ lhu $at, ($a2)
/* B7B5D8 80104438 27BD0010 */ addiu $sp, $sp, 0x10
/* B7B5DC 8010443C 00001025 */ move $v0, $zero
/* B7B5E0 80104440 03E00008 */ jr $ra
/* B7B5E4 80104444 A5E10000 */ sh $at, ($t7)

126
asm/code_80104450.s Normal file
View file

@ -0,0 +1,126 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80104450
/* B7B5F0 80104450 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B7B5F4 80104454 AFBF0014 */ sw $ra, 0x14($sp)
/* B7B5F8 80104458 AFA5001C */ sw $a1, 0x1c($sp)
/* B7B5FC 8010445C AFA60020 */ sw $a2, 0x20($sp)
/* B7B600 80104460 AFA70024 */ sw $a3, 0x24($sp)
/* B7B604 80104464 0C0406D0 */ jal func_80101B40
/* B7B608 80104468 AFA40018 */ sw $a0, 0x18($sp)
/* B7B60C 8010446C C7A40020 */ lwc1 $f4, 0x20($sp)
/* B7B610 80104470 C7A6001C */ lwc1 $f6, 0x1c($sp)
/* B7B614 80104474 3C014000 */ li $at, 0x40000000 # 0.000000
/* B7B618 80104478 44814000 */ mtc1 $at, $f8
/* B7B61C 8010447C 46062001 */ sub.s $f0, $f4, $f6
/* B7B620 80104480 8FA20018 */ lw $v0, 0x18($sp)
/* B7B624 80104484 C7AE0028 */ lwc1 $f14, 0x28($sp)
/* B7B628 80104488 C7B00030 */ lwc1 $f16, 0x30($sp)
/* B7B62C 8010448C 46004283 */ div.s $f10, $f8, $f0
/* B7B630 80104490 C7B2002C */ lwc1 $f18, 0x2c($sp)
/* B7B634 80104494 44813000 */ mtc1 $at, $f6
/* B7B638 80104498 3C01C000 */ li $at, 0xC0000000 # 0.000000
/* B7B63C 8010449C 46128301 */ sub.s $f12, $f16, $f18
/* B7B640 801044A0 00001825 */ move $v1, $zero
/* B7B644 801044A4 24040004 */ li $a0, 4
/* B7B648 801044A8 E44A0000 */ swc1 $f10, ($v0)
/* B7B64C 801044AC C7A40024 */ lwc1 $f4, 0x24($sp)
/* B7B650 801044B0 44815000 */ mtc1 $at, $f10
/* B7B654 801044B4 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B7B658 801044B8 46047081 */ sub.s $f2, $f14, $f4
/* B7B65C 801044BC 460C5103 */ div.s $f4, $f10, $f12
/* B7B660 801044C0 46023203 */ div.s $f8, $f6, $f2
/* B7B664 801044C4 E4440028 */ swc1 $f4, 0x28($v0)
/* B7B668 801044C8 E4480014 */ swc1 $f8, 0x14($v0)
/* B7B66C 801044CC C7A8001C */ lwc1 $f8, 0x1c($sp)
/* B7B670 801044D0 C7A60020 */ lwc1 $f6, 0x20($sp)
/* B7B674 801044D4 46083280 */ add.s $f10, $f6, $f8
/* B7B678 801044D8 46005107 */ neg.s $f4, $f10
/* B7B67C 801044DC 46002183 */ div.s $f6, $f4, $f0
/* B7B680 801044E0 E4460030 */ swc1 $f6, 0x30($v0)
/* B7B684 801044E4 C7A80024 */ lwc1 $f8, 0x24($sp)
/* B7B688 801044E8 46087280 */ add.s $f10, $f14, $f8
/* B7B68C 801044EC 46128200 */ add.s $f8, $f16, $f18
/* B7B690 801044F0 46005107 */ neg.s $f4, $f10
/* B7B694 801044F4 46004287 */ neg.s $f10, $f8
/* B7B698 801044F8 46022183 */ div.s $f6, $f4, $f2
/* B7B69C 801044FC 460C5103 */ div.s $f4, $f10, $f12
/* B7B6A0 80104500 E4460034 */ swc1 $f6, 0x34($v0)
/* B7B6A4 80104504 44813000 */ mtc1 $at, $f6
/* B7B6A8 80104508 00000000 */ nop
/* B7B6AC 8010450C E446003C */ swc1 $f6, 0x3c($v0)
/* B7B6B0 80104510 E4440038 */ swc1 $f4, 0x38($v0)
/* B7B6B4 80104514 C7A00034 */ lwc1 $f0, 0x34($sp)
/* B7B6B8 80104518 C4480000 */ lwc1 $f8, ($v0)
/* B7B6BC 8010451C 24630001 */ addiu $v1, $v1, 1
/* B7B6C0 80104520 C4520004 */ lwc1 $f18, 4($v0)
/* B7B6C4 80104524 46004302 */ mul.s $f12, $f8, $f0
/* B7B6C8 80104528 C44E0008 */ lwc1 $f14, 8($v0)
/* B7B6CC 8010452C 10640010 */ beq $v1, $a0, .L80104570
/* B7B6D0 80104530 C450000C */ lwc1 $f16, 0xc($v0)
.L80104534:
/* B7B6D4 80104534 46009282 */ mul.s $f10, $f18, $f0
/* B7B6D8 80104538 C4480010 */ lwc1 $f8, 0x10($v0)
/* B7B6DC 8010453C C4520014 */ lwc1 $f18, 0x14($v0)
/* B7B6E0 80104540 46007182 */ mul.s $f6, $f14, $f0
/* B7B6E4 80104544 C44E0018 */ lwc1 $f14, 0x18($v0)
/* B7B6E8 80104548 24630001 */ addiu $v1, $v1, 1
/* B7B6EC 8010454C 46008102 */ mul.s $f4, $f16, $f0
/* B7B6F0 80104550 C450001C */ lwc1 $f16, 0x1c($v0)
/* B7B6F4 80104554 E44C0000 */ swc1 $f12, ($v0)
/* B7B6F8 80104558 46004302 */ mul.s $f12, $f8, $f0
/* B7B6FC 8010455C E44A0004 */ swc1 $f10, 4($v0)
/* B7B700 80104560 E4460008 */ swc1 $f6, 8($v0)
/* B7B704 80104564 24420010 */ addiu $v0, $v0, 0x10
/* B7B708 80104568 1464FFF2 */ bne $v1, $a0, .L80104534
/* B7B70C 8010456C E444FFFC */ swc1 $f4, -4($v0)
.L80104570:
/* B7B710 80104570 46009282 */ mul.s $f10, $f18, $f0
/* B7B714 80104574 24420010 */ addiu $v0, $v0, 0x10
/* B7B718 80104578 E44CFFF0 */ swc1 $f12, -0x10($v0)
/* B7B71C 8010457C 46007182 */ mul.s $f6, $f14, $f0
/* B7B720 80104580 00000000 */ nop
/* B7B724 80104584 46008102 */ mul.s $f4, $f16, $f0
/* B7B728 80104588 E44AFFF4 */ swc1 $f10, -0xc($v0)
/* B7B72C 8010458C E446FFF8 */ swc1 $f6, -8($v0)
/* B7B730 80104590 E444FFFC */ swc1 $f4, -4($v0)
/* B7B734 80104594 8FBF0014 */ lw $ra, 0x14($sp)
/* B7B738 80104598 27BD0018 */ addiu $sp, $sp, 0x18
/* B7B73C 8010459C 03E00008 */ jr $ra
/* B7B740 801045A0 00000000 */ nop
glabel func_801045A4
/* B7B744 801045A4 27BDFF98 */ addiu $sp, $sp, -0x68
/* B7B748 801045A8 44856000 */ mtc1 $a1, $f12
/* B7B74C 801045AC 44867000 */ mtc1 $a2, $f14
/* B7B750 801045B0 C7A40078 */ lwc1 $f4, 0x78($sp)
/* B7B754 801045B4 C7A6007C */ lwc1 $f6, 0x7c($sp)
/* B7B758 801045B8 C7A80080 */ lwc1 $f8, 0x80($sp)
/* B7B75C 801045BC C7AA0084 */ lwc1 $f10, 0x84($sp)
/* B7B760 801045C0 AFBF0024 */ sw $ra, 0x24($sp)
/* B7B764 801045C4 AFA40068 */ sw $a0, 0x68($sp)
/* B7B768 801045C8 44056000 */ mfc1 $a1, $f12
/* B7B76C 801045CC 44067000 */ mfc1 $a2, $f14
/* B7B770 801045D0 AFA70074 */ sw $a3, 0x74($sp)
/* B7B774 801045D4 27A40028 */ addiu $a0, $sp, 0x28
/* B7B778 801045D8 E7A40010 */ swc1 $f4, 0x10($sp)
/* B7B77C 801045DC E7A60014 */ swc1 $f6, 0x14($sp)
/* B7B780 801045E0 E7A80018 */ swc1 $f8, 0x18($sp)
/* B7B784 801045E4 0C041114 */ jal func_80104450
/* B7B788 801045E8 E7AA001C */ swc1 $f10, 0x1c($sp)
/* B7B78C 801045EC 27A40028 */ addiu $a0, $sp, 0x28
/* B7B790 801045F0 0C041938 */ jal func_801064E0
/* B7B794 801045F4 8FA50068 */ lw $a1, 0x68($sp)
/* B7B798 801045F8 8FBF0024 */ lw $ra, 0x24($sp)
/* B7B79C 801045FC 27BD0068 */ addiu $sp, $sp, 0x68
/* B7B7A0 80104600 03E00008 */ jr $ra
/* B7B7A4 80104604 00000000 */ nop

217
asm/code_80104810.s Normal file
View file

@ -0,0 +1,217 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80104810
/* B7B9B0 80104810 27BDFF90 */ addiu $sp, $sp, -0x70
/* B7B9B4 80104814 AFBF003C */ sw $ra, 0x3c($sp)
/* B7B9B8 80104818 AFB5002C */ sw $s5, 0x2c($sp)
/* B7B9BC 8010481C AFB20020 */ sw $s2, 0x20($sp)
/* B7B9C0 80104820 AFB1001C */ sw $s1, 0x1c($sp)
/* B7B9C4 80104824 00809025 */ move $s2, $a0
/* B7B9C8 80104828 AFBE0038 */ sw $fp, 0x38($sp)
/* B7B9CC 8010482C AFB70034 */ sw $s7, 0x34($sp)
/* B7B9D0 80104830 AFB60030 */ sw $s6, 0x30($sp)
/* B7B9D4 80104834 AFB40028 */ sw $s4, 0x28($sp)
/* B7B9D8 80104838 AFB30024 */ sw $s3, 0x24($sp)
/* B7B9DC 8010483C AFB00018 */ sw $s0, 0x18($sp)
/* B7B9E0 80104840 AFA50074 */ sw $a1, 0x74($sp)
/* B7B9E4 80104844 0000A825 */ move $s5, $zero
/* B7B9E8 80104848 0C0402E8 */ jal __osSiGetAccess
/* B7B9EC 8010484C 24110003 */ li $s1, 3
/* B7B9F0 80104850 3C1E8017 */ lui $fp, %hi(_osCont_numControllers) # $fp, 0x8017
/* B7B9F4 80104854 3C138017 */ lui $s3, %hi(D_80175960) # $s3, 0x8017
/* B7B9F8 80104858 26735960 */ addiu $s3, %lo(D_80175960) # addiu $s3, $s3, 0x5960
/* B7B9FC 8010485C 27DE5811 */ addiu $fp, %lo(_osCont_numControllers) # addiu $fp, $fp, 0x5811
/* B7BA00 80104860 00008025 */ move $s0, $zero
/* B7BA04 80104864 27B70054 */ addiu $s7, $sp, 0x54
/* B7BA08 80104868 27B60067 */ addiu $s6, $sp, 0x67
/* B7BA0C 8010486C 27B40068 */ addiu $s4, $sp, 0x68
.L80104870:
/* B7BA10 80104870 0C041267 */ jal func_8010499C
/* B7BA14 80104874 00002025 */ move $a0, $zero
/* B7BA18 80104878 24040001 */ li $a0, 1
/* B7BA1C 8010487C 0C0404FC */ jal __osSiRawStartDma /*(s32 dir, void *addr)*/
/* B7BA20 80104880 02602825 */ move $a1, $s3
/* B7BA24 80104884 02402025 */ move $a0, $s2
/* B7BA28 80104888 02802825 */ move $a1, $s4
/* B7BA2C 8010488C 0C000CA0 */ jal osRecvMesg
/* B7BA30 80104890 24060001 */ li $a2, 1
/* B7BA34 80104894 00002025 */ move $a0, $zero
/* B7BA38 80104898 0C0404FC */ jal __osSiRawStartDma /*(s32 dir, void *addr)*/
/* B7BA3C 8010489C 02602825 */ move $a1, $s3
/* B7BA40 801048A0 AFA2006C */ sw $v0, 0x6c($sp)
/* B7BA44 801048A4 02402025 */ move $a0, $s2
/* B7BA48 801048A8 02802825 */ move $a1, $s4
/* B7BA4C 801048AC 0C000CA0 */ jal osRecvMesg
/* B7BA50 801048B0 24060001 */ li $a2, 1
/* B7BA54 801048B4 02C02025 */ move $a0, $s6
/* B7BA58 801048B8 0C041294 */ jal func_80104A50
/* B7BA5C 801048BC 02E02825 */ move $a1, $s7
/* B7BA60 801048C0 93C30000 */ lbu $v1, ($fp)
/* B7BA64 801048C4 27A20054 */ addiu $v0, $sp, 0x54
/* B7BA68 801048C8 5860000C */ blezl $v1, .L801048FC
/* B7BA6C 801048CC 02031026 */ xor $v0, $s0, $v1
.L801048D0:
/* B7BA70 801048D0 904E0002 */ lbu $t6, 2($v0)
/* B7BA74 801048D4 31CF0004 */ andi $t7, $t6, 4
/* B7BA78 801048D8 55E00004 */ bnezl $t7, .L801048EC
/* B7BA7C 801048DC 26100001 */ addiu $s0, $s0, 1
/* B7BA80 801048E0 10000005 */ b .L801048F8
/* B7BA84 801048E4 2631FFFF */ addiu $s1, $s1, -1
/* B7BA88 801048E8 26100001 */ addiu $s0, $s0, 1
.L801048EC:
/* B7BA8C 801048EC 0203082A */ slt $at, $s0, $v1
/* B7BA90 801048F0 1420FFF7 */ bnez $at, .L801048D0
/* B7BA94 801048F4 24420004 */ addiu $v0, $v0, 4
.L801048F8:
/* B7BA98 801048F8 02031026 */ xor $v0, $s0, $v1
.L801048FC:
/* B7BA9C 801048FC 14400002 */ bnez $v0, .L80104908
/* B7BAA0 80104900 00008025 */ move $s0, $zero
/* B7BAA4 80104904 00008825 */ move $s1, $zero
.L80104908:
/* B7BAA8 80104908 1E20FFD9 */ bgtz $s1, .L80104870
/* B7BAAC 8010490C 00000000 */ nop
/* B7BAB0 80104910 18600011 */ blez $v1, .L80104958
/* B7BAB4 80104914 27A20054 */ addiu $v0, $sp, 0x54
.L80104918:
/* B7BAB8 80104918 90580003 */ lbu $t8, 3($v0)
/* B7BABC 8010491C 5700000B */ bnezl $t8, .L8010494C
/* B7BAC0 80104920 26100001 */ addiu $s0, $s0, 1
/* B7BAC4 80104924 90590002 */ lbu $t9, 2($v0)
/* B7BAC8 80104928 24090001 */ li $t1, 1
/* B7BACC 8010492C 02095004 */ sllv $t2, $t1, $s0
/* B7BAD0 80104930 33280001 */ andi $t0, $t9, 1
/* B7BAD4 80104934 51000005 */ beql $t0, $zero, .L8010494C
/* B7BAD8 80104938 26100001 */ addiu $s0, $s0, 1
/* B7BADC 8010493C 02AAA825 */ or $s5, $s5, $t2
/* B7BAE0 80104940 32AB00FF */ andi $t3, $s5, 0xff
/* B7BAE4 80104944 0160A825 */ move $s5, $t3
/* B7BAE8 80104948 26100001 */ addiu $s0, $s0, 1
.L8010494C:
/* B7BAEC 8010494C 0203082A */ slt $at, $s0, $v1
/* B7BAF0 80104950 1420FFF1 */ bnez $at, .L80104918
/* B7BAF4 80104954 24420004 */ addiu $v0, $v0, 4
.L80104958:
/* B7BAF8 80104958 0C0402F9 */ jal __osSiRelAccess
/* B7BAFC 8010495C 00000000 */ nop
/* B7BB00 80104960 8FAC0074 */ lw $t4, 0x74($sp)
/* B7BB04 80104964 A1950000 */ sb $s5, ($t4)
/* B7BB08 80104968 8FBF003C */ lw $ra, 0x3c($sp)
/* B7BB0C 8010496C 8FBE0038 */ lw $fp, 0x38($sp)
/* B7BB10 80104970 8FB70034 */ lw $s7, 0x34($sp)
/* B7BB14 80104974 8FB60030 */ lw $s6, 0x30($sp)
/* B7BB18 80104978 8FB5002C */ lw $s5, 0x2c($sp)
/* B7BB1C 8010497C 8FB40028 */ lw $s4, 0x28($sp)
/* B7BB20 80104980 8FB30024 */ lw $s3, 0x24($sp)
/* B7BB24 80104984 8FB20020 */ lw $s2, 0x20($sp)
/* B7BB28 80104988 8FB1001C */ lw $s1, 0x1c($sp)
/* B7BB2C 8010498C 8FB00018 */ lw $s0, 0x18($sp)
/* B7BB30 80104990 8FA2006C */ lw $v0, 0x6c($sp)
/* B7BB34 80104994 03E00008 */ jr $ra
/* B7BB38 80104998 27BD0070 */ addiu $sp, $sp, 0x70
glabel func_8010499C
/* B7BB3C 8010499C 27BDFFF0 */ addiu $sp, $sp, -0x10
/* B7BB40 801049A0 3C058017 */ lui $a1, %hi(D_80175960)
/* B7BB44 801049A4 3C018017 */ lui $at, %hi(_osCont_lastPollType) # $at, 0x8017
/* B7BB48 801049A8 24A25960 */ addiu $v0, $a1, %lo(D_80175960)
/* B7BB4C 801049AC AFA40010 */ sw $a0, 0x10($sp)
/* B7BB50 801049B0 A0245810 */ sb $a0, %lo(_osCont_lastPollType)($at)
/* B7BB54 801049B4 240F0001 */ li $t7, 1
/* B7BB58 801049B8 AC4F003C */ sw $t7, 0x3c($v0)
/* B7BB5C 801049BC 3C068017 */ lui $a2, %hi(_osCont_numControllers) # $a2, 0x8017
/* B7BB60 801049C0 24C65811 */ addiu $a2, %lo(_osCont_numControllers) # addiu $a2, $a2, 0x5811
/* B7BB64 801049C4 90CD0000 */ lbu $t5, ($a2)
/* B7BB68 801049C8 241800FF */ li $t8, 255
/* B7BB6C 801049CC 24190001 */ li $t9, 1
/* B7BB70 801049D0 24080003 */ li $t0, 3
/* B7BB74 801049D4 240900FF */ li $t1, 255
/* B7BB78 801049D8 240A00FF */ li $t2, 255
/* B7BB7C 801049DC 240B00FF */ li $t3, 255
/* B7BB80 801049E0 240C00FF */ li $t4, 255
/* B7BB84 801049E4 A3B80004 */ sb $t8, 4($sp)
/* B7BB88 801049E8 A3B90005 */ sb $t9, 5($sp)
/* B7BB8C 801049EC A3A80006 */ sb $t0, 6($sp)
/* B7BB90 801049F0 A3A40007 */ sb $a0, 7($sp)
/* B7BB94 801049F4 A3A90008 */ sb $t1, 8($sp)
/* B7BB98 801049F8 A3AA0009 */ sb $t2, 9($sp)
/* B7BB9C 801049FC A3AB000A */ sb $t3, 0xa($sp)
/* B7BBA0 80104A00 A3AC000B */ sb $t4, 0xb($sp)
/* B7BBA4 80104A04 19A0000E */ blez $t5, .L80104A40
/* B7BBA8 80104A08 00001825 */ move $v1, $zero
/* B7BBAC 80104A0C 27A40004 */ addiu $a0, $sp, 4
/* B7BBB0 80104A10 8C810000 */ lw $at, ($a0)
.L80104A14:
/* B7BBB4 80104A14 24630001 */ addiu $v1, $v1, 1
/* B7BBB8 80104A18 24420008 */ addiu $v0, $v0, 8
/* B7BBBC 80104A1C A841FFF8 */ swl $at, -8($v0)
/* B7BBC0 80104A20 B841FFFB */ swr $at, -5($v0)
/* B7BBC4 80104A24 8C8F0004 */ lw $t7, 4($a0)
/* B7BBC8 80104A28 A84FFFFC */ swl $t7, -4($v0)
/* B7BBCC 80104A2C B84FFFFF */ swr $t7, -1($v0)
/* B7BBD0 80104A30 90D80000 */ lbu $t8, ($a2)
/* B7BBD4 80104A34 0078082A */ slt $at, $v1, $t8
/* B7BBD8 80104A38 5420FFF6 */ bnezl $at, .L80104A14
/* B7BBDC 80104A3C 8C810000 */ lw $at, ($a0)
.L80104A40:
/* B7BBE0 80104A40 241900FE */ li $t9, 254
/* B7BBE4 80104A44 A0590000 */ sb $t9, ($v0)
/* B7BBE8 80104A48 03E00008 */ jr $ra
/* B7BBEC 80104A4C 27BD0010 */ addiu $sp, $sp, 0x10
glabel func_80104A50
/* B7BBF0 80104A50 3C078017 */ lui $a3, %hi(_osCont_numControllers) # $a3, 0x8017
/* B7BBF4 80104A54 24E75811 */ addiu $a3, %lo(_osCont_numControllers) # addiu $a3, $a3, 0x5811
/* B7BBF8 80104A58 90EE0000 */ lbu $t6, ($a3)
/* B7BBFC 80104A5C 3C038017 */ lui $v1, %hi(D_80175960) # $v1, 0x8017
/* B7BC00 80104A60 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B7BC04 80104A64 00001025 */ move $v0, $zero
/* B7BC08 80104A68 24635960 */ addiu $v1, %lo(D_80175960) # addiu $v1, $v1, 0x5960
/* B7BC0C 80104A6C 19C00020 */ blez $t6, .L80104AF0
/* B7BC10 80104A70 00003025 */ move $a2, $zero
/* B7BC14 80104A74 27A8000C */ addiu $t0, $sp, 0xc
.L80104A78:
/* B7BC18 80104A78 88610000 */ lwl $at, ($v1)
/* B7BC1C 80104A7C 98610003 */ lwr $at, 3($v1)
/* B7BC20 80104A80 AD010000 */ sw $at, ($t0)
/* B7BC24 80104A84 88780004 */ lwl $t8, 4($v1)
/* B7BC28 80104A88 98780007 */ lwr $t8, 7($v1)
/* B7BC2C 80104A8C AD180004 */ sw $t8, 4($t0)
/* B7BC30 80104A90 93B9000E */ lbu $t9, 0xe($sp)
/* B7BC34 80104A94 332900C0 */ andi $t1, $t9, 0xc0
/* B7BC38 80104A98 00095103 */ sra $t2, $t1, 4
/* B7BC3C 80104A9C 314B00FF */ andi $t3, $t2, 0xff
/* B7BC40 80104AA0 1560000D */ bnez $t3, .L80104AD8
/* B7BC44 80104AA4 A0AA0003 */ sb $t2, 3($a1)
/* B7BC48 80104AA8 93AC0011 */ lbu $t4, 0x11($sp)
/* B7BC4C 80104AAC 93AE0010 */ lbu $t6, 0x10($sp)
/* B7BC50 80104AB0 24190001 */ li $t9, 1
/* B7BC54 80104AB4 000C6A00 */ sll $t5, $t4, 8
/* B7BC58 80104AB8 01AE7825 */ or $t7, $t5, $t6
/* B7BC5C 80104ABC A4AF0000 */ sh $t7, ($a1)
/* B7BC60 80104AC0 93B80012 */ lbu $t8, 0x12($sp)
/* B7BC64 80104AC4 00D94804 */ sllv $t1, $t9, $a2
/* B7BC68 80104AC8 00491025 */ or $v0, $v0, $t1
/* B7BC6C 80104ACC 304A00FF */ andi $t2, $v0, 0xff
/* B7BC70 80104AD0 01401025 */ move $v0, $t2
/* B7BC74 80104AD4 A0B80002 */ sb $t8, 2($a1)
.L80104AD8:
/* B7BC78 80104AD8 90EB0000 */ lbu $t3, ($a3)
/* B7BC7C 80104ADC 24C60001 */ addiu $a2, $a2, 1
/* B7BC80 80104AE0 24630008 */ addiu $v1, $v1, 8
/* B7BC84 80104AE4 00CB082A */ slt $at, $a2, $t3
/* B7BC88 80104AE8 1420FFE3 */ bnez $at, .L80104A78
/* B7BC8C 80104AEC 24A50004 */ addiu $a1, $a1, 4
.L80104AF0:
/* B7BC90 80104AF0 A0820000 */ sb $v0, ($a0)
/* B7BC94 80104AF4 03E00008 */ jr $ra
/* B7BC98 80104AF8 27BD0018 */ addiu $sp, $sp, 0x18

114
asm/code_80104B00.s Normal file
View file

@ -0,0 +1,114 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80104B00
/* B7BCA0 80104B00 908E0016 */ lbu $t6, 0x16($a0)
/* B7BCA4 80104B04 24010002 */ li $at, 2
/* B7BCA8 80104B08 24020200 */ li $v0, 512
/* B7BCAC 80104B0C 15C10003 */ bne $t6, $at, .L80104B1C
/* B7BCB0 80104B10 24180006 */ li $t8, 6
/* B7BCB4 80104B14 10000001 */ b .L80104B1C
/* B7BCB8 80104B18 24020100 */ li $v0, 256
.L80104B1C:
/* B7BCBC 80104B1C 908F0017 */ lbu $t7, 0x17($a0)
/* B7BCC0 80104B20 94880014 */ lhu $t0, 0x14($a0)
/* B7BCC4 80104B24 24010033 */ li $at, 51
/* B7BCC8 80104B28 030F1823 */ subu $v1, $t8, $t7
/* B7BCCC 80104B2C 3079FFFF */ andi $t9, $v1, 0xffff
/* B7BCD0 80104B30 1501002D */ bne $t0, $at, .L80104BE8
/* B7BCD4 80104B34 03201825 */ move $v1, $t9
/* B7BCD8 80104B38 94890002 */ lhu $t1, 2($a0)
/* B7BCDC 80104B3C 00695007 */ srav $t2, $t1, $v1
/* B7BCE0 80104B40 3145FFFF */ andi $a1, $t2, 0xffff
/* B7BCE4 80104B44 0045001A */ div $zero, $v0, $a1
/* B7BCE8 80104B48 00005812 */ mflo $t3
/* B7BCEC 80104B4C 000B6080 */ sll $t4, $t3, 2
/* B7BCF0 80104B50 00056840 */ sll $t5, $a1, 1
/* B7BCF4 80104B54 31B8FFFF */ andi $t8, $t5, 0xffff
/* B7BCF8 80104B58 318EFFFF */ andi $t6, $t4, 0xffff
/* B7BCFC 80104B5C 01D80019 */ multu $t6, $t8
/* B7BD00 80104B60 A48A001C */ sh $t2, 0x1c($a0)
/* B7BD04 80104B64 240A07FF */ li $t2, 2047
/* B7BD08 80104B68 14A00002 */ bnez $a1, .L80104B74
/* B7BD0C 80104B6C 00000000 */ nop
/* B7BD10 80104B70 0007000D */ break 7
.L80104B74:
/* B7BD14 80104B74 2401FFFF */ li $at, -1
/* B7BD18 80104B78 14A10004 */ bne $a1, $at, .L80104B8C
/* B7BD1C 80104B7C 3C018000 */ lui $at, 0x8000
/* B7BD20 80104B80 14410002 */ bne $v0, $at, .L80104B8C
/* B7BD24 80104B84 00000000 */ nop
/* B7BD28 80104B88 0006000D */ break 6
.L80104B8C:
/* B7BD2C 80104B8C 00007812 */ mflo $t7
/* B7BD30 80104B90 31F9FFFF */ andi $t9, $t7, 0xffff
/* B7BD34 80104B94 A48C001E */ sh $t4, 0x1e($a0)
/* B7BD38 80104B98 0145001A */ div $zero, $t2, $a1
/* B7BD3C 80104B9C 00194043 */ sra $t0, $t9, 1
/* B7BD40 80104BA0 00005812 */ mflo $t3
/* B7BD44 80104BA4 2509FFFF */ addiu $t1, $t0, -1
/* B7BD48 80104BA8 256C0001 */ addiu $t4, $t3, 1
/* B7BD4C 80104BAC A48D0024 */ sh $t5, 0x24($a0)
/* B7BD50 80104BB0 A48F0026 */ sh $t7, 0x26($a0)
/* B7BD54 80104BB4 A4890020 */ sh $t1, 0x20($a0)
/* B7BD58 80104BB8 14A00002 */ bnez $a1, .L80104BC4
/* B7BD5C 80104BBC 00000000 */ nop
/* B7BD60 80104BC0 0007000D */ break 7
.L80104BC4:
/* B7BD64 80104BC4 2401FFFF */ li $at, -1
/* B7BD68 80104BC8 14A10004 */ bne $a1, $at, .L80104BDC
/* B7BD6C 80104BCC 3C018000 */ lui $at, 0x8000
/* B7BD70 80104BD0 15410002 */ bne $t2, $at, .L80104BDC
/* B7BD74 80104BD4 00000000 */ nop
/* B7BD78 80104BD8 0006000D */ break 6
.L80104BDC:
/* B7BD7C 80104BDC A48C0022 */ sh $t4, 0x22($a0)
/* B7BD80 80104BE0 03E00008 */ jr $ra
/* B7BD84 80104BE4 00000000 */ nop
.L80104BE8:
/* B7BD88 80104BE8 948D0006 */ lhu $t5, 6($a0)
/* B7BD8C 80104BEC 94890002 */ lhu $t1, 2($a0)
/* B7BD90 80104BF0 00602825 */ move $a1, $v1
/* B7BD94 80104BF4 006D7007 */ srav $t6, $t5, $v1
/* B7BD98 80104BF8 25D80003 */ addiu $t8, $t6, 3
/* B7BD9C 80104BFC 330FFFFF */ andi $t7, $t8, 0xffff
/* B7BDA0 80104C00 004F001A */ div $zero, $v0, $t7
/* B7BDA4 80104C04 0000C812 */ mflo $t9
/* B7BDA8 80104C08 00A95007 */ srav $t2, $t1, $a1
/* B7BDAC 80104C0C 00194080 */ sll $t0, $t9, 2
/* B7BDB0 80104C10 000A5840 */ sll $t3, $t2, 1
/* B7BDB4 80104C14 316CFFFF */ andi $t4, $t3, 0xffff
/* B7BDB8 80104C18 3106FFFF */ andi $a2, $t0, 0xffff
/* B7BDBC 80104C1C 00CC0019 */ multu $a2, $t4
/* B7BDC0 80104C20 A498001C */ sh $t8, 0x1c($a0)
/* B7BDC4 80104C24 24D8FFFF */ addiu $t8, $a2, -1
/* B7BDC8 80104C28 15E00002 */ bnez $t7, .L80104C34
/* B7BDCC 80104C2C 00000000 */ nop
/* B7BDD0 80104C30 0007000D */ break 7
.L80104C34:
/* B7BDD4 80104C34 2401FFFF */ li $at, -1
/* B7BDD8 80104C38 15E10004 */ bne $t7, $at, .L80104C4C
/* B7BDDC 80104C3C 3C018000 */ lui $at, 0x8000
/* B7BDE0 80104C40 14410002 */ bne $v0, $at, .L80104C4C
/* B7BDE4 80104C44 00000000 */ nop
/* B7BDE8 80104C48 0006000D */ break 6
.L80104C4C:
/* B7BDEC 80104C4C 00003812 */ mflo $a3
/* B7BDF0 80104C50 00076C02 */ srl $t5, $a3, 0x10
/* B7BDF4 80104C54 30EEFFFF */ andi $t6, $a3, 0xffff
/* B7BDF8 80104C58 A488001E */ sh $t0, 0x1e($a0)
/* B7BDFC 80104C5C A48B0024 */ sh $t3, 0x24($a0)
/* B7BE00 80104C60 A48D0026 */ sh $t5, 0x26($a0)
/* B7BE04 80104C64 A48E0020 */ sh $t6, 0x20($a0)
/* B7BE08 80104C68 A4980022 */ sh $t8, 0x22($a0)
/* B7BE0C 80104C6C 03E00008 */ jr $ra
/* B7BE10 80104C70 00000000 */ nop

44
asm/code_80104C80.s Normal file
View file

@ -0,0 +1,44 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80104C80
/* B7BE20 80104C80 27BDFFA8 */ addiu $sp, $sp, -0x58
/* B7BE24 80104C84 AFB00020 */ sw $s0, 0x20($sp)
/* B7BE28 80104C88 30B000FF */ andi $s0, $a1, 0xff
/* B7BE2C 80104C8C AFBF0024 */ sw $ra, 0x24($sp)
/* B7BE30 80104C90 AFA40058 */ sw $a0, 0x58($sp)
/* B7BE34 80104C94 AFA5005C */ sw $a1, 0x5c($sp)
/* B7BE38 80104C98 27A20038 */ addiu $v0, $sp, 0x38
/* B7BE3C 80104C9C 27A30058 */ addiu $v1, $sp, 0x58
.L80104CA0:
/* B7BE40 80104CA0 24420004 */ addiu $v0, $v0, 4
/* B7BE44 80104CA4 A050FFFD */ sb $s0, -3($v0)
/* B7BE48 80104CA8 A050FFFE */ sb $s0, -2($v0)
/* B7BE4C 80104CAC A050FFFF */ sb $s0, -1($v0)
/* B7BE50 80104CB0 1443FFFB */ bne $v0, $v1, .L80104CA0
/* B7BE54 80104CB4 A050FFFC */ sb $s0, -4($v0)
/* B7BE58 80104CB8 8FAE0058 */ lw $t6, 0x58($sp)
/* B7BE5C 80104CBC 24060400 */ li $a2, 1024
/* B7BE60 80104CC0 27A70038 */ addiu $a3, $sp, 0x38
/* B7BE64 80104CC4 8DC40004 */ lw $a0, 4($t6)
/* B7BE68 80104CC8 8DC50008 */ lw $a1, 8($t6)
/* B7BE6C 80104CCC 0C04173C */ jal func_80105CF0
/* B7BE70 80104CD0 AFA00010 */ sw $zero, 0x10($sp)
/* B7BE74 80104CD4 14400003 */ bnez $v0, .L80104CE4
/* B7BE78 80104CD8 00401825 */ move $v1, $v0
/* B7BE7C 80104CDC 8FAF0058 */ lw $t7, 0x58($sp)
/* B7BE80 80104CE0 A1F00065 */ sb $s0, 0x65($t7)
.L80104CE4:
/* B7BE84 80104CE4 8FBF0024 */ lw $ra, 0x24($sp)
/* B7BE88 80104CE8 8FB00020 */ lw $s0, 0x20($sp)
/* B7BE8C 80104CEC 27BD0058 */ addiu $sp, $sp, 0x58
/* B7BE90 80104CF0 03E00008 */ jr $ra
/* B7BE94 80104CF4 00601025 */ move $v0, $v1

36
asm/code_80104D00.s Normal file
View file

@ -0,0 +1,36 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80104D00
/* B7BEA0 80104D00 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B7BEA4 80104D04 AFBF0014 */ sw $ra, 0x14($sp)
/* B7BEA8 80104D08 0C0402E8 */ jal __osSiGetAccess
/* B7BEAC 80104D0C AFA40018 */ sw $a0, 0x18($sp)
/* B7BEB0 80104D10 93A2001B */ lbu $v0, 0x1b($sp)
/* B7BEB4 80104D14 240E0004 */ li $t6, 4
/* B7BEB8 80104D18 240F00FE */ li $t7, 254
/* B7BEBC 80104D1C 28410005 */ slti $at, $v0, 5
/* B7BEC0 80104D20 14200003 */ bnez $at, .L80104D30
/* B7BEC4 80104D24 3C018017 */ lui $at, %hi(_osCont_numControllers) # $at, 0x8017
/* B7BEC8 80104D28 10000003 */ b .L80104D38
/* B7BECC 80104D2C A02E5811 */ sb $t6, %lo(_osCont_numControllers)($at)
.L80104D30:
/* B7BED0 80104D30 3C018017 */ lui $at, %hi(_osCont_numControllers) # $at, 0x8017
/* B7BED4 80104D34 A0225811 */ sb $v0, %lo(_osCont_numControllers)($at)
.L80104D38:
/* B7BED8 80104D38 3C018017 */ lui $at, %hi(_osCont_lastPollType) # $at, 0x8017
/* B7BEDC 80104D3C 0C0402F9 */ jal __osSiRelAccess
/* B7BEE0 80104D40 A02F5810 */ sb $t7, %lo(_osCont_lastPollType)($at)
/* B7BEE4 80104D44 8FBF0014 */ lw $ra, 0x14($sp)
/* B7BEE8 80104D48 27BD0018 */ addiu $sp, $sp, 0x18
/* B7BEEC 80104D4C 00001025 */ move $v0, $zero
/* B7BEF0 80104D50 03E00008 */ jr $ra
/* B7BEF4 80104D54 00000000 */ nop

146
asm/code_80104D60.s Normal file
View file

@ -0,0 +1,146 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80104D60
/* B7BF00 80104D60 27BDFEA0 */ addiu $sp, $sp, -0x160
/* B7BF04 80104D64 AFBF002C */ sw $ra, 0x2c($sp)
/* B7BF08 80104D68 AFB40028 */ sw $s4, 0x28($sp)
/* B7BF0C 80104D6C AFB30024 */ sw $s3, 0x24($sp)
/* B7BF10 80104D70 AFB20020 */ sw $s2, 0x20($sp)
/* B7BF14 80104D74 AFB1001C */ sw $s1, 0x1c($sp)
/* B7BF18 80104D78 AFB00018 */ sw $s0, 0x18($sp)
/* B7BF1C 80104D7C AFA60168 */ sw $a2, 0x168($sp)
/* B7BF20 80104D80 8C8E0050 */ lw $t6, 0x50($a0)
/* B7BF24 80104D84 00A08025 */ move $s0, $a1
/* B7BF28 80104D88 00809825 */ move $s3, $a0
/* B7BF2C 80104D8C 00AE082A */ slt $at, $a1, $t6
/* B7BF30 80104D90 10200003 */ beqz $at, .L80104DA0
/* B7BF34 80104D94 00000000 */ nop
/* B7BF38 80104D98 04A30004 */ bgezl $a1, .L80104DAC
/* B7BF3C 80104D9C 8E6F0000 */ lw $t7, ($s3)
.L80104DA0:
/* B7BF40 80104DA0 1000005E */ b .L80104F1C
/* B7BF44 80104DA4 24020005 */ li $v0, 5
/* B7BF48 80104DA8 8E6F0000 */ lw $t7, ($s3)
.L80104DAC:
/* B7BF4C 80104DAC 31F80001 */ andi $t8, $t7, 1
/* B7BF50 80104DB0 17000003 */ bnez $t8, .L80104DC0
/* B7BF54 80104DB4 00000000 */ nop
/* B7BF58 80104DB8 10000058 */ b .L80104F1C
/* B7BF5C 80104DBC 24020005 */ li $v0, 5
.L80104DC0:
/* B7BF60 80104DC0 0C040AFC */ jal func_80102BF0
/* B7BF64 80104DC4 02602025 */ move $a0, $s3
/* B7BF68 80104DC8 50400004 */ beql $v0, $zero, .L80104DDC
/* B7BF6C 80104DCC 92790065 */ lbu $t9, 0x65($s3)
/* B7BF70 80104DD0 10000053 */ b .L80104F20
/* B7BF74 80104DD4 8FBF002C */ lw $ra, 0x2c($sp)
/* B7BF78 80104DD8 92790065 */ lbu $t9, 0x65($s3)
.L80104DDC:
/* B7BF7C 80104DDC 02602025 */ move $a0, $s3
/* B7BF80 80104DE0 53200008 */ beql $t9, $zero, .L80104E04
/* B7BF84 80104DE4 8E68005C */ lw $t0, 0x5c($s3)
/* B7BF88 80104DE8 0C041320 */ jal func_80104C80
/* B7BF8C 80104DEC 00002825 */ move $a1, $zero
/* B7BF90 80104DF0 50400004 */ beql $v0, $zero, .L80104E04
/* B7BF94 80104DF4 8E68005C */ lw $t0, 0x5c($s3)
/* B7BF98 80104DF8 10000049 */ b .L80104F20
/* B7BF9C 80104DFC 8FBF002C */ lw $ra, 0x2c($sp)
/* B7BFA0 80104E00 8E68005C */ lw $t0, 0x5c($s3)
.L80104E04:
/* B7BFA4 80104E04 8E640004 */ lw $a0, 4($s3)
/* B7BFA8 80104E08 8E650008 */ lw $a1, 8($s3)
/* B7BFAC 80104E0C 01103021 */ addu $a2, $t0, $s0
/* B7BFB0 80104E10 30C9FFFF */ andi $t1, $a2, 0xffff
/* B7BFB4 80104E14 01203025 */ move $a2, $t1
/* B7BFB8 80104E18 0C0417D0 */ jal func_80105F40
/* B7BFBC 80104E1C 27A70038 */ addiu $a3, $sp, 0x38
/* B7BFC0 80104E20 10400003 */ beqz $v0, .L80104E30
/* B7BFC4 80104E24 97AA003C */ lhu $t2, 0x3c($sp)
/* B7BFC8 80104E28 1000003D */ b .L80104F20
/* B7BFCC 80104E2C 8FBF002C */ lw $ra, 0x2c($sp)
.L80104E30:
/* B7BFD0 80104E30 11400003 */ beqz $t2, .L80104E40
/* B7BFD4 80104E34 8FAB0038 */ lw $t3, 0x38($sp)
/* B7BFD8 80104E38 15600003 */ bnez $t3, .L80104E48
/* B7BFDC 80104E3C 27B40034 */ addiu $s4, $sp, 0x34
.L80104E40:
/* B7BFE0 80104E40 10000036 */ b .L80104F1C
/* B7BFE4 80104E44 24020005 */ li $v0, 5
.L80104E48:
/* B7BFE8 80104E48 27AC003E */ addiu $t4, $sp, 0x3e
/* B7BFEC 80104E4C 95810000 */ lhu $at, ($t4)
/* B7BFF0 80104E50 00009025 */ move $s2, $zero
/* B7BFF4 80104E54 241000FF */ li $s0, 255
/* B7BFF8 80104E58 27B10058 */ addiu $s1, $sp, 0x58
/* B7BFFC 80104E5C A6810000 */ sh $at, ($s4)
.L80104E60:
/* B7C000 80104E60 97AF0034 */ lhu $t7, 0x34($sp)
/* B7C004 80104E64 8E780060 */ lw $t8, 0x60($s3)
/* B7C008 80104E68 93B90034 */ lbu $t9, 0x34($sp)
/* B7C00C 80104E6C 02602025 */ move $a0, $s3
/* B7C010 80104E70 01F8082A */ slt $at, $t7, $t8
/* B7C014 80104E74 14200011 */ bnez $at, .L80104EBC
/* B7C018 80104E78 02202825 */ move $a1, $s1
/* B7C01C 80104E7C 12190008 */ beq $s0, $t9, .L80104EA0
/* B7C020 80104E80 00003025 */ move $a2, $zero
/* B7C024 80104E84 03208025 */ move $s0, $t9
/* B7C028 80104E88 0C040B31 */ jal func_80102CC4
/* B7C02C 80104E8C 332700FF */ andi $a3, $t9, 0xff
/* B7C030 80104E90 50400004 */ beql $v0, $zero, .L80104EA4
/* B7C034 80104E94 93A80035 */ lbu $t0, 0x35($sp)
/* B7C038 80104E98 10000021 */ b .L80104F20
/* B7C03C 80104E9C 8FBF002C */ lw $ra, 0x2c($sp)
.L80104EA0:
/* B7C040 80104EA0 93A80035 */ lbu $t0, 0x35($sp)
.L80104EA4:
/* B7C044 80104EA4 26520001 */ addiu $s2, $s2, 1
/* B7C048 80104EA8 00084840 */ sll $t1, $t0, 1
/* B7C04C 80104EAC 02295021 */ addu $t2, $s1, $t1
/* B7C050 80104EB0 95410000 */ lhu $at, ($t2)
/* B7C054 80104EB4 1000FFEA */ b .L80104E60
/* B7C058 80104EB8 A6810000 */ sh $at, ($s4)
.L80104EBC:
/* B7C05C 80104EBC 97AC0034 */ lhu $t4, 0x34($sp)
/* B7C060 80104EC0 24010001 */ li $at, 1
/* B7C064 80104EC4 8FA20168 */ lw $v0, 0x168($sp)
/* B7C068 80104EC8 11810003 */ beq $t4, $at, .L80104ED8
/* B7C06C 80104ECC 00127200 */ sll $t6, $s2, 8
/* B7C070 80104ED0 10000012 */ b .L80104F1C
/* B7C074 80104ED4 24020003 */ li $v0, 3
.L80104ED8:
/* B7C078 80104ED8 AC4E0000 */ sw $t6, ($v0)
/* B7C07C 80104EDC 97AF003C */ lhu $t7, 0x3c($sp)
/* B7C080 80104EE0 27A40048 */ addiu $a0, $sp, 0x48
/* B7C084 80104EE4 2445000E */ addiu $a1, $v0, 0xe
/* B7C088 80104EE8 A44F0008 */ sh $t7, 8($v0)
/* B7C08C 80104EEC 8FB80038 */ lw $t8, 0x38($sp)
/* B7C090 80104EF0 24060010 */ li $a2, 16
/* B7C094 80104EF4 0C001BC4 */ jal bcopy
/* B7C098 80104EF8 AC580004 */ sw $t8, 4($v0)
/* B7C09C 80104EFC 8FA50168 */ lw $a1, 0x168($sp)
/* B7C0A0 80104F00 27A40044 */ addiu $a0, $sp, 0x44
/* B7C0A4 80104F04 24060004 */ li $a2, 4
/* B7C0A8 80104F08 0C001BC4 */ jal bcopy
/* B7C0AC 80104F0C 24A5000A */ addiu $a1, $a1, 0xa
/* B7C0B0 80104F10 8E640004 */ lw $a0, 4($s3)
/* B7C0B4 80104F14 0C040644 */ jal func_80101910
/* B7C0B8 80104F18 8E650008 */ lw $a1, 8($s3)
.L80104F1C:
/* B7C0BC 80104F1C 8FBF002C */ lw $ra, 0x2c($sp)
.L80104F20:
/* B7C0C0 80104F20 8FB00018 */ lw $s0, 0x18($sp)
/* B7C0C4 80104F24 8FB1001C */ lw $s1, 0x1c($sp)
/* B7C0C8 80104F28 8FB20020 */ lw $s2, 0x20($sp)
/* B7C0CC 80104F2C 8FB30024 */ lw $s3, 0x24($sp)
/* B7C0D0 80104F30 8FB40028 */ lw $s4, 0x28($sp)
/* B7C0D4 80104F34 03E00008 */ jr $ra
/* B7C0D8 80104F38 27BD0160 */ addiu $sp, $sp, 0x160

229
asm/code_80104F40.s Normal file
View file

@ -0,0 +1,229 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80104F40
/* B7C0E0 80104F40 27BDFF90 */ addiu $sp, $sp, -0x70
/* B7C0E4 80104F44 AFBF001C */ sw $ra, 0x1c($sp)
/* B7C0E8 80104F48 AFB00018 */ sw $s0, 0x18($sp)
/* B7C0EC 80104F4C 00A08025 */ move $s0, $a1
/* B7C0F0 80104F50 AFA40070 */ sw $a0, 0x70($sp)
/* B7C0F4 80104F54 0C0402E8 */ jal __osSiGetAccess
/* B7C0F8 80104F58 AFA60078 */ sw $a2, 0x78($sp)
/* B7C0FC 80104F5C 8FA40070 */ lw $a0, 0x70($sp)
/* B7C100 80104F60 0C040644 */ jal func_80101910
/* B7C104 80104F64 8FA50078 */ lw $a1, 0x78($sp)
/* B7C108 80104F68 0C0402F9 */ jal __osSiRelAccess
/* B7C10C 80104F6C AFA2006C */ sw $v0, 0x6c($sp)
/* B7C110 80104F70 8FA3006C */ lw $v1, 0x6c($sp)
/* B7C114 80104F74 8FAE0070 */ lw $t6, 0x70($sp)
/* B7C118 80104F78 02002025 */ move $a0, $s0
/* B7C11C 80104F7C 50600004 */ beql $v1, $zero, .L80104F90
/* B7C120 80104F80 AE0E0004 */ sw $t6, 4($s0)
/* B7C124 80104F84 1000006B */ b .L80105134
/* B7C128 80104F88 00601025 */ move $v0, $v1
/* B7C12C 80104F8C AE0E0004 */ sw $t6, 4($s0)
.L80104F90:
/* B7C130 80104F90 8FAF0078 */ lw $t7, 0x78($sp)
/* B7C134 80104F94 AE000000 */ sw $zero, ($s0)
/* B7C138 80104F98 0C041452 */ jal func_80105148
/* B7C13C 80104F9C AE0F0008 */ sw $t7, 8($s0)
/* B7C140 80104FA0 10400003 */ beqz $v0, .L80104FB0
/* B7C144 80104FA4 02002025 */ move $a0, $s0
/* B7C148 80104FA8 10000063 */ b .L80105138
/* B7C14C 80104FAC 8FBF001C */ lw $ra, 0x1c($sp)
.L80104FB0:
/* B7C150 80104FB0 0C041320 */ jal func_80104C80
/* B7C154 80104FB4 00002825 */ move $a1, $zero
/* B7C158 80104FB8 10400003 */ beqz $v0, .L80104FC8
/* B7C15C 80104FBC 24060001 */ li $a2, 1
/* B7C160 80104FC0 1000005D */ b .L80105138
/* B7C164 80104FC4 8FBF001C */ lw $ra, 0x1c($sp)
.L80104FC8:
/* B7C168 80104FC8 8E040004 */ lw $a0, 4($s0)
/* B7C16C 80104FCC 8E050008 */ lw $a1, 8($s0)
/* B7C170 80104FD0 0C0417D0 */ jal func_80105F40
/* B7C174 80104FD4 27A70048 */ addiu $a3, $sp, 0x48
/* B7C178 80104FD8 10400003 */ beqz $v0, .L80104FE8
/* B7C17C 80104FDC 27A40048 */ addiu $a0, $sp, 0x48
/* B7C180 80104FE0 10000055 */ b .L80105138
/* B7C184 80104FE4 8FBF001C */ lw $ra, 0x1c($sp)
.L80104FE8:
/* B7C188 80104FE8 27A5006A */ addiu $a1, $sp, 0x6a
/* B7C18C 80104FEC 0C040925 */ jal func_80102494
/* B7C190 80104FF0 27A60068 */ addiu $a2, $sp, 0x68
/* B7C194 80104FF4 97B8006A */ lhu $t8, 0x6a($sp)
/* B7C198 80104FF8 97B90064 */ lhu $t9, 0x64($sp)
/* B7C19C 80104FFC 27A50048 */ addiu $a1, $sp, 0x48
/* B7C1A0 80105000 AFA50044 */ sw $a1, 0x44($sp)
/* B7C1A4 80105004 17190004 */ bne $t8, $t9, .L80105018
/* B7C1A8 80105008 97A90068 */ lhu $t1, 0x68($sp)
/* B7C1AC 8010500C 97AA0066 */ lhu $t2, 0x66($sp)
/* B7C1B0 80105010 512A000A */ beql $t1, $t2, .L8010503C
/* B7C1B4 80105014 97AD0060 */ lhu $t5, 0x60($sp)
.L80105018:
/* B7C1B8 80105018 0C040A38 */ jal func_801028E0
/* B7C1BC 8010501C 02002025 */ move $a0, $s0
/* B7C1C0 80105020 50400006 */ beql $v0, $zero, .L8010503C
/* B7C1C4 80105024 97AD0060 */ lhu $t5, 0x60($sp)
/* B7C1C8 80105028 8E0B0000 */ lw $t3, ($s0)
/* B7C1CC 8010502C 356C0004 */ ori $t4, $t3, 4
/* B7C1D0 80105030 10000040 */ b .L80105134
/* B7C1D4 80105034 AE0C0000 */ sw $t4, ($s0)
/* B7C1D8 80105038 97AD0060 */ lhu $t5, 0x60($sp)
.L8010503C:
/* B7C1DC 8010503C 27A50048 */ addiu $a1, $sp, 0x48
/* B7C1E0 80105040 02002025 */ move $a0, $s0
/* B7C1E4 80105044 31AE0001 */ andi $t6, $t5, 1
/* B7C1E8 80105048 55C00016 */ bnezl $t6, .L801050A4
/* B7C1EC 8010504C 8FA40044 */ lw $a0, 0x44($sp)
/* B7C1F0 80105050 0C040964 */ jal func_80102590
/* B7C1F4 80105054 27A60020 */ addiu $a2, $sp, 0x20
/* B7C1F8 80105058 10400009 */ beqz $v0, .L80105080
/* B7C1FC 8010505C 00401825 */ move $v1, $v0
/* B7C200 80105060 2401000A */ li $at, 10
/* B7C204 80105064 14410004 */ bne $v0, $at, .L80105078
/* B7C208 80105068 00000000 */ nop
/* B7C20C 8010506C 8E0F0000 */ lw $t7, ($s0)
/* B7C210 80105070 35F80004 */ ori $t8, $t7, 4
/* B7C214 80105074 AE180000 */ sw $t8, ($s0)
.L80105078:
/* B7C218 80105078 1000002E */ b .L80105134
/* B7C21C 8010507C 00601025 */ move $v0, $v1
.L80105080:
/* B7C220 80105080 97A90038 */ lhu $t1, 0x38($sp)
/* B7C224 80105084 27B90020 */ addiu $t9, $sp, 0x20
/* B7C228 80105088 AFB90044 */ sw $t9, 0x44($sp)
/* B7C22C 8010508C 312A0001 */ andi $t2, $t1, 1
/* B7C230 80105090 55400004 */ bnezl $t2, .L801050A4
/* B7C234 80105094 8FA40044 */ lw $a0, 0x44($sp)
/* B7C238 80105098 10000026 */ b .L80105134
/* B7C23C 8010509C 2402000B */ li $v0, 11
/* B7C240 801050A0 8FA40044 */ lw $a0, 0x44($sp)
.L801050A4:
/* B7C244 801050A4 2605000C */ addiu $a1, $s0, 0xc
/* B7C248 801050A8 0C001BC4 */ jal bcopy
/* B7C24C 801050AC 24060020 */ li $a2, 32
/* B7C250 801050B0 8FAB0044 */ lw $t3, 0x44($sp)
/* B7C254 801050B4 24190010 */ li $t9, 16
/* B7C258 801050B8 24090008 */ li $t1, 8
/* B7C25C 801050BC 916C001B */ lbu $t4, 0x1b($t3)
/* B7C260 801050C0 8E040004 */ lw $a0, 4($s0)
/* B7C264 801050C4 8E050008 */ lw $a1, 8($s0)
/* B7C268 801050C8 AE0C004C */ sw $t4, 0x4c($s0)
/* B7C26C 801050CC 8FAD0044 */ lw $t5, 0x44($sp)
/* B7C270 801050D0 24060007 */ li $a2, 7
/* B7C274 801050D4 2607002C */ addiu $a3, $s0, 0x2c
/* B7C278 801050D8 91AE001A */ lbu $t6, 0x1a($t5)
/* B7C27C 801050DC AE190050 */ sw $t9, 0x50($s0)
/* B7C280 801050E0 AE090054 */ sw $t1, 0x54($s0)
/* B7C284 801050E4 31C200FF */ andi $v0, $t6, 0xff
/* B7C288 801050E8 000218C0 */ sll $v1, $v0, 3
/* B7C28C 801050EC 00027840 */ sll $t7, $v0, 1
/* B7C290 801050F0 24680008 */ addiu $t0, $v1, 8
/* B7C294 801050F4 25F80003 */ addiu $t8, $t7, 3
/* B7C298 801050F8 01035021 */ addu $t2, $t0, $v1
/* B7C29C 801050FC AE180060 */ sw $t8, 0x60($s0)
/* B7C2A0 80105100 AE080058 */ sw $t0, 0x58($s0)
/* B7C2A4 80105104 AE0A005C */ sw $t2, 0x5c($s0)
/* B7C2A8 80105108 0C0417D0 */ jal func_80105F40
/* B7C2AC 8010510C A20E0064 */ sb $t6, 0x64($s0)
/* B7C2B0 80105110 10400003 */ beqz $v0, .L80105120
/* B7C2B4 80105114 00000000 */ nop
/* B7C2B8 80105118 10000007 */ b .L80105138
/* B7C2BC 8010511C 8FBF001C */ lw $ra, 0x1c($sp)
.L80105120:
/* B7C2C0 80105120 0C041494 */ jal func_80105250
/* B7C2C4 80105124 02002025 */ move $a0, $s0
/* B7C2C8 80105128 8E0B0000 */ lw $t3, ($s0)
/* B7C2CC 8010512C 356C0001 */ ori $t4, $t3, 1
/* B7C2D0 80105130 AE0C0000 */ sw $t4, ($s0)
.L80105134:
/* B7C2D4 80105134 8FBF001C */ lw $ra, 0x1c($sp)
.L80105138:
/* B7C2D8 80105138 8FB00018 */ lw $s0, 0x18($sp)
/* B7C2DC 8010513C 27BD0070 */ addiu $sp, $sp, 0x70
/* B7C2E0 80105140 03E00008 */ jr $ra
/* B7C2E4 80105144 00000000 */ nop
glabel func_80105148
/* B7C2E8 80105148 27BDFF68 */ addiu $sp, $sp, -0x98
/* B7C2EC 8010514C AFBF0024 */ sw $ra, 0x24($sp)
/* B7C2F0 80105150 AFB00020 */ sw $s0, 0x20($sp)
/* B7C2F4 80105154 00808025 */ move $s0, $a0
/* B7C2F8 80105158 0C041320 */ jal func_80104C80
/* B7C2FC 8010515C 00002825 */ move $a1, $zero
/* B7C300 80105160 10400003 */ beqz $v0, .L80105170
/* B7C304 80105164 00003025 */ move $a2, $zero
/* B7C308 80105168 10000034 */ b .L8010523C
/* B7C30C 8010516C 8FBF0024 */ lw $ra, 0x24($sp)
.L80105170:
/* B7C310 80105170 8E040004 */ lw $a0, 4($s0)
/* B7C314 80105174 8E050008 */ lw $a1, 8($s0)
/* B7C318 80105178 0C0417D0 */ jal func_80105F40
/* B7C31C 8010517C 27A70030 */ addiu $a3, $sp, 0x30
/* B7C320 80105180 10400003 */ beqz $v0, .L80105190
/* B7C324 80105184 27A30070 */ addiu $v1, $sp, 0x70
/* B7C328 80105188 1000002C */ b .L8010523C
/* B7C32C 8010518C 8FBF0024 */ lw $ra, 0x24($sp)
.L80105190:
/* B7C330 80105190 00001025 */ move $v0, $zero
/* B7C334 80105194 24040020 */ li $a0, 32
.L80105198:
/* B7C338 80105198 244E0001 */ addiu $t6, $v0, 1
/* B7C33C 8010519C 244F0002 */ addiu $t7, $v0, 2
/* B7C340 801051A0 24580003 */ addiu $t8, $v0, 3
/* B7C344 801051A4 A0620000 */ sb $v0, ($v1)
/* B7C348 801051A8 24420004 */ addiu $v0, $v0, 4
/* B7C34C 801051AC A0780003 */ sb $t8, 3($v1)
/* B7C350 801051B0 A06F0002 */ sb $t7, 2($v1)
/* B7C354 801051B4 A06E0001 */ sb $t6, 1($v1)
/* B7C358 801051B8 1444FFF7 */ bne $v0, $a0, .L80105198
/* B7C35C 801051BC 24630004 */ addiu $v1, $v1, 4
/* B7C360 801051C0 8E040004 */ lw $a0, 4($s0)
/* B7C364 801051C4 8E050008 */ lw $a1, 8($s0)
/* B7C368 801051C8 AFA00010 */ sw $zero, 0x10($sp)
/* B7C36C 801051CC 00003025 */ move $a2, $zero
/* B7C370 801051D0 0C04173C */ jal func_80105CF0
/* B7C374 801051D4 27A70070 */ addiu $a3, $sp, 0x70
/* B7C378 801051D8 10400003 */ beqz $v0, .L801051E8
/* B7C37C 801051DC 00003025 */ move $a2, $zero
/* B7C380 801051E0 10000016 */ b .L8010523C
/* B7C384 801051E4 8FBF0024 */ lw $ra, 0x24($sp)
.L801051E8:
/* B7C388 801051E8 8E040004 */ lw $a0, 4($s0)
/* B7C38C 801051EC 8E050008 */ lw $a1, 8($s0)
/* B7C390 801051F0 0C0417D0 */ jal func_80105F40
/* B7C394 801051F4 27A70050 */ addiu $a3, $sp, 0x50
/* B7C398 801051F8 10400003 */ beqz $v0, .L80105208
/* B7C39C 801051FC 27A40070 */ addiu $a0, $sp, 0x70
/* B7C3A0 80105200 1000000E */ b .L8010523C
/* B7C3A4 80105204 8FBF0024 */ lw $ra, 0x24($sp)
.L80105208:
/* B7C3A8 80105208 27A50050 */ addiu $a1, $sp, 0x50
/* B7C3AC 8010520C 0C001A30 */ jal bcmp
/* B7C3B0 80105210 24060020 */ li $a2, 32
/* B7C3B4 80105214 10400003 */ beqz $v0, .L80105224
/* B7C3B8 80105218 00003025 */ move $a2, $zero
/* B7C3BC 8010521C 10000006 */ b .L80105238
/* B7C3C0 80105220 2402000B */ li $v0, 11
.L80105224:
/* B7C3C4 80105224 8E040004 */ lw $a0, 4($s0)
/* B7C3C8 80105228 8E050008 */ lw $a1, 8($s0)
/* B7C3CC 8010522C AFA00010 */ sw $zero, 0x10($sp)
/* B7C3D0 80105230 0C04173C */ jal func_80105CF0
/* B7C3D4 80105234 27A70030 */ addiu $a3, $sp, 0x30
.L80105238:
/* B7C3D8 80105238 8FBF0024 */ lw $ra, 0x24($sp)
.L8010523C:
/* B7C3DC 8010523C 8FB00020 */ lw $s0, 0x20($sp)
/* B7C3E0 80105240 27BD0098 */ addiu $sp, $sp, 0x98
/* B7C3E4 80105244 03E00008 */ jr $ra
/* B7C3E8 80105248 00000000 */ nop

719
asm/code_80105250.s Normal file
View file

@ -0,0 +1,719 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80105250
/* B7C3F0 80105250 27BDFB38 */ addiu $sp, $sp, -0x4c8
/* B7C3F4 80105254 AFBF0044 */ sw $ra, 0x44($sp)
/* B7C3F8 80105258 AFBE0040 */ sw $fp, 0x40($sp)
/* B7C3FC 8010525C AFB3002C */ sw $s3, 0x2c($sp)
/* B7C400 80105260 00809825 */ move $s3, $a0
/* B7C404 80105264 AFB7003C */ sw $s7, 0x3c($sp)
/* B7C408 80105268 AFB60038 */ sw $s6, 0x38($sp)
/* B7C40C 8010526C AFB50034 */ sw $s5, 0x34($sp)
/* B7C410 80105270 AFB40030 */ sw $s4, 0x30($sp)
/* B7C414 80105274 AFB20028 */ sw $s2, 0x28($sp)
/* B7C418 80105278 AFB10024 */ sw $s1, 0x24($sp)
/* B7C41C 8010527C AFB00020 */ sw $s0, 0x20($sp)
/* B7C420 80105280 AFA00074 */ sw $zero, 0x74($sp)
/* B7C424 80105284 0C040AFC */ jal func_80102BF0
/* B7C428 80105288 241E00FE */ li $fp, 254
/* B7C42C 8010528C 24010002 */ li $at, 2
/* B7C430 80105290 14410004 */ bne $v0, $at, .L801052A4
/* B7C434 80105294 0040B825 */ move $s7, $v0
/* B7C438 80105298 0C040A91 */ jal func_80102A44
/* B7C43C 8010529C 02602025 */ move $a0, $s3
/* B7C440 801052A0 0040B825 */ move $s7, $v0
.L801052A4:
/* B7C444 801052A4 10400003 */ beqz $v0, .L801052B4
/* B7C448 801052A8 02602025 */ move $a0, $s3
/* B7C44C 801052AC 1000012A */ b .L80105758
/* B7C450 801052B0 02E01025 */ move $v0, $s7
.L801052B4:
/* B7C454 801052B4 0C0415E2 */ jal func_80105788
/* B7C458 801052B8 27A50078 */ addiu $a1, $sp, 0x78
/* B7C45C 801052BC 50400004 */ beql $v0, $zero, .L801052D0
/* B7C460 801052C0 8E620050 */ lw $v0, 0x50($s3)
/* B7C464 801052C4 10000125 */ b .L8010575C
/* B7C468 801052C8 8FBF0044 */ lw $ra, 0x44($sp)
/* B7C46C 801052CC 8E620050 */ lw $v0, 0x50($s3)
.L801052D0:
/* B7C470 801052D0 0000A025 */ move $s4, $zero
/* B7C474 801052D4 27B502BC */ addiu $s5, $sp, 0x2bc
/* B7C478 801052D8 18400082 */ blez $v0, .L801054E4
/* B7C47C 801052DC 27B204BC */ addiu $s2, $sp, 0x4bc
/* B7C480 801052E0 8E6E005C */ lw $t6, 0x5c($s3)
.L801052E4:
/* B7C484 801052E4 8E640004 */ lw $a0, 4($s3)
/* B7C488 801052E8 8E650008 */ lw $a1, 8($s3)
/* B7C48C 801052EC 01D43021 */ addu $a2, $t6, $s4
/* B7C490 801052F0 30CFFFFF */ andi $t7, $a2, 0xffff
/* B7C494 801052F4 01E03025 */ move $a2, $t7
/* B7C498 801052F8 0C0417D0 */ jal func_80105F40
/* B7C49C 801052FC 27A7029C */ addiu $a3, $sp, 0x29c
/* B7C4A0 80105300 10400003 */ beqz $v0, .L80105310
/* B7C4A4 80105304 0040B825 */ move $s7, $v0
/* B7C4A8 80105308 10000114 */ b .L8010575C
/* B7C4AC 8010530C 8FBF0044 */ lw $ra, 0x44($sp)
.L80105310:
/* B7C4B0 80105310 97A202A0 */ lhu $v0, 0x2a0($sp)
/* B7C4B4 80105314 8FB8029C */ lw $t8, 0x29c($sp)
/* B7C4B8 80105318 14400003 */ bnez $v0, .L80105328
/* B7C4BC 8010531C 00000000 */ nop
/* B7C4C0 80105320 5300006B */ beql $t8, $zero, .L801054D0
/* B7C4C4 80105324 8E620050 */ lw $v0, 0x50($s3)
.L80105328:
/* B7C4C8 80105328 10400003 */ beqz $v0, .L80105338
/* B7C4CC 8010532C 8FB9029C */ lw $t9, 0x29c($sp)
/* B7C4D0 80105330 17200003 */ bnez $t9, .L80105340
/* B7C4D4 80105334 27A902A2 */ addiu $t1, $sp, 0x2a2
.L80105338:
/* B7C4D8 80105338 10000044 */ b .L8010544C
/* B7C4DC 8010533C 2404FFFF */ li $a0, -1
.L80105340:
/* B7C4E0 80105340 95210000 */ lhu $at, ($t1)
/* B7C4E4 80105344 00002025 */ move $a0, $zero
/* B7C4E8 80105348 00008025 */ move $s0, $zero
/* B7C4EC 8010534C A6410000 */ sh $at, ($s2)
/* B7C4F0 80105350 8E6D0060 */ lw $t5, 0x60($s3)
/* B7C4F4 80105354 97AC04BC */ lhu $t4, 0x4bc($sp)
/* B7C4F8 80105358 241600FF */ li $s6, 255
/* B7C4FC 8010535C 93AE04BC */ lbu $t6, 0x4bc($sp)
/* B7C500 80105360 018D082A */ slt $at, $t4, $t5
/* B7C504 80105364 14200039 */ bnez $at, .L8010544C
/* B7C508 80105368 00000000 */ nop
/* B7C50C 8010536C 926F0064 */ lbu $t7, 0x64($s3)
/* B7C510 80105370 93B804BD */ lbu $t8, 0x4bd($sp)
/* B7C514 80105374 01CF082A */ slt $at, $t6, $t7
/* B7C518 80105378 10200034 */ beqz $at, .L8010544C
/* B7C51C 8010537C 00000000 */ nop
/* B7C520 80105380 1B000032 */ blez $t8, .L8010544C
/* B7C524 80105384 2B010080 */ slti $at, $t8, 0x80
/* B7C528 80105388 10200030 */ beqz $at, .L8010544C
/* B7C52C 8010538C 02C08825 */ move $s1, $s6
/* B7C530 80105390 93B904BC */ lbu $t9, 0x4bc($sp)
.L80105394:
/* B7C534 80105394 13310010 */ beq $t9, $s1, .L801053D8
/* B7C538 80105398 0320B025 */ move $s6, $t9
/* B7C53C 8010539C 133E0008 */ beq $t9, $fp, .L801053C0
/* B7C540 801053A0 03208825 */ move $s1, $t9
/* B7C544 801053A4 02602025 */ move $a0, $s3
/* B7C548 801053A8 02A02825 */ move $a1, $s5
/* B7C54C 801053AC 00003025 */ move $a2, $zero
/* B7C550 801053B0 0C040B31 */ jal func_80102CC4
/* B7C554 801053B4 332700FF */ andi $a3, $t9, 0xff
/* B7C558 801053B8 0040B825 */ move $s7, $v0
/* B7C55C 801053BC 32DE00FF */ andi $fp, $s6, 0xff
.L801053C0:
/* B7C560 801053C0 12E00005 */ beqz $s7, .L801053D8
/* B7C564 801053C4 24010003 */ li $at, 3
/* B7C568 801053C8 52E10004 */ beql $s7, $at, .L801053DC
/* B7C56C 801053CC 96410000 */ lhu $at, ($s2)
/* B7C570 801053D0 100000E1 */ b .L80105758
/* B7C574 801053D4 02E01025 */ move $v0, $s7
.L801053D8:
/* B7C578 801053D8 96410000 */ lhu $at, ($s2)
.L801053DC:
/* B7C57C 801053DC 02602025 */ move $a0, $s3
/* B7C580 801053E0 27A60078 */ addiu $a2, $sp, 0x78
/* B7C584 801053E4 A7A10004 */ sh $at, 4($sp)
/* B7C588 801053E8 0C041698 */ jal func_80105A60
/* B7C58C 801053EC 8FA50004 */ lw $a1, 4($sp)
/* B7C590 801053F0 00502023 */ subu $a0, $v0, $s0
/* B7C594 801053F4 14800015 */ bnez $a0, .L8010544C
/* B7C598 801053F8 93AB04BD */ lbu $t3, 0x4bd($sp)
/* B7C59C 801053FC 000B6040 */ sll $t4, $t3, 1
/* B7C5A0 80105400 02AC6821 */ addu $t5, $s5, $t4
/* B7C5A4 80105404 95A10000 */ lhu $at, ($t5)
/* B7C5A8 80105408 24100001 */ li $s0, 1
/* B7C5AC 8010540C A6410000 */ sh $at, ($s2)
/* B7C5B0 80105410 8E790060 */ lw $t9, 0x60($s3)
/* B7C5B4 80105414 97B804BC */ lhu $t8, 0x4bc($sp)
/* B7C5B8 80105418 93AB04BD */ lbu $t3, 0x4bd($sp)
/* B7C5BC 8010541C 93AA04BC */ lbu $t2, 0x4bc($sp)
/* B7C5C0 80105420 0319082A */ slt $at, $t8, $t9
/* B7C5C4 80105424 14200009 */ bnez $at, .L8010544C
/* B7C5C8 80105428 00000000 */ nop
/* B7C5CC 8010542C 92690064 */ lbu $t1, 0x64($s3)
/* B7C5D0 80105430 0149082A */ slt $at, $t2, $t1
/* B7C5D4 80105434 10200005 */ beqz $at, .L8010544C
/* B7C5D8 80105438 00000000 */ nop
/* B7C5DC 8010543C 19600003 */ blez $t3, .L8010544C
/* B7C5E0 80105440 29610080 */ slti $at, $t3, 0x80
/* B7C5E4 80105444 5420FFD3 */ bnezl $at, .L80105394
/* B7C5E8 80105448 93B904BC */ lbu $t9, 0x4bc($sp)
.L8010544C:
/* B7C5EC 8010544C 14800003 */ bnez $a0, .L8010545C
/* B7C5F0 80105450 97AC04BC */ lhu $t4, 0x4bc($sp)
/* B7C5F4 80105454 24010001 */ li $at, 1
/* B7C5F8 80105458 1181001C */ beq $t4, $at, .L801054CC
.L8010545C:
/* B7C5FC 8010545C 27A4029C */ addiu $a0, $sp, 0x29c
/* B7C600 80105460 0C001114 */ jal bzero
/* B7C604 80105464 24050020 */ li $a1, 32
/* B7C608 80105468 926E0065 */ lbu $t6, 0x65($s3)
/* B7C60C 8010546C 02602025 */ move $a0, $s3
/* B7C610 80105470 51C00008 */ beql $t6, $zero, .L80105494
/* B7C614 80105474 8E6D005C */ lw $t5, 0x5c($s3)
/* B7C618 80105478 0C041320 */ jal func_80104C80
/* B7C61C 8010547C 00002825 */ move $a1, $zero
/* B7C620 80105480 50400004 */ beql $v0, $zero, .L80105494
/* B7C624 80105484 8E6D005C */ lw $t5, 0x5c($s3)
/* B7C628 80105488 100000B4 */ b .L8010575C
/* B7C62C 8010548C 8FBF0044 */ lw $ra, 0x44($sp)
/* B7C630 80105490 8E6D005C */ lw $t5, 0x5c($s3)
.L80105494:
/* B7C634 80105494 8E640004 */ lw $a0, 4($s3)
/* B7C638 80105498 8E650008 */ lw $a1, 8($s3)
/* B7C63C 8010549C 01B43021 */ addu $a2, $t5, $s4
/* B7C640 801054A0 30CFFFFF */ andi $t7, $a2, 0xffff
/* B7C644 801054A4 01E03025 */ move $a2, $t7
/* B7C648 801054A8 AFA00010 */ sw $zero, 0x10($sp)
/* B7C64C 801054AC 0C04173C */ jal func_80105CF0
/* B7C650 801054B0 27A7029C */ addiu $a3, $sp, 0x29c
/* B7C654 801054B4 10400003 */ beqz $v0, .L801054C4
/* B7C658 801054B8 8FB80074 */ lw $t8, 0x74($sp)
/* B7C65C 801054BC 100000A7 */ b .L8010575C
/* B7C660 801054C0 8FBF0044 */ lw $ra, 0x44($sp)
.L801054C4:
/* B7C664 801054C4 27190001 */ addiu $t9, $t8, 1
/* B7C668 801054C8 AFB90074 */ sw $t9, 0x74($sp)
.L801054CC:
/* B7C66C 801054CC 8E620050 */ lw $v0, 0x50($s3)
.L801054D0:
/* B7C670 801054D0 26940001 */ addiu $s4, $s4, 1
/* B7C674 801054D4 0282082A */ slt $at, $s4, $v0
/* B7C678 801054D8 5420FF82 */ bnezl $at, .L801052E4
/* B7C67C 801054DC 8E6E005C */ lw $t6, 0x5c($s3)
/* B7C680 801054E0 0000A025 */ move $s4, $zero
.L801054E4:
/* B7C684 801054E4 18400021 */ blez $v0, .L8010556C
/* B7C688 801054E8 27B502BC */ addiu $s5, $sp, 0x2bc
/* B7C68C 801054EC 8E6A005C */ lw $t2, 0x5c($s3)
.L801054F0:
/* B7C690 801054F0 8E640004 */ lw $a0, 4($s3)
/* B7C694 801054F4 8E650008 */ lw $a1, 8($s3)
/* B7C698 801054F8 01543021 */ addu $a2, $t2, $s4
/* B7C69C 801054FC 30C9FFFF */ andi $t1, $a2, 0xffff
/* B7C6A0 80105500 01203025 */ move $a2, $t1
/* B7C6A4 80105504 0C0417D0 */ jal func_80105F40
/* B7C6A8 80105508 27A7029C */ addiu $a3, $sp, 0x29c
/* B7C6AC 8010550C 10400003 */ beqz $v0, .L8010551C
/* B7C6B0 80105510 97AE02A0 */ lhu $t6, 0x2a0($sp)
/* B7C6B4 80105514 10000091 */ b .L8010575C
/* B7C6B8 80105518 8FBF0044 */ lw $ra, 0x44($sp)
.L8010551C:
/* B7C6BC 8010551C 00145840 */ sll $t3, $s4, 1
/* B7C6C0 80105520 27AC027C */ addiu $t4, $sp, 0x27c
/* B7C6C4 80105524 11C0000B */ beqz $t6, .L80105554
/* B7C6C8 80105528 016C2021 */ addu $a0, $t3, $t4
/* B7C6CC 8010552C 8FAD029C */ lw $t5, 0x29c($sp)
/* B7C6D0 80105530 97AF02A2 */ lhu $t7, 0x2a2($sp)
/* B7C6D4 80105534 51A00008 */ beql $t5, $zero, .L80105558
/* B7C6D8 80105538 A4800000 */ sh $zero, ($a0)
/* B7C6DC 8010553C 96780062 */ lhu $t8, 0x62($s3)
/* B7C6E0 80105540 01F8082A */ slt $at, $t7, $t8
/* B7C6E4 80105544 54200004 */ bnezl $at, .L80105558
/* B7C6E8 80105548 A4800000 */ sh $zero, ($a0)
/* B7C6EC 8010554C 10000002 */ b .L80105558
/* B7C6F0 80105550 A48F0000 */ sh $t7, ($a0)
.L80105554:
/* B7C6F4 80105554 A4800000 */ sh $zero, ($a0)
.L80105558:
/* B7C6F8 80105558 8E790050 */ lw $t9, 0x50($s3)
/* B7C6FC 8010555C 26940001 */ addiu $s4, $s4, 1
/* B7C700 80105560 0299082A */ slt $at, $s4, $t9
/* B7C704 80105564 5420FFE2 */ bnezl $at, .L801054F0
/* B7C708 80105568 8E6A005C */ lw $t2, 0x5c($s3)
.L8010556C:
/* B7C70C 8010556C 926A0064 */ lbu $t2, 0x64($s3)
/* B7C710 80105570 0000B025 */ move $s6, $zero
/* B7C714 80105574 241E0003 */ li $fp, 3
/* B7C718 80105578 1940006B */ blez $t2, .L80105728
/* B7C71C 8010557C 27B203BC */ addiu $s2, $sp, 0x3bc
/* B7C720 80105580 27B00060 */ addiu $s0, $sp, 0x60
.L80105584:
/* B7C724 80105584 02602025 */ move $a0, $s3
/* B7C728 80105588 02A02825 */ move $a1, $s5
/* B7C72C 8010558C 00003025 */ move $a2, $zero
/* B7C730 80105590 0C040B31 */ jal func_80102CC4
/* B7C734 80105594 32C700FF */ andi $a3, $s6, 0xff
/* B7C738 80105598 10400006 */ beqz $v0, .L801055B4
/* B7C73C 8010559C 27A804BC */ addiu $t0, $sp, 0x4bc
/* B7C740 801055A0 24010003 */ li $at, 3
/* B7C744 801055A4 50410004 */ beql $v0, $at, .L801055B8
/* B7C748 801055A8 02C08825 */ move $s1, $s6
/* B7C74C 801055AC 1000006B */ b .L8010575C
/* B7C750 801055B0 8FBF0044 */ lw $ra, 0x44($sp)
.L801055B4:
/* B7C754 801055B4 02C08825 */ move $s1, $s6
.L801055B8:
/* B7C758 801055B8 1AC00003 */ blez $s6, .L801055C8
/* B7C75C 801055BC 0000A025 */ move $s4, $zero
/* B7C760 801055C0 10000002 */ b .L801055CC
/* B7C764 801055C4 24050001 */ li $a1, 1
.L801055C8:
/* B7C768 801055C8 8E650060 */ lw $a1, 0x60($s3)
.L801055CC:
/* B7C76C 801055CC 18A0001C */ blez $a1, .L80105640
/* B7C770 801055D0 30A70003 */ andi $a3, $a1, 3
/* B7C774 801055D4 10E0000B */ beqz $a3, .L80105604
/* B7C778 801055D8 00E02025 */ move $a0, $a3
/* B7C77C 801055DC 00143040 */ sll $a2, $s4, 1
/* B7C780 801055E0 02461821 */ addu $v1, $s2, $a2
/* B7C784 801055E4 02A61021 */ addu $v0, $s5, $a2
.L801055E8:
/* B7C788 801055E8 94490000 */ lhu $t1, ($v0)
/* B7C78C 801055EC 26940001 */ addiu $s4, $s4, 1
/* B7C790 801055F0 24630002 */ addiu $v1, $v1, 2
/* B7C794 801055F4 24420002 */ addiu $v0, $v0, 2
/* B7C798 801055F8 1494FFFB */ bne $a0, $s4, .L801055E8
/* B7C79C 801055FC A469FFFE */ sh $t1, -2($v1)
/* B7C7A0 80105600 1285000F */ beq $s4, $a1, .L80105640
.L80105604:
/* B7C7A4 80105604 00143040 */ sll $a2, $s4, 1
/* B7C7A8 80105608 02461821 */ addu $v1, $s2, $a2
/* B7C7AC 8010560C 02A61021 */ addu $v0, $s5, $a2
.L80105610:
/* B7C7B0 80105610 944C0002 */ lhu $t4, 2($v0)
/* B7C7B4 80105614 944E0004 */ lhu $t6, 4($v0)
/* B7C7B8 80105618 944D0006 */ lhu $t5, 6($v0)
/* B7C7BC 8010561C 944B0000 */ lhu $t3, ($v0)
/* B7C7C0 80105620 26940004 */ addiu $s4, $s4, 4
/* B7C7C4 80105624 24630008 */ addiu $v1, $v1, 8
/* B7C7C8 80105628 24420008 */ addiu $v0, $v0, 8
/* B7C7CC 8010562C A46CFFFA */ sh $t4, -6($v1)
/* B7C7D0 80105630 A46EFFFC */ sh $t6, -4($v1)
/* B7C7D4 80105634 A46DFFFE */ sh $t5, -2($v1)
/* B7C7D8 80105638 1685FFF5 */ bne $s4, $a1, .L80105610
/* B7C7DC 8010563C A46BFFF8 */ sh $t3, -8($v1)
.L80105640:
/* B7C7E0 80105640 2A810080 */ slti $at, $s4, 0x80
/* B7C7E4 80105644 10200007 */ beqz $at, .L80105664
/* B7C7E8 80105648 02402825 */ move $a1, $s2
/* B7C7EC 8010564C 0014C040 */ sll $t8, $s4, 1
/* B7C7F0 80105650 02581821 */ addu $v1, $s2, $t8
.L80105654:
/* B7C7F4 80105654 24630002 */ addiu $v1, $v1, 2
/* B7C7F8 80105658 0068082B */ sltu $at, $v1, $t0
/* B7C7FC 8010565C 1420FFFD */ bnez $at, .L80105654
/* B7C800 80105660 A47EFFFE */ sh $fp, -2($v1)
.L80105664:
/* B7C804 80105664 8E6F0050 */ lw $t7, 0x50($s3)
/* B7C808 80105668 0000A025 */ move $s4, $zero
/* B7C80C 8010566C 24060001 */ li $a2, 1
/* B7C810 80105670 19E00021 */ blez $t7, .L801056F8
/* B7C814 80105674 32C700FF */ andi $a3, $s6, 0xff
/* B7C818 80105678 27A4027C */ addiu $a0, $sp, 0x27c
/* B7C81C 8010567C 90990000 */ lbu $t9, ($a0)
.L80105680:
/* B7C820 80105680 56390018 */ bnel $s1, $t9, .L801056E4
/* B7C824 80105684 8E6E0050 */ lw $t6, 0x50($s3)
/* B7C828 80105688 948A0000 */ lhu $t2, ($a0)
/* B7C82C 8010568C 96690062 */ lhu $t1, 0x62($s3)
/* B7C830 80105690 0149082A */ slt $at, $t2, $t1
/* B7C834 80105694 54200013 */ bnezl $at, .L801056E4
/* B7C838 80105698 8E6E0050 */ lw $t6, 0x50($s3)
/* B7C83C 8010569C 90830001 */ lbu $v1, 1($a0)
.L801056A0:
/* B7C840 801056A0 00031040 */ sll $v0, $v1, 1
/* B7C844 801056A4 02A25821 */ addu $t3, $s5, $v0
/* B7C848 801056A8 95610000 */ lhu $at, ($t3)
/* B7C84C 801056AC 02426821 */ addu $t5, $s2, $v0
/* B7C850 801056B0 A6010000 */ sh $at, ($s0)
/* B7C854 801056B4 A5A10000 */ sh $at, ($t5)
/* B7C858 801056B8 96010000 */ lhu $at, ($s0)
/* B7C85C 801056BC A4810000 */ sh $at, ($a0)
/* B7C860 801056C0 90890000 */ lbu $t1, ($a0)
/* B7C864 801056C4 56290007 */ bnel $s1, $t1, .L801056E4
/* B7C868 801056C8 8E6E0050 */ lw $t6, 0x50($s3)
/* B7C86C 801056CC 966B0062 */ lhu $t3, 0x62($s3)
/* B7C870 801056D0 302CFFFF */ andi $t4, $at, 0xffff
/* B7C874 801056D4 018B082A */ slt $at, $t4, $t3
/* B7C878 801056D8 5020FFF1 */ beql $at, $zero, .L801056A0
/* B7C87C 801056DC 90830001 */ lbu $v1, 1($a0)
/* B7C880 801056E0 8E6E0050 */ lw $t6, 0x50($s3)
.L801056E4:
/* B7C884 801056E4 26940001 */ addiu $s4, $s4, 1
/* B7C888 801056E8 24840002 */ addiu $a0, $a0, 2
/* B7C88C 801056EC 028E082A */ slt $at, $s4, $t6
/* B7C890 801056F0 5420FFE3 */ bnezl $at, .L80105680
/* B7C894 801056F4 90990000 */ lbu $t9, ($a0)
.L801056F8:
/* B7C898 801056F8 0C040B31 */ jal func_80102CC4
/* B7C89C 801056FC 02602025 */ move $a0, $s3
/* B7C8A0 80105700 50400004 */ beql $v0, $zero, .L80105714
/* B7C8A4 80105704 926D0064 */ lbu $t5, 0x64($s3)
/* B7C8A8 80105708 10000014 */ b .L8010575C
/* B7C8AC 8010570C 8FBF0044 */ lw $ra, 0x44($sp)
/* B7C8B0 80105710 926D0064 */ lbu $t5, 0x64($s3)
.L80105714:
/* B7C8B4 80105714 26D60001 */ addiu $s6, $s6, 1
/* B7C8B8 80105718 32D800FF */ andi $t8, $s6, 0xff
/* B7C8BC 8010571C 030D082A */ slt $at, $t8, $t5
/* B7C8C0 80105720 1420FF98 */ bnez $at, .L80105584
/* B7C8C4 80105724 0300B025 */ move $s6, $t8
.L80105728:
/* B7C8C8 80105728 8FAF0074 */ lw $t7, 0x74($sp)
/* B7C8CC 8010572C 00001025 */ move $v0, $zero
/* B7C8D0 80105730 51E00006 */ beql $t7, $zero, .L8010574C
/* B7C8D4 80105734 8E690000 */ lw $t1, ($s3)
/* B7C8D8 80105738 8E790000 */ lw $t9, ($s3)
/* B7C8DC 8010573C 372A0002 */ ori $t2, $t9, 2
/* B7C8E0 80105740 10000005 */ b .L80105758
/* B7C8E4 80105744 AE6A0000 */ sw $t2, ($s3)
/* B7C8E8 80105748 8E690000 */ lw $t1, ($s3)
.L8010574C:
/* B7C8EC 8010574C 2401FFFD */ li $at, -3
/* B7C8F0 80105750 01216024 */ and $t4, $t1, $at
/* B7C8F4 80105754 AE6C0000 */ sw $t4, ($s3)
.L80105758:
/* B7C8F8 80105758 8FBF0044 */ lw $ra, 0x44($sp)
.L8010575C:
/* B7C8FC 8010575C 8FB00020 */ lw $s0, 0x20($sp)
/* B7C900 80105760 8FB10024 */ lw $s1, 0x24($sp)
/* B7C904 80105764 8FB20028 */ lw $s2, 0x28($sp)
/* B7C908 80105768 8FB3002C */ lw $s3, 0x2c($sp)
/* B7C90C 8010576C 8FB40030 */ lw $s4, 0x30($sp)
/* B7C910 80105770 8FB50034 */ lw $s5, 0x34($sp)
/* B7C914 80105774 8FB60038 */ lw $s6, 0x38($sp)
/* B7C918 80105778 8FB7003C */ lw $s7, 0x3c($sp)
/* B7C91C 8010577C 8FBE0040 */ lw $fp, 0x40($sp)
/* B7C920 80105780 03E00008 */ jr $ra
/* B7C924 80105784 27BD04C8 */ addiu $sp, $sp, 0x4c8
glabel func_80105788
/* B7C928 80105788 27BDFE98 */ addiu $sp, $sp, -0x168
/* B7C92C 8010578C AFB30024 */ sw $s3, 0x24($sp)
/* B7C930 80105790 00809825 */ move $s3, $a0
/* B7C934 80105794 AFB40028 */ sw $s4, 0x28($sp)
/* B7C938 80105798 00A0A025 */ move $s4, $a1
/* B7C93C 8010579C AFBF003C */ sw $ra, 0x3c($sp)
/* B7C940 801057A0 AFBE0038 */ sw $fp, 0x38($sp)
/* B7C944 801057A4 AFB70034 */ sw $s7, 0x34($sp)
/* B7C948 801057A8 AFB60030 */ sw $s6, 0x30($sp)
/* B7C94C 801057AC AFB5002C */ sw $s5, 0x2c($sp)
/* B7C950 801057B0 AFB20020 */ sw $s2, 0x20($sp)
/* B7C954 801057B4 AFB1001C */ sw $s1, 0x1c($sp)
/* B7C958 801057B8 AFB00018 */ sw $s0, 0x18($sp)
/* B7C95C 801057BC 24040100 */ li $a0, 256
/* B7C960 801057C0 00001025 */ move $v0, $zero
/* B7C964 801057C4 00A01825 */ move $v1, $a1
.L801057C8:
/* B7C968 801057C8 24420004 */ addiu $v0, $v0, 4
/* B7C96C 801057CC A0600102 */ sb $zero, 0x102($v1)
/* B7C970 801057D0 A0600103 */ sb $zero, 0x103($v1)
/* B7C974 801057D4 A0600104 */ sb $zero, 0x104($v1)
/* B7C978 801057D8 24630004 */ addiu $v1, $v1, 4
/* B7C97C 801057DC 1444FFFA */ bne $v0, $a0, .L801057C8
/* B7C980 801057E0 A06000FD */ sb $zero, 0xfd($v1)
/* B7C984 801057E4 240E00FF */ li $t6, 255
/* B7C988 801057E8 A28E0100 */ sb $t6, 0x100($s4)
/* B7C98C 801057EC 926F0064 */ lbu $t7, 0x64($s3)
/* B7C990 801057F0 0000B825 */ move $s7, $zero
/* B7C994 801057F4 00008025 */ move $s0, $zero
/* B7C998 801057F8 19E0008C */ blez $t7, .L80105A2C
/* B7C99C 801057FC 241E0080 */ li $fp, 128
/* B7C9A0 80105800 27B6015A */ addiu $s6, $sp, 0x15a
/* B7C9A4 80105804 27B50058 */ addiu $s5, $sp, 0x58
/* B7C9A8 80105808 27B20158 */ addiu $s2, $sp, 0x158
.L8010580C:
/* B7C9AC 8010580C 1A000003 */ blez $s0, .L8010581C
/* B7C9B0 80105810 02602025 */ move $a0, $s3
/* B7C9B4 80105814 10000002 */ b .L80105820
/* B7C9B8 80105818 24110001 */ li $s1, 1
.L8010581C:
/* B7C9BC 8010581C 8E710060 */ lw $s1, 0x60($s3)
.L80105820:
/* B7C9C0 80105820 02A02825 */ move $a1, $s5
/* B7C9C4 80105824 00003025 */ move $a2, $zero
/* B7C9C8 80105828 0C040B31 */ jal func_80102CC4
/* B7C9CC 8010582C 32E700FF */ andi $a3, $s7, 0xff
/* B7C9D0 80105830 10400005 */ beqz $v0, .L80105848
/* B7C9D4 80105834 24010003 */ li $at, 3
/* B7C9D8 80105838 50410004 */ beql $v0, $at, .L8010584C
/* B7C9DC 8010583C 2A210080 */ slti $at, $s1, 0x80
/* B7C9E0 80105840 1000007C */ b .L80105A34
/* B7C9E4 80105844 8FBF003C */ lw $ra, 0x3c($sp)
.L80105848:
/* B7C9E8 80105848 2A210080 */ slti $at, $s1, 0x80
.L8010584C:
/* B7C9EC 8010584C 10200071 */ beqz $at, .L80105A14
/* B7C9F0 80105850 02201025 */ move $v0, $s1
/* B7C9F4 80105854 03D11823 */ subu $v1, $fp, $s1
/* B7C9F8 80105858 30780001 */ andi $t8, $v1, 1
/* B7C9FC 8010585C 13000025 */ beqz $t8, .L801058F4
/* B7CA00 80105860 0011C840 */ sll $t9, $s1, 1
/* B7CA04 80105864 02B94021 */ addu $t0, $s5, $t9
/* B7CA08 80105868 95010000 */ lhu $at, ($t0)
/* B7CA0C 8010586C A6410000 */ sh $at, ($s2)
/* B7CA10 80105870 8E6C0060 */ lw $t4, 0x60($s3)
/* B7CA14 80105874 97AB0158 */ lhu $t3, 0x158($sp)
/* B7CA18 80105878 93AD0158 */ lbu $t5, 0x158($sp)
/* B7CA1C 8010587C 016C082A */ slt $at, $t3, $t4
/* B7CA20 80105880 5420001B */ bnezl $at, .L801058F0
/* B7CA24 80105884 26220001 */ addiu $v0, $s1, 1
/* B7CA28 80105888 120D0018 */ beq $s0, $t5, .L801058EC
/* B7CA2C 8010588C 93AE0159 */ lbu $t6, 0x159($sp)
/* B7CA30 80105890 31CF007F */ andi $t7, $t6, 0x7f
/* B7CA34 80105894 05E10003 */ bgez $t7, .L801058A4
/* B7CA38 80105898 000FC083 */ sra $t8, $t7, 2
/* B7CA3C 8010589C 25E10003 */ addiu $at, $t7, 3
/* B7CA40 801058A0 0001C083 */ sra $t8, $at, 2
.L801058A4:
/* B7CA44 801058A4 05A10004 */ bgez $t5, .L801058B8
/* B7CA48 801058A8 31B90007 */ andi $t9, $t5, 7
/* B7CA4C 801058AC 13200002 */ beqz $t9, .L801058B8
/* B7CA50 801058B0 00000000 */ nop
/* B7CA54 801058B4 2739FFF8 */ addiu $t9, $t9, -8
.L801058B8:
/* B7CA58 801058B8 00194940 */ sll $t1, $t9, 5
/* B7CA5C 801058BC 03091821 */ addu $v1, $t8, $t1
/* B7CA60 801058C0 02831021 */ addu $v0, $s4, $v1
/* B7CA64 801058C4 90480101 */ lbu $t0, 0x101($v0)
/* B7CA68 801058C8 06010004 */ bgez $s0, .L801058DC
/* B7CA6C 801058CC 320A0007 */ andi $t2, $s0, 7
/* B7CA70 801058D0 11400002 */ beqz $t2, .L801058DC
/* B7CA74 801058D4 00000000 */ nop
/* B7CA78 801058D8 254AFFF8 */ addiu $t2, $t2, -8
.L801058DC:
/* B7CA7C 801058DC 240B0001 */ li $t3, 1
/* B7CA80 801058E0 014B6004 */ sllv $t4, $t3, $t2
/* B7CA84 801058E4 010C7025 */ or $t6, $t0, $t4
/* B7CA88 801058E8 A04E0101 */ sb $t6, 0x101($v0)
.L801058EC:
/* B7CA8C 801058EC 26220001 */ addiu $v0, $s1, 1
.L801058F0:
/* B7CA90 801058F0 105E0048 */ beq $v0, $fp, .L80105A14
.L801058F4:
/* B7CA94 801058F4 00027840 */ sll $t7, $v0, 1
/* B7CA98 801058F8 02AF2821 */ addu $a1, $s5, $t7
/* B7CA9C 801058FC 24A40002 */ addiu $a0, $a1, 2
.L80105900:
/* B7CAA0 80105900 94A10000 */ lhu $at, ($a1)
/* B7CAA4 80105904 A6410000 */ sh $at, ($s2)
/* B7CAA8 80105908 8E690060 */ lw $t1, 0x60($s3)
/* B7CAAC 8010590C 97B80158 */ lhu $t8, 0x158($sp)
/* B7CAB0 80105910 93AB0158 */ lbu $t3, 0x158($sp)
/* B7CAB4 80105914 0309082A */ slt $at, $t8, $t1
/* B7CAB8 80105918 5420001B */ bnezl $at, .L80105988
/* B7CABC 8010591C 94810000 */ lhu $at, ($a0)
/* B7CAC0 80105920 120B0018 */ beq $s0, $t3, .L80105984
/* B7CAC4 80105924 93AA0159 */ lbu $t2, 0x159($sp)
/* B7CAC8 80105928 3148007F */ andi $t0, $t2, 0x7f
/* B7CACC 8010592C 05010003 */ bgez $t0, .L8010593C
/* B7CAD0 80105930 00086083 */ sra $t4, $t0, 2
/* B7CAD4 80105934 25010003 */ addiu $at, $t0, 3
/* B7CAD8 80105938 00016083 */ sra $t4, $at, 2
.L8010593C:
/* B7CADC 8010593C 05610004 */ bgez $t3, .L80105950
/* B7CAE0 80105940 316E0007 */ andi $t6, $t3, 7
/* B7CAE4 80105944 11C00002 */ beqz $t6, .L80105950
/* B7CAE8 80105948 00000000 */ nop
/* B7CAEC 8010594C 25CEFFF8 */ addiu $t6, $t6, -8
.L80105950:
/* B7CAF0 80105950 000E7940 */ sll $t7, $t6, 5
/* B7CAF4 80105954 018F1821 */ addu $v1, $t4, $t7
/* B7CAF8 80105958 02831021 */ addu $v0, $s4, $v1
/* B7CAFC 8010595C 904D0101 */ lbu $t5, 0x101($v0)
/* B7CB00 80105960 06010004 */ bgez $s0, .L80105974
/* B7CB04 80105964 32190007 */ andi $t9, $s0, 7
/* B7CB08 80105968 13200002 */ beqz $t9, .L80105974
/* B7CB0C 8010596C 00000000 */ nop
/* B7CB10 80105970 2739FFF8 */ addiu $t9, $t9, -8
.L80105974:
/* B7CB14 80105974 24180001 */ li $t8, 1
/* B7CB18 80105978 03384804 */ sllv $t1, $t8, $t9
/* B7CB1C 8010597C 01A95025 */ or $t2, $t5, $t1
/* B7CB20 80105980 A04A0101 */ sb $t2, 0x101($v0)
.L80105984:
/* B7CB24 80105984 94810000 */ lhu $at, ($a0)
.L80105988:
/* B7CB28 80105988 24840004 */ addiu $a0, $a0, 4
/* B7CB2C 8010598C A6410000 */ sh $at, ($s2)
/* B7CB30 80105990 8E6C0060 */ lw $t4, 0x60($s3)
/* B7CB34 80105994 97AE0158 */ lhu $t6, 0x158($sp)
/* B7CB38 80105998 93AF0158 */ lbu $t7, 0x158($sp)
/* B7CB3C 8010599C 01CC082A */ slt $at, $t6, $t4
/* B7CB40 801059A0 1420001A */ bnez $at, .L80105A0C
/* B7CB44 801059A4 00000000 */ nop
/* B7CB48 801059A8 120F0018 */ beq $s0, $t7, .L80105A0C
/* B7CB4C 801059AC 93B80159 */ lbu $t8, 0x159($sp)
/* B7CB50 801059B0 3319007F */ andi $t9, $t8, 0x7f
/* B7CB54 801059B4 07210003 */ bgez $t9, .L801059C4
/* B7CB58 801059B8 00196883 */ sra $t5, $t9, 2
/* B7CB5C 801059BC 27210003 */ addiu $at, $t9, 3
/* B7CB60 801059C0 00016883 */ sra $t5, $at, 2
.L801059C4:
/* B7CB64 801059C4 05E10004 */ bgez $t7, .L801059D8
/* B7CB68 801059C8 31E90007 */ andi $t1, $t7, 7
/* B7CB6C 801059CC 11200002 */ beqz $t1, .L801059D8
/* B7CB70 801059D0 00000000 */ nop
/* B7CB74 801059D4 2529FFF8 */ addiu $t1, $t1, -8
.L801059D8:
/* B7CB78 801059D8 00095140 */ sll $t2, $t1, 5
/* B7CB7C 801059DC 01AA1821 */ addu $v1, $t5, $t2
/* B7CB80 801059E0 02831021 */ addu $v0, $s4, $v1
/* B7CB84 801059E4 90480101 */ lbu $t0, 0x101($v0)
/* B7CB88 801059E8 06010004 */ bgez $s0, .L801059FC
/* B7CB8C 801059EC 320B0007 */ andi $t3, $s0, 7
/* B7CB90 801059F0 11600002 */ beqz $t3, .L801059FC
/* B7CB94 801059F4 00000000 */ nop
/* B7CB98 801059F8 256BFFF8 */ addiu $t3, $t3, -8
.L801059FC:
/* B7CB9C 801059FC 240E0001 */ li $t6, 1
/* B7CBA0 80105A00 016E6004 */ sllv $t4, $t6, $t3
/* B7CBA4 80105A04 010CC025 */ or $t8, $t0, $t4
/* B7CBA8 80105A08 A0580101 */ sb $t8, 0x101($v0)
.L80105A0C:
/* B7CBAC 80105A0C 1496FFBC */ bne $a0, $s6, .L80105900
/* B7CBB0 80105A10 24A50004 */ addiu $a1, $a1, 4
.L80105A14:
/* B7CBB4 80105A14 926F0064 */ lbu $t7, 0x64($s3)
/* B7CBB8 80105A18 26F70001 */ addiu $s7, $s7, 1
/* B7CBBC 80105A1C 32F000FF */ andi $s0, $s7, 0xff
/* B7CBC0 80105A20 020F082A */ slt $at, $s0, $t7
/* B7CBC4 80105A24 1420FF79 */ bnez $at, .L8010580C
/* B7CBC8 80105A28 0200B825 */ move $s7, $s0
.L80105A2C:
/* B7CBCC 80105A2C 00001025 */ move $v0, $zero
/* B7CBD0 80105A30 8FBF003C */ lw $ra, 0x3c($sp)
.L80105A34:
/* B7CBD4 80105A34 8FB00018 */ lw $s0, 0x18($sp)
/* B7CBD8 80105A38 8FB1001C */ lw $s1, 0x1c($sp)
/* B7CBDC 80105A3C 8FB20020 */ lw $s2, 0x20($sp)
/* B7CBE0 80105A40 8FB30024 */ lw $s3, 0x24($sp)
/* B7CBE4 80105A44 8FB40028 */ lw $s4, 0x28($sp)
/* B7CBE8 80105A48 8FB5002C */ lw $s5, 0x2c($sp)
/* B7CBEC 80105A4C 8FB60030 */ lw $s6, 0x30($sp)
/* B7CBF0 80105A50 8FB70034 */ lw $s7, 0x34($sp)
/* B7CBF4 80105A54 8FBE0038 */ lw $fp, 0x38($sp)
/* B7CBF8 80105A58 03E00008 */ jr $ra
/* B7CBFC 80105A5C 27BD0168 */ addiu $sp, $sp, 0x168
glabel func_80105A60
/* B7CC00 80105A60 27BDFFC8 */ addiu $sp, $sp, -0x38
/* B7CC04 80105A64 AFA5003C */ sw $a1, 0x3c($sp)
/* B7CC08 80105A68 93B8003C */ lbu $t8, 0x3c($sp)
/* B7CC0C 80105A6C AFB40028 */ sw $s4, 0x28($sp)
/* B7CC10 80105A70 93AE003D */ lbu $t6, 0x3d($sp)
/* B7CC14 80105A74 0080A025 */ move $s4, $a0
/* B7CC18 80105A78 AFBF0034 */ sw $ra, 0x34($sp)
/* B7CC1C 80105A7C AFB60030 */ sw $s6, 0x30($sp)
/* B7CC20 80105A80 AFB5002C */ sw $s5, 0x2c($sp)
/* B7CC24 80105A84 AFB30024 */ sw $s3, 0x24($sp)
/* B7CC28 80105A88 AFB20020 */ sw $s2, 0x20($sp)
/* B7CC2C 80105A8C AFB1001C */ sw $s1, 0x1c($sp)
/* B7CC30 80105A90 AFB00018 */ sw $s0, 0x18($sp)
/* B7CC34 80105A94 92890064 */ lbu $t1, 0x64($s4)
/* B7CC38 80105A98 00C09825 */ move $s3, $a2
/* B7CC3C 80105A9C 00008025 */ move $s0, $zero
/* B7CC40 80105AA0 05C10003 */ bgez $t6, .L80105AB0
/* B7CC44 80105AA4 000E7883 */ sra $t7, $t6, 2
/* B7CC48 80105AA8 25C10003 */ addiu $at, $t6, 3
/* B7CC4C 80105AAC 00017883 */ sra $t7, $at, 2
.L80105AB0:
/* B7CC50 80105AB0 07010004 */ bgez $t8, .L80105AC4
/* B7CC54 80105AB4 33190007 */ andi $t9, $t8, 7
/* B7CC58 80105AB8 13200002 */ beqz $t9, .L80105AC4
/* B7CC5C 80105ABC 00000000 */ nop
/* B7CC60 80105AC0 2739FFF8 */ addiu $t9, $t9, -8
.L80105AC4:
/* B7CC64 80105AC4 00194140 */ sll $t0, $t9, 5
/* B7CC68 80105AC8 01E8B021 */ addu $s6, $t7, $t0
/* B7CC6C 80105ACC 19200040 */ blez $t1, .L80105BD0
/* B7CC70 80105AD0 00009025 */ move $s2, $zero
/* B7CC74 80105AD4 00001025 */ move $v0, $zero
/* B7CC78 80105AD8 24150003 */ li $s5, 3
.L80105ADC:
/* B7CC7C 80105ADC 18400003 */ blez $v0, .L80105AEC
/* B7CC80 80105AE0 93AA003C */ lbu $t2, 0x3c($sp)
/* B7CC84 80105AE4 10000002 */ b .L80105AF0
/* B7CC88 80105AE8 24110001 */ li $s1, 1
.L80105AEC:
/* B7CC8C 80105AEC 8E910060 */ lw $s1, 0x60($s4)
.L80105AF0:
/* B7CC90 80105AF0 1142000C */ beq $t2, $v0, .L80105B24
/* B7CC94 80105AF4 02765821 */ addu $t3, $s3, $s6
/* B7CC98 80105AF8 916C0101 */ lbu $t4, 0x101($t3)
/* B7CC9C 80105AFC 04410004 */ bgez $v0, .L80105B10
/* B7CCA0 80105B00 304D0007 */ andi $t5, $v0, 7
/* B7CCA4 80105B04 11A00002 */ beqz $t5, .L80105B10
/* B7CCA8 80105B08 00000000 */ nop
/* B7CCAC 80105B0C 25ADFFF8 */ addiu $t5, $t5, -8
.L80105B10:
/* B7CCB0 80105B10 240E0001 */ li $t6, 1
/* B7CCB4 80105B14 01AEC004 */ sllv $t8, $t6, $t5
/* B7CCB8 80105B18 0198C824 */ and $t9, $t4, $t8
/* B7CCBC 80105B1C 53200027 */ beql $t9, $zero, .L80105BBC
/* B7CCC0 80105B20 928B0064 */ lbu $t3, 0x64($s4)
.L80105B24:
/* B7CCC4 80105B24 926F0100 */ lbu $t7, 0x100($s3)
/* B7CCC8 80105B28 02802025 */ move $a0, $s4
/* B7CCCC 80105B2C 02602825 */ move $a1, $s3
/* B7CCD0 80105B30 11E2000A */ beq $t7, $v0, .L80105B5C
/* B7CCD4 80105B34 00003025 */ move $a2, $zero
/* B7CCD8 80105B38 0C040B31 */ jal func_80102CC4
/* B7CCDC 80105B3C 324700FF */ andi $a3, $s2, 0xff
/* B7CCE0 80105B40 50400006 */ beql $v0, $zero, .L80105B5C
/* B7CCE4 80105B44 A2720100 */ sb $s2, 0x100($s3)
/* B7CCE8 80105B48 50550004 */ beql $v0, $s5, .L80105B5C
/* B7CCEC 80105B4C A2720100 */ sb $s2, 0x100($s3)
/* B7CCF0 80105B50 10000021 */ b .L80105BD8
/* B7CCF4 80105B54 8FBF0034 */ lw $ra, 0x34($sp)
/* B7CCF8 80105B58 A2720100 */ sb $s2, 0x100($s3)
.L80105B5C:
/* B7CCFC 80105B5C 2A010002 */ slti $at, $s0, 2
/* B7CD00 80105B60 10200010 */ beqz $at, .L80105BA4
/* B7CD04 80105B64 2A210080 */ slti $at, $s1, 0x80
/* B7CD08 80105B68 1020000E */ beqz $at, .L80105BA4
/* B7CD0C 80105B6C 00111040 */ sll $v0, $s1, 1
/* B7CD10 80105B70 02621821 */ addu $v1, $s3, $v0
/* B7CD14 80105B74 97A8003C */ lhu $t0, 0x3c($sp)
.L80105B78:
/* B7CD18 80105B78 94690000 */ lhu $t1, ($v1)
/* B7CD1C 80105B7C 24420002 */ addiu $v0, $v0, 2
/* B7CD20 80105B80 55090003 */ bnel $t0, $t1, .L80105B90
/* B7CD24 80105B84 2A010002 */ slti $at, $s0, 2
/* B7CD28 80105B88 26100001 */ addiu $s0, $s0, 1
/* B7CD2C 80105B8C 2A010002 */ slti $at, $s0, 2
.L80105B90:
/* B7CD30 80105B90 10200004 */ beqz $at, .L80105BA4
/* B7CD34 80105B94 24630002 */ addiu $v1, $v1, 2
/* B7CD38 80105B98 28410100 */ slti $at, $v0, 0x100
/* B7CD3C 80105B9C 5420FFF6 */ bnezl $at, .L80105B78
/* B7CD40 80105BA0 97A8003C */ lhu $t0, 0x3c($sp)
.L80105BA4:
/* B7CD44 80105BA4 2A010002 */ slti $at, $s0, 2
/* B7CD48 80105BA8 54200004 */ bnezl $at, .L80105BBC
/* B7CD4C 80105BAC 928B0064 */ lbu $t3, 0x64($s4)
/* B7CD50 80105BB0 10000008 */ b .L80105BD4
/* B7CD54 80105BB4 24020002 */ li $v0, 2
/* B7CD58 80105BB8 928B0064 */ lbu $t3, 0x64($s4)
.L80105BBC:
/* B7CD5C 80105BBC 26520001 */ addiu $s2, $s2, 1
/* B7CD60 80105BC0 324200FF */ andi $v0, $s2, 0xff
/* B7CD64 80105BC4 004B082A */ slt $at, $v0, $t3
/* B7CD68 80105BC8 1420FFC4 */ bnez $at, .L80105ADC
/* B7CD6C 80105BCC 00409025 */ move $s2, $v0
.L80105BD0:
/* B7CD70 80105BD0 02001025 */ move $v0, $s0
.L80105BD4:
/* B7CD74 80105BD4 8FBF0034 */ lw $ra, 0x34($sp)
.L80105BD8:
/* B7CD78 80105BD8 8FB00018 */ lw $s0, 0x18($sp)
/* B7CD7C 80105BDC 8FB1001C */ lw $s1, 0x1c($sp)
/* B7CD80 80105BE0 8FB20020 */ lw $s2, 0x20($sp)
/* B7CD84 80105BE4 8FB30024 */ lw $s3, 0x24($sp)
/* B7CD88 80105BE8 8FB40028 */ lw $s4, 0x28($sp)
/* B7CD8C 80105BEC 8FB5002C */ lw $s5, 0x2c($sp)
/* B7CD90 80105BF0 8FB60030 */ lw $s6, 0x30($sp)
/* B7CD94 80105BF4 03E00008 */ jr $ra
/* B7CD98 80105BF8 27BD0038 */ addiu $sp, $sp, 0x38

66
asm/code_80105C20.s Normal file
View file

@ -0,0 +1,66 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
/* B7CDB0 80105C10 00000000 */ nop
/* B7CDB4 80105C14 00000000 */ nop
/* B7CDB8 80105C18 00000000 */ nop
/* B7CDBC 80105C1C 00000000 */ nop
glabel func_80105C20
/* B7CDC0 80105C20 3C014780 */ li $at, 0x47800000 # 0.000000
/* B7CDC4 80105C24 44812000 */ mtc1 $at, $f4
/* B7CDC8 80105C28 44853000 */ mtc1 $a1, $f6
/* B7CDCC 80105C2C AC800000 */ sw $zero, ($a0)
/* B7CDD0 80105C30 AC800014 */ sw $zero, 0x14($a0)
/* B7CDD4 80105C34 46043202 */ mul.s $f8, $f6, $f4
/* B7CDD8 80105C38 44863000 */ mtc1 $a2, $f6
/* B7CDDC 80105C3C AC800008 */ sw $zero, 8($a0)
/* B7CDE0 80105C40 AC800004 */ sw $zero, 4($a0)
/* B7CDE4 80105C44 AC80000C */ sw $zero, 0xc($a0)
/* B7CDE8 80105C48 AC800010 */ sw $zero, 0x10($a0)
/* B7CDEC 80105C4C AC800020 */ sw $zero, 0x20($a0)
/* B7CDF0 80105C50 4600428D */ trunc.w.s $f10, $f8
/* B7CDF4 80105C54 46043202 */ mul.s $f8, $f6, $f4
/* B7CDF8 80105C58 44873000 */ mtc1 $a3, $f6
/* B7CDFC 80105C5C AC800024 */ sw $zero, 0x24($a0)
/* B7CE00 80105C60 44095000 */ mfc1 $t1, $f10
/* B7CE04 80105C64 AC800028 */ sw $zero, 0x28($a0)
/* B7CE08 80105C68 AC80002C */ sw $zero, 0x2c($a0)
/* B7CE0C 80105C6C 00095402 */ srl $t2, $t1, 0x10
/* B7CE10 80105C70 4600428D */ trunc.w.s $f10, $f8
/* B7CE14 80105C74 46043202 */ mul.s $f8, $f6, $f4
/* B7CE18 80105C78 000A4400 */ sll $t0, $t2, 0x10
/* B7CE1C 80105C7C AC800030 */ sw $zero, 0x30($a0)
/* B7CE20 80105C80 440B5000 */ mfc1 $t3, $f10
/* B7CE24 80105C84 AC800034 */ sw $zero, 0x34($a0)
/* B7CE28 80105C88 000B5402 */ srl $t2, $t3, 0x10
/* B7CE2C 80105C8C 4600428D */ trunc.w.s $f10, $f8
/* B7CE30 80105C90 010A4025 */ or $t0, $t0, $t2
/* B7CE34 80105C94 AC880018 */ sw $t0, 0x18($a0)
/* B7CE38 80105C98 00094400 */ sll $t0, $t1, 0x10
/* B7CE3C 80105C9C 000B5400 */ sll $t2, $t3, 0x10
/* B7CE40 80105CA0 44095000 */ mfc1 $t1, $f10
/* B7CE44 80105CA4 000A5402 */ srl $t2, $t2, 0x10
/* B7CE48 80105CA8 010A4025 */ or $t0, $t0, $t2
/* B7CE4C 80105CAC AC880038 */ sw $t0, 0x38($a0)
/* B7CE50 80105CB0 00095402 */ srl $t2, $t1, 0x10
/* B7CE54 80105CB4 000A4400 */ sll $t0, $t2, 0x10
/* B7CE58 80105CB8 25080001 */ addiu $t0, $t0, 1
/* B7CE5C 80105CBC AC88001C */ sw $t0, 0x1c($a0)
/* B7CE60 80105CC0 3C080001 */ lui $t0, 1
/* B7CE64 80105CC4 35080000 */ ori $t0, $t0, 0
/* B7CE68 80105CC8 AC880000 */ sw $t0, ($a0)
/* B7CE6C 80105CCC AC880014 */ sw $t0, 0x14($a0)
/* B7CE70 80105CD0 3C080000 */ lui $t0, (0x00000001 >> 16) # lui $t0, 0
/* B7CE74 80105CD4 35080001 */ ori $t0, (0x00000001 & 0xFFFF) # ori $t0, $t0, 1
/* B7CE78 80105CD8 00095400 */ sll $t2, $t1, 0x10
/* B7CE7C 80105CDC AC8A003C */ sw $t2, 0x3c($a0)
/* B7CE80 80105CE0 03E00008 */ jr $ra
/* B7CE84 80105CE4 AC880008 */ sw $t0, 8($a0)

171
asm/code_80105CF0.s Normal file
View file

@ -0,0 +1,171 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80105CF0
/* B7CE90 80105CF0 27BDFF98 */ addiu $sp, $sp, -0x68
/* B7CE94 80105CF4 8FAF0078 */ lw $t7, 0x78($sp)
/* B7CE98 80105CF8 AFB5002C */ sw $s5, 0x2c($sp)
/* B7CE9C 80105CFC AFB40028 */ sw $s4, 0x28($sp)
/* B7CEA0 80105D00 AFB1001C */ sw $s1, 0x1c($sp)
/* B7CEA4 80105D04 AFA60070 */ sw $a2, 0x70($sp)
/* B7CEA8 80105D08 30CEFFFF */ andi $t6, $a2, 0xffff
/* B7CEAC 80105D0C 24010001 */ li $at, 1
/* B7CEB0 80105D10 01C03025 */ move $a2, $t6
/* B7CEB4 80105D14 00A08825 */ move $s1, $a1
/* B7CEB8 80105D18 0080A825 */ move $s5, $a0
/* B7CEBC 80105D1C AFBF003C */ sw $ra, 0x3c($sp)
/* B7CEC0 80105D20 AFBE0038 */ sw $fp, 0x38($sp)
/* B7CEC4 80105D24 AFB70034 */ sw $s7, 0x34($sp)
/* B7CEC8 80105D28 AFB60030 */ sw $s6, 0x30($sp)
/* B7CECC 80105D2C AFB30024 */ sw $s3, 0x24($sp)
/* B7CED0 80105D30 AFB20020 */ sw $s2, 0x20($sp)
/* B7CED4 80105D34 AFB00018 */ sw $s0, 0x18($sp)
/* B7CED8 80105D38 AFA70074 */ sw $a3, 0x74($sp)
/* B7CEDC 80105D3C 11E10008 */ beq $t7, $at, .L80105D60
/* B7CEE0 80105D40 24140002 */ li $s4, 2
/* B7CEE4 80105D44 29C10007 */ slti $at, $t6, 7
/* B7CEE8 80105D48 50200006 */ beql $at, $zero, .L80105D64
/* B7CEEC 80105D4C 00C08025 */ move $s0, $a2
/* B7CEF0 80105D50 51C00004 */ beql $t6, $zero, .L80105D64
/* B7CEF4 80105D54 00C08025 */ move $s0, $a2
/* B7CEF8 80105D58 1000006C */ b .L80105F0C
/* B7CEFC 80105D5C 00001025 */ move $v0, $zero
.L80105D60:
/* B7CF00 80105D60 00C08025 */ move $s0, $a2
.L80105D64:
/* B7CF04 80105D64 0C0402E8 */ jal __osSiGetAccess
/* B7CF08 80105D68 A7A60072 */ sh $a2, 0x72($sp)
/* B7CF0C 80105D6C 0010C0C3 */ sra $t8, $s0, 3
/* B7CF10 80105D70 0010C940 */ sll $t9, $s0, 5
/* B7CF14 80105D74 3C178013 */ lui $s7, %hi(D_80134D20) # $s7, 0x8013
/* B7CF18 80105D78 3C168017 */ lui $s6, %hi(_osCont_lastPollType) # $s6, 0x8017
/* B7CF1C 80105D7C 3C138017 */ lui $s3, %hi(D_80175960) # $s3, 0x8017
/* B7CF20 80105D80 26735960 */ addiu $s3, %lo(D_80175960) # addiu $s3, $s3, 0x5960
/* B7CF24 80105D84 26D65810 */ addiu $s6, %lo(_osCont_lastPollType) # addiu $s6, $s6, 0x5810
/* B7CF28 80105D88 26F74D20 */ addiu $s7, %lo(D_80134D20) # addiu $s7, $s7, 0x4d20
/* B7CF2C 80105D8C AFB90040 */ sw $t9, 0x40($sp)
/* B7CF30 80105D90 AFB80044 */ sw $t8, 0x44($sp)
/* B7CF34 80105D94 241E0003 */ li $fp, 3
.L80105D98:
/* B7CF38 80105D98 92C80000 */ lbu $t0, ($s6)
/* B7CF3C 80105D9C 24010003 */ li $at, 3
/* B7CF40 80105DA0 02608025 */ move $s0, $s3
/* B7CF44 80105DA4 15010004 */ bne $t0, $at, .L80105DB8
/* B7CF48 80105DA8 00001025 */ move $v0, $zero
/* B7CF4C 80105DAC 8EE90000 */ lw $t1, ($s7)
/* B7CF50 80105DB0 52290022 */ beql $s1, $t1, .L80105E3C
/* B7CF54 80105DB4 02718021 */ addu $s0, $s3, $s1
.L80105DB8:
/* B7CF58 80105DB8 A2DE0000 */ sb $fp, ($s6)
/* B7CF5C 80105DBC 1A200010 */ blez $s1, .L80105E00
/* B7CF60 80105DC0 AEF10000 */ sw $s1, ($s7)
/* B7CF64 80105DC4 32240003 */ andi $a0, $s1, 3
/* B7CF68 80105DC8 10800006 */ beqz $a0, .L80105DE4
/* B7CF6C 80105DCC 00801825 */ move $v1, $a0
.L80105DD0:
/* B7CF70 80105DD0 24420001 */ addiu $v0, $v0, 1
/* B7CF74 80105DD4 A2000000 */ sb $zero, ($s0)
/* B7CF78 80105DD8 1462FFFD */ bne $v1, $v0, .L80105DD0
/* B7CF7C 80105DDC 26100001 */ addiu $s0, $s0, 1
/* B7CF80 80105DE0 10510007 */ beq $v0, $s1, .L80105E00
.L80105DE4:
/* B7CF84 80105DE4 24420004 */ addiu $v0, $v0, 4
/* B7CF88 80105DE8 A2000000 */ sb $zero, ($s0)
/* B7CF8C 80105DEC A2000001 */ sb $zero, 1($s0)
/* B7CF90 80105DF0 A2000002 */ sb $zero, 2($s0)
/* B7CF94 80105DF4 A2000003 */ sb $zero, 3($s0)
/* B7CF98 80105DF8 1451FFFA */ bne $v0, $s1, .L80105DE4
/* B7CF9C 80105DFC 26100004 */ addiu $s0, $s0, 4
.L80105E00:
/* B7CFA0 80105E00 240A0001 */ li $t2, 1
/* B7CFA4 80105E04 AE6A003C */ sw $t2, 0x3c($s3)
/* B7CFA8 80105E08 240B00FF */ li $t3, 255
/* B7CFAC 80105E0C 240C0023 */ li $t4, 35
/* B7CFB0 80105E10 240D0001 */ li $t5, 1
/* B7CFB4 80105E14 240E00FF */ li $t6, 255
/* B7CFB8 80105E18 240F00FE */ li $t7, 254
/* B7CFBC 80105E1C A20B0000 */ sb $t3, ($s0)
/* B7CFC0 80105E20 A20C0001 */ sb $t4, 1($s0)
/* B7CFC4 80105E24 A20D0002 */ sb $t5, 2($s0)
/* B7CFC8 80105E28 A21E0003 */ sb $fp, 3($s0)
/* B7CFCC 80105E2C A20E0026 */ sb $t6, 0x26($s0)
/* B7CFD0 80105E30 10000002 */ b .L80105E3C
/* B7CFD4 80105E34 A20F0027 */ sb $t7, 0x27($s0)
/* B7CFD8 80105E38 02718021 */ addu $s0, $s3, $s1
.L80105E3C:
/* B7CFDC 80105E3C 8FB80044 */ lw $t8, 0x44($sp)
/* B7CFE0 80105E40 A2180004 */ sb $t8, 4($s0)
/* B7CFE4 80105E44 0C04185C */ jal func_80106170
/* B7CFE8 80105E48 97A40072 */ lhu $a0, 0x72($sp)
/* B7CFEC 80105E4C 8FB90040 */ lw $t9, 0x40($sp)
/* B7CFF0 80105E50 26050006 */ addiu $a1, $s0, 6
/* B7CFF4 80105E54 24060020 */ li $a2, 32
/* B7CFF8 80105E58 00594025 */ or $t0, $v0, $t9
/* B7CFFC 80105E5C A2080005 */ sb $t0, 5($s0)
/* B7D000 80105E60 0C001BC4 */ jal bcopy
/* B7D004 80105E64 8FA40074 */ lw $a0, 0x74($sp)
/* B7D008 80105E68 24040001 */ li $a0, 1
/* B7D00C 80105E6C 0C0404FC */ jal __osSiRawStartDma /*(s32 dir, void *addr)*/
/* B7D010 80105E70 02602825 */ move $a1, $s3
/* B7D014 80105E74 0C041890 */ jal func_80106240
/* B7D018 80105E78 8FA40074 */ lw $a0, 0x74($sp)
/* B7D01C 80105E7C 305200FF */ andi $s2, $v0, 0xff
/* B7D020 80105E80 02A02025 */ move $a0, $s5
/* B7D024 80105E84 00002825 */ move $a1, $zero
/* B7D028 80105E88 0C000CA0 */ jal osRecvMesg
/* B7D02C 80105E8C 24060001 */ li $a2, 1
/* B7D030 80105E90 00002025 */ move $a0, $zero
/* B7D034 80105E94 0C0404FC */ jal __osSiRawStartDma /*(s32 dir, void *addr)*/
/* B7D038 80105E98 02602825 */ move $a1, $s3
/* B7D03C 80105E9C 02A02025 */ move $a0, $s5
/* B7D040 80105EA0 00002825 */ move $a1, $zero
/* B7D044 80105EA4 0C000CA0 */ jal osRecvMesg
/* B7D048 80105EA8 24060001 */ li $a2, 1
/* B7D04C 80105EAC 92030002 */ lbu $v1, 2($s0)
/* B7D050 80105EB0 306900C0 */ andi $t1, $v1, 0xc0
/* B7D054 80105EB4 00091903 */ sra $v1, $t1, 4
/* B7D058 80105EB8 5460000C */ bnezl $v1, .L80105EEC
/* B7D05C 80105EBC 24030001 */ li $v1, 1
/* B7D060 80105EC0 920B0026 */ lbu $t3, 0x26($s0)
/* B7D064 80105EC4 02A02025 */ move $a0, $s5
/* B7D068 80105EC8 51720009 */ beql $t3, $s2, .L80105EF0
/* B7D06C 80105ECC 24010004 */ li $at, 4
/* B7D070 80105ED0 0C040644 */ jal func_80101910
/* B7D074 80105ED4 02202825 */ move $a1, $s1
/* B7D078 80105ED8 14400009 */ bnez $v0, .L80105F00
/* B7D07C 80105EDC 00401825 */ move $v1, $v0
/* B7D080 80105EE0 10000002 */ b .L80105EEC
/* B7D084 80105EE4 24030004 */ li $v1, 4
/* B7D088 80105EE8 24030001 */ li $v1, 1
.L80105EEC:
/* B7D08C 80105EEC 24010004 */ li $at, 4
.L80105EF0:
/* B7D090 80105EF0 14610003 */ bne $v1, $at, .L80105F00
/* B7D094 80105EF4 2A820000 */ slti $v0, $s4, 0
/* B7D098 80105EF8 1040FFA7 */ beqz $v0, .L80105D98
/* B7D09C 80105EFC 2694FFFF */ addiu $s4, $s4, -1
.L80105F00:
/* B7D0A0 80105F00 0C0402F9 */ jal __osSiRelAccess
/* B7D0A4 80105F04 AFA30064 */ sw $v1, 0x64($sp)
/* B7D0A8 80105F08 8FA20064 */ lw $v0, 0x64($sp)
.L80105F0C:
/* B7D0AC 80105F0C 8FBF003C */ lw $ra, 0x3c($sp)
/* B7D0B0 80105F10 8FB00018 */ lw $s0, 0x18($sp)
/* B7D0B4 80105F14 8FB1001C */ lw $s1, 0x1c($sp)
/* B7D0B8 80105F18 8FB20020 */ lw $s2, 0x20($sp)
/* B7D0BC 80105F1C 8FB30024 */ lw $s3, 0x24($sp)
/* B7D0C0 80105F20 8FB40028 */ lw $s4, 0x28($sp)
/* B7D0C4 80105F24 8FB5002C */ lw $s5, 0x2c($sp)
/* B7D0C8 80105F28 8FB60030 */ lw $s6, 0x30($sp)
/* B7D0CC 80105F2C 8FB70034 */ lw $s7, 0x34($sp)
/* B7D0D0 80105F30 8FBE0038 */ lw $fp, 0x38($sp)
/* B7D0D4 80105F34 03E00008 */ jr $ra
/* B7D0D8 80105F38 27BD0068 */ addiu $sp, $sp, 0x68

160
asm/code_80105F40.s Normal file
View file

@ -0,0 +1,160 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80105F40
/* B7D0E0 80105F40 27BDFFA0 */ addiu $sp, $sp, -0x60
/* B7D0E4 80105F44 AFBF003C */ sw $ra, 0x3c($sp)
/* B7D0E8 80105F48 AFB60030 */ sw $s6, 0x30($sp)
/* B7D0EC 80105F4C AFB5002C */ sw $s5, 0x2c($sp)
/* B7D0F0 80105F50 AFB1001C */ sw $s1, 0x1c($sp)
/* B7D0F4 80105F54 00A08825 */ move $s1, $a1
/* B7D0F8 80105F58 0080B025 */ move $s6, $a0
/* B7D0FC 80105F5C AFBE0038 */ sw $fp, 0x38($sp)
/* B7D100 80105F60 AFB70034 */ sw $s7, 0x34($sp)
/* B7D104 80105F64 AFB40028 */ sw $s4, 0x28($sp)
/* B7D108 80105F68 AFB30024 */ sw $s3, 0x24($sp)
/* B7D10C 80105F6C AFB20020 */ sw $s2, 0x20($sp)
/* B7D110 80105F70 AFB00018 */ sw $s0, 0x18($sp)
/* B7D114 80105F74 AFA60068 */ sw $a2, 0x68($sp)
/* B7D118 80105F78 AFA7006C */ sw $a3, 0x6c($sp)
/* B7D11C 80105F7C 0C0402E8 */ jal __osSiGetAccess
/* B7D120 80105F80 24150002 */ li $s5, 2
/* B7D124 80105F84 97A5006A */ lhu $a1, 0x6a($sp)
/* B7D128 80105F88 3C1E8013 */ lui $fp, %hi(D_80134D20) # $fp, 0x8013
/* B7D12C 80105F8C 3C178017 */ lui $s7, %hi(_osCont_lastPollType) # $s7, 0x8017
/* B7D130 80105F90 3C148017 */ lui $s4, %hi(D_80175960) # $s4, 0x8017
/* B7D134 80105F94 000570C3 */ sra $t6, $a1, 3
/* B7D138 80105F98 00057940 */ sll $t7, $a1, 5
/* B7D13C 80105F9C AFAF0040 */ sw $t7, 0x40($sp)
/* B7D140 80105FA0 AFAE0044 */ sw $t6, 0x44($sp)
/* B7D144 80105FA4 26945960 */ addiu $s4, %lo(D_80175960) # addiu $s4, $s4, 0x5960
/* B7D148 80105FA8 26F75810 */ addiu $s7, %lo(_osCont_lastPollType) # addiu $s7, $s7, 0x5810
/* B7D14C 80105FAC 27DE4D20 */ addiu $fp, %lo(D_80134D20) # addiu $fp, $fp, 0x4d20
.L80105FB0:
/* B7D150 80105FB0 92F80000 */ lbu $t8, ($s7)
/* B7D154 80105FB4 24010002 */ li $at, 2
/* B7D158 80105FB8 97A5006A */ lhu $a1, 0x6a($sp)
/* B7D15C 80105FBC 17010003 */ bne $t8, $at, .L80105FCC
/* B7D160 80105FC0 02808025 */ move $s0, $s4
/* B7D164 80105FC4 8FD90000 */ lw $t9, ($fp)
/* B7D168 80105FC8 12390023 */ beq $s1, $t9, .L80106058
.L80105FCC:
/* B7D16C 80105FCC 24080002 */ li $t0, 2
/* B7D170 80105FD0 A2E80000 */ sb $t0, ($s7)
/* B7D174 80105FD4 AFD10000 */ sw $s1, ($fp)
/* B7D178 80105FD8 1A200010 */ blez $s1, .L8010601C
/* B7D17C 80105FDC 00001025 */ move $v0, $zero
/* B7D180 80105FE0 32240003 */ andi $a0, $s1, 3
/* B7D184 80105FE4 10800006 */ beqz $a0, .L80106000
/* B7D188 80105FE8 00801825 */ move $v1, $a0
.L80105FEC:
/* B7D18C 80105FEC 24420001 */ addiu $v0, $v0, 1
/* B7D190 80105FF0 A2000000 */ sb $zero, ($s0)
/* B7D194 80105FF4 1462FFFD */ bne $v1, $v0, .L80105FEC
/* B7D198 80105FF8 26100001 */ addiu $s0, $s0, 1
/* B7D19C 80105FFC 10510007 */ beq $v0, $s1, .L8010601C
.L80106000:
/* B7D1A0 80106000 24420004 */ addiu $v0, $v0, 4
/* B7D1A4 80106004 A2000000 */ sb $zero, ($s0)
/* B7D1A8 80106008 A2000001 */ sb $zero, 1($s0)
/* B7D1AC 8010600C A2000002 */ sb $zero, 2($s0)
/* B7D1B0 80106010 A2000003 */ sb $zero, 3($s0)
/* B7D1B4 80106014 1451FFFA */ bne $v0, $s1, .L80106000
/* B7D1B8 80106018 26100004 */ addiu $s0, $s0, 4
.L8010601C:
/* B7D1BC 8010601C 24090001 */ li $t1, 1
/* B7D1C0 80106020 AE89003C */ sw $t1, 0x3c($s4)
/* B7D1C4 80106024 240A00FF */ li $t2, 255
/* B7D1C8 80106028 240B0003 */ li $t3, 3
/* B7D1CC 8010602C 240C0021 */ li $t4, 33
/* B7D1D0 80106030 240D0002 */ li $t5, 2
/* B7D1D4 80106034 240E00FF */ li $t6, 255
/* B7D1D8 80106038 240F00FE */ li $t7, 254
/* B7D1DC 8010603C A20A0000 */ sb $t2, ($s0)
/* B7D1E0 80106040 A20B0001 */ sb $t3, 1($s0)
/* B7D1E4 80106044 A20C0002 */ sb $t4, 2($s0)
/* B7D1E8 80106048 A20D0003 */ sb $t5, 3($s0)
/* B7D1EC 8010604C A20E0026 */ sb $t6, 0x26($s0)
/* B7D1F0 80106050 10000002 */ b .L8010605C
/* B7D1F4 80106054 A20F0027 */ sb $t7, 0x27($s0)
.L80106058:
/* B7D1F8 80106058 02918021 */ addu $s0, $s4, $s1
.L8010605C:
/* B7D1FC 8010605C 8FB80044 */ lw $t8, 0x44($sp)
/* B7D200 80106060 30A4FFFF */ andi $a0, $a1, 0xffff
/* B7D204 80106064 0C04185C */ jal func_80106170
/* B7D208 80106068 A2180004 */ sb $t8, 4($s0)
/* B7D20C 8010606C 8FB90040 */ lw $t9, 0x40($sp)
/* B7D210 80106070 24040001 */ li $a0, 1
/* B7D214 80106074 02802825 */ move $a1, $s4
/* B7D218 80106078 00594025 */ or $t0, $v0, $t9
/* B7D21C 8010607C 0C0404FC */ jal __osSiRawStartDma /*(s32 dir, void *addr)*/
/* B7D220 80106080 A2080005 */ sb $t0, 5($s0)
/* B7D224 80106084 02C02025 */ move $a0, $s6
/* B7D228 80106088 00002825 */ move $a1, $zero
/* B7D22C 8010608C 0C000CA0 */ jal osRecvMesg
/* B7D230 80106090 24060001 */ li $a2, 1
/* B7D234 80106094 00002025 */ move $a0, $zero
/* B7D238 80106098 0C0404FC */ jal __osSiRawStartDma /*(s32 dir, void *addr)*/
/* B7D23C 8010609C 02802825 */ move $a1, $s4
/* B7D240 801060A0 02C02025 */ move $a0, $s6
/* B7D244 801060A4 00002825 */ move $a1, $zero
/* B7D248 801060A8 0C000CA0 */ jal osRecvMesg
/* B7D24C 801060AC 24060001 */ li $a2, 1
/* B7D250 801060B0 92130002 */ lbu $s3, 2($s0)
/* B7D254 801060B4 26120006 */ addiu $s2, $s0, 6
/* B7D258 801060B8 326900C0 */ andi $t1, $s3, 0xc0
/* B7D25C 801060BC 00099903 */ sra $s3, $t1, 4
/* B7D260 801060C0 56600014 */ bnezl $s3, .L80106114
/* B7D264 801060C4 24130001 */ li $s3, 1
/* B7D268 801060C8 0C041890 */ jal func_80106240
/* B7D26C 801060CC 02402025 */ move $a0, $s2
/* B7D270 801060D0 920B0026 */ lbu $t3, 0x26($s0)
/* B7D274 801060D4 02402025 */ move $a0, $s2
/* B7D278 801060D8 8FA5006C */ lw $a1, 0x6c($sp)
/* B7D27C 801060DC 11620008 */ beq $t3, $v0, .L80106100
/* B7D280 801060E0 00000000 */ nop
/* B7D284 801060E4 02C02025 */ move $a0, $s6
/* B7D288 801060E8 0C040644 */ jal func_80101910
/* B7D28C 801060EC 02202825 */ move $a1, $s1
/* B7D290 801060F0 1440000D */ bnez $v0, .L80106128
/* B7D294 801060F4 00409825 */ move $s3, $v0
/* B7D298 801060F8 10000006 */ b .L80106114
/* B7D29C 801060FC 24130004 */ li $s3, 4
.L80106100:
/* B7D2A0 80106100 0C001BC4 */ jal bcopy
/* B7D2A4 80106104 24060020 */ li $a2, 32
/* B7D2A8 80106108 10000003 */ b .L80106118
/* B7D2AC 8010610C 24010004 */ li $at, 4
/* B7D2B0 80106110 24130001 */ li $s3, 1
.L80106114:
/* B7D2B4 80106114 24010004 */ li $at, 4
.L80106118:
/* B7D2B8 80106118 16610003 */ bne $s3, $at, .L80106128
/* B7D2BC 8010611C 2AA20000 */ slti $v0, $s5, 0
/* B7D2C0 80106120 1040FFA3 */ beqz $v0, .L80105FB0
/* B7D2C4 80106124 26B5FFFF */ addiu $s5, $s5, -1
.L80106128:
/* B7D2C8 80106128 0C0402F9 */ jal __osSiRelAccess
/* B7D2CC 8010612C 00000000 */ nop
/* B7D2D0 80106130 8FBF003C */ lw $ra, 0x3c($sp)
/* B7D2D4 80106134 02601025 */ move $v0, $s3
/* B7D2D8 80106138 8FB30024 */ lw $s3, 0x24($sp)
/* B7D2DC 8010613C 8FB00018 */ lw $s0, 0x18($sp)
/* B7D2E0 80106140 8FB1001C */ lw $s1, 0x1c($sp)
/* B7D2E4 80106144 8FB20020 */ lw $s2, 0x20($sp)
/* B7D2E8 80106148 8FB40028 */ lw $s4, 0x28($sp)
/* B7D2EC 8010614C 8FB5002C */ lw $s5, 0x2c($sp)
/* B7D2F0 80106150 8FB60030 */ lw $s6, 0x30($sp)
/* B7D2F4 80106154 8FB70034 */ lw $s7, 0x34($sp)
/* B7D2F8 80106158 8FBE0038 */ lw $fp, 0x38($sp)
/* B7D2FC 8010615C 03E00008 */ jr $ra
/* B7D300 80106160 27BD0060 */ addiu $sp, $sp, 0x60

119
asm/code_80106170.s Normal file
View file

@ -0,0 +1,119 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80106170
/* B7D310 80106170 AFA40000 */ sw $a0, ($sp)
/* B7D314 80106174 308EFFFF */ andi $t6, $a0, 0xffff
/* B7D318 80106178 01C02025 */ move $a0, $t6
/* B7D31C 8010617C 00001825 */ move $v1, $zero
/* B7D320 80106180 24020400 */ li $v0, 1024
.L80106184:
/* B7D324 80106184 00037840 */ sll $t7, $v1, 1
/* B7D328 80106188 0082C024 */ and $t8, $a0, $v0
/* B7D32C 8010618C 13000008 */ beqz $t8, .L801061B0
/* B7D330 80106190 01E01825 */ move $v1, $t7
/* B7D334 80106194 31F90020 */ andi $t9, $t7, 0x20
/* B7D338 80106198 13200003 */ beqz $t9, .L801061A8
/* B7D33C 8010619C 00000000 */ nop
/* B7D340 801061A0 10000007 */ b .L801061C0
/* B7D344 801061A4 39E30014 */ xori $v1, $t7, 0x14
.L801061A8:
/* B7D348 801061A8 10000005 */ b .L801061C0
/* B7D34C 801061AC 24630001 */ addiu $v1, $v1, 1
.L801061B0:
/* B7D350 801061B0 30690020 */ andi $t1, $v1, 0x20
/* B7D354 801061B4 11200002 */ beqz $t1, .L801061C0
/* B7D358 801061B8 386A0015 */ xori $t2, $v1, 0x15
/* B7D35C 801061BC 01401825 */ move $v1, $t2
.L801061C0:
/* B7D360 801061C0 00025842 */ srl $t3, $v0, 1
/* B7D364 801061C4 1560FFEF */ bnez $t3, .L80106184
/* B7D368 801061C8 01601025 */ move $v0, $t3
/* B7D36C 801061CC 00036040 */ sll $t4, $v1, 1
/* B7D370 801061D0 318D0020 */ andi $t5, $t4, 0x20
/* B7D374 801061D4 11A00002 */ beqz $t5, .L801061E0
/* B7D378 801061D8 01801825 */ move $v1, $t4
/* B7D37C 801061DC 39830015 */ xori $v1, $t4, 0x15
.L801061E0:
/* B7D380 801061E0 00037840 */ sll $t7, $v1, 1
/* B7D384 801061E4 31F80020 */ andi $t8, $t7, 0x20
/* B7D388 801061E8 13000002 */ beqz $t8, .L801061F4
/* B7D38C 801061EC 01E01825 */ move $v1, $t7
/* B7D390 801061F0 39E30015 */ xori $v1, $t7, 0x15
.L801061F4:
/* B7D394 801061F4 00034040 */ sll $t0, $v1, 1
/* B7D398 801061F8 31090020 */ andi $t1, $t0, 0x20
/* B7D39C 801061FC 11200002 */ beqz $t1, .L80106208
/* B7D3A0 80106200 01001825 */ move $v1, $t0
/* B7D3A4 80106204 39030015 */ xori $v1, $t0, 0x15
.L80106208:
/* B7D3A8 80106208 00035840 */ sll $t3, $v1, 1
/* B7D3AC 8010620C 316C0020 */ andi $t4, $t3, 0x20
/* B7D3B0 80106210 11800002 */ beqz $t4, .L8010621C
/* B7D3B4 80106214 01601825 */ move $v1, $t3
/* B7D3B8 80106218 39630015 */ xori $v1, $t3, 0x15
.L8010621C:
/* B7D3BC 8010621C 00037040 */ sll $t6, $v1, 1
/* B7D3C0 80106220 31CF0020 */ andi $t7, $t6, 0x20
/* B7D3C4 80106224 11E00002 */ beqz $t7, .L80106230
/* B7D3C8 80106228 01C01825 */ move $v1, $t6
/* B7D3CC 8010622C 39C30015 */ xori $v1, $t6, 0x15
.L80106230:
/* B7D3D0 80106230 00601025 */ move $v0, $v1
/* B7D3D4 80106234 3059001F */ andi $t9, $v0, 0x1f
/* B7D3D8 80106238 03E00008 */ jr $ra
/* B7D3DC 8010623C 03201025 */ move $v0, $t9
glabel func_80106240
/* B7D3E0 80106240 00802825 */ move $a1, $a0
/* B7D3E4 80106244 00001825 */ move $v1, $zero
/* B7D3E8 80106248 24020020 */ li $v0, 32
.L8010624C:
/* B7D3EC 8010624C 24040080 */ li $a0, 128
/* B7D3F0 80106250 90A60000 */ lbu $a2, ($a1)
.L80106254:
/* B7D3F4 80106254 00037040 */ sll $t6, $v1, 1
/* B7D3F8 80106258 00C47824 */ and $t7, $a2, $a0
/* B7D3FC 8010625C 11E00008 */ beqz $t7, .L80106280
/* B7D400 80106260 01C01825 */ move $v1, $t6
/* B7D404 80106264 31D80100 */ andi $t8, $t6, 0x100
/* B7D408 80106268 13000003 */ beqz $t8, .L80106278
/* B7D40C 8010626C 00000000 */ nop
/* B7D410 80106270 10000007 */ b .L80106290
/* B7D414 80106274 39C30084 */ xori $v1, $t6, 0x84
.L80106278:
/* B7D418 80106278 10000005 */ b .L80106290
/* B7D41C 8010627C 24630001 */ addiu $v1, $v1, 1
.L80106280:
/* B7D420 80106280 30680100 */ andi $t0, $v1, 0x100
/* B7D424 80106284 11000002 */ beqz $t0, .L80106290
/* B7D428 80106288 38690085 */ xori $t1, $v1, 0x85
/* B7D42C 8010628C 01201825 */ move $v1, $t1
.L80106290:
/* B7D430 80106290 00045042 */ srl $t2, $a0, 1
/* B7D434 80106294 1540FFEF */ bnez $t2, .L80106254
/* B7D438 80106298 01402025 */ move $a0, $t2
/* B7D43C 8010629C 2442FFFF */ addiu $v0, $v0, -1
/* B7D440 801062A0 1440FFEA */ bnez $v0, .L8010624C
/* B7D444 801062A4 24A50001 */ addiu $a1, $a1, 1
/* B7D448 801062A8 00035840 */ sll $t3, $v1, 1
.L801062AC:
/* B7D44C 801062AC 316C0100 */ andi $t4, $t3, 0x100
/* B7D450 801062B0 11800002 */ beqz $t4, .L801062BC
/* B7D454 801062B4 01601825 */ move $v1, $t3
/* B7D458 801062B8 39630085 */ xori $v1, $t3, 0x85
.L801062BC:
/* B7D45C 801062BC 24420001 */ addiu $v0, $v0, 1
/* B7D460 801062C0 2C410008 */ sltiu $at, $v0, 8
/* B7D464 801062C4 5420FFF9 */ bnezl $at, .L801062AC
/* B7D468 801062C8 00035840 */ sll $t3, $v1, 1
/* B7D46C 801062CC 03E00008 */ jr $ra
/* B7D470 801062D0 306200FF */ andi $v0, $v1, 0xff

42
asm/code_801064E0.s Normal file
View file

@ -0,0 +1,42 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
/* B7D670 801064D0 00000000 */ nop
/* B7D674 801064D4 00000000 */ nop
/* B7D678 801064D8 00000000 */ nop
/* B7D67C 801064DC 00000000 */ nop
glabel func_801064E0
/* B7D680 801064E0 3C014780 */ li $at, 0x47800000 # 0.000000
/* B7D684 801064E4 44810000 */ mtc1 $at, $f0
/* B7D688 801064E8 3C19FFFF */ lui $t9, 0xffff
/* B7D68C 801064EC 24B80020 */ addiu $t8, $a1, 0x20
.L801064F0:
/* B7D690 801064F0 C4840000 */ lwc1 $f4, ($a0)
/* B7D694 801064F4 C48A0004 */ lwc1 $f10, 4($a0)
/* B7D698 801064F8 24A50004 */ addiu $a1, $a1, 4
/* B7D69C 801064FC 46002182 */ mul.s $f6, $f4, $f0
/* B7D6A0 80106500 24840008 */ addiu $a0, $a0, 8
/* B7D6A4 80106504 46005402 */ mul.s $f16, $f10, $f0
/* B7D6A8 80106508 4600320D */ trunc.w.s $f8, $f6
/* B7D6AC 8010650C 4600848D */ trunc.w.s $f18, $f16
/* B7D6B0 80106510 44084000 */ mfc1 $t0, $f8
/* B7D6B4 80106514 44099000 */ mfc1 $t1, $f18
/* B7D6B8 80106518 01195024 */ and $t2, $t0, $t9
/* B7D6BC 8010651C 00086C00 */ sll $t5, $t0, 0x10
/* B7D6C0 80106520 00095C02 */ srl $t3, $t1, 0x10
/* B7D6C4 80106524 312EFFFF */ andi $t6, $t1, 0xffff
/* B7D6C8 80106528 014B6025 */ or $t4, $t2, $t3
/* B7D6CC 8010652C 01AE7825 */ or $t7, $t5, $t6
/* B7D6D0 80106530 ACACFFFC */ sw $t4, -4($a1)
/* B7D6D4 80106534 14B8FFEE */ bne $a1, $t8, .L801064F0
/* B7D6D8 80106538 ACAF001C */ sw $t7, 0x1c($a1)
/* B7D6DC 8010653C 03E00008 */ jr $ra
/* B7D6E0 80106540 00000000 */ nop

164
asm/code_80106550.s Normal file
View file

@ -0,0 +1,164 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel __d_to_ll
/* B7D6F0 80106550 46206109 */ trunc.l.d $f4, $f12
/* B7D6F4 80106554 44222000 */ dmfc1 $v0, $f4
/* B7D6F8 80106558 00000000 */ nop
/* B7D6FC 8010655C 0002183C */ dsll32 $v1, $v0, 0
/* B7D700 80106560 0003183F */ dsra32 $v1, $v1, 0
/* B7D704 80106564 03E00008 */ jr $ra
/* B7D708 80106568 0002103F */ dsra32 $v0, $v0, 0
glabel __f_to_ll
/* B7D70C 8010656C 46006109 */ trunc.l.s $f4, $f12
/* B7D710 80106570 44222000 */ dmfc1 $v0, $f4
/* B7D714 80106574 00000000 */ nop
/* B7D718 80106578 0002183C */ dsll32 $v1, $v0, 0
/* B7D71C 8010657C 0003183F */ dsra32 $v1, $v1, 0
/* B7D720 80106580 03E00008 */ jr $ra
/* B7D724 80106584 0002103F */ dsra32 $v0, $v0, 0
glabel __d_to_ull
/* B7D728 80106588 444EF800 */ cfc1 $t6, $31
/* B7D72C 8010658C 24020001 */ li $v0, 1
/* B7D730 80106590 44C2F800 */ ctc1 $v0, $31
/* B7D734 80106594 00000000 */ nop
/* B7D738 80106598 46206125 */ cvt.l.d $f4, $f12
/* B7D73C 8010659C 4442F800 */ cfc1 $v0, $31
/* B7D740 801065A0 00000000 */ nop
/* B7D744 801065A4 30410004 */ andi $at, $v0, 4
/* B7D748 801065A8 30420078 */ andi $v0, $v0, 0x78
/* B7D74C 801065AC 10400015 */ beqz $v0, .L80106604
/* B7D750 801065B0 3C0143E0 */ li $at, 0x43E00000 # 0.000000
/* B7D754 801065B4 44812800 */ mtc1 $at, $f5
/* B7D758 801065B8 44802000 */ mtc1 $zero, $f4
/* B7D75C 801065BC 24020001 */ li $v0, 1
/* B7D760 801065C0 46246101 */ sub.d $f4, $f12, $f4
/* B7D764 801065C4 44C2F800 */ ctc1 $v0, $31
/* B7D768 801065C8 00000000 */ nop
/* B7D76C 801065CC 46202125 */ cvt.l.d $f4, $f4
/* B7D770 801065D0 4442F800 */ cfc1 $v0, $31
/* B7D774 801065D4 00000000 */ nop
/* B7D778 801065D8 30410004 */ andi $at, $v0, 4
/* B7D77C 801065DC 30420078 */ andi $v0, $v0, 0x78
/* B7D780 801065E0 14400006 */ bnez $v0, .L801065FC
/* B7D784 801065E4 00000000 */ nop
/* B7D788 801065E8 3C0F8015 */ lui $t7, %hi(D_8014B2E0) # $t7, 0x8015
/* B7D78C 801065EC DDEFB2E0 */ ld $t7, %lo(D_8014B2E0)($t7)
/* B7D790 801065F0 44222000 */ dmfc1 $v0, $f4
/* B7D794 801065F4 10000007 */ b .L80106614
/* B7D798 801065F8 004F1025 */ or $v0, $v0, $t7
.L801065FC:
/* B7D79C 801065FC 10000005 */ b .L80106614
/* B7D7A0 80106600 2402FFFF */ li $v0, -1
.L80106604:
/* B7D7A4 80106604 44222000 */ dmfc1 $v0, $f4
/* B7D7A8 80106608 00000000 */ nop
/* B7D7AC 8010660C 0440FFFB */ bltz $v0, .L801065FC
/* B7D7B0 80106610 00000000 */ nop
.L80106614:
/* B7D7B4 80106614 44CEF800 */ ctc1 $t6, $31
/* B7D7B8 80106618 0002183C */ dsll32 $v1, $v0, 0
/* B7D7BC 8010661C 0003183F */ dsra32 $v1, $v1, 0
/* B7D7C0 80106620 03E00008 */ jr $ra
/* B7D7C4 80106624 0002103F */ dsra32 $v0, $v0, 0
glabel __f_to_ull
/* B7D7C8 80106628 444EF800 */ cfc1 $t6, $31
/* B7D7CC 8010662C 24020001 */ li $v0, 1
/* B7D7D0 80106630 44C2F800 */ ctc1 $v0, $31
/* B7D7D4 80106634 00000000 */ nop
/* B7D7D8 80106638 46006125 */ cvt.l.s $f4, $f12
/* B7D7DC 8010663C 4442F800 */ cfc1 $v0, $31
/* B7D7E0 80106640 00000000 */ nop
/* B7D7E4 80106644 30410004 */ andi $at, $v0, 4
/* B7D7E8 80106648 30420078 */ andi $v0, $v0, 0x78
/* B7D7EC 8010664C 10400014 */ beqz $v0, .L801066A0
/* B7D7F0 80106650 3C015F00 */ li $at, 0x5F000000 # 0.000000
/* B7D7F4 80106654 44812000 */ mtc1 $at, $f4
/* B7D7F8 80106658 24020001 */ li $v0, 1
/* B7D7FC 8010665C 46046101 */ sub.s $f4, $f12, $f4
/* B7D800 80106660 44C2F800 */ ctc1 $v0, $31
/* B7D804 80106664 00000000 */ nop
/* B7D808 80106668 46002125 */ cvt.l.s $f4, $f4
/* B7D80C 8010666C 4442F800 */ cfc1 $v0, $31
/* B7D810 80106670 00000000 */ nop
/* B7D814 80106674 30410004 */ andi $at, $v0, 4
/* B7D818 80106678 30420078 */ andi $v0, $v0, 0x78
/* B7D81C 8010667C 14400006 */ bnez $v0, .L80106698
/* B7D820 80106680 00000000 */ nop
/* B7D824 80106684 3C0F8015 */ lui $t7, %hi(D_8014B2E8) # $t7, 0x8015
/* B7D828 80106688 DDEFB2E8 */ ld $t7, %lo(D_8014B2E8)($t7)
/* B7D82C 8010668C 44222000 */ dmfc1 $v0, $f4
/* B7D830 80106690 10000007 */ b .L801066B0
/* B7D834 80106694 004F1025 */ or $v0, $v0, $t7
.L80106698:
/* B7D838 80106698 10000005 */ b .L801066B0
/* B7D83C 8010669C 2402FFFF */ li $v0, -1
.L801066A0:
/* B7D840 801066A0 44222000 */ dmfc1 $v0, $f4
/* B7D844 801066A4 00000000 */ nop
/* B7D848 801066A8 0440FFFB */ bltz $v0, .L80106698
/* B7D84C 801066AC 00000000 */ nop
.L801066B0:
/* B7D850 801066B0 44CEF800 */ ctc1 $t6, $31
/* B7D854 801066B4 0002183C */ dsll32 $v1, $v0, 0
/* B7D858 801066B8 0003183F */ dsra32 $v1, $v1, 0
/* B7D85C 801066BC 03E00008 */ jr $ra
/* B7D860 801066C0 0002103F */ dsra32 $v0, $v0, 0
glabel __ll_to_d
/* B7D864 801066C4 AFA40000 */ sw $a0, ($sp)
/* B7D868 801066C8 AFA50004 */ sw $a1, 4($sp)
/* B7D86C 801066CC DFAE0000 */ ld $t6, ($sp)
/* B7D870 801066D0 44AE2000 */ dmtc1 $t6, $f4
/* B7D874 801066D4 03E00008 */ jr $ra
/* B7D878 801066D8 46A02021 */ cvt.d.l $f0, $f4
glabel __ll_to_f
/* B7D87C 801066DC AFA40000 */ sw $a0, ($sp)
/* B7D880 801066E0 AFA50004 */ sw $a1, 4($sp)
/* B7D884 801066E4 DFAE0000 */ ld $t6, ($sp)
/* B7D888 801066E8 44AE2000 */ dmtc1 $t6, $f4
/* B7D88C 801066EC 03E00008 */ jr $ra
/* B7D890 801066F0 46A02020 */ cvt.s.l $f0, $f4
glabel __ull_to_d
/* B7D894 801066F4 AFA40000 */ sw $a0, ($sp)
/* B7D898 801066F8 AFA50004 */ sw $a1, 4($sp)
/* B7D89C 801066FC DFAE0000 */ ld $t6, ($sp)
/* B7D8A0 80106700 44AE2000 */ dmtc1 $t6, $f4
/* B7D8A4 80106704 05C10006 */ bgez $t6, .L80106720
/* B7D8A8 80106708 46A02021 */ cvt.d.l $f0, $f4
/* B7D8AC 8010670C 3C0141F0 */ li $at, 0x41F00000 # 0.000000
/* B7D8B0 80106710 44813800 */ mtc1 $at, $f7
/* B7D8B4 80106714 44803000 */ mtc1 $zero, $f6
/* B7D8B8 80106718 00000000 */ nop
/* B7D8BC 8010671C 46260000 */ add.d $f0, $f0, $f6
.L80106720:
/* B7D8C0 80106720 03E00008 */ jr $ra
/* B7D8C4 80106724 00000000 */ nop
glabel __ull_to_f
/* B7D8C8 80106728 AFA40000 */ sw $a0, ($sp)
/* B7D8CC 8010672C AFA50004 */ sw $a1, 4($sp)
/* B7D8D0 80106730 DFAE0000 */ ld $t6, ($sp)
/* B7D8D4 80106734 44AE2000 */ dmtc1 $t6, $f4
/* B7D8D8 80106738 05C10005 */ bgez $t6, .L80106750
/* B7D8DC 8010673C 46A02020 */ cvt.s.l $f0, $f4
/* B7D8E0 80106740 3C014F80 */ li $at, 0x4F800000 # 0.000000
/* B7D8E4 80106744 44813000 */ mtc1 $at, $f6
/* B7D8E8 80106748 00000000 */ nop
/* B7D8EC 8010674C 46060000 */ add.s $f0, $f0, $f6
.L80106750:
/* B7D8F0 80106750 03E00008 */ jr $ra
/* B7D8F4 80106754 00000000 */ nop

15
asm/code_801067D0.s Normal file
View file

@ -0,0 +1,15 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_801067D0
/* B7D970 801067D0 46206004 */ sqrt.d $f0, $f12
/* B7D974 801067D4 03E00008 */ jr $ra
/* B7D978 801067D8 00000000 */ nop

15
asm/code_801067E0.s Normal file
View file

@ -0,0 +1,15 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel absf
/* B7D980 801067E0 46006005 */ abs.s $f0, $f12
/* B7D984 801067E4 03E00008 */ jr $ra
/* B7D988 801067E8 00000000 */ nop

40
asm/code_801067F0.s Normal file
View file

@ -0,0 +1,40 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_801067F0
/* B7D990 801067F0 27BDFFF8 */ addiu $sp, $sp, -8
/* B7D994 801067F4 44802000 */ mtc1 $zero, $f4
/* B7D998 801067F8 00000000 */ nop
/* B7D99C 801067FC 46047032 */ c.eq.s $f14, $f4
/* B7D9A0 80106800 00000000 */ nop
/* B7D9A4 80106804 45000004 */ bc1f .L80106818
/* B7D9A8 80106808 00000000 */ nop
/* B7D9AC 8010680C 44800000 */ mtc1 $zero, $f0
/* B7D9B0 80106810 1000000F */ b .L80106850
/* B7D9B4 80106814 00000000 */ nop
.L80106818:
/* B7D9B8 80106818 460E6183 */ div.s $f6, $f12, $f14
/* B7D9BC 8010681C 4600320D */ trunc.w.s $f8, $f6
/* B7D9C0 80106820 440F4000 */ mfc1 $t7, $f8
/* B7D9C4 80106824 00000000 */ nop
/* B7D9C8 80106828 AFAF0004 */ sw $t7, 4($sp)
/* B7D9CC 8010682C 8FB80004 */ lw $t8, 4($sp)
/* B7D9D0 80106830 44985000 */ mtc1 $t8, $f10
/* B7D9D4 80106834 00000000 */ nop
/* B7D9D8 80106838 46805420 */ cvt.s.w $f16, $f10
/* B7D9DC 8010683C 460E8482 */ mul.s $f18, $f16, $f14
/* B7D9E0 80106840 10000003 */ b .L80106850
/* B7D9E4 80106844 46126001 */ sub.s $f0, $f12, $f18
/* B7D9E8 80106848 10000001 */ b .L80106850
/* B7D9EC 8010684C 00000000 */ nop
.L80106850:
/* B7D9F0 80106850 03E00008 */ jr $ra
/* B7D9F4 80106854 27BD0008 */ addiu $sp, $sp, 8

34
asm/code_80106860.s Normal file
View file

@ -0,0 +1,34 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80106860
/* B7DA00 80106860 27BDFFF8 */ addiu $sp, $sp, -8
/* B7DA04 80106864 AFA40004 */ sw $a0, 4($sp)
/* B7DA08 80106868 00C03825 */ move $a3, $a2
/* B7DA0C 8010686C 10E00009 */ beqz $a3, .L80106894
/* B7DA10 80106870 24C6FFFF */ addiu $a2, $a2, -1
.L80106874:
/* B7DA14 80106874 8FAE0004 */ lw $t6, 4($sp)
/* B7DA18 80106878 A1C50000 */ sb $a1, ($t6)
/* B7DA1C 8010687C 8FAF0004 */ lw $t7, 4($sp)
/* B7DA20 80106880 25F80001 */ addiu $t8, $t7, 1
/* B7DA24 80106884 AFB80004 */ sw $t8, 4($sp)
/* B7DA28 80106888 00C03825 */ move $a3, $a2
/* B7DA2C 8010688C 14E0FFF9 */ bnez $a3, .L80106874
/* B7DA30 80106890 24C6FFFF */ addiu $a2, $a2, -1
.L80106894:
/* B7DA34 80106894 10000003 */ b .L801068A4
/* B7DA38 80106898 00801025 */ move $v0, $a0
/* B7DA3C 8010689C 10000001 */ b .L801068A4
/* B7DA40 801068A0 00000000 */ nop
.L801068A4:
/* B7DA44 801068A4 03E00008 */ jr $ra
/* B7DA48 801068A8 27BD0008 */ addiu $sp, $sp, 8

81
asm/code_801068B0.s Normal file
View file

@ -0,0 +1,81 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_801068B0
/* B7DA50 801068B0 27BDFFF0 */ addiu $sp, $sp, -0x10
/* B7DA54 801068B4 AFA4000C */ sw $a0, 0xc($sp)
/* B7DA58 801068B8 AFA50008 */ sw $a1, 8($sp)
/* B7DA5C 801068BC 8FAE000C */ lw $t6, 0xc($sp)
/* B7DA60 801068C0 8FAF0008 */ lw $t7, 8($sp)
/* B7DA64 801068C4 15CF0003 */ bne $t6, $t7, .L801068D4
/* B7DA68 801068C8 00000000 */ nop
/* B7DA6C 801068CC 10000034 */ b .L801069A0
/* B7DA70 801068D0 00801025 */ move $v0, $a0
.L801068D4:
/* B7DA74 801068D4 8FB8000C */ lw $t8, 0xc($sp)
/* B7DA78 801068D8 8FB90008 */ lw $t9, 8($sp)
/* B7DA7C 801068DC 0319082B */ sltu $at, $t8, $t9
/* B7DA80 801068E0 10200013 */ beqz $at, .L80106930
/* B7DA84 801068E4 00000000 */ nop
/* B7DA88 801068E8 00C03825 */ move $a3, $a2
/* B7DA8C 801068EC 10E0000E */ beqz $a3, .L80106928
/* B7DA90 801068F0 24C6FFFF */ addiu $a2, $a2, -1
.L801068F4:
/* B7DA94 801068F4 8FA80008 */ lw $t0, 8($sp)
/* B7DA98 801068F8 8FAA000C */ lw $t2, 0xc($sp)
/* B7DA9C 801068FC 91090000 */ lbu $t1, ($t0)
/* B7DAA0 80106900 A1490000 */ sb $t1, ($t2)
/* B7DAA4 80106904 8FAD0008 */ lw $t5, 8($sp)
/* B7DAA8 80106908 8FAB000C */ lw $t3, 0xc($sp)
/* B7DAAC 8010690C 25AE0001 */ addiu $t6, $t5, 1
/* B7DAB0 80106910 256C0001 */ addiu $t4, $t3, 1
/* B7DAB4 80106914 AFAC000C */ sw $t4, 0xc($sp)
/* B7DAB8 80106918 AFAE0008 */ sw $t6, 8($sp)
/* B7DABC 8010691C 00C03825 */ move $a3, $a2
/* B7DAC0 80106920 14E0FFF4 */ bnez $a3, .L801068F4
/* B7DAC4 80106924 24C6FFFF */ addiu $a2, $a2, -1
.L80106928:
/* B7DAC8 80106928 10000019 */ b .L80106990
/* B7DACC 8010692C 00000000 */ nop
.L80106930:
/* B7DAD0 80106930 8FAF000C */ lw $t7, 0xc($sp)
/* B7DAD4 80106934 01E6C021 */ addu $t8, $t7, $a2
/* B7DAD8 80106938 2719FFFF */ addiu $t9, $t8, -1
/* B7DADC 8010693C AFB9000C */ sw $t9, 0xc($sp)
/* B7DAE0 80106940 8FA80008 */ lw $t0, 8($sp)
/* B7DAE4 80106944 01064821 */ addu $t1, $t0, $a2
/* B7DAE8 80106948 252AFFFF */ addiu $t2, $t1, -1
/* B7DAEC 8010694C AFAA0008 */ sw $t2, 8($sp)
/* B7DAF0 80106950 00C03825 */ move $a3, $a2
/* B7DAF4 80106954 10E0000E */ beqz $a3, .L80106990
/* B7DAF8 80106958 24C6FFFF */ addiu $a2, $a2, -1
.L8010695C:
/* B7DAFC 8010695C 8FAB0008 */ lw $t3, 8($sp)
/* B7DB00 80106960 8FAD000C */ lw $t5, 0xc($sp)
/* B7DB04 80106964 916C0000 */ lbu $t4, ($t3)
/* B7DB08 80106968 A1AC0000 */ sb $t4, ($t5)
/* B7DB0C 8010696C 8FB80008 */ lw $t8, 8($sp)
/* B7DB10 80106970 8FAE000C */ lw $t6, 0xc($sp)
/* B7DB14 80106974 2719FFFF */ addiu $t9, $t8, -1
/* B7DB18 80106978 25CFFFFF */ addiu $t7, $t6, -1
/* B7DB1C 8010697C AFAF000C */ sw $t7, 0xc($sp)
/* B7DB20 80106980 AFB90008 */ sw $t9, 8($sp)
/* B7DB24 80106984 00C03825 */ move $a3, $a2
/* B7DB28 80106988 14E0FFF4 */ bnez $a3, .L8010695C
/* B7DB2C 8010698C 24C6FFFF */ addiu $a2, $a2, -1
.L80106990:
/* B7DB30 80106990 10000003 */ b .L801069A0
/* B7DB34 80106994 00801025 */ move $v0, $a0
/* B7DB38 80106998 10000001 */ b .L801069A0
/* B7DB3C 8010699C 00000000 */ nop
.L801069A0:
/* B7DB40 801069A0 03E00008 */ jr $ra
/* B7DB44 801069A4 27BD0010 */ addiu $sp, $sp, 0x10

108
asm/cosf.s Normal file
View file

@ -0,0 +1,108 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel cosf
/* B7B7B0 80104610 E7AC0000 */ swc1 $f12, ($sp)
/* B7B7B4 80104614 8FA20000 */ lw $v0, ($sp)
/* B7B7B8 80104618 C7A60000 */ lwc1 $f6, ($sp)
/* B7B7BC 8010461C C7AA0000 */ lwc1 $f10, ($sp)
/* B7B7C0 80104620 00027583 */ sra $t6, $v0, 0x16
/* B7B7C4 80104624 31CF01FF */ andi $t7, $t6, 0x1ff
/* B7B7C8 80104628 29E10136 */ slti $at, $t7, 0x136
/* B7B7CC 8010462C 50200049 */ beql $at, $zero, .L80104754
/* B7B7D0 80104630 460A5032 */ c.eq.s $f10, $f10
/* B7B7D4 80104634 44802000 */ mtc1 $zero, $f4
/* B7B7D8 80104638 3C013FE0 */ li $at, 0x3FE00000 # 0.000000
/* B7B7DC 8010463C 44819800 */ mtc1 $at, $f19
/* B7B7E0 80104640 4606203C */ c.lt.s $f4, $f6
/* B7B7E4 80104644 C7A00000 */ lwc1 $f0, ($sp)
/* B7B7E8 80104648 3C018015 */ lui $at, %hi(D_8014B2A8)
/* B7B7EC 8010464C 45020004 */ bc1fl .L80104660
/* B7B7F0 80104650 46000007 */ neg.s $f0, $f0
/* B7B7F4 80104654 10000002 */ b .L80104660
/* B7B7F8 80104658 46003006 */ mov.s $f0, $f6
/* B7B7FC 8010465C 46000007 */ neg.s $f0, $f0
.L80104660:
/* B7B800 80104660 D428B2A8 */ ldc1 $f8, %lo(D_8014B2A8)($at)
/* B7B804 80104664 46000321 */ cvt.d.s $f12, $f0
/* B7B808 80104668 44809000 */ mtc1 $zero, $f18
/* B7B80C 8010466C 46286282 */ mul.d $f10, $f12, $f8
/* B7B810 80104670 44802800 */ mtc1 $zero, $f5
/* B7B814 80104674 44802000 */ mtc1 $zero, $f4
/* B7B818 80104678 46325380 */ add.d $f14, $f10, $f18
/* B7B81C 8010467C 462E203E */ c.le.d $f4, $f14
/* B7B820 80104680 00000000 */ nop
/* B7B824 80104684 45020007 */ bc1fl .L801046A4
/* B7B828 80104688 46327281 */ sub.d $f10, $f14, $f18
/* B7B82C 8010468C 46327180 */ add.d $f6, $f14, $f18
/* B7B830 80104690 4620320D */ trunc.w.d $f8, $f6
/* B7B834 80104694 44024000 */ mfc1 $v0, $f8
/* B7B838 80104698 10000006 */ b .L801046B4
/* B7B83C 8010469C 44823000 */ mtc1 $v0, $f6
/* B7B840 801046A0 46327281 */ sub.d $f10, $f14, $f18
.L801046A4:
/* B7B844 801046A4 4620510D */ trunc.w.d $f4, $f10
/* B7B848 801046A8 44022000 */ mfc1 $v0, $f4
/* B7B84C 801046AC 00000000 */ nop
/* B7B850 801046B0 44823000 */ mtc1 $v0, $f6
.L801046B4:
/* B7B854 801046B4 3C018015 */ lui $at, %hi(D_8014B2B0)
/* B7B858 801046B8 D42AB2B0 */ ldc1 $f10, %lo(D_8014B2B0)($at)
/* B7B85C 801046BC 46803221 */ cvt.d.w $f8, $f6
/* B7B860 801046C0 3C018015 */ lui $at, %hi(D_8014B2B8)
/* B7B864 801046C4 D426B2B8 */ ldc1 $f6, %lo(D_8014B2B8)($at)
/* B7B868 801046C8 3C038015 */ lui $v1, %hi(D_8014B280) # $v1, 0x8015
/* B7B86C 801046CC 2463B280 */ addiu $v1, %lo(D_8014B280) # addiu $v1, $v1, -0x4d80
/* B7B870 801046D0 46324001 */ sub.d $f0, $f8, $f18
/* B7B874 801046D4 30480001 */ andi $t0, $v0, 1
/* B7B878 801046D8 462A0102 */ mul.d $f4, $f0, $f10
/* B7B87C 801046DC D46A0020 */ ldc1 $f10, 0x20($v1)
/* B7B880 801046E0 46260202 */ mul.d $f8, $f0, $f6
/* B7B884 801046E4 D4660018 */ ldc1 $f6, 0x18($v1)
/* B7B888 801046E8 46246081 */ sub.d $f2, $f12, $f4
/* B7B88C 801046EC 46281081 */ sub.d $f2, $f2, $f8
/* B7B890 801046F0 46221382 */ mul.d $f14, $f2, $f2
/* B7B894 801046F4 00000000 */ nop
/* B7B898 801046F8 462E5102 */ mul.d $f4, $f10, $f14
/* B7B89C 801046FC 46262200 */ add.d $f8, $f4, $f6
/* B7B8A0 80104700 D4640010 */ ldc1 $f4, 0x10($v1)
/* B7B8A4 80104704 462E4282 */ mul.d $f10, $f8, $f14
/* B7B8A8 80104708 46245180 */ add.d $f6, $f10, $f4
/* B7B8AC 8010470C D46A0008 */ ldc1 $f10, 8($v1)
/* B7B8B0 80104710 462E3202 */ mul.d $f8, $f6, $f14
/* B7B8B4 80104714 15000007 */ bnez $t0, .L80104734
/* B7B8B8 80104718 46285400 */ add.d $f16, $f10, $f8
/* B7B8BC 8010471C 462E1102 */ mul.d $f4, $f2, $f14
/* B7B8C0 80104720 00000000 */ nop
/* B7B8C4 80104724 46302182 */ mul.d $f6, $f4, $f16
/* B7B8C8 80104728 46223280 */ add.d $f10, $f6, $f2
/* B7B8CC 8010472C 03E00008 */ jr $ra
/* B7B8D0 80104730 46205020 */ cvt.s.d $f0, $f10
.L80104734:
/* B7B8D4 80104734 462E1202 */ mul.d $f8, $f2, $f14
/* B7B8D8 80104738 00000000 */ nop
/* B7B8DC 8010473C 46304102 */ mul.d $f4, $f8, $f16
/* B7B8E0 80104740 46222180 */ add.d $f6, $f4, $f2
/* B7B8E4 80104744 46203020 */ cvt.s.d $f0, $f6
/* B7B8E8 80104748 03E00008 */ jr $ra
/* B7B8EC 8010474C 46000007 */ neg.s $f0, $f0
/* B7B8F0 80104750 460A5032 */ c.eq.s $f10, $f10
.L80104754:
/* B7B8F4 80104754 3C018015 */ lui $at, %hi(D_8014B2C0)
/* B7B8F8 80104758 45010004 */ bc1t .L8010476C
/* B7B8FC 8010475C 00000000 */ nop
/* B7B900 80104760 3C018015 */ lui $at, %hi(D_8014B2D0)
/* B7B904 80104764 03E00008 */ jr $ra
/* B7B908 80104768 C420B2D0 */ lwc1 $f0, %lo(D_8014B2D0)($at)
.L8010476C:
/* B7B90C 8010476C C420B2C0 */ lwc1 $f0, %lo(D_8014B2C0)($at)
/* B7B910 80104770 03E00008 */ jr $ra
/* B7B914 80104774 00000000 */ nop

24
asm/coss.s Normal file
View file

@ -0,0 +1,24 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel coss
/* B7B920 80104780 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B7B924 80104784 AFA40018 */ sw $a0, 0x18($sp)
/* B7B928 80104788 00802825 */ move $a1, $a0
/* B7B92C 8010478C 24A44000 */ addiu $a0, $a1, 0x4000
/* B7B930 80104790 AFBF0014 */ sw $ra, 0x14($sp)
/* B7B934 80104794 308EFFFF */ andi $t6, $a0, 0xffff
/* B7B938 80104798 0C040114 */ jal sins
/* B7B93C 8010479C 01C02025 */ move $a0, $t6
/* B7B940 801047A0 8FBF0014 */ lw $ra, 0x14($sp)
/* B7B944 801047A4 27BD0018 */ addiu $sp, $sp, 0x18
/* B7B948 801047A8 03E00008 */ jr $ra
/* B7B94C 801047AC 00000000 */ nop

1545
asm/dmadata.s Normal file

File diff suppressed because it is too large Load diff

714
asm/exceptasm.s Normal file
View file

@ -0,0 +1,714 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .data
glabel __osHwIntTable
.word 0, 0
.word 0, 0
.word 0, 0
.word 0, 0
.word 0, 0
glabel __osPiIntTable
.word 0
.word 0
.section .rodata
glabel __osIntOffTable
.byte 0x00 /* redispatch */
.byte 0x14 /* prenmi */
.byte 0x18 /* IP6_Hdlr */
.byte 0x18 /* IP6_Hdlr */
.byte 0x1c /* IP7_Hdlr */
.byte 0x1c /* IP7_Hdlr */
.byte 0x1c /* IP7_Hdlr */
.byte 0x1c /* IP7_Hdlr */
.byte 0x20 /* counter */
.byte 0x20 /* counter */
.byte 0x20 /* counter */
.byte 0x20 /* counter */
.byte 0x20 /* counter */
.byte 0x20 /* counter */
.byte 0x20 /* counter */
.byte 0x20 /* counter */
.byte 0x00 /* redispatch */
.byte 0x04 /* sw1 */
.byte 0x08 /* sw2 */
.byte 0x08 /* sw2 */
.byte 0x0c /* rcp */
.byte 0x0c /* rcp */
.byte 0x0c /* rcp */
.byte 0x0c /* rcp */
.byte 0x10 /* cart */
.byte 0x10 /* cart */
.byte 0x10 /* cart */
.byte 0x10 /* cart */
.byte 0x10 /* cart */
.byte 0x10 /* cart */
.byte 0x10 /* cart */
.byte 0x10 /* cart */
glabel __osIntTable
.word redispatch
.word sw1
.word sw2
.word rcp
.word cart
.word prenmi
.word IP6_Hdlr
.word IP7_Hdlr
.word counter
.section .text
.align 4
glabel __osExceptionPreamble
/* 0045D0 800039D0 3C1A8000 */ lui $k0, %hi(__osException) # $k0, 0x8000
/* 0045D4 800039D4 275A39E0 */ addiu $k0, %lo(__osException) # addiu $k0, $k0, 0x39e0
/* 0045D8 800039D8 03400008 */ jr $k0
/* 0045DC 800039DC 00000000 */ nop
glabel __osException
/* 0045E0 800039E0 3C1A8001 */ lui $k0, %hi(__osThreadSave) # $k0, 0x8001
/* 0045E4 800039E4 275A5890 */ addiu $k0, %lo(__osThreadSave) # addiu $k0, $k0, 0x5890
/* 0045E8 800039E8 FF410020 */ sd $at, 0x20($k0)
/* 0045EC 800039EC 401B6000 */ mfc0 $k1, $12
/* 0045F0 800039F0 AF5B0118 */ sw $k1, 0x118($k0)
/* 0045F4 800039F4 2401FFFC */ li $at, -4
/* 0045F8 800039F8 0361D824 */ and $k1, $k1, $at
/* 0045FC 800039FC 409B6000 */ mtc0 $k1, $12
/* 004600 80003A00 FF480058 */ sd $t0, 0x58($k0)
/* 004604 80003A04 FF490060 */ sd $t1, 0x60($k0)
/* 004608 80003A08 FF4A0068 */ sd $t2, 0x68($k0)
/* 00460C 80003A0C AF400018 */ sw $zero, 0x18($k0)
/* 004610 80003A10 40086800 */ mfc0 $t0, $13
/* 004614 80003A14 03404025 */ move $t0, $k0
/* 004618 80003A18 3C1A8001 */ lui $k0, %hi(__osRunningThread) # $k0, 0x8001
/* 00461C 80003A1C 8F5AAD50 */ lw $k0, %lo(__osRunningThread)($k0)
/* 004620 80003A20 DD090020 */ ld $t1, 0x20($t0)
/* 004624 80003A24 FF490020 */ sd $t1, 0x20($k0)
/* 004628 80003A28 DD090118 */ ld $t1, 0x118($t0)
/* 00462C 80003A2C FF490118 */ sd $t1, 0x118($k0)
/* 004630 80003A30 DD090058 */ ld $t1, 0x58($t0)
/* 004634 80003A34 FF490058 */ sd $t1, 0x58($k0)
/* 004638 80003A38 DD090060 */ ld $t1, 0x60($t0)
/* 00463C 80003A3C FF490060 */ sd $t1, 0x60($k0)
/* 004640 80003A40 DD090068 */ ld $t1, 0x68($t0)
/* 004644 80003A44 FF490068 */ sd $t1, 0x68($k0)
/* 004648 80003A48 8F5B0118 */ lw $k1, 0x118($k0)
/* 00464C 80003A4C 00004012 */ mflo $t0
/* 004650 80003A50 FF480108 */ sd $t0, 0x108($k0)
/* 004654 80003A54 00004010 */ mfhi $t0
/* 004658 80003A58 3369FF00 */ andi $t1, $k1, 0xff00
/* 00465C 80003A5C FF420028 */ sd $v0, 0x28($k0)
/* 004660 80003A60 FF430030 */ sd $v1, 0x30($k0)
/* 004664 80003A64 FF440038 */ sd $a0, 0x38($k0)
/* 004668 80003A68 FF450040 */ sd $a1, 0x40($k0)
/* 00466C 80003A6C FF460048 */ sd $a2, 0x48($k0)
/* 004670 80003A70 FF470050 */ sd $a3, 0x50($k0)
/* 004674 80003A74 FF4B0070 */ sd $t3, 0x70($k0)
/* 004678 80003A78 FF4C0078 */ sd $t4, 0x78($k0)
/* 00467C 80003A7C FF4D0080 */ sd $t5, 0x80($k0)
/* 004680 80003A80 FF4E0088 */ sd $t6, 0x88($k0)
/* 004684 80003A84 FF4F0090 */ sd $t7, 0x90($k0)
/* 004688 80003A88 FF500098 */ sd $s0, 0x98($k0)
/* 00468C 80003A8C FF5100A0 */ sd $s1, 0xa0($k0)
/* 004690 80003A90 FF5200A8 */ sd $s2, 0xa8($k0)
/* 004694 80003A94 FF5300B0 */ sd $s3, 0xb0($k0)
/* 004698 80003A98 FF5400B8 */ sd $s4, 0xb8($k0)
/* 00469C 80003A9C FF5500C0 */ sd $s5, 0xc0($k0)
/* 0046A0 80003AA0 FF5600C8 */ sd $s6, 0xc8($k0)
/* 0046A4 80003AA4 FF5700D0 */ sd $s7, 0xd0($k0)
/* 0046A8 80003AA8 FF5800D8 */ sd $t8, 0xd8($k0)
/* 0046AC 80003AAC FF5900E0 */ sd $t9, 0xe0($k0)
/* 0046B0 80003AB0 FF5C00E8 */ sd $gp, 0xe8($k0)
/* 0046B4 80003AB4 FF5D00F0 */ sd $sp, 0xf0($k0)
/* 0046B8 80003AB8 FF5E00F8 */ sd $fp, 0xf8($k0)
/* 0046BC 80003ABC FF5F0100 */ sd $ra, 0x100($k0)
/* 0046C0 80003AC0 11200011 */ beqz $t1, savercp
/* 0046C4 80003AC4 FF480110 */ sd $t0, 0x110($k0)
/* 0046C8 80003AC8 3C088001 */ lui $t0, %hi(__OSGlobalIntMask) # $t0, 0x8001
/* 0046CC 80003ACC 2508AD00 */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, -0x5300
/* 0046D0 80003AD0 8D080000 */ lw $t0, ($t0)
/* 0046D4 80003AD4 2401FFFF */ li $at, -1
/* 0046D8 80003AD8 01015026 */ xor $t2, $t0, $at
/* 0046DC 80003ADC 3C01FFFF */ lui $at, (0xFFFF00FF >> 16) # lui $at, 0xffff
/* 0046E0 80003AE0 314AFF00 */ andi $t2, $t2, 0xff00
/* 0046E4 80003AE4 342100FF */ ori $at, (0xFFFF00FF & 0xFFFF) # ori $at, $at, 0xff
/* 0046E8 80003AE8 012A6025 */ or $t4, $t1, $t2
/* 0046EC 80003AEC 03615824 */ and $t3, $k1, $at
/* 0046F0 80003AF0 3108FF00 */ andi $t0, $t0, 0xff00
/* 0046F4 80003AF4 016C5825 */ or $t3, $t3, $t4
/* 0046F8 80003AF8 01284824 */ and $t1, $t1, $t0
/* 0046FC 80003AFC 0361D824 */ and $k1, $k1, $at
/* 004700 80003B00 AF4B0118 */ sw $t3, 0x118($k0)
/* 004704 80003B04 0369D825 */ or $k1, $k1, $t1
savercp:
/* 004708 80003B08 3C09A430 */ lui $t1, %hi(D_A430000C) # $t1, 0xa430
/* 00470C 80003B0C 8D29000C */ lw $t1, %lo(D_A430000C)($t1)
/* 004710 80003B10 1120000B */ beqz $t1, endrcp
/* 004714 80003B14 00000000 */ nop
/* 004718 80003B18 3C088001 */ lui $t0, %hi(__OSGlobalIntMask) # $t0, 0x8001
/* 00471C 80003B1C 2508AD00 */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, -0x5300
/* 004720 80003B20 8D080000 */ lw $t0, ($t0)
/* 004724 80003B24 8F4C0128 */ lw $t4, 0x128($k0)
/* 004728 80003B28 2401FFFF */ li $at, -1
/* 00472C 80003B2C 00084402 */ srl $t0, $t0, 0x10
/* 004730 80003B30 01014026 */ xor $t0, $t0, $at
/* 004734 80003B34 3108003F */ andi $t0, $t0, 0x3f
/* 004738 80003B38 010C4024 */ and $t0, $t0, $t4
/* 00473C 80003B3C 01284825 */ or $t1, $t1, $t0
endrcp:
/* 004740 80003B40 AF490128 */ sw $t1, 0x128($k0)
/* 004744 80003B44 40087000 */ mfc0 $t0, $14
/* 004748 80003B48 AF48011C */ sw $t0, 0x11c($k0)
/* 00474C 80003B4C 8F480018 */ lw $t0, 0x18($k0)
/* 004750 80003B50 11000014 */ beqz $t0, no_rdb_mesg
/* 004754 80003B54 00000000 */ nop
/* 004758 80003B58 4448F800 */ cfc1 $t0, $31
/* 00475C 80003B5C 00000000 */ nop
/* 004760 80003B60 AF48012C */ sw $t0, 0x12c($k0)
/* 004764 80003B64 F7400130 */ sdc1 $f0, 0x130($k0)
/* 004768 80003B68 F7420138 */ sdc1 $f2, 0x138($k0)
/* 00476C 80003B6C F7440140 */ sdc1 $f4, 0x140($k0)
/* 004770 80003B70 F7460148 */ sdc1 $f6, 0x148($k0)
/* 004774 80003B74 F7480150 */ sdc1 $f8, 0x150($k0)
/* 004778 80003B78 F74A0158 */ sdc1 $f10, 0x158($k0)
/* 00477C 80003B7C F74C0160 */ sdc1 $f12, 0x160($k0)
/* 004780 80003B80 F74E0168 */ sdc1 $f14, 0x168($k0)
/* 004784 80003B84 F7500170 */ sdc1 $f16, 0x170($k0)
/* 004788 80003B88 F7520178 */ sdc1 $f18, 0x178($k0)
/* 00478C 80003B8C F7540180 */ sdc1 $f20, 0x180($k0)
/* 004790 80003B90 F7560188 */ sdc1 $f22, 0x188($k0)
/* 004794 80003B94 F7580190 */ sdc1 $f24, 0x190($k0)
/* 004798 80003B98 F75A0198 */ sdc1 $f26, 0x198($k0)
/* 00479C 80003B9C F75C01A0 */ sdc1 $f28, 0x1a0($k0)
/* 0047A0 80003BA0 F75E01A8 */ sdc1 $f30, 0x1a8($k0)
no_rdb_mesg:
/* 0047A4 80003BA4 40086800 */ mfc0 $t0, $13
/* 0047A8 80003BA8 AF480120 */ sw $t0, 0x120($k0)
/* 0047AC 80003BAC 24090002 */ li $t1, 2
/* 0047B0 80003BB0 A7490010 */ sh $t1, 0x10($k0)
/* 0047B4 80003BB4 3109007C */ andi $t1, $t0, 0x7c
/* 0047B8 80003BB8 240A0024 */ li $t2, 36
/* 0047BC 80003BBC 112A00B6 */ beq $t1, $t2, handle_break
/* 0047C0 80003BC0 00000000 */ nop
/* 0047C4 80003BC4 240A002C */ li $t2, 44
/* 0047C8 80003BC8 112A0105 */ beq $t1, $t2, handle_CpU
/* 0047CC 80003BCC 00000000 */ nop
/* 0047D0 80003BD0 240A0000 */ li $t2, 0
/* 0047D4 80003BD4 152A00C9 */ bne $t1, $t2, panic
/* 0047D8 80003BD8 00000000 */ nop
/* 0047DC 80003BDC 03688024 */ and $s0, $k1, $t0
next_interrupt:
/* 0047E0 80003BE0 3209FF00 */ andi $t1, $s0, 0xff00
/* 0047E4 80003BE4 00095302 */ srl $t2, $t1, 0xc
/* 0047E8 80003BE8 15400003 */ bnez $t2, .L80003BF8
/* 0047EC 80003BEC 00000000 */ nop
/* 0047F0 80003BF0 00095202 */ srl $t2, $t1, 8
/* 0047F4 80003BF4 214A0010 */ addi $t2, $t2, 0x10
.L80003BF8:
/* 0047F8 80003BF8 3C018001 */ lui $at, %hi(__osIntOffTable)
/* 0047FC 80003BFC 002A0821 */ addu $at, $at, $t2
/* 004800 80003C00 902A20F0 */ lbu $t2, %lo(__osIntOffTable)($at)
/* 004804 80003C04 3C018001 */ lui $at, %hi(__osIntTable)
/* 004808 80003C08 002A0821 */ addu $at, $at, $t2
/* 00480C 80003C0C 8C2A2110 */ lw $t2, %lo(__osIntTable)($at)
/* 004810 80003C10 01400008 */ jr $t2
/* 004814 80003C14 00000000 */ nop
IP6_Hdlr:
/* 004818 80003C18 2401DFFF */ li $at, -8193
/* 00481C 80003C1C 1000FFF0 */ b next_interrupt
/* 004820 80003C20 02018024 */ and $s0, $s0, $at
IP7_Hdlr:
/* 004824 80003C24 2401BFFF */ li $at, -16385
/* 004828 80003C28 1000FFED */ b next_interrupt
/* 00482C 80003C2C 02018024 */ and $s0, $s0, $at
counter:
/* 004830 80003C30 40095800 */ mfc0 $t1, $11
/* 004834 80003C34 40895800 */ mtc0 $t1, $11
/* 004838 80003C38 0C000FCB */ jal send_mesg
/* 00483C 80003C3C 24040018 */ li $a0, 24
/* 004840 80003C40 3C01FFFF */ lui $at, (0xFFFF7FFF >> 16) # lui $at, 0xffff
/* 004844 80003C44 34217FFF */ ori $at, (0xFFFF7FFF & 0xFFFF) # ori $at, $at, 0x7fff
/* 004848 80003C48 1000FFE5 */ b next_interrupt
/* 00484C 80003C4C 02018024 */ and $s0, $s0, $at
cart:
/* 004850 80003C50 3C098001 */ lui $t1, %hi(__osHwIntTable) # $t1, 0x8001
/* 004854 80003C54 2529AD10 */ addiu $t1, %lo(__osHwIntTable) # addiu $t1, $t1, -0x52f0
/* 004858 80003C58 8D2A0008 */ lw $t2, 8($t1)
/* 00485C 80003C5C 2401F7FF */ li $at, -2049
/* 004860 80003C60 02018024 */ and $s0, $s0, $at
/* 004864 80003C64 11400007 */ beqz $t2, .L80003C84
/* 004868 80003C68 21290008 */ addi $t1, $t1, 8
/* 00486C 80003C6C 0140F809 */ jalr $t2
/* 004870 80003C70 8D3D0004 */ lw $sp, 4($t1)
/* 004874 80003C74 10400003 */ beqz $v0, .L80003C84
/* 004878 80003C78 00000000 */ nop
/* 00487C 80003C7C 1000008C */ b redispatch
/* 004880 80003C80 00000000 */ nop
.L80003C84:
/* 004884 80003C84 0C000FCB */ jal send_mesg
/* 004888 80003C88 24040010 */ li $a0, 16
/* 00488C 80003C8C 1000FFD4 */ b next_interrupt
/* 004890 80003C90 00000000 */ nop
rcp:
/* 004894 80003C94 3C088001 */ lui $t0, %hi(__OSGlobalIntMask) # $t0, 0x8001
/* 004898 80003C98 2508AD00 */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, -0x5300
/* 00489C 80003C9C 8D080000 */ lw $t0, ($t0)
/* 0048A0 80003CA0 3C11A430 */ lui $s1, %hi(D_A4300008) # $s1, 0xa430
/* 0048A4 80003CA4 8E310008 */ lw $s1, %lo(D_A4300008)($s1)
/* 0048A8 80003CA8 00084402 */ srl $t0, $t0, 0x10
/* 0048AC 80003CAC 02288824 */ and $s1, $s1, $t0
/* 0048B0 80003CB0 32290001 */ andi $t1, $s1, 1
/* 0048B4 80003CB4 11200013 */ beqz $t1, vi
/* 0048B8 80003CB8 00000000 */ nop
/* 0048BC 80003CBC 3C0CA404 */ lui $t4, %hi(D_A4040010) # $t4, 0xa404
/* 0048C0 80003CC0 8D8C0010 */ lw $t4, %lo(D_A4040010)($t4)
/* 0048C4 80003CC4 34098008 */ li $t1, 32776
/* 0048C8 80003CC8 3C01A404 */ lui $at, %hi(D_A4040010) # $at, 0xa404
/* 0048CC 80003CCC 318C0300 */ andi $t4, $t4, 0x300
/* 0048D0 80003CD0 3231003E */ andi $s1, $s1, 0x3e
/* 0048D4 80003CD4 11800007 */ beqz $t4, sp_other_break
/* 0048D8 80003CD8 AC290010 */ sw $t1, %lo(D_A4040010)($at)
/* 0048DC 80003CDC 0C000FCB */ jal send_mesg
/* 0048E0 80003CE0 24040020 */ li $a0, 32
/* 0048E4 80003CE4 12200042 */ beqz $s1, NoMoreRcpInts
/* 0048E8 80003CE8 00000000 */ nop
/* 0048EC 80003CEC 10000005 */ b vi
/* 0048F0 80003CF0 00000000 */ nop
sp_other_break:
/* 0048F4 80003CF4 0C000FCB */ jal send_mesg
/* 0048F8 80003CF8 24040058 */ li $a0, 88
/* 0048FC 80003CFC 1220003C */ beqz $s1, NoMoreRcpInts
/* 004900 80003D00 00000000 */ nop
vi:
/* 004904 80003D04 32290008 */ andi $t1, $s1, 8
/* 004908 80003D08 11200007 */ beqz $t1, ai
/* 00490C 80003D0C 3C01A440 */ lui $at, %hi(D_A4400010) # $at, 0xa440
/* 004910 80003D10 32310037 */ andi $s1, $s1, 0x37
/* 004914 80003D14 AC200010 */ sw $zero, %lo(D_A4400010)($at)
/* 004918 80003D18 0C000FCB */ jal send_mesg
/* 00491C 80003D1C 24040038 */ li $a0, 56
/* 004920 80003D20 12200033 */ beqz $s1, NoMoreRcpInts
/* 004924 80003D24 00000000 */ nop
ai:
/* 004928 80003D28 32290004 */ andi $t1, $s1, 4
/* 00492C 80003D2C 11200009 */ beqz $t1, si
/* 004930 80003D30 00000000 */ nop
/* 004934 80003D34 24090001 */ li $t1, 1
/* 004938 80003D38 3C01A450 */ lui $at, %hi(D_A450000C) # $at, 0xa450
/* 00493C 80003D3C 3231003B */ andi $s1, $s1, 0x3b
/* 004940 80003D40 AC29000C */ sw $t1, %lo(D_A450000C)($at)
/* 004944 80003D44 0C000FCB */ jal send_mesg
/* 004948 80003D48 24040030 */ li $a0, 48
/* 00494C 80003D4C 12200028 */ beqz $s1, NoMoreRcpInts
/* 004950 80003D50 00000000 */ nop
si:
/* 004954 80003D54 32290002 */ andi $t1, $s1, 2
/* 004958 80003D58 11200007 */ beqz $t1, pi
/* 00495C 80003D5C 3C01A480 */ lui $at, %hi(D_A4800018) # $at, 0xa480
/* 004960 80003D60 3231003D */ andi $s1, $s1, 0x3d
/* 004964 80003D64 AC200018 */ sw $zero, %lo(D_A4800018)($at)
/* 004968 80003D68 0C000FCB */ jal send_mesg
/* 00496C 80003D6C 24040028 */ li $a0, 40
/* 004970 80003D70 1220001F */ beqz $s1, NoMoreRcpInts
/* 004974 80003D74 00000000 */ nop
pi:
/* 004978 80003D78 32290010 */ andi $t1, $s1, 0x10
/* 00497C 80003D7C 11200013 */ beqz $t1, dp
/* 004980 80003D80 00000000 */ nop
/* 004984 80003D84 24090002 */ li $t1, 2
/* 004988 80003D88 3C01A460 */ lui $at, %hi(D_A4600010) # $at, 0xa460
/* 00498C 80003D8C AC290010 */ sw $t1, %lo(D_A4600010)($at)
/* 004990 80003D90 3C098001 */ lui $t1, %hi(__osPiIntTable) # $t1, 0x8001
/* 004994 80003D94 2529AD38 */ addiu $t1, %lo(__osPiIntTable) # addiu $t1, $t1, -0x52c8
/* 004998 80003D98 8D2A0000 */ lw $t2, ($t1)
/* 00499C 80003D9C 3231002F */ andi $s1, $s1, 0x2f
/* 0049A0 80003DA0 11400006 */ beqz $t2, .L80003DBC
/* 0049A4 80003DA4 00000000 */ nop
/* 0049A8 80003DA8 8D3D0004 */ lw $sp, 4($t1)
/* 0049AC 80003DAC 0140F809 */ jalr $t2
/* 0049B0 80003DB0 00402025 */ move $a0, $v0
/* 0049B4 80003DB4 14400003 */ bnez $v0, .L80003DC4
/* 0049B8 80003DB8 00000000 */ nop
.L80003DBC:
/* 0049BC 80003DBC 0C000FCB */ jal send_mesg
/* 0049C0 80003DC0 24040040 */ li $a0, 64
.L80003DC4:
/* 0049C4 80003DC4 1220000A */ beqz $s1, NoMoreRcpInts
/* 0049C8 80003DC8 00000000 */ nop
dp:
/* 0049CC 80003DCC 32290020 */ andi $t1, $s1, 0x20
/* 0049D0 80003DD0 11200007 */ beqz $t1, NoMoreRcpInts
/* 0049D4 80003DD4 00000000 */ nop
/* 0049D8 80003DD8 24090800 */ li $t1, 2048
/* 0049DC 80003DDC 3C01A430 */ lui $at, 0xa430
/* 0049E0 80003DE0 3231001F */ andi $s1, $s1, 0x1f
/* 0049E4 80003DE4 AC290000 */ sw $t1, ($at)
/* 0049E8 80003DE8 0C000FCB */ jal send_mesg
/* 0049EC 80003DEC 24040048 */ li $a0, 72
NoMoreRcpInts:
/* 0049F0 80003DF0 2401FBFF */ li $at, -1025
/* 0049F4 80003DF4 1000FF7A */ b next_interrupt
/* 0049F8 80003DF8 02018024 */ and $s0, $s0, $at
prenmi:
/* 0049FC 80003DFC 8F5B0118 */ lw $k1, 0x118($k0)
/* 004A00 80003E00 2401EFFF */ li $at, -4097
/* 004A04 80003E04 3C098001 */ lui $t1, %hi(__osShutdown) # $t1, 0x8001
/* 004A08 80003E08 0361D824 */ and $k1, $k1, $at
/* 004A0C 80003E0C AF5B0118 */ sw $k1, 0x118($k0)
/* 004A10 80003E10 2529ACFC */ addiu $t1, %lo(__osShutdown) # addiu $t1, $t1, -0x5304
/* 004A14 80003E14 8D2A0000 */ lw $t2, ($t1)
/* 004A18 80003E18 11400003 */ beqz $t2, firstnmi
/* 004A1C 80003E1C 2401EFFF */ li $at, -4097
/* 004A20 80003E20 10000023 */ b redispatch
/* 004A24 80003E24 02018024 */ and $s0, $s0, $at
firstnmi:
/* 004A28 80003E28 240A0001 */ li $t2, 1
/* 004A2C 80003E2C AD2A0000 */ sw $t2, ($t1)
/* 004A30 80003E30 0C000FCB */ jal send_mesg
/* 004A34 80003E34 24040070 */ li $a0, 112
/* 004A38 80003E38 3C0A8001 */ lui $t2, %hi(__osRunQueue) # $t2, 0x8001
/* 004A3C 80003E3C 8D4AAD48 */ lw $t2, %lo(__osRunQueue)($t2)
/* 004A40 80003E40 2401EFFF */ li $at, -4097
/* 004A44 80003E44 02018024 */ and $s0, $s0, $at
/* 004A48 80003E48 8D5B0118 */ lw $k1, 0x118($t2)
/* 004A4C 80003E4C 0361D824 */ and $k1, $k1, $at
/* 004A50 80003E50 10000017 */ b redispatch
/* 004A54 80003E54 AD5B0118 */ sw $k1, 0x118($t2)
sw2:
/* 004A58 80003E58 2401FDFF */ li $at, -513
/* 004A5C 80003E5C 01014024 */ and $t0, $t0, $at
/* 004A60 80003E60 40886800 */ mtc0 $t0, $13
/* 004A64 80003E64 0C000FCB */ jal send_mesg
/* 004A68 80003E68 24040008 */ li $a0, 8
/* 004A6C 80003E6C 2401FDFF */ li $at, -513
/* 004A70 80003E70 1000FF5B */ b next_interrupt
/* 004A74 80003E74 02018024 */ and $s0, $s0, $at
sw1:
/* 004A78 80003E78 2401FEFF */ li $at, -257
/* 004A7C 80003E7C 01014024 */ and $t0, $t0, $at
/* 004A80 80003E80 40886800 */ mtc0 $t0, $13
/* 004A84 80003E84 0C000FCB */ jal send_mesg
/* 004A88 80003E88 24040000 */ li $a0, 0
/* 004A8C 80003E8C 2401FEFF */ li $at, -257
/* 004A90 80003E90 1000FF53 */ b next_interrupt
/* 004A94 80003E94 02018024 */ and $s0, $s0, $at
handle_break:
/* 004A98 80003E98 24090001 */ li $t1, 1
/* 004A9C 80003E9C A7490012 */ sh $t1, 0x12($k0)
/* 004AA0 80003EA0 0C000FCB */ jal send_mesg
/* 004AA4 80003EA4 24040050 */ li $a0, 80
/* 004AA8 80003EA8 10000001 */ b redispatch
/* 004AAC 80003EAC 00000000 */ nop
redispatch:
/* 004AB0 80003EB0 3C0A8001 */ lui $t2, %hi(__osRunQueue) # $t2, 0x8001
/* 004AB4 80003EB4 8D4AAD48 */ lw $t2, %lo(__osRunQueue)($t2)
/* 004AB8 80003EB8 8F490004 */ lw $t1, 4($k0)
/* 004ABC 80003EBC 8D4B0004 */ lw $t3, 4($t2)
/* 004AC0 80003EC0 012B082A */ slt $at, $t1, $t3
/* 004AC4 80003EC4 10200007 */ beqz $at, enqueueRunning
/* 004AC8 80003EC8 00000000 */ nop
/* 004ACC 80003ECC 3C048001 */ lui $a0, %hi(__osRunQueue) # $a0, 0x8001
/* 004AD0 80003ED0 03402825 */ move $a1, $k0
/* 004AD4 80003ED4 0C001045 */ jal __osEnqueueThread
/* 004AD8 80003ED8 2484AD48 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, -0x52b8
/* 004ADC 80003EDC 0800105D */ j __osDispatchThread
/* 004AE0 80003EE0 00000000 */ nop
enqueueRunning:
/* 004AE4 80003EE4 3C098001 */ lui $t1, %hi(__osRunQueue) # $t1, 0x8001
/* 004AE8 80003EE8 2529AD48 */ addiu $t1, %lo(__osRunQueue) # addiu $t1, $t1, -0x52b8
/* 004AEC 80003EEC 8D2A0000 */ lw $t2, ($t1)
/* 004AF0 80003EF0 AF4A0000 */ sw $t2, ($k0)
/* 004AF4 80003EF4 0800105D */ j __osDispatchThread
/* 004AF8 80003EF8 AD3A0000 */ sw $k0, ($t1)
panic:
/* 004AFC 80003EFC 3C018001 */ lui $at, %hi(__osFaultedThread) # $at, 0x8001
/* 004B00 80003F00 AC3AAD54 */ sw $k0, %lo(__osFaultedThread)($at)
/* 004B04 80003F04 24090001 */ li $t1, 1
/* 004B08 80003F08 A7490010 */ sh $t1, 0x10($k0)
/* 004B0C 80003F0C 24090002 */ li $t1, 2
/* 004B10 80003F10 A7490012 */ sh $t1, 0x12($k0)
/* 004B14 80003F14 400A4000 */ mfc0 $t2, $8
/* 004B18 80003F18 AF4A0124 */ sw $t2, 0x124($k0)
/* 004B1C 80003F1C 0C000FCB */ jal send_mesg
/* 004B20 80003F20 24040060 */ li $a0, 96
/* 004B24 80003F24 0800105D */ j __osDispatchThread
/* 004B28 80003F28 00000000 */ nop
glabel send_mesg
/* 004B2C 80003F2C 3C0A8001 */ lui $t2, %hi(__osEventStateTab) # $t2, 0x8001
/* 004B30 80003F30 254A5A40 */ addiu $t2, %lo(__osEventStateTab) # addiu $t2, $t2, 0x5a40
/* 004B34 80003F34 01445021 */ addu $t2, $t2, $a0
/* 004B38 80003F38 8D490000 */ lw $t1, ($t2)
/* 004B3C 80003F3C 03E09025 */ move $s2, $ra
/* 004B40 80003F40 11200025 */ beqz $t1, send_done
/* 004B44 80003F44 00000000 */ nop
/* 004B48 80003F48 8D2B0008 */ lw $t3, 8($t1)
/* 004B4C 80003F4C 8D2C0010 */ lw $t4, 0x10($t1)
/* 004B50 80003F50 016C082A */ slt $at, $t3, $t4
/* 004B54 80003F54 10200020 */ beqz $at, send_done
/* 004B58 80003F58 00000000 */ nop
/* 004B5C 80003F5C 8D2D000C */ lw $t5, 0xc($t1)
/* 004B60 80003F60 01AB6821 */ addu $t5, $t5, $t3
/* 004B64 80003F64 01AC001A */ div $zero, $t5, $t4
/* 004B68 80003F68 15800002 */ bnez $t4, .L80003F74
/* 004B6C 80003F6C 00000000 */ nop
/* 004B70 80003F70 0007000D */ break 7
.L80003F74:
/* 004B74 80003F74 2401FFFF */ li $at, -1
/* 004B78 80003F78 15810004 */ bne $t4, $at, .L80003F8C
/* 004B7C 80003F7C 3C018000 */ lui $at, 0x8000
/* 004B80 80003F80 15A10002 */ bne $t5, $at, .L80003F8C
/* 004B84 80003F84 00000000 */ nop
/* 004B88 80003F88 0006000D */ break 6
.L80003F8C:
/* 004B8C 80003F8C 8D2C0014 */ lw $t4, 0x14($t1)
/* 004B90 80003F90 00006810 */ mfhi $t5
/* 004B94 80003F94 000D6880 */ sll $t5, $t5, 2
/* 004B98 80003F98 018D6021 */ addu $t4, $t4, $t5
/* 004B9C 80003F9C 8D4D0004 */ lw $t5, 4($t2)
/* 004BA0 80003FA0 256A0001 */ addiu $t2, $t3, 1
/* 004BA4 80003FA4 AD8D0000 */ sw $t5, ($t4)
/* 004BA8 80003FA8 AD2A0008 */ sw $t2, 8($t1)
/* 004BAC 80003FAC 8D2A0000 */ lw $t2, ($t1)
/* 004BB0 80003FB0 8D4B0000 */ lw $t3, ($t2)
/* 004BB4 80003FB4 11600008 */ beqz $t3, send_done
/* 004BB8 80003FB8 00000000 */ nop
/* 004BBC 80003FBC 0C001057 */ jal __osPopThread
/* 004BC0 80003FC0 01202025 */ move $a0, $t1
/* 004BC4 80003FC4 00405025 */ move $t2, $v0
/* 004BC8 80003FC8 3C048001 */ lui $a0, %hi(__osRunQueue) # $a0, 0x8001
/* 004BCC 80003FCC 01402825 */ move $a1, $t2
/* 004BD0 80003FD0 0C001045 */ jal __osEnqueueThread
/* 004BD4 80003FD4 2484AD48 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, -0x52b8
send_done:
/* 004BD8 80003FD8 02400008 */ jr $s2
/* 004BDC 80003FDC 00000000 */ nop
handle_CpU:
/* 004BE0 80003FE0 3C013000 */ lui $at, 0x3000
/* 004BE4 80003FE4 01014824 */ and $t1, $t0, $at
/* 004BE8 80003FE8 00094F02 */ srl $t1, $t1, 0x1c
/* 004BEC 80003FEC 240A0001 */ li $t2, 1
/* 004BF0 80003FF0 152AFFC2 */ bne $t1, $t2, panic
/* 004BF4 80003FF4 00000000 */ nop
/* 004BF8 80003FF8 8F5B0118 */ lw $k1, 0x118($k0)
/* 004BFC 80003FFC 3C012000 */ lui $at, 0x2000
glabel func_80004000
/* 004C00 80004000 24090001 */ li $t1, 1
/* 004C04 80004004 0361D825 */ or $k1, $k1, $at
/* 004C08 80004008 AF490018 */ sw $t1, 0x18($k0)
/* 004C0C 8000400C 1000FFB5 */ b enqueueRunning
/* 004C10 80004010 AF5B0118 */ sw $k1, 0x118($k0)
glabel __osEnqueueAndYield
/* 004C14 80004014 3C058001 */ lui $a1, %hi(__osRunningThread) # $a1, 0x8001
/* 004C18 80004018 8CA5AD50 */ lw $a1, %lo(__osRunningThread)($a1)
/* 004C1C 8000401C 40086000 */ mfc0 $t0, $12
/* 004C20 80004020 8CBB0018 */ lw $k1, 0x18($a1)
/* 004C24 80004024 35080002 */ ori $t0, $t0, 2
/* 004C28 80004028 ACA80118 */ sw $t0, 0x118($a1)
/* 004C2C 8000402C FCB00098 */ sd $s0, 0x98($a1)
/* 004C30 80004030 FCB100A0 */ sd $s1, 0xa0($a1)
/* 004C34 80004034 FCB200A8 */ sd $s2, 0xa8($a1)
/* 004C38 80004038 FCB300B0 */ sd $s3, 0xb0($a1)
/* 004C3C 8000403C FCB400B8 */ sd $s4, 0xb8($a1)
/* 004C40 80004040 FCB500C0 */ sd $s5, 0xc0($a1)
/* 004C44 80004044 FCB600C8 */ sd $s6, 0xc8($a1)
/* 004C48 80004048 FCB700D0 */ sd $s7, 0xd0($a1)
/* 004C4C 8000404C FCBC00E8 */ sd $gp, 0xe8($a1)
/* 004C50 80004050 FCBD00F0 */ sd $sp, 0xf0($a1)
/* 004C54 80004054 FCBE00F8 */ sd $fp, 0xf8($a1)
/* 004C58 80004058 FCBF0100 */ sd $ra, 0x100($a1)
/* 004C5C 8000405C 13600009 */ beqz $k1, .L80004084
/* 004C60 80004060 ACBF011C */ sw $ra, 0x11c($a1)
/* 004C64 80004064 445BF800 */ cfc1 $k1, $31
/* 004C68 80004068 F4B40180 */ sdc1 $f20, 0x180($a1)
/* 004C6C 8000406C F4B60188 */ sdc1 $f22, 0x188($a1)
/* 004C70 80004070 F4B80190 */ sdc1 $f24, 0x190($a1)
/* 004C74 80004074 F4BA0198 */ sdc1 $f26, 0x198($a1)
/* 004C78 80004078 F4BC01A0 */ sdc1 $f28, 0x1a0($a1)
/* 004C7C 8000407C F4BE01A8 */ sdc1 $f30, 0x1a8($a1)
/* 004C80 80004080 ACBB012C */ sw $k1, 0x12c($a1)
.L80004084:
/* 004C84 80004084 8CBB0118 */ lw $k1, 0x118($a1)
/* 004C88 80004088 3369FF00 */ andi $t1, $k1, 0xff00
/* 004C8C 8000408C 1120000D */ beqz $t1, .L800040C4
/* 004C90 80004090 00000000 */ nop
/* 004C94 80004094 3C088001 */ lui $t0, %hi(__OSGlobalIntMask) # $t0, 0x8001
/* 004C98 80004098 2508AD00 */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, -0x5300
/* 004C9C 8000409C 8D080000 */ lw $t0, ($t0)
/* 004CA0 800040A0 2401FFFF */ li $at, -1
/* 004CA4 800040A4 01014026 */ xor $t0, $t0, $at
/* 004CA8 800040A8 3C01FFFF */ lui $at, (0xFFFF00FF >> 16) # lui $at, 0xffff
/* 004CAC 800040AC 3108FF00 */ andi $t0, $t0, 0xff00
/* 004CB0 800040B0 342100FF */ ori $at, (0xFFFF00FF & 0xFFFF) # ori $at, $at, 0xff
/* 004CB4 800040B4 01284825 */ or $t1, $t1, $t0
/* 004CB8 800040B8 0361D824 */ and $k1, $k1, $at
/* 004CBC 800040BC 0369D825 */ or $k1, $k1, $t1
/* 004CC0 800040C0 ACBB0118 */ sw $k1, 0x118($a1)
.L800040C4:
/* 004CC4 800040C4 3C1BA430 */ lui $k1, %hi(D_A430000C) # $k1, 0xa430
/* 004CC8 800040C8 8F7B000C */ lw $k1, %lo(D_A430000C)($k1)
/* 004CCC 800040CC 1360000B */ beqz $k1, .L800040FC
/* 004CD0 800040D0 00000000 */ nop
/* 004CD4 800040D4 3C1A8001 */ lui $k0, %hi(__OSGlobalIntMask) # $k0, 0x8001
/* 004CD8 800040D8 275AAD00 */ addiu $k0, %lo(__OSGlobalIntMask) # addiu $k0, $k0, -0x5300
/* 004CDC 800040DC 8F5A0000 */ lw $k0, ($k0)
/* 004CE0 800040E0 8CA80128 */ lw $t0, 0x128($a1)
/* 004CE4 800040E4 2401FFFF */ li $at, -1
/* 004CE8 800040E8 001AD402 */ srl $k0, $k0, 0x10
/* 004CEC 800040EC 0341D026 */ xor $k0, $k0, $at
/* 004CF0 800040F0 335A003F */ andi $k0, $k0, 0x3f
/* 004CF4 800040F4 0348D024 */ and $k0, $k0, $t0
/* 004CF8 800040F8 037AD825 */ or $k1, $k1, $k0
.L800040FC:
/* 004CFC 800040FC 10800003 */ beqz $a0, .L8000410C
/* 004D00 80004100 ACBB0128 */ sw $k1, 0x128($a1)
/* 004D04 80004104 0C001045 */ jal __osEnqueueThread
/* 004D08 80004108 00000000 */ nop
.L8000410C:
/* 004D0C 8000410C 0800105D */ j __osDispatchThread
/* 004D10 80004110 00000000 */ nop
glabel __osEnqueueThread
/* 004D14 80004114 8C980000 */ lw $t8, ($a0)
/* 004D18 80004118 8CAF0004 */ lw $t7, 4($a1)
/* 004D1C 8000411C 0080C825 */ move $t9, $a0
/* 004D20 80004120 8F0E0004 */ lw $t6, 4($t8)
/* 004D24 80004124 01CF082A */ slt $at, $t6, $t7
/* 004D28 80004128 14200007 */ bnez $at, .L80004148
/* 004D2C 8000412C 00000000 */ nop
.L80004130:
/* 004D30 80004130 0300C825 */ move $t9, $t8
/* 004D34 80004134 8F180000 */ lw $t8, ($t8)
/* 004D38 80004138 8F0E0004 */ lw $t6, 4($t8)
/* 004D3C 8000413C 01CF082A */ slt $at, $t6, $t7
/* 004D40 80004140 1020FFFB */ beqz $at, .L80004130
/* 004D44 80004144 00000000 */ nop
.L80004148:
/* 004D48 80004148 8F380000 */ lw $t8, ($t9)
/* 004D4C 8000414C ACB80000 */ sw $t8, ($a1)
/* 004D50 80004150 AF250000 */ sw $a1, ($t9)
/* 004D54 80004154 03E00008 */ jr $ra
/* 004D58 80004158 ACA40008 */ sw $a0, 8($a1)
glabel __osPopThread
/* 004D5C 8000415C 8C820000 */ lw $v0, ($a0)
/* 004D60 80004160 8C590000 */ lw $t9, ($v0)
/* 004D64 80004164 03E00008 */ jr $ra
/* 004D68 80004168 AC990000 */ sw $t9, ($a0)
glabel __osNop
/* 004D6C 8000416C 03E00008 */ jr $ra
/* 004D70 80004170 00000000 */ nop
glabel __osDispatchThread
/* 004D74 80004174 3C048001 */ lui $a0, %hi(__osRunQueue) # $a0, 0x8001
/* 004D78 80004178 0C001057 */ jal __osPopThread
/* 004D7C 8000417C 2484AD48 */ addiu $a0, %lo(__osRunQueue) # addiu $a0, $a0, -0x52b8
/* 004D80 80004180 3C018001 */ lui $at, %hi(__osRunningThread) # $at, 0x8001
/* 004D84 80004184 AC22AD50 */ sw $v0, %lo(__osRunningThread)($at)
/* 004D88 80004188 24080004 */ li $t0, 4
/* 004D8C 8000418C A4480010 */ sh $t0, 0x10($v0)
/* 004D90 80004190 0040D025 */ move $k0, $v0
/* 004D94 80004194 3C088001 */ lui $t0, %hi(__OSGlobalIntMask) # $t0, 0x8001
/* 004D98 80004198 8F5B0118 */ lw $k1, 0x118($k0)
/* 004D9C 8000419C 2508AD00 */ addiu $t0, %lo(__OSGlobalIntMask) # addiu $t0, $t0, -0x5300
/* 004DA0 800041A0 8D080000 */ lw $t0, ($t0)
/* 004DA4 800041A4 3C01FFFF */ lui $at, (0xFFFF00FF >> 16) # lui $at, 0xffff
/* 004DA8 800041A8 3369FF00 */ andi $t1, $k1, 0xff00
/* 004DAC 800041AC 342100FF */ ori $at, (0xFFFF00FF & 0xFFFF) # ori $at, $at, 0xff
/* 004DB0 800041B0 3108FF00 */ andi $t0, $t0, 0xff00
/* 004DB4 800041B4 01284824 */ and $t1, $t1, $t0
/* 004DB8 800041B8 0361D824 */ and $k1, $k1, $at
/* 004DBC 800041BC 0369D825 */ or $k1, $k1, $t1
/* 004DC0 800041C0 409B6000 */ mtc0 $k1, $12
/* 004DC4 800041C4 DF5B0108 */ ld $k1, 0x108($k0)
/* 004DC8 800041C8 DF410020 */ ld $at, 0x20($k0)
/* 004DCC 800041CC DF420028 */ ld $v0, 0x28($k0)
/* 004DD0 800041D0 03600013 */ mtlo $k1
/* 004DD4 800041D4 DF5B0110 */ ld $k1, 0x110($k0)
/* 004DD8 800041D8 DF430030 */ ld $v1, 0x30($k0)
/* 004DDC 800041DC DF440038 */ ld $a0, 0x38($k0)
/* 004DE0 800041E0 DF450040 */ ld $a1, 0x40($k0)
/* 004DE4 800041E4 DF460048 */ ld $a2, 0x48($k0)
/* 004DE8 800041E8 DF470050 */ ld $a3, 0x50($k0)
/* 004DEC 800041EC DF480058 */ ld $t0, 0x58($k0)
/* 004DF0 800041F0 DF490060 */ ld $t1, 0x60($k0)
/* 004DF4 800041F4 DF4A0068 */ ld $t2, 0x68($k0)
/* 004DF8 800041F8 DF4B0070 */ ld $t3, 0x70($k0)
/* 004DFC 800041FC DF4C0078 */ ld $t4, 0x78($k0)
/* 004E00 80004200 DF4D0080 */ ld $t5, 0x80($k0)
/* 004E04 80004204 DF4E0088 */ ld $t6, 0x88($k0)
/* 004E08 80004208 DF4F0090 */ ld $t7, 0x90($k0)
/* 004E0C 8000420C DF500098 */ ld $s0, 0x98($k0)
/* 004E10 80004210 DF5100A0 */ ld $s1, 0xa0($k0)
/* 004E14 80004214 DF5200A8 */ ld $s2, 0xa8($k0)
/* 004E18 80004218 DF5300B0 */ ld $s3, 0xb0($k0)
/* 004E1C 8000421C DF5400B8 */ ld $s4, 0xb8($k0)
/* 004E20 80004220 DF5500C0 */ ld $s5, 0xc0($k0)
/* 004E24 80004224 DF5600C8 */ ld $s6, 0xc8($k0)
/* 004E28 80004228 DF5700D0 */ ld $s7, 0xd0($k0)
/* 004E2C 8000422C DF5800D8 */ ld $t8, 0xd8($k0)
/* 004E30 80004230 DF5900E0 */ ld $t9, 0xe0($k0)
/* 004E34 80004234 DF5C00E8 */ ld $gp, 0xe8($k0)
/* 004E38 80004238 03600011 */ mthi $k1
/* 004E3C 8000423C DF5D00F0 */ ld $sp, 0xf0($k0)
/* 004E40 80004240 DF5E00F8 */ ld $fp, 0xf8($k0)
/* 004E44 80004244 DF5F0100 */ ld $ra, 0x100($k0)
/* 004E48 80004248 8F5B011C */ lw $k1, 0x11c($k0)
/* 004E4C 8000424C 409B7000 */ mtc0 $k1, $14
/* 004E50 80004250 8F5B0018 */ lw $k1, 0x18($k0)
/* 004E54 80004254 13600013 */ beqz $k1, .L800042A4
/* 004E58 80004258 00000000 */ nop
/* 004E5C 8000425C 8F5B012C */ lw $k1, 0x12c($k0)
/* 004E60 80004260 44DBF800 */ ctc1 $k1, $31
/* 004E64 80004264 D7400130 */ ldc1 $f0, 0x130($k0)
/* 004E68 80004268 D7420138 */ ldc1 $f2, 0x138($k0)
/* 004E6C 8000426C D7440140 */ ldc1 $f4, 0x140($k0)
/* 004E70 80004270 D7460148 */ ldc1 $f6, 0x148($k0)
/* 004E74 80004274 D7480150 */ ldc1 $f8, 0x150($k0)
/* 004E78 80004278 D74A0158 */ ldc1 $f10, 0x158($k0)
/* 004E7C 8000427C D74C0160 */ ldc1 $f12, 0x160($k0)
/* 004E80 80004280 D74E0168 */ ldc1 $f14, 0x168($k0)
/* 004E84 80004284 D7500170 */ ldc1 $f16, 0x170($k0)
/* 004E88 80004288 D7520178 */ ldc1 $f18, 0x178($k0)
/* 004E8C 8000428C D7540180 */ ldc1 $f20, 0x180($k0)
/* 004E90 80004290 D7560188 */ ldc1 $f22, 0x188($k0)
/* 004E94 80004294 D7580190 */ ldc1 $f24, 0x190($k0)
/* 004E98 80004298 D75A0198 */ ldc1 $f26, 0x198($k0)
/* 004E9C 8000429C D75C01A0 */ ldc1 $f28, 0x1a0($k0)
/* 004EA0 800042A0 D75E01A8 */ ldc1 $f30, 0x1a8($k0)
.L800042A4:
/* 004EA4 800042A4 8F5B0128 */ lw $k1, 0x128($k0)
/* 004EA8 800042A8 3C1A8001 */ lui $k0, %hi(__OSGlobalIntMask) # $k0, 0x8001
/* 004EAC 800042AC 275AAD00 */ addiu $k0, %lo(__OSGlobalIntMask) # addiu $k0, $k0, -0x5300
/* 004EB0 800042B0 8F5A0000 */ lw $k0, ($k0)
/* 004EB4 800042B4 001AD402 */ srl $k0, $k0, 0x10
/* 004EB8 800042B8 037AD824 */ and $k1, $k1, $k0
/* 004EBC 800042BC 001BD840 */ sll $k1, $k1, 1
/* 004EC0 800042C0 3C1A8001 */ lui $k0, %hi(__osRcpImTable) # $k0, 0x8001
/* 004EC4 800042C4 275A2160 */ addiu $k0, %lo(__osRcpImTable) # addiu $k0, $k0, 0x2160
/* 004EC8 800042C8 037AD821 */ addu $k1, $k1, $k0
/* 004ECC 800042CC 977B0000 */ lhu $k1, ($k1)
/* 004ED0 800042D0 3C1AA430 */ lui $k0, %hi(D_A430000C) # $k0, 0xa430
/* 004ED4 800042D4 275A000C */ addiu $k0, %lo(D_A430000C) # addiu $k0, $k0, 0xc
/* 004ED8 800042D8 AF5B0000 */ sw $k1, ($k0)
/* 004EDC 800042DC 00000000 */ nop
/* 004EE0 800042E0 00000000 */ nop
/* 004EE4 800042E4 00000000 */ nop
/* 004EE8 800042E8 00000000 */ nop
/* 004EEC 800042EC 42000018 */ eret
glabel __osCleanupThread
/* 004EF0 800042F0 0C0010D0 */ jal osDestroyThread
/* 004EF4 800042F4 00002025 */ move $a0, $zero

1423
asm/game.s Normal file

File diff suppressed because it is too large Load diff

1381
asm/graph.s Normal file

File diff suppressed because it is too large Load diff

218
asm/libm.s Normal file
View file

@ -0,0 +1,218 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel __ull_rshift
/* 004310 80003710 AFA40000 */ sw $a0, ($sp)
/* 004314 80003714 AFA50004 */ sw $a1, 4($sp)
/* 004318 80003718 AFA60008 */ sw $a2, 8($sp)
/* 00431C 8000371C AFA7000C */ sw $a3, 0xc($sp)
/* 004320 80003720 DFAF0008 */ ld $t7, 8($sp)
/* 004324 80003724 DFAE0000 */ ld $t6, ($sp)
/* 004328 80003728 01EE1016 */ dsrlv $v0, $t6, $t7
/* 00432C 8000372C 0002183C */ dsll32 $v1, $v0, 0
/* 004330 80003730 0003183F */ dsra32 $v1, $v1, 0
/* 004334 80003734 03E00008 */ jr $ra
/* 004338 80003738 0002103F */ dsra32 $v0, $v0, 0
glabel __ull_rem
/* 00433C 8000373C AFA40000 */ sw $a0, ($sp)
/* 004340 80003740 AFA50004 */ sw $a1, 4($sp)
/* 004344 80003744 AFA60008 */ sw $a2, 8($sp)
/* 004348 80003748 AFA7000C */ sw $a3, 0xc($sp)
/* 00434C 8000374C DFAF0008 */ ld $t7, 8($sp)
/* 004350 80003750 DFAE0000 */ ld $t6, ($sp)
/* 004354 80003754 01CF001F */ ddivu $zero, $t6, $t7
/* 004358 80003758 15E00002 */ bnez $t7, .L80003764
/* 00435C 8000375C 00000000 */ nop
/* 004360 80003760 0007000D */ break 7
.L80003764:
/* 004364 80003764 00001010 */ mfhi $v0
/* 004368 80003768 0002183C */ dsll32 $v1, $v0, 0
/* 00436C 8000376C 0003183F */ dsra32 $v1, $v1, 0
/* 004370 80003770 03E00008 */ jr $ra
/* 004374 80003774 0002103F */ dsra32 $v0, $v0, 0
glabel __ull_div
/* 004378 80003778 AFA40000 */ sw $a0, ($sp)
/* 00437C 8000377C AFA50004 */ sw $a1, 4($sp)
/* 004380 80003780 AFA60008 */ sw $a2, 8($sp)
/* 004384 80003784 AFA7000C */ sw $a3, 0xc($sp)
/* 004388 80003788 DFAF0008 */ ld $t7, 8($sp)
/* 00438C 8000378C DFAE0000 */ ld $t6, ($sp)
/* 004390 80003790 01CF001F */ ddivu $zero, $t6, $t7
/* 004394 80003794 15E00002 */ bnez $t7, .L800037A0
/* 004398 80003798 00000000 */ nop
/* 00439C 8000379C 0007000D */ break 7
.L800037A0:
/* 0043A0 800037A0 00001012 */ mflo $v0
/* 0043A4 800037A4 0002183C */ dsll32 $v1, $v0, 0
/* 0043A8 800037A8 0003183F */ dsra32 $v1, $v1, 0
/* 0043AC 800037AC 03E00008 */ jr $ra
/* 0043B0 800037B0 0002103F */ dsra32 $v0, $v0, 0
glabel __ll_lshift
/* 0043B4 800037B4 AFA40000 */ sw $a0, ($sp)
/* 0043B8 800037B8 AFA50004 */ sw $a1, 4($sp)
/* 0043BC 800037BC AFA60008 */ sw $a2, 8($sp)
/* 0043C0 800037C0 AFA7000C */ sw $a3, 0xc($sp)
/* 0043C4 800037C4 DFAF0008 */ ld $t7, 8($sp)
/* 0043C8 800037C8 DFAE0000 */ ld $t6, ($sp)
/* 0043CC 800037CC 01EE1014 */ dsllv $v0, $t6, $t7
/* 0043D0 800037D0 0002183C */ dsll32 $v1, $v0, 0
/* 0043D4 800037D4 0003183F */ dsra32 $v1, $v1, 0
/* 0043D8 800037D8 03E00008 */ jr $ra
/* 0043DC 800037DC 0002103F */ dsra32 $v0, $v0, 0
glabel __ll_rem
/* 0043E0 800037E0 AFA40000 */ sw $a0, ($sp)
/* 0043E4 800037E4 AFA50004 */ sw $a1, 4($sp)
/* 0043E8 800037E8 AFA60008 */ sw $a2, 8($sp)
/* 0043EC 800037EC AFA7000C */ sw $a3, 0xc($sp)
/* 0043F0 800037F0 DFAF0008 */ ld $t7, 8($sp)
/* 0043F4 800037F4 DFAE0000 */ ld $t6, ($sp)
/* 0043F8 800037F8 01CF001F */ ddivu $zero, $t6, $t7
/* 0043FC 800037FC 15E00002 */ bnez $t7, .L80003808
/* 004400 80003800 00000000 */ nop
/* 004404 80003804 0007000D */ break 7
.L80003808:
/* 004408 80003808 00001010 */ mfhi $v0
/* 00440C 8000380C 0002183C */ dsll32 $v1, $v0, 0
/* 004410 80003810 0003183F */ dsra32 $v1, $v1, 0
/* 004414 80003814 03E00008 */ jr $ra
/* 004418 80003818 0002103F */ dsra32 $v0, $v0, 0
glabel __ll_div
/* 00441C 8000381C AFA40000 */ sw $a0, ($sp)
/* 004420 80003820 AFA50004 */ sw $a1, 4($sp)
/* 004424 80003824 AFA60008 */ sw $a2, 8($sp)
/* 004428 80003828 AFA7000C */ sw $a3, 0xc($sp)
/* 00442C 8000382C DFAF0008 */ ld $t7, 8($sp)
/* 004430 80003830 DFAE0000 */ ld $t6, ($sp)
/* 004434 80003834 01CF001E */ ddiv $zero, $t6, $t7
/* 004438 80003838 00000000 */ nop
/* 00443C 8000383C 15E00002 */ bnez $t7, .L80003848
/* 004440 80003840 00000000 */ nop
/* 004444 80003844 0007000D */ break 7
.L80003848:
/* 004448 80003848 6401FFFF */ daddiu $at, $zero, -1
/* 00444C 8000384C 15E10005 */ bne $t7, $at, .L80003864
/* 004450 80003850 64010001 */ daddiu $at, $zero, 1
/* 004454 80003854 00010FFC */ dsll32 $at, $at, 0x1f
/* 004458 80003858 15C10002 */ bne $t6, $at, .L80003864
/* 00445C 8000385C 00000000 */ nop
/* 004460 80003860 0006000D */ break 6
.L80003864:
/* 004464 80003864 00001012 */ mflo $v0
/* 004468 80003868 0002183C */ dsll32 $v1, $v0, 0
/* 00446C 8000386C 0003183F */ dsra32 $v1, $v1, 0
/* 004470 80003870 03E00008 */ jr $ra
/* 004474 80003874 0002103F */ dsra32 $v0, $v0, 0
glabel __ll_mul
/* 004478 80003878 AFA40000 */ sw $a0, ($sp)
/* 00447C 8000387C AFA50004 */ sw $a1, 4($sp)
/* 004480 80003880 AFA60008 */ sw $a2, 8($sp)
/* 004484 80003884 AFA7000C */ sw $a3, 0xc($sp)
/* 004488 80003888 DFAF0008 */ ld $t7, 8($sp)
/* 00448C 8000388C DFAE0000 */ ld $t6, ($sp)
/* 004490 80003890 01CF001D */ dmultu $t6, $t7
/* 004494 80003894 00001012 */ mflo $v0
/* 004498 80003898 0002183C */ dsll32 $v1, $v0, 0
/* 00449C 8000389C 0003183F */ dsra32 $v1, $v1, 0
/* 0044A0 800038A0 03E00008 */ jr $ra
/* 0044A4 800038A4 0002103F */ dsra32 $v0, $v0, 0
glabel __ull_divremi
/* 0044A8 800038A8 87AF0012 */ lh $t7, 0x12($sp)
/* 0044AC 800038AC AFA60008 */ sw $a2, 8($sp)
/* 0044B0 800038B0 AFA7000C */ sw $a3, 0xc($sp)
/* 0044B4 800038B4 DFAE0008 */ ld $t6, 8($sp)
/* 0044B8 800038B8 01E0C025 */ move $t8, $t7
/* 0044BC 800038BC 0300C825 */ move $t9, $t8
/* 0044C0 800038C0 01D9001F */ ddivu $zero, $t6, $t9
/* 0044C4 800038C4 17200002 */ bnez $t9, .L800038D0
/* 0044C8 800038C8 00000000 */ nop
/* 0044CC 800038CC 0007000D */ break 7
.L800038D0:
/* 0044D0 800038D0 00004012 */ mflo $t0
/* 0044D4 800038D4 FC880000 */ sd $t0, ($a0)
/* 0044D8 800038D8 87AA0012 */ lh $t2, 0x12($sp)
/* 0044DC 800038DC DFA90008 */ ld $t1, 8($sp)
/* 0044E0 800038E0 01405825 */ move $t3, $t2
/* 0044E4 800038E4 01606025 */ move $t4, $t3
/* 0044E8 800038E8 012C001F */ ddivu $zero, $t1, $t4
/* 0044EC 800038EC 15800002 */ bnez $t4, .L800038F8
/* 0044F0 800038F0 00000000 */ nop
/* 0044F4 800038F4 0007000D */ break 7
.L800038F8:
/* 0044F8 800038F8 00006810 */ mfhi $t5
/* 0044FC 800038FC FCAD0000 */ sd $t5, ($a1)
/* 004500 80003900 03E00008 */ jr $ra
/* 004504 80003904 00000000 */ nop
glabel __ll_mod
/* 004508 80003908 27BDFFF8 */ addiu $sp, $sp, -8
/* 00450C 8000390C AFA40008 */ sw $a0, 8($sp)
/* 004510 80003910 AFA5000C */ sw $a1, 0xc($sp)
/* 004514 80003914 AFA60010 */ sw $a2, 0x10($sp)
/* 004518 80003918 AFA70014 */ sw $a3, 0x14($sp)
/* 00451C 8000391C DFAF0010 */ ld $t7, 0x10($sp)
/* 004520 80003920 DFAE0008 */ ld $t6, 8($sp)
/* 004524 80003924 01CF001E */ ddiv $zero, $t6, $t7
/* 004528 80003928 00000000 */ nop
/* 00452C 8000392C 15E00002 */ bnez $t7, .L80003938
/* 004530 80003930 00000000 */ nop
/* 004534 80003934 0007000D */ break 7
.L80003938:
/* 004538 80003938 6401FFFF */ daddiu $at, $zero, -1
/* 00453C 8000393C 15E10005 */ bne $t7, $at, .L80003954
/* 004540 80003940 64010001 */ daddiu $at, $zero, 1
/* 004544 80003944 00010FFC */ dsll32 $at, $at, 0x1f
/* 004548 80003948 15C10002 */ bne $t6, $at, .L80003954
/* 00454C 8000394C 00000000 */ nop
/* 004550 80003950 0006000D */ break 6
.L80003954:
/* 004554 80003954 0000C010 */ mfhi $t8
/* 004558 80003958 FFB80000 */ sd $t8, ($sp)
/* 00455C 8000395C 07010003 */ bgez $t8, .L8000396C
/* 004560 80003960 00000000 */ nop
/* 004564 80003964 1DE00007 */ bgtz $t7, .L80003984
/* 004568 80003968 00000000 */ nop
.L8000396C:
/* 00456C 8000396C DFB90000 */ ld $t9, ($sp)
/* 004570 80003970 1B200008 */ blez $t9, .L80003994
/* 004574 80003974 00000000 */ nop
/* 004578 80003978 DFA80010 */ ld $t0, 0x10($sp)
/* 00457C 8000397C 05010005 */ bgez $t0, .L80003994
/* 004580 80003980 00000000 */ nop
.L80003984:
/* 004584 80003984 DFA90000 */ ld $t1, ($sp)
/* 004588 80003988 DFAA0010 */ ld $t2, 0x10($sp)
/* 00458C 8000398C 012A582D */ daddu $t3, $t1, $t2
/* 004590 80003990 FFAB0000 */ sd $t3, ($sp)
.L80003994:
/* 004594 80003994 8FA20000 */ lw $v0, ($sp)
/* 004598 80003998 8FA30004 */ lw $v1, 4($sp)
/* 00459C 8000399C 03E00008 */ jr $ra
/* 0045A0 800039A0 27BD0008 */ addiu $sp, $sp, 8
glabel __ll_rshift
/* 0045A4 800039A4 AFA40000 */ sw $a0, ($sp)
/* 0045A8 800039A8 AFA50004 */ sw $a1, 4($sp)
/* 0045AC 800039AC AFA60008 */ sw $a2, 8($sp)
/* 0045B0 800039B0 AFA7000C */ sw $a3, 0xc($sp)
/* 0045B4 800039B4 DFAF0008 */ ld $t7, 8($sp)
/* 0045B8 800039B8 DFAE0000 */ ld $t6, ($sp)
/* 0045BC 800039BC 01EE1017 */ dsrav $v0, $t6, $t7
/* 0045C0 800039C0 0002183C */ dsll32 $v1, $v0, 0
/* 0045C4 800039C4 0003183F */ dsra32 $v1, $v1, 0
/* 0045C8 800039C8 03E00008 */ jr $ra
/* 0045CC 800039CC 0002103F */ dsra32 $v0, $v0, 0

143
asm/mtxuty-cvt.s Normal file
View file

@ -0,0 +1,143 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800FC0C0
/* B73260 800FC0C0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B73264 800FC0C4 AFA40018 */ sw $a0, 0x18($sp)
/* B73268 800FC0C8 AFBF0014 */ sw $ra, 0x14($sp)
/* B7326C 800FC0CC AFA5001C */ sw $a1, 0x1c($sp)
/* B73270 800FC0D0 3C048015 */ lui $a0, %hi(D_8014A8B0) # $a0, 0x8015
/* B73274 800FC0D4 3C068015 */ lui $a2, %hi(D_8014A8B4) # $a2, 0x8015
/* B73278 800FC0D8 24C6A8B4 */ addiu $a2, %lo(D_8014A8B4) # addiu $a2, $a2, -0x574c
/* B7327C 800FC0DC 2484A8B0 */ addiu $a0, %lo(D_8014A8B0) # addiu $a0, $a0, -0x5750
/* B73280 800FC0E0 8FA50018 */ lw $a1, 0x18($sp)
/* B73284 800FC0E4 0C000B58 */ jal LogUtils_CheckNullPointer
/* B73288 800FC0E8 2407001F */ li $a3, 31
/* B7328C 800FC0EC 3C048015 */ lui $a0, %hi(D_8014A8C4) # $a0, 0x8015
/* B73290 800FC0F0 3C068015 */ lui $a2, %hi(D_8014A8C8) # $a2, 0x8015
/* B73294 800FC0F4 24C6A8C8 */ addiu $a2, %lo(D_8014A8C8) # addiu $a2, $a2, -0x5738
/* B73298 800FC0F8 2484A8C4 */ addiu $a0, %lo(D_8014A8C4) # addiu $a0, $a0, -0x573c
/* B7329C 800FC0FC 8FA5001C */ lw $a1, 0x1c($sp)
/* B732A0 800FC100 0C000B58 */ jal LogUtils_CheckNullPointer
/* B732A4 800FC104 24070020 */ li $a3, 32
/* B732A8 800FC108 3C014780 */ li $at, 0x47800000 # 0.000000
/* B732AC 800FC10C 44810000 */ mtc1 $at, $f0
/* B732B0 800FC110 00002825 */ move $a1, $zero
/* B732B4 800FC114 8FA4001C */ lw $a0, 0x1c($sp)
/* B732B8 800FC118 8FA30018 */ lw $v1, 0x18($sp)
/* B732BC 800FC11C 24060004 */ li $a2, 4
/* B732C0 800FC120 C4900000 */ lwc1 $f16, ($a0)
/* B732C4 800FC124 24A50001 */ addiu $a1, $a1, 1
/* B732C8 800FC128 46008482 */ mul.s $f18, $f16, $f0
/* B732CC 800FC12C 50A60027 */ beql $a1, $a2, .L800FC1CC
/* B732D0 800FC130 4600940D */ trunc.w.s $f16, $f18
/* B732D4 800FC134 4600940D */ trunc.w.s $f16, $f18
.L800FC138:
/* B732D8 800FC138 24840010 */ addiu $a0, $a0, 0x10
/* B732DC 800FC13C 24A50001 */ addiu $a1, $a1, 1
/* B732E0 800FC140 24630008 */ addiu $v1, $v1, 8
/* B732E4 800FC144 44028000 */ mfc1 $v0, $f16
/* B732E8 800FC148 00000000 */ nop
/* B732EC 800FC14C 00027C03 */ sra $t7, $v0, 0x10
/* B732F0 800FC150 A46FFFF8 */ sh $t7, -8($v1)
/* B732F4 800FC154 A4620018 */ sh $v0, 0x18($v1)
/* B732F8 800FC158 C490FFF4 */ lwc1 $f16, -0xc($a0)
/* B732FC 800FC15C 46008402 */ mul.s $f16, $f16, $f0
/* B73300 800FC160 4600840D */ trunc.w.s $f16, $f16
/* B73304 800FC164 44028000 */ mfc1 $v0, $f16
/* B73308 800FC168 00000000 */ nop
/* B7330C 800FC16C 0002CC03 */ sra $t9, $v0, 0x10
/* B73310 800FC170 A479FFFA */ sh $t9, -6($v1)
/* B73314 800FC174 A462001A */ sh $v0, 0x1a($v1)
/* B73318 800FC178 C490FFF8 */ lwc1 $f16, -8($a0)
/* B7331C 800FC17C 46008402 */ mul.s $f16, $f16, $f0
/* B73320 800FC180 4600840D */ trunc.w.s $f16, $f16
/* B73324 800FC184 44028000 */ mfc1 $v0, $f16
/* B73328 800FC188 00000000 */ nop
/* B7332C 800FC18C 00024C03 */ sra $t1, $v0, 0x10
/* B73330 800FC190 A469FFFC */ sh $t1, -4($v1)
/* B73334 800FC194 A462001C */ sh $v0, 0x1c($v1)
/* B73338 800FC198 C490FFFC */ lwc1 $f16, -4($a0)
/* B7333C 800FC19C 46008402 */ mul.s $f16, $f16, $f0
/* B73340 800FC1A0 4600840D */ trunc.w.s $f16, $f16
/* B73344 800FC1A4 44028000 */ mfc1 $v0, $f16
/* B73348 800FC1A8 00000000 */ nop
/* B7334C 800FC1AC 00025C03 */ sra $t3, $v0, 0x10
/* B73350 800FC1B0 A46BFFFE */ sh $t3, -2($v1)
/* B73354 800FC1B4 A462001E */ sh $v0, 0x1e($v1)
/* B73358 800FC1B8 C4900000 */ lwc1 $f16, ($a0)
/* B7335C 800FC1BC 46008482 */ mul.s $f18, $f16, $f0
/* B73360 800FC1C0 54A6FFDD */ bnel $a1, $a2, .L800FC138
/* B73364 800FC1C4 4600940D */ trunc.w.s $f16, $f18
/* B73368 800FC1C8 4600940D */ trunc.w.s $f16, $f18
.L800FC1CC:
/* B7336C 800FC1CC 24840010 */ addiu $a0, $a0, 0x10
/* B73370 800FC1D0 24630008 */ addiu $v1, $v1, 8
/* B73374 800FC1D4 44028000 */ mfc1 $v0, $f16
/* B73378 800FC1D8 00000000 */ nop
/* B7337C 800FC1DC 00027C03 */ sra $t7, $v0, 0x10
/* B73380 800FC1E0 A46FFFF8 */ sh $t7, -8($v1)
/* B73384 800FC1E4 A4620018 */ sh $v0, 0x18($v1)
/* B73388 800FC1E8 C490FFF4 */ lwc1 $f16, -0xc($a0)
/* B7338C 800FC1EC 46008402 */ mul.s $f16, $f16, $f0
/* B73390 800FC1F0 4600840D */ trunc.w.s $f16, $f16
/* B73394 800FC1F4 44028000 */ mfc1 $v0, $f16
/* B73398 800FC1F8 00000000 */ nop
/* B7339C 800FC1FC 0002CC03 */ sra $t9, $v0, 0x10
/* B733A0 800FC200 A479FFFA */ sh $t9, -6($v1)
/* B733A4 800FC204 A462001A */ sh $v0, 0x1a($v1)
/* B733A8 800FC208 C490FFF8 */ lwc1 $f16, -8($a0)
/* B733AC 800FC20C 46008402 */ mul.s $f16, $f16, $f0
/* B733B0 800FC210 4600840D */ trunc.w.s $f16, $f16
/* B733B4 800FC214 44028000 */ mfc1 $v0, $f16
/* B733B8 800FC218 00000000 */ nop
/* B733BC 800FC21C 00024C03 */ sra $t1, $v0, 0x10
/* B733C0 800FC220 A469FFFC */ sh $t1, -4($v1)
/* B733C4 800FC224 A462001C */ sh $v0, 0x1c($v1)
/* B733C8 800FC228 C490FFFC */ lwc1 $f16, -4($a0)
/* B733CC 800FC22C 46008402 */ mul.s $f16, $f16, $f0
/* B733D0 800FC230 4600840D */ trunc.w.s $f16, $f16
/* B733D4 800FC234 44028000 */ mfc1 $v0, $f16
/* B733D8 800FC238 00000000 */ nop
/* B733DC 800FC23C 00025C03 */ sra $t3, $v0, 0x10
/* B733E0 800FC240 A46BFFFE */ sh $t3, -2($v1)
/* B733E4 800FC244 A462001E */ sh $v0, 0x1e($v1)
/* B733E8 800FC248 8FBF0014 */ lw $ra, 0x14($sp)
/* B733EC 800FC24C 27BD0018 */ addiu $sp, $sp, 0x18
/* B733F0 800FC250 03E00008 */ jr $ra
/* B733F4 800FC254 00000000 */ nop
glabel func_800FC258
/* B733F8 800FC258 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B733FC 800FC25C AFA40018 */ sw $a0, 0x18($sp)
/* B73400 800FC260 AFBF0014 */ sw $ra, 0x14($sp)
/* B73404 800FC264 AFA5001C */ sw $a1, 0x1c($sp)
/* B73408 800FC268 3C048015 */ lui $a0, %hi(D_8014A8D8) # $a0, 0x8015
/* B7340C 800FC26C 3C068015 */ lui $a2, %hi(D_8014A8DC) # $a2, 0x8015
/* B73410 800FC270 24C6A8DC */ addiu $a2, %lo(D_8014A8DC) # addiu $a2, $a2, -0x5724
/* B73414 800FC274 2484A8D8 */ addiu $a0, %lo(D_8014A8D8) # addiu $a0, $a0, -0x5728
/* B73418 800FC278 8FA50018 */ lw $a1, 0x18($sp)
/* B7341C 800FC27C 0C000B58 */ jal LogUtils_CheckNullPointer
/* B73420 800FC280 24070037 */ li $a3, 55
/* B73424 800FC284 3C048015 */ lui $a0, %hi(D_8014A8EC) # $a0, 0x8015
/* B73428 800FC288 3C068015 */ lui $a2, %hi(D_8014A8F0) # $a2, 0x8015
/* B7342C 800FC28C 24C6A8F0 */ addiu $a2, %lo(D_8014A8F0) # addiu $a2, $a2, -0x5710
/* B73430 800FC290 2484A8EC */ addiu $a0, %lo(D_8014A8EC) # addiu $a0, $a0, -0x5714
/* B73434 800FC294 8FA5001C */ lw $a1, 0x1c($sp)
/* B73438 800FC298 0C000B58 */ jal LogUtils_CheckNullPointer
/* B7343C 800FC29C 24070038 */ li $a3, 56
/* B73440 800FC2A0 8FA40018 */ lw $a0, 0x18($sp)
/* B73444 800FC2A4 0C040BE8 */ jal func_80102FA0
/* B73448 800FC2A8 8FA5001C */ lw $a1, 0x1c($sp)
/* B7344C 800FC2AC 8FBF0014 */ lw $ra, 0x14($sp)
/* B73450 800FC2B0 27BD0018 */ addiu $sp, $sp, 0x18
/* B73454 800FC2B4 03E00008 */ jr $ra
/* B73458 800FC2B8 00000000 */ nop

View file

@ -0,0 +1,99 @@
glabel Yaz0_DecompressImpl
/* 0028B0 80001CB0 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 0028B4 80001CB4 AFBF002C */ sw $ra, 0x2c($sp)
/* 0028B8 80001CB8 AFB40028 */ sw $s4, 0x28($sp)
/* 0028BC 80001CBC AFB30024 */ sw $s3, 0x24($sp)
/* 0028C0 80001CC0 AFB20020 */ sw $s2, 0x20($sp)
/* 0028C4 80001CC4 AFB1001C */ sw $s1, 0x1c($sp)
/* 0028C8 80001CC8 AFB00018 */ sw $s0, 0x18($sp)
/* 0028CC 80001CCC 8C8E0004 */ lw $t6, 4($a0)
/* 0028D0 80001CD0 3C128001 */ lui $s2, %hi(sYaz0MaxPtr) # $s2, 0x8001
/* 0028D4 80001CD4 3C138001 */ lui $s3, %hi(sYaz0CurSize) # $s3, 0x8001
/* 0028D8 80001CD8 00A08025 */ move $s0, $a1
/* 0028DC 80001CDC 00003025 */ move $a2, $zero
/* 0028E0 80001CE0 24910010 */ addiu $s1, $a0, 0x10
/* 0028E4 80001CE4 267344E8 */ addiu $s3, %lo(sYaz0CurSize) # addiu $s3, $s3, 0x44e8
/* 0028E8 80001CE8 265244EC */ addiu $s2, %lo(sYaz0MaxPtr) # addiu $s2, $s2, 0x44ec
/* 0028EC 80001CEC 8FA70030 */ lw $a3, 0x30($sp)
/* 0028F0 80001CF0 01C5A021 */ addu $s4, $t6, $a1
.L80001CF4:
/* 0028F4 80001CF4 54C0000F */ bnezl $a2, .L80001D34
/* 0028F8 80001CF8 30F90080 */ andi $t9, $a3, 0x80
/* 0028FC 80001CFC 8E4F0000 */ lw $t7, ($s2)
/* 002900 80001D00 01F1082B */ sltu $at, $t7, $s1
/* 002904 80001D04 50200008 */ beql $at, $zero, .L80001D28
/* 002908 80001D08 92270000 */ lbu $a3, ($s1)
/* 00290C 80001D0C 8E780000 */ lw $t8, ($s3)
/* 002910 80001D10 53000005 */ beql $t8, $zero, .L80001D28
/* 002914 80001D14 92270000 */ lbu $a3, ($s1)
/* 002918 80001D18 0C0006F2 */ jal Yaz0_NextDMA
/* 00291C 80001D1C 02202025 */ move $a0, $s1
/* 002920 80001D20 00408825 */ move $s1, $v0
/* 002924 80001D24 92270000 */ lbu $a3, ($s1)
.L80001D28:
/* 002928 80001D28 26310001 */ addiu $s1, $s1, 1
/* 00292C 80001D2C 24060008 */ li $a2, 8
/* 002930 80001D30 30F90080 */ andi $t9, $a3, 0x80
.L80001D34:
/* 002934 80001D34 13200006 */ beqz $t9, .L80001D50
/* 002938 80001D38 00073840 */ sll $a3, $a3, 1
/* 00293C 80001D3C 92280000 */ lbu $t0, ($s1)
/* 002940 80001D40 26100001 */ addiu $s0, $s0, 1
/* 002944 80001D44 26310001 */ addiu $s1, $s1, 1
/* 002948 80001D48 10000027 */ b .L80001DE8
/* 00294C 80001D4C A208FFFF */ sb $t0, -1($s0)
.L80001D50:
/* 002950 80001D50 92230000 */ lbu $v1, ($s1)
/* 002954 80001D54 92290001 */ lbu $t1, 1($s1)
/* 002958 80001D58 26310002 */ addiu $s1, $s1, 2
/* 00295C 80001D5C 306A000F */ andi $t2, $v1, 0xf
/* 002960 80001D60 000A5A00 */ sll $t3, $t2, 8
/* 002964 80001D64 00032903 */ sra $a1, $v1, 4
/* 002968 80001D68 012B2025 */ or $a0, $t1, $t3
/* 00296C 80001D6C 14A00005 */ bnez $a1, .L80001D84
/* 002970 80001D70 02041023 */ subu $v0, $s0, $a0
/* 002974 80001D74 92230000 */ lbu $v1, ($s1)
/* 002978 80001D78 26310001 */ addiu $s1, $s1, 1
/* 00297C 80001D7C 10000002 */ b .L80001D88
/* 002980 80001D80 24630012 */ addiu $v1, $v1, 0x12
.L80001D84:
/* 002984 80001D84 24A30002 */ addiu $v1, $a1, 2
.L80001D88:
/* 002988 80001D88 30650003 */ andi $a1, $v1, 3
/* 00298C 80001D8C 00052823 */ negu $a1, $a1
/* 002990 80001D90 10A00009 */ beqz $a1, .L80001DB8
/* 002994 80001D94 00A32021 */ addu $a0, $a1, $v1
.L80001D98:
/* 002998 80001D98 904CFFFF */ lbu $t4, -1($v0)
/* 00299C 80001D9C 2463FFFF */ addiu $v1, $v1, -1
/* 0029A0 80001DA0 26100001 */ addiu $s0, $s0, 1
/* 0029A4 80001DA4 24420001 */ addiu $v0, $v0, 1
/* 0029A8 80001DA8 1483FFFB */ bne $a0, $v1, .L80001D98
/* 0029AC 80001DAC A20CFFFF */ sb $t4, -1($s0)
/* 0029B0 80001DB0 1060000D */ beqz $v1, .L80001DE8
/* 0029B4 80001DB4 00000000 */ nop
.L80001DB8:
/* 0029B8 80001DB8 904DFFFF */ lbu $t5, -1($v0)
/* 0029BC 80001DBC 2463FFFC */ addiu $v1, $v1, -4
/* 0029C0 80001DC0 26100004 */ addiu $s0, $s0, 4
/* 0029C4 80001DC4 A20DFFFC */ sb $t5, -4($s0)
/* 0029C8 80001DC8 904E0000 */ lbu $t6, ($v0)
/* 0029CC 80001DCC 24420004 */ addiu $v0, $v0, 4
/* 0029D0 80001DD0 A20EFFFD */ sb $t6, -3($s0)
/* 0029D4 80001DD4 904FFFFD */ lbu $t7, -3($v0)
/* 0029D8 80001DD8 A20FFFFE */ sb $t7, -2($s0)
/* 0029DC 80001DDC 9058FFFE */ lbu $t8, -2($v0)
/* 0029E0 80001DE0 1460FFF5 */ bnez $v1, .L80001DB8
/* 0029E4 80001DE4 A218FFFF */ sb $t8, -1($s0)
.L80001DE8:
/* 0029E8 80001DE8 1614FFC2 */ bne $s0, $s4, .L80001CF4
/* 0029EC 80001DEC 24C6FFFF */ addiu $a2, $a2, -1
/* 0029F0 80001DF0 8FBF002C */ lw $ra, 0x2c($sp)
/* 0029F4 80001DF4 AFA70030 */ sw $a3, 0x30($sp)
/* 0029F8 80001DF8 8FB00018 */ lw $s0, 0x18($sp)
/* 0029FC 80001DFC 8FB1001C */ lw $s1, 0x1c($sp)
/* 002A00 80001E00 8FB20020 */ lw $s2, 0x20($sp)
/* 002A04 80001E04 8FB30024 */ lw $s3, 0x24($sp)
/* 002A08 80001E08 8FB40028 */ lw $s4, 0x28($sp)
/* 002A0C 80001E0C 03E00008 */ jr $ra
/* 002A10 80001E10 27BD0040 */ addiu $sp, $sp, 0x40

View file

@ -0,0 +1,175 @@
.rdata
glabel D_8014B0A0
.asciz "ARENA INFO (0x%08x)\n"
.balign 4
glabel D_8014B0B8
.asciz "Arena is uninitalized\n"
.balign 4
glabel D_8014B0D0
.asciz "Memory Block Region status size\n"
.balign 4
glabel D_8014B0F4
.asciz "%08x-%08x%c %s %08x"
.balign 4
glabel D_8014B108
.asciz "F"
.balign 4
glabel D_8014B10C
.asciz "A"
.balign 4
glabel D_8014B110
.asciz "\n"
.balign 4
glabel D_8014B114
.asciz "%08x Block Invalid\n"
.balign 4
glabel D_8014B128
.asciz "Total Alloc Block Size %08x\n"
.balign 4
glabel D_8014B148
.asciz "Total Free Block Size %08x\n"
.balign 4
glabel D_8014B168
.asciz "Largest Free Block Size %08x\n"
.balign 4
.text
glabel ArenaImpl_FaultClient
/* B7624C 800FF0AC 27BDFFC0 */ addiu $sp, $sp, -0x40
/* B76250 800FF0B0 AFB10020 */ sw $s1, 0x20($sp)
/* B76254 800FF0B4 00808825 */ move $s1, $a0
/* B76258 800FF0B8 AFBF003C */ sw $ra, 0x3c($sp)
/* B7625C 800FF0BC 3C048015 */ lui $a0, %hi(D_8014B0A0) # $a0, 0x8015
/* B76260 800FF0C0 AFB70038 */ sw $s7, 0x38($sp)
/* B76264 800FF0C4 AFB60034 */ sw $s6, 0x34($sp)
/* B76268 800FF0C8 AFB50030 */ sw $s5, 0x30($sp)
/* B7626C 800FF0CC AFB4002C */ sw $s4, 0x2c($sp)
/* B76270 800FF0D0 AFB30028 */ sw $s3, 0x28($sp)
/* B76274 800FF0D4 AFB20024 */ sw $s2, 0x24($sp)
/* B76278 800FF0D8 AFB0001C */ sw $s0, 0x1c($sp)
/* B7627C 800FF0DC 2484B0A0 */ addiu $a0, %lo(D_8014B0A0) # addiu $a0, $a0, -0x4f60
/* B76280 800FF0E0 0C035C12 */ jal FaultDrawer_Printf
/* B76284 800FF0E4 02202825 */ move $a1, $s1
/* B76288 800FF0E8 0C03F7D3 */ jal __osMallocIsInitalized
/* B7628C 800FF0EC 02202025 */ move $a0, $s1
/* B76290 800FF0F0 14400007 */ bnez $v0, .L800FF110
/* B76294 800FF0F4 00009825 */ move $s3, $zero
/* B76298 800FF0F8 3C048015 */ lui $a0, %hi(D_8014B0B8) # $a0, 0x8015
/* B7629C 800FF0FC 2484B0B8 */ addiu $a0, %lo(D_8014B0B8) # addiu $a0, $a0, -0x4f48
/* B762A0 800FF100 0C035C12 */ jal FaultDrawer_Printf
/* B762A4 800FF104 02202825 */ move $a1, $s1
/* B762A8 800FF108 10000053 */ b .L800FF258
/* B762AC 800FF10C 8FBF003C */ lw $ra, 0x3c($sp)
.L800FF110:
/* B762B0 800FF110 3C048015 */ lui $a0, %hi(D_8014B0D0) # $a0, 0x8015
/* B762B4 800FF114 0000A025 */ move $s4, $zero
/* B762B8 800FF118 00009025 */ move $s2, $zero
/* B762BC 800FF11C 0C035C12 */ jal FaultDrawer_Printf
/* B762C0 800FF120 2484B0D0 */ addiu $a0, %lo(D_8014B0D0) # addiu $a0, $a0, -0x4f30
/* B762C4 800FF124 8E300000 */ lw $s0, ($s1)
/* B762C8 800FF128 3C178015 */ lui $s7, %hi(D_8014B10C) # $s7, 0x8015
/* B762CC 800FF12C 26F7B10C */ addiu $s7, %lo(D_8014B10C) # addiu $s7, $s7, -0x4ef4
/* B762D0 800FF130 1200003A */ beqz $s0, .L800FF21C
/* B762D4 800FF134 3C168015 */ lui $s6, %hi(D_8014B108) # $s6, 0x8015
/* B762D8 800FF138 26D6B108 */ addiu $s6, %lo(D_8014B108) # addiu $s6, $s6, -0x4ef8
/* B762DC 800FF13C 24157373 */ li $s5, 29555
.L800FF140:
/* B762E0 800FF140 1200002E */ beqz $s0, .L800FF1FC
/* B762E4 800FF144 3404F801 */ li $a0, 63489
/* B762E8 800FF148 860E0000 */ lh $t6, ($s0)
/* B762EC 800FF14C 02002825 */ move $a1, $s0
/* B762F0 800FF150 16AE002A */ bne $s5, $t6, .L800FF1FC
/* B762F4 800FF154 00000000 */ nop
/* B762F8 800FF158 8E110008 */ lw $s1, 8($s0)
/* B762FC 800FF15C 3C048015 */ lui $a0, %hi(D_8014B0F4) # $a0, 0x8015
/* B76300 800FF160 02E01825 */ move $v1, $s7
/* B76304 800FF164 56200004 */ bnezl $s1, .L800FF178
/* B76308 800FF168 8E2F000C */ lw $t7, 0xc($s1)
/* B7630C 800FF16C 10000008 */ b .L800FF190
/* B76310 800FF170 24070024 */ li $a3, 36
/* B76314 800FF174 8E2F000C */ lw $t7, 0xc($s1)
.L800FF178:
/* B76318 800FF178 24020020 */ li $v0, 32
/* B7631C 800FF17C 120F0003 */ beq $s0, $t7, .L800FF18C
/* B76320 800FF180 00000000 */ nop
/* B76324 800FF184 10000001 */ b .L800FF18C
/* B76328 800FF188 24020021 */ li $v0, 33
.L800FF18C:
/* B7632C 800FF18C 00403825 */ move $a3, $v0
.L800FF190:
/* B76330 800FF190 86180002 */ lh $t8, 2($s0)
/* B76334 800FF194 13000003 */ beqz $t8, .L800FF1A4
/* B76338 800FF198 00000000 */ nop
/* B7633C 800FF19C 10000001 */ b .L800FF1A4
/* B76340 800FF1A0 02C01825 */ move $v1, $s6
.L800FF1A4:
/* B76344 800FF1A4 8E020004 */ lw $v0, 4($s0)
/* B76348 800FF1A8 AFA30010 */ sw $v1, 0x10($sp)
/* B7634C 800FF1AC 2484B0F4 */ addiu $a0, %lo(D_8014B0F4) # addiu $a0, $a0, -0x4f0c
/* B76350 800FF1B0 02023021 */ addu $a2, $s0, $v0
/* B76354 800FF1B4 24C60030 */ addiu $a2, $a2, 0x30
/* B76358 800FF1B8 0C035C12 */ jal FaultDrawer_Printf
/* B7635C 800FF1BC AFA20014 */ sw $v0, 0x14($sp)
/* B76360 800FF1C0 3C048015 */ lui $a0, %hi(D_8014B110) # $a0, 0x8015
/* B76364 800FF1C4 0C035C12 */ jal FaultDrawer_Printf
/* B76368 800FF1C8 2484B110 */ addiu $a0, %lo(D_8014B110) # addiu $a0, $a0, -0x4ef0
/* B7636C 800FF1CC 86190002 */ lh $t9, 2($s0)
/* B76370 800FF1D0 53200008 */ beql $t9, $zero, .L800FF1F4
/* B76374 800FF1D4 8E080004 */ lw $t0, 4($s0)
/* B76378 800FF1D8 8E020004 */ lw $v0, 4($s0)
/* B7637C 800FF1DC 0262082B */ sltu $at, $s3, $v0
/* B76380 800FF1E0 1020000C */ beqz $at, .L800FF214
/* B76384 800FF1E4 0282A021 */ addu $s4, $s4, $v0
/* B76388 800FF1E8 1000000A */ b .L800FF214
/* B7638C 800FF1EC 00409825 */ move $s3, $v0
/* B76390 800FF1F0 8E080004 */ lw $t0, 4($s0)
.L800FF1F4:
/* B76394 800FF1F4 10000007 */ b .L800FF214
/* B76398 800FF1F8 02489021 */ addu $s2, $s2, $t0
.L800FF1FC:
/* B7639C 800FF1FC 0C035AFB */ jal FaultDrawer_SetFontColor
/* B763A0 800FF200 00008825 */ move $s1, $zero
/* B763A4 800FF204 3C048015 */ lui $a0, %hi(D_8014B114) # $a0, 0x8015
/* B763A8 800FF208 2484B114 */ addiu $a0, %lo(D_8014B114) # addiu $a0, $a0, -0x4eec
/* B763AC 800FF20C 0C035C12 */ jal FaultDrawer_Printf
/* B763B0 800FF210 02002825 */ move $a1, $s0
.L800FF214:
/* B763B4 800FF214 1620FFCA */ bnez $s1, .L800FF140
/* B763B8 800FF218 02208025 */ move $s0, $s1
.L800FF21C:
/* B763BC 800FF21C 0C035AFB */ jal FaultDrawer_SetFontColor
/* B763C0 800FF220 240407F1 */ li $a0, 2033
/* B763C4 800FF224 3C048015 */ lui $a0, %hi(D_8014B128) # $a0, 0x8015
/* B763C8 800FF228 2484B128 */ addiu $a0, %lo(D_8014B128) # addiu $a0, $a0, -0x4ed8
/* B763CC 800FF22C 0C035C12 */ jal FaultDrawer_Printf
/* B763D0 800FF230 02402825 */ move $a1, $s2
/* B763D4 800FF234 3C048015 */ lui $a0, %hi(D_8014B148) # $a0, 0x8015
/* B763D8 800FF238 2484B148 */ addiu $a0, %lo(D_8014B148) # addiu $a0, $a0, -0x4eb8
/* B763DC 800FF23C 0C035C12 */ jal FaultDrawer_Printf
/* B763E0 800FF240 02802825 */ move $a1, $s4
/* B763E4 800FF244 3C048015 */ lui $a0, %hi(D_8014B168) # $a0, 0x8015
/* B763E8 800FF248 2484B168 */ addiu $a0, %lo(D_8014B168) # addiu $a0, $a0, -0x4e98
/* B763EC 800FF24C 0C035C12 */ jal FaultDrawer_Printf
/* B763F0 800FF250 02602825 */ move $a1, $s3
/* B763F4 800FF254 8FBF003C */ lw $ra, 0x3c($sp)
.L800FF258:
/* B763F8 800FF258 8FB0001C */ lw $s0, 0x1c($sp)
/* B763FC 800FF25C 8FB10020 */ lw $s1, 0x20($sp)
/* B76400 800FF260 8FB20024 */ lw $s2, 0x24($sp)
/* B76404 800FF264 8FB30028 */ lw $s3, 0x28($sp)
/* B76408 800FF268 8FB4002C */ lw $s4, 0x2c($sp)
/* B7640C 800FF26C 8FB50030 */ lw $s5, 0x30($sp)
/* B76410 800FF270 8FB60034 */ lw $s6, 0x34($sp)
/* B76414 800FF274 8FB70038 */ lw $s7, 0x38($sp)
/* B76418 800FF278 03E00008 */ jr $ra
/* B7641C 800FF27C 27BD0040 */ addiu $sp, $sp, 0x40

View file

@ -0,0 +1,208 @@
.rdata
glabel D_8014AF48
.asciz "\n" #Arena is not initalized
.balign 4
glabel D_8014AF68
.asciz " (0x%08x)\n" #Arena contents
.balign 4
glabel D_8014AF84
.asciz " status [ s ms us ns: TID:src:]\n" #Memory block range status size [time s ms us ns: TID: src: line]
.balign 4
glabel D_8014AFC8
.asciz "%08x-%08x%c %s %08x"
.balign 4
glabel D_8014AFDC
.asciz "" #Free
.balign 4
glabel D_8014AFE4
.asciz "" #Secure
.balign 4
glabel D_8014AFEC
.asciz " [%016llu:%2d:%s:%d]"
.balign 4
glabel D_8014B004
.asciz "**NULL**"
.balign 4
glabel D_8014B010
.asciz "\n"
.balign 4
glabel D_8014B014
.asciz "%08x Block Invalid\n"
.balign 4
glabel D_8014B028
.asciz " 0x%08x \n" #Total reserved block size 0x% 08x bytes
.balign 4
glabel D_8014B050
.asciz " 0x%08x \n" #Total free block size 0x% 08x bytes
.balign 4
glabel D_8014B078
.asciz " 0x%08x \n" #Maximum free block size 0x% 08x bytes
.balign 4
.text
glabel __osDisplayArena
/* B76020 800FEE80 27BDFF98 */ addiu $sp, $sp, -0x68
/* B76024 800FEE84 AFBF003C */ sw $ra, 0x3c($sp)
/* B76028 800FEE88 AFB40038 */ sw $s4, 0x38($sp)
/* B7602C 800FEE8C AFB30034 */ sw $s3, 0x34($sp)
/* B76030 800FEE90 AFB20030 */ sw $s2, 0x30($sp)
/* B76034 800FEE94 AFB1002C */ sw $s1, 0x2c($sp)
/* B76038 800FEE98 AFB00028 */ sw $s0, 0x28($sp)
/* B7603C 800FEE9C 0C03F7D3 */ jal __osMallocIsInitalized
/* B76040 800FEEA0 AFA40068 */ sw $a0, 0x68($sp)
/* B76044 800FEEA4 14400005 */ bnez $v0, .L800FEEBC
/* B76048 800FEEA8 3C048015 */ lui $a0, %hi(D_8014AF48) # $a0, 0x8015
/* B7604C 800FEEAC 0C00084C */ jal osSyncPrintf
/* B76050 800FEEB0 2484AF48 */ addiu $a0, %lo(D_8014AF48) # addiu $a0, $a0, -0x50b8
/* B76054 800FEEB4 10000076 */ b .L800FF090
/* B76058 800FEEB8 8FBF003C */ lw $ra, 0x3c($sp)
.L800FEEBC:
/* B7605C 800FEEBC 0C03F70F */ jal ArenaImpl_Lock
/* B76060 800FEEC0 8FA40068 */ lw $a0, 0x68($sp)
/* B76064 800FEEC4 3C048015 */ lui $a0, %hi(D_8014AF68) # $a0, 0x8015
/* B76068 800FEEC8 0000A025 */ move $s4, $zero
/* B7606C 800FEECC 00009025 */ move $s2, $zero
/* B76070 800FEED0 00009825 */ move $s3, $zero
/* B76074 800FEED4 2484AF68 */ addiu $a0, %lo(D_8014AF68) # addiu $a0, $a0, -0x5098
/* B76078 800FEED8 0C00084C */ jal osSyncPrintf
/* B7607C 800FEEDC 8FA50068 */ lw $a1, 0x68($sp)
/* B76080 800FEEE0 3C048015 */ lui $a0, %hi(D_8014AF84) # $a0, 0x8015
/* B76084 800FEEE4 0C00084C */ jal osSyncPrintf
/* B76088 800FEEE8 2484AF84 */ addiu $a0, %lo(D_8014AF84) # addiu $a0, $a0, -0x507c
/* B7608C 800FEEEC 8FAE0068 */ lw $t6, 0x68($sp)
/* B76090 800FEEF0 8DD00000 */ lw $s0, ($t6)
/* B76094 800FEEF4 12000057 */ beqz $s0, .L800FF054
/* B76098 800FEEF8 00000000 */ nop
.L800FEEFC:
/* B7609C 800FEEFC 1200004F */ beqz $s0, .L800FF03C
/* B760A0 800FEF00 3C048015 */ lui $a0, %hi(D_8014B014)
/* B760A4 800FEF04 860F0000 */ lh $t7, ($s0)
/* B760A8 800FEF08 24017373 */ li $at, 29555
/* B760AC 800FEF0C 02002825 */ move $a1, $s0
/* B760B0 800FEF10 15E1004A */ bne $t7, $at, .L800FF03C
/* B760B4 800FEF14 00000000 */ nop
/* B760B8 800FEF18 8E110008 */ lw $s1, 8($s0)
/* B760BC 800FEF1C 3C038015 */ lui $v1, %hi(D_8014AFE4) # $v1, 0x8015
/* B760C0 800FEF20 2463AFE4 */ addiu $v1, %lo(D_8014AFE4) # addiu $v1, $v1, -0x501c
/* B760C4 800FEF24 16200003 */ bnez $s1, .L800FEF34
/* B760C8 800FEF28 3C048015 */ lui $a0, %hi(D_8014AFC8) # $a0, 0x8015
/* B760CC 800FEF2C 10000008 */ b .L800FEF50
/* B760D0 800FEF30 24070024 */ li $a3, 36
.L800FEF34:
/* B760D4 800FEF34 8E38000C */ lw $t8, 0xc($s1)
/* B760D8 800FEF38 24020020 */ li $v0, 32
/* B760DC 800FEF3C 12180003 */ beq $s0, $t8, .L800FEF4C
/* B760E0 800FEF40 00000000 */ nop
/* B760E4 800FEF44 10000001 */ b .L800FEF4C
/* B760E8 800FEF48 24020021 */ li $v0, 33
.L800FEF4C:
/* B760EC 800FEF4C 00403825 */ move $a3, $v0
.L800FEF50:
/* B760F0 800FEF50 86190002 */ lh $t9, 2($s0)
/* B760F4 800FEF54 13200004 */ beqz $t9, .L800FEF68
/* B760F8 800FEF58 00000000 */ nop
/* B760FC 800FEF5C 3C038015 */ lui $v1, %hi(D_8014AFDC) # $v1, 0x8015
/* B76100 800FEF60 10000001 */ b .L800FEF68
/* B76104 800FEF64 2463AFDC */ addiu $v1, %lo(D_8014AFDC) # addiu $v1, $v1, -0x5024
.L800FEF68:
/* B76108 800FEF68 8E020004 */ lw $v0, 4($s0)
/* B7610C 800FEF6C AFA30010 */ sw $v1, 0x10($sp)
/* B76110 800FEF70 2484AFC8 */ addiu $a0, %lo(D_8014AFC8) # addiu $a0, $a0, -0x5038
/* B76114 800FEF74 02023021 */ addu $a2, $s0, $v0
/* B76118 800FEF78 24C60030 */ addiu $a2, $a2, 0x30
/* B7611C 800FEF7C 0C00084C */ jal osSyncPrintf
/* B76120 800FEF80 AFA20014 */ sw $v0, 0x14($sp)
/* B76124 800FEF84 86080002 */ lh $t0, 2($s0)
/* B76128 800FEF88 24060000 */ li $a2, 0
/* B7612C 800FEF8C 24070040 */ li $a3, 64
/* B76130 800FEF90 1500001B */ bnez $t0, .L800FF000
/* B76134 800FEF94 00000000 */ nop
/* B76138 800FEF98 8E040020 */ lw $a0, 0x20($s0)
/* B7613C 800FEF9C 0C000E1E */ jal __ll_mul
/* B76140 800FEFA0 8E050024 */ lw $a1, 0x24($s0)
/* B76144 800FEFA4 00402025 */ move $a0, $v0
/* B76148 800FEFA8 00602825 */ move $a1, $v1
/* B7614C 800FEFAC 24060000 */ li $a2, 0
/* B76150 800FEFB0 0C000DDE */ jal __ull_div
/* B76154 800FEFB4 24070003 */ li $a3, 3
/* B76158 800FEFB8 AFA20040 */ sw $v0, 0x40($sp)
/* B7615C 800FEFBC AFA30044 */ sw $v1, 0x44($sp)
/* B76160 800FEFC0 8E040010 */ lw $a0, 0x10($s0)
/* B76164 800FEFC4 8FA70044 */ lw $a3, 0x44($sp)
/* B76168 800FEFC8 3C038015 */ lui $v1, %hi(D_8014B004) # $v1, 0x8015
/* B7616C 800FEFCC 10800003 */ beqz $a0, .L800FEFDC
/* B76170 800FEFD0 8FA60040 */ lw $a2, 0x40($sp)
/* B76174 800FEFD4 10000002 */ b .L800FEFE0
/* B76178 800FEFD8 00801825 */ move $v1, $a0
.L800FEFDC:
/* B7617C 800FEFDC 2463B004 */ addiu $v1, %lo(D_8014B004) # addiu $v1, $v1, -0x4ffc
.L800FEFE0:
/* B76180 800FEFE0 8E090018 */ lw $t1, 0x18($s0)
/* B76184 800FEFE4 AFA30014 */ sw $v1, 0x14($sp)
/* B76188 800FEFE8 3C048015 */ lui $a0, %hi(D_8014AFEC) # $a0, 0x8015
/* B7618C 800FEFEC AFA90010 */ sw $t1, 0x10($sp)
/* B76190 800FEFF0 8E0A0014 */ lw $t2, 0x14($s0)
/* B76194 800FEFF4 2484AFEC */ addiu $a0, %lo(D_8014AFEC) # addiu $a0, $a0, -0x5014
/* B76198 800FEFF8 0C00084C */ jal osSyncPrintf
/* B7619C 800FEFFC AFAA0018 */ sw $t2, 0x18($sp)
.L800FF000:
/* B761A0 800FF000 3C048015 */ lui $a0, %hi(D_8014B010) # $a0, 0x8015
/* B761A4 800FF004 0C00084C */ jal osSyncPrintf
/* B761A8 800FF008 2484B010 */ addiu $a0, %lo(D_8014B010) # addiu $a0, $a0, -0x4ff0
/* B761AC 800FF00C 860B0002 */ lh $t3, 2($s0)
/* B761B0 800FF010 51600008 */ beql $t3, $zero, .L800FF034
/* B761B4 800FF014 8E0C0004 */ lw $t4, 4($s0)
/* B761B8 800FF018 8E020004 */ lw $v0, 4($s0)
/* B761BC 800FF01C 0282082B */ sltu $at, $s4, $v0
/* B761C0 800FF020 1020000A */ beqz $at, .L800FF04C
/* B761C4 800FF024 02429021 */ addu $s2, $s2, $v0
/* B761C8 800FF028 10000008 */ b .L800FF04C
/* B761CC 800FF02C 0040A025 */ move $s4, $v0
/* B761D0 800FF030 8E0C0004 */ lw $t4, 4($s0)
.L800FF034:
/* B761D4 800FF034 10000005 */ b .L800FF04C
/* B761D8 800FF038 026C9821 */ addu $s3, $s3, $t4
.L800FF03C:
/* B761DC 800FF03C 2484B014 */ addiu $a0, %lo(D_8014B014)
/* B761E0 800FF040 02002825 */ move $a1, $s0
/* B761E4 800FF044 0C00084C */ jal osSyncPrintf
/* B761E8 800FF048 00008825 */ move $s1, $zero
.L800FF04C:
/* B761EC 800FF04C 1620FFAB */ bnez $s1, .L800FEEFC
/* B761F0 800FF050 02208025 */ move $s0, $s1
.L800FF054:
/* B761F4 800FF054 3C048015 */ lui $a0, %hi(D_8014B028) # $a0, 0x8015
/* B761F8 800FF058 2484B028 */ addiu $a0, %lo(D_8014B028) # addiu $a0, $a0, -0x4fd8
/* B761FC 800FF05C 0C00084C */ jal osSyncPrintf
/* B76200 800FF060 02602825 */ move $a1, $s3
/* B76204 800FF064 3C048015 */ lui $a0, %hi(D_8014B050) # $a0, 0x8015
/* B76208 800FF068 2484B050 */ addiu $a0, %lo(D_8014B050) # addiu $a0, $a0, -0x4fb0
/* B7620C 800FF06C 0C00084C */ jal osSyncPrintf
/* B76210 800FF070 02402825 */ move $a1, $s2
/* B76214 800FF074 3C048015 */ lui $a0, %hi(D_8014B078) # $a0, 0x8015
/* B76218 800FF078 2484B078 */ addiu $a0, %lo(D_8014B078) # addiu $a0, $a0, -0x4f88
/* B7621C 800FF07C 0C00084C */ jal osSyncPrintf
/* B76220 800FF080 02802825 */ move $a1, $s4
/* B76224 800FF084 0C03F719 */ jal ArenaImpl_Unlock
/* B76228 800FF088 8FA40068 */ lw $a0, 0x68($sp)
/* B7622C 800FF08C 8FBF003C */ lw $ra, 0x3c($sp)
.L800FF090:
/* B76230 800FF090 8FB00028 */ lw $s0, 0x28($sp)
/* B76234 800FF094 8FB1002C */ lw $s1, 0x2c($sp)
/* B76238 800FF098 8FB20030 */ lw $s2, 0x30($sp)
/* B7623C 800FF09C 8FB30034 */ lw $s3, 0x34($sp)
/* B76240 800FF0A0 8FB40038 */ lw $s4, 0x38($sp)
/* B76244 800FF0A4 03E00008 */ jr $ra
/* B76248 800FF0A8 27BD0068 */ addiu $sp, $sp, 0x68

Some files were not shown because too many files have changed in this diff Show more