000f3718 - 000f4ac8

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search

loads important map data in very similar manner to unit SHP/SEQ, too lazy rn

000f3718: 3c02800f lui r2,0x800f
000f371c: 8c425c58 lw r2,0x5c58(r2)			#map file func. index?
000f3720: 27bdffd8 addiu r29,r29,0xffd8
000f3724: afb00010 sw r16,0x0010(r29)
000f3728: 00808021 addu r16,r4,r0			#current map
000f372c: afbf0024 sw r31,0x0024(r29)
000f3730: afb40020 sw r20,0x0020(r29)
000f3734: afb3001c sw r19,0x001c(r29)
000f3738: afb20018 sw r18,0x0018(r29)
000f373c: 14400052 bne r2,r0,0x000f3888			#immediately load Map data point if file func != 0 
000f3740: afb10014 sw r17,0x0014(r29)
000f3744: 24a5ff8d addiu r5,r5,0xff8d			#r5 = input - 73
000f3748: 2ca2002a sltiu r2,r5,0x002a			#set true if 73 <= r5 < 9D
000f374c: 1040004e beq r2,r0,0x000f3888			#Immediately load map data point
000f3750: 00051080 sll r2,r5,0x02			#r2 = r5 word pointer
000f3754: 3c01800e lui r1,0x800e
000f3758: 00220821 addu r1,r1,r2
000f375c: 8c227178 lw r2,0x7178(r1)			#load from a set of pointers
000f3760: 00000000 nop
000f3764: 00400008 jr r2
000f3768: 00000000 nop
		Return Table:
		73: 	800f376c (load GNS)
		74: 	800f3888 (skip)
		75: 	800f37b8 
		76-97: 	800f3888 (skip)
		98: 	800f37ac 
		99-9b: 	800f3888 (skip)
		9c: 	800f45d8 
		9d: 	800f4aa0 

Load map GNS file

000f376c: 0c0111b2 jal 0x000446c8			#000446c8 - 000446d4 returns r2 = whatever is at 0x8004eaf8
000f3770: 00000000 nop
000f3774: 144004cc bne r2,r0,0x000f4aa8		#branch if this isn't 0
000f3778: 00001021 addu r2,r0,r0			#r2 = 0
000f377c: 0c011105 jal 0x00044414			#00044414 - 000444d8 allocates 0x20000 bytes RAM to map
000f3780: 3c040002 lui r4,0x0002			#
000f3784: 3c018012 lui r1,0x8012
000f3788: ac221ffc sw r2,0x1ffc(r1)			#save r2 as pointer to file loaded
000f378c: 14400003 bne r2,r0,0x000f379c		#branch if legal pointer
000f3790: 34040002 ori r4,r0,0x0002
000f3794: 0c011280 jal 0x00044a00
000f3798: 340503c2 ori r5,r0,0x03c2
000f379c: 0c03cd8e jal 0x000f3638			#Load map GNS file
000f37a0: 3204ffff andi r4,r16,0xffff			#Map ID
000f37a4: 0803ce13 j 0x000f384c
000f37a8: 34020074 ori r2,r0,0x0074


000f37ac: 34020001 ori r2,r0,0x0001			#if input = 0x26, r2 = 1
000f37b0: 3c01800f lui r1,0x800f
000f37b4: a0225c54 sb r2,0x5c54(r1)			#saves important thing as 1


000f37b8: 0c0111b2 jal 0x000446c8			#r2 = whatever is at 0x8004eaf8
000f37bc: 00000000 nop
000f37c0: 144004b9 bne r2,r0,0x000f4aa8		#branch if not 0
000f37c4: 00001021 addu r2,r0,r0			#r2 = 0
000f37c8: 0c011105 jal 0x00044414			#00044414 - 000444d8 allocate RAM
000f37cc: 3c040002 lui r4,0x0002			#input = 0x00020000
000f37d0: 3c018012 lui r1,0x8012
000f37d4: ac221ffc sw r2,0x1ffc(r1)			#saves RAM pointer
000f37d8: 14400003 bne r2,r0,0x000f37e8		#branch if r2 != 0 (hopefully always)
000f37dc: 34040002 ori r4,r0,0x0002			#r4 = 0x02
000f37e0: 0c011280 jal 0x00044a00			#regrant RAM
000f37e4: 340503c2 ori r5,r0,0x03c2			#r5 = 0x03c2
000f37e8: 3c02800f lui r2,0x800f
000f37ec: 8c425ba8 lw r2,0x5ba8(r2)			#Map ID (overworld is 0x77777777?)
000f37f0: 3c01800f lui r1,0x800f
000f37f4: a0206cbc sb r0,0x6cbc(r1)			#0
000f37f8: 3c01800f lui r1,0x800f
000f37fc: a0206cc0 sb r0,0x6cc0(r1)			#0
000f3800: 3c01800f lui r1,0x800f
000f3804: a0206cc4 sb r0,0x6cc4(r1)			#0
000f3808: 3c01800f lui r1,0x800f
000f380c: a0206cc8 sb r0,0x6cc8(r1)			#0
000f3810: 3c01800f lui r1,0x800f
000f3814: a0206cb4 sb r0,0x6cb4(r1)			#0
000f3818: 3c01800f lui r1,0x800f
000f381c: a0206cb0 sb r0,0x6cb0(r1)			#0
000f3820: 3c01800f lui r1,0x800f
000f3824: a0206aac sb r0,0x6aac(r1)			#0
000f3828: 12020013 beq r16,r2,0x000f3878		#branch if map = last map
000f382c: 3402000f ori r2,r0,0x000f			#r2 = 0xf
000f3830: 0c03cd8e jal 0x000f3638			#Load map GNS file 
000f3834: 3204ffff andi r4,r16,0xffff			#r4 = current map
000f3838: 3c038012 lui r3,0x8012
000f383c: 24634604 addiu r3,r3,0x4604			#address of map to go in RAM
000f3840: 14430499 bne r2,r3,0x000f4aa8		#branch if output is not this pointer (skip entirely)
000f3844: 00001021 addu r2,r0,r0			#r2 = 0
000f3848: 34020074 ori r2,r0,0x0074			#r2 = 0x74
000f384c: 3c01800f lui r1,0x800f			
000f3850: ac225c5c sw r2,0x5c5c(r1)			#store map data point as 0x0074 (why?)
000f3854: 3402000f ori r2,r0,0x000f			#r2 = f
000f3858: 3c01800f lui r1,0x800f
000f385c: ac305ba8 sw r16,0x5ba8(r1)			#store map ID to 0x800f5ba8
000f3860: 3c01800f lui r1,0x800f
000f3864: ac225c58 sw r2,0x5c58(r1)			#0x800f5c58 = 0xf
000f3868: 0c03b90e jal 0x000ee438			#000ee438 - 000ee958 probably sets up more map data?
000f386c: 00000000 nop
000f3870: 0803ce22 j 0x000f3888
000f3874: 00000000 nop
000f3878: 3c01800f lui r1,0x800f
000f387c: ac205c5c sw r0,0x5c5c(r1)			#0
000f3880: 3c01800f lui r1,0x800f
000f3884: ac225c58 sw r2,0x5c58(r1)			#file func index? = f


000f3888: 3c02800f lui r2,0x800f
000f388c: 8c425c5c lw r2,0x5c5c(r2)			#load map data point
000f3890: 00000000 nop
000f3894: 14400347 bne r2,r0,0x000f45b4		#branch if not 0
000f3898: 2443ff8c addiu r3,r2,0xff8c			#map data - 0x74
000f389c: 3c03800f lui r3,0x800f
000f38a0: 8c635c58 lw r3,0x5c58(r3)			#load ? (map file func index?)
000f38a4: 34040001 ori r4,r0,0x0001			#r4 = 1
000f38a8: 10640251 beq r3,r4,0x000f41f0		#branch if ? is 1?
000f38ac: 3402000f ori r2,r0,0x000f			#r2 = 0x0f
000f38b0: 1462047b bne r3,r2,0x000f4aa0		#branch if ? is not 0xf?
000f38b4: 340203c0 ori r2,r0,0x03c0			#r2 = 0x03c0

File func. index = 0xf

000f38b8: 3c018010 lui r1,0x8010
000f38bc: ac20bdf4 sw r0,-0x420c(r1)			#
000f38c0: 3c01800f lui r1,0x800f
000f38c4: ac245c58 sw r4,0x5c58(r1)			#reset index
000f38c8: 3c01800f lui r1,0x800f
000f38cc: 00220821 addu r1,r1,r2			#0x800f0000 + 0x03c0
000f38d0: a0207a65 sb r0,0x7a65(r1)			#save 0 to?
000f38d4: 2442ffec addiu r2,r2,0xffec			#r2 - 14
000f38d8: 0441fffb bgez r2,0x000f38c8			#loop if r2 => 0
000f38dc: 00000000 nop
000f38e0: 3c028012 lui r2,0x8012
000f38e4: 90424609 lbu r2,0x4609(r2)			#load file type indicator (head byte)
000f38e8: 00000000 nop
000f38ec: 2c420080 sltiu r2,r2,0x0080			#true, until reaches stopping point (marked by a 0x80)
000f38f0: 1040046b beq r2,r0,0x000f4aa0		#branch if not true
000f38f4: 00000000 nop

Until not loading GNS section 1:

000f38f8: 3c138010 lui r19,0x8010
000f38fc: 2673a6c6 addiu r19,r19,0xa6c6		#0x800fa6c6 (start of important duplicate GNS lines)
000f3900: 3c128012 lui r18,0x8012
000f3904: 26524609 addiu r18,r18,0x4609		#r18 = file type indicator pointer
000f3908: 00008821 addu r17,r0,r0			#r17 = 0
000f390c: 92430000 lbu r3,0x0000(r18)			#load file type indicator (head byte)
000f3910: 3402002e ori r2,r0,0x002e
000f3914: 14620082 bne r3,r2,0x000f3b20		#branch if not primary mesh file
000f3918: 00000000 nop

Primary mesh file:

000f391c: 3c018012 lui r1,0x8012
000f3920: 00310821 addu r1,r1,r17			#line header
000f3924: 84244604 lh r4,0x4604(r1)			#load line header
000f3928: 0c04ed64 jal 0x0013b590			#Get Script Variable with ^ as input (normally 0x22, 0x30, 0x70)
000f392c: 00000000 nop
000f3930: 34040023 ori r4,r0,0x0023			#
000f3934: 0c04ed64 jal 0x0013b590			#Get Script Variable grab weather variable (0x23)
000f3938: 30500fff andi r16,r2,0x0fff			#preserve output of above
000f393c: 34040024 ori r4,r0,0x0024			#
000f3940: 30420007 andi r2,r2,0x0007			#check only for weather
000f3944: 00021300 sll r2,r2,0x0c			#weather<<0xc
000f3948: 0c04ed64 jal 0x0013b590			#Get Script Variable 0x24 (map state)
000f394c: 02028025 or r16,r16,r2			#preserve weather << 0xc
000f3950: 30420001 andi r2,r2,0x0001			#only get 1st flag
000f3954: 000213c0 sll r2,r2,0x0f			#flag 1 << 0xf
000f3958: 02028025 or r16,r16,r2			#combine with r16 (overall, all should form 1 halfword, 0x0fff -> scrip var return w/ header, 0x7000 -> weather, 0x8000 -> map state flag)
000f395c: 00108400 sll r16,r16,0x10			#move to upp half of halfword
000f3960: 3c018012 lui r1,0x8012
000f3964: 00310821 addu r1,r1,r17
000f3968: 90244608 lbu r4,0x4608(r1)			#r4 = Map State's weather
000f396c: 3c018012 lui r1,0x8012
000f3970: 00310821 addu r1,r1,r17
000f3974: 84254606 lh r5,0x4606(r1)			#r5 = Map State's Room Arrangement ID
000f3978: 0c03c986 jal 0x000f2618			#000f2618 - 000f26b8
000f397c: 00103403 sra r6,r16,0x10			#r6 = overall map state
000f3980: 00021400 sll r2,r2,0x10			#dafuq lmao?
000f3984: 10400010 beq r2,r0,0x000f39c8		#branch if above returned 0 (map state requested by ENTD doesn't match up with map state by GNS)
000f3988: 00002021 addu r4,r0,r0
000f398c: 02202821 addu r5,r17,r0			#r5 = GND index
000f3990: 34060048 ori r6,r0,0x0048			#r6 = 0x48
000f3994: 3c018012 lui r1,0x8012
000f3998: 00250821 addu r1,r1,r5
000f399c: 90224609 lbu r2,0x4609(r1)			#load file type indicator (head)
000f39a0: 00000000 nop
000f39a4: 00021880 sll r3,r2,0x02
000f39a8: 00621821 addu r3,r3,r2
000f39ac: 00031880 sll r3,r3,0x02			#file type indicator * 0x14
000f39b0: 00731821 addu r3,r3,r19			#important GNS data + file type offest?
000f39b4: 00641821 addu r3,r3,r4
000f39b8: 24840001 addiu r4,r4,0x0001			#counter ++
000f39bc: 2882000e slti r2,r4,0x000e			#repeat 0xe times
000f39c0: 1440fff4 bne r2,r0,0x000f3994
000f39c4: a0660000 sb r6,0x0000(r3)			#store 0x48 here.
000f39c8: 00003021 addu r6,r0,r0			#r6 = 0
000f39cc: 3c028012 lui r2,0x8012
000f39d0: 2442460a addiu r2,r2,0x460a			#points to padding (?)
000f39d4: 02222021 addu r4,r17,r2			#primary mesh line
000f39d8: 92430000 lbu r3,0x0000(r18)			#file type indicator header
000f39dc: 2487000e addiu r7,r4,0x000e			#points to next line's header
000f39e0: 00031080 sll r2,r3,0x02			#indicator header * 4
000f39e4: 00431021 addu r2,r2,r3			#indicator header * 5
000f39e8: 00021080 sll r2,r2,0x02			#indicator header * 0x14 (0x398? if primary mesh file type)
000f39ec: 00532821 addu r5,r2,r19			#0x800fa6c6 + 0x398 (seems to be a duplicate of the primary mesh line?)
000f39f0: 90820000 lbu r2,0x0000(r4)			#load from padding to the next line's header
000f39f4: 24840001 addiu r4,r4,0x0001			#
000f39f8: 90a30000 lbu r3,0x0000(r5)			#load from the duplicate padding to the same place
000f39fc: 24a50001 addiu r5,r5,0x0001			#0x800fa6c7 + 0x398
000f3a00: 00621826 xor r3,r3,r2			#should return 0
000f3a04: 0087102a slt r2,r4,r7			#r2 = true if r4 pointer is not yet at the r7 pointer
000f3a08: 1440fff9 bne r2,r0,0x000f39f0		#loop 0xe times
000f3a0c: 00c33025 or r6,r6,r3				#
000f3a10: 30c200ff andi r2,r6,0x00ff			#error checker
000f3a14: 10400042 beq r2,r0,0x000f3b20		#branch if no discrepencies detected
000f3a18: 00000000 nop
000f3a1c: 92430000 lbu r3,0x0000(r18)
000f3a20: 00000000 nop
000f3a24: 00031080 sll r2,r3,0x02
000f3a28: 00431021 addu r2,r2,r3
000f3a2c: 00021080 sll r2,r2,0x02
000f3a30: 3c018012 lui r1,0x8012
000f3a34: 00310821 addu r1,r1,r17
000f3a38: 88234607 lwl r3,0x4607(r1)
000f3a3c: 3c018012 lui r1,0x8012
000f3a40: 00310821 addu r1,r1,r17
000f3a44: 98234604 lwr r3,0x4604(r1)
000f3a48: 3c018012 lui r1,0x8012
000f3a4c: 00310821 addu r1,r1,r17
000f3a50: 8824460b lwl r4,0x460b(r1)
000f3a54: 3c018012 lui r1,0x8012
000f3a58: 00310821 addu r1,r1,r17
000f3a5c: 98244608 lwr r4,0x4608(r1)
000f3a60: 3c018012 lui r1,0x8012
000f3a64: 00310821 addu r1,r1,r17
000f3a68: 8825460f lwl r5,0x460f(r1)
000f3a6c: 3c018012 lui r1,0x8012
000f3a70: 00310821 addu r1,r1,r17
000f3a74: 9825460c lwr r5,0x460c(r1)
000f3a78: 3c018012 lui r1,0x8012
000f3a7c: 00310821 addu r1,r1,r17
000f3a80: 88264613 lwl r6,0x4613(r1)
000f3a84: 3c018012 lui r1,0x8012
000f3a88: 00310821 addu r1,r1,r17
000f3a8c: 98264610 lwr r6,0x4610(r1)
000f3a90: 3c01800f lui r1,0x800f
000f3a94: 00220821 addu r1,r1,r2
000f3a98: a8237a63 swl r3,0x7a63(r1)
000f3a9c: 3c01800f lui r1,0x800f
000f3aa0: 00220821 addu r1,r1,r2
000f3aa4: b8237a60 swr r3,0x7a60(r1)
000f3aa8: 3c01800f lui r1,0x800f
000f3aac: 00220821 addu r1,r1,r2
000f3ab0: a8247a67 swl r4,0x7a67(r1)
000f3ab4: 3c01800f lui r1,0x800f
000f3ab8: 00220821 addu r1,r1,r2
000f3abc: b8247a64 swr r4,0x7a64(r1)
000f3ac0: 3c01800f lui r1,0x800f
000f3ac4: 00220821 addu r1,r1,r2
000f3ac8: a8257a6b swl r5,0x7a6b(r1)
000f3acc: 3c01800f lui r1,0x800f
000f3ad0: 00220821 addu r1,r1,r2
000f3ad4: b8257a68 swr r5,0x7a68(r1)
000f3ad8: 3c01800f lui r1,0x800f
000f3adc: 00220821 addu r1,r1,r2
000f3ae0: a8267a6f swl r6,0x7a6f(r1)
000f3ae4: 3c01800f lui r1,0x800f
000f3ae8: 00220821 addu r1,r1,r2
000f3aec: b8267a6c swr r6,0x7a6c(r1)
000f3af0: 3c018012 lui r1,0x8012
000f3af4: 00310821 addu r1,r1,r17
000f3af8: 88234617 lwl r3,0x4617(r1)
000f3afc: 3c018012 lui r1,0x8012
000f3b00: 00310821 addu r1,r1,r17
000f3b04: 98234614 lwr r3,0x4614(r1)
000f3b08: 3c01800f lui r1,0x800f
000f3b0c: 00220821 addu r1,r1,r2
000f3b10: a8237a73 swl r3,0x7a73(r1)
000f3b14: 3c01800f lui r1,0x800f
000f3b18: 00220821 addu r1,r1,r2
000f3b1c: b8237a70 swr r3,0x7a70(r1)
000f3b20: 26520014 addiu r18,r18,0x0014			#check next half state
000f3b24: 92420000 lbu r2,0x0000(r18)				#load file type
000f3b28: 00000000 nop
000f3b2c: 2c420080 sltiu r2,r2,0x0080				#set true, until repeating this reaches section 3 GNS (0x80 probably tells it to stop repeating.)
000f3b30: 1440ff76 bne r2,r0,0x000f390c			#branch
000f3b34: 26310014 addiu r17,r17,0x0014			#increase offset by 20
000f3b38: 3c028012 lui r2,0x8012
000f3b3c: 90424609 lbu r2,0x4609(r2)				#load first 20 byte length line's file type indicator header
000f3b40: 00000000 nop
000f3b44: 2c420080 sltiu r2,r2,0x0080				#set if less than 0x80
000f3b48: 104003d5 beq r2,r0,0x000f4aa0			#if map doesn't exist... just stop
000f3b4c: 00000000 nop
000f3b50: 3c138010 lui r19,0x8010
000f3b54: 2673a6c6 addiu r19,r19,0xa6c6			#start of duplicate important GNS data
000f3b58: 3c128012 lui r18,0x8012
000f3b5c: 26524609 addiu r18,r18,0x4609			#map file type indicator
000f3b60: 00008821 addu r17,r0,r0				#0
000f3b64: 92430000 lbu r3,0x0000(r18)				#load GNS header
000f3b68: 3402002f ori r2,r0,0x002f
000f3b6c: 14620082 bne r3,r2,0x000f3d78			#branch if file type indicator is not 0x2f (overwriting mesh state)
000f3b70: 00000000 nop
000f3b74: 3c018012 lui r1,0x8012
000f3b78: 00310821 addu r1,r1,r17
000f3b7c: 84244604 lh r4,0x4604(r1)
000f3b80: 0c04ed64 jal 0x0013b590
000f3b84: 00000000 nop
000f3b88: 34040023 ori r4,r0,0x0023
000f3b8c: 0c04ed64 jal 0x0013b590
000f3b90: 30500fff andi r16,r2,0x0fff
000f3b94: 34040024 ori r4,r0,0x0024
000f3b98: 30420007 andi r2,r2,0x0007
000f3b9c: 00021300 sll r2,r2,0x0c
000f3ba0: 0c04ed64 jal 0x0013b590
000f3ba4: 02028025 or r16,r16,r2
000f3ba8: 30420001 andi r2,r2,0x0001
000f3bac: 000213c0 sll r2,r2,0x0f
000f3bb0: 02028025 or r16,r16,r2
000f3bb4: 00108400 sll r16,r16,0x10
000f3bb8: 3c018012 lui r1,0x8012
000f3bbc: 00310821 addu r1,r1,r17
000f3bc0: 90244608 lbu r4,0x4608(r1)
000f3bc4: 3c018012 lui r1,0x8012
000f3bc8: 00310821 addu r1,r1,r17
000f3bcc: 84254606 lh r5,0x4606(r1)
000f3bd0: 0c03c986 jal 0x000f2618
000f3bd4: 00103403 sra r6,r16,0x10
000f3bd8: 00021400 sll r2,r2,0x10
000f3bdc: 10400010 beq r2,r0,0x000f3c20
000f3be0: 00002021 addu r4,r0,r0
000f3be4: 02202821 addu r5,r17,r0
000f3be8: 34060048 ori r6,r0,0x0048
000f3bec: 3c018012 lui r1,0x8012
000f3bf0: 00250821 addu r1,r1,r5
000f3bf4: 90224609 lbu r2,0x4609(r1)
000f3bf8: 00000000 nop
000f3bfc: 00021880 sll r3,r2,0x02
000f3c00: 00621821 addu r3,r3,r2
000f3c04: 00031880 sll r3,r3,0x02
000f3c08: 00731821 addu r3,r3,r19
000f3c0c: 00641821 addu r3,r3,r4
000f3c10: 24840001 addiu r4,r4,0x0001
000f3c14: 2882000e slti r2,r4,0x000e
000f3c18: 1440fff4 bne r2,r0,0x000f3bec
000f3c1c: a0660000 sb r6,0x0000(r3)
000f3c20: 00003021 addu r6,r0,r0
000f3c24: 3c028012 lui r2,0x8012
000f3c28: 2442460a addiu r2,r2,0x460a
000f3c2c: 02222021 addu r4,r17,r2
000f3c30: 92430000 lbu r3,0x0000(r18)
000f3c34: 2487000e addiu r7,r4,0x000e
000f3c38: 00031080 sll r2,r3,0x02
000f3c3c: 00431021 addu r2,r2,r3
000f3c40: 00021080 sll r2,r2,0x02
000f3c44: 00532821 addu r5,r2,r19
000f3c48: 90820000 lbu r2,0x0000(r4)
000f3c4c: 24840001 addiu r4,r4,0x0001
000f3c50: 90a30000 lbu r3,0x0000(r5)
000f3c54: 24a50001 addiu r5,r5,0x0001
000f3c58: 00621826 xor r3,r3,r2
000f3c5c: 0087102a slt r2,r4,r7
000f3c60: 1440fff9 bne r2,r0,0x000f3c48
000f3c64: 00c33025 or r6,r6,r3
000f3c68: 30c200ff andi r2,r6,0x00ff
000f3c6c: 10400042 beq r2,r0,0x000f3d78
000f3c70: 00000000 nop
000f3c74: 92430000 lbu r3,0x0000(r18)
000f3c78: 00000000 nop
000f3c7c: 00031080 sll r2,r3,0x02
000f3c80: 00431021 addu r2,r2,r3
000f3c84: 00021080 sll r2,r2,0x02
000f3c88: 3c018012 lui r1,0x8012
000f3c8c: 00310821 addu r1,r1,r17
000f3c90: 88234607 lwl r3,0x4607(r1)
000f3c94: 3c018012 lui r1,0x8012
000f3c98: 00310821 addu r1,r1,r17
000f3c9c: 98234604 lwr r3,0x4604(r1)
000f3ca0: 3c018012 lui r1,0x8012
000f3ca4: 00310821 addu r1,r1,r17
000f3ca8: 8824460b lwl r4,0x460b(r1)
000f3cac: 3c018012 lui r1,0x8012
000f3cb0: 00310821 addu r1,r1,r17
000f3cb4: 98244608 lwr r4,0x4608(r1)
000f3cb8: 3c018012 lui r1,0x8012
000f3cbc: 00310821 addu r1,r1,r17
000f3cc0: 8825460f lwl r5,0x460f(r1)
000f3cc4: 3c018012 lui r1,0x8012
000f3cc8: 00310821 addu r1,r1,r17
000f3ccc: 9825460c lwr r5,0x460c(r1)
000f3cd0: 3c018012 lui r1,0x8012
000f3cd4: 00310821 addu r1,r1,r17
000f3cd8: 88264613 lwl r6,0x4613(r1)
000f3cdc: 3c018012 lui r1,0x8012
000f3ce0: 00310821 addu r1,r1,r17
000f3ce4: 98264610 lwr r6,0x4610(r1)
000f3ce8: 3c01800f lui r1,0x800f
000f3cec: 00220821 addu r1,r1,r2
000f3cf0: a8237a63 swl r3,0x7a63(r1)
000f3cf4: 3c01800f lui r1,0x800f
000f3cf8: 00220821 addu r1,r1,r2
000f3cfc: b8237a60 swr r3,0x7a60(r1)
000f3d00: 3c01800f lui r1,0x800f
000f3d04: 00220821 addu r1,r1,r2
000f3d08: a8247a67 swl r4,0x7a67(r1)
000f3d0c: 3c01800f lui r1,0x800f
000f3d10: 00220821 addu r1,r1,r2
000f3d14: b8247a64 swr r4,0x7a64(r1)
000f3d18: 3c01800f lui r1,0x800f
000f3d1c: 00220821 addu r1,r1,r2
000f3d20: a8257a6b swl r5,0x7a6b(r1)
000f3d24: 3c01800f lui r1,0x800f
000f3d28: 00220821 addu r1,r1,r2
000f3d2c: b8257a68 swr r5,0x7a68(r1)
000f3d30: 3c01800f lui r1,0x800f
000f3d34: 00220821 addu r1,r1,r2
000f3d38: a8267a6f swl r6,0x7a6f(r1)
000f3d3c: 3c01800f lui r1,0x800f
000f3d40: 00220821 addu r1,r1,r2
000f3d44: b8267a6c swr r6,0x7a6c(r1)
000f3d48: 3c018012 lui r1,0x8012
000f3d4c: 00310821 addu r1,r1,r17
000f3d50: 88234617 lwl r3,0x4617(r1)
000f3d54: 3c018012 lui r1,0x8012
000f3d58: 00310821 addu r1,r1,r17
000f3d5c: 98234614 lwr r3,0x4614(r1)
000f3d60: 3c01800f lui r1,0x800f
000f3d64: 00220821 addu r1,r1,r2
000f3d68: a8237a73 swl r3,0x7a73(r1)
000f3d6c: 3c01800f lui r1,0x800f
000f3d70: 00220821 addu r1,r1,r2
000f3d74: b8237a70 swr r3,0x7a70(r1)
000f3d78: 26520014 addiu r18,r18,0x0014			#next GNS row
000f3d7c: 92420000 lbu r2,0x0000(r18)				#load file type header
000f3d80: 00000000 nop
000f3d84: 2c420080 sltiu r2,r2,0x0080				#true if <0x80 (stop)
000f3d88: 1440ff76 bne r2,r0,0x000f3b64			#branch above if not stop
000f3d8c: 26310014 addiu r17,r17,0x0014			#next GNS row
000f3d90: 3c028012 lui r2,0x8012
000f3d94: 90424609 lbu r2,0x4609(r2)				#load first row file-type indicator
000f3d98: 00000000 nop
000f3d9c: 2c420080 sltiu r2,r2,0x0080
000f3da0: 1040033f beq r2,r0,0x000f4aa0			#if no map files, skip entirely
000f3da4: 00004021 addu r8,r0,r0				#r8 = 0
000f3da8: 3c0b8010 lui r11,0x8010
000f3dac: 256ba6c6 addiu r11,r11,0xa6c6			#0x800fa6c6
000f3db0: 3c028012 lui r2,0x8012
000f3db4: 2442460a addiu r2,r2,0x460a				#first row padding location
000f3db8: 2449ffff addiu r9,r2,0xffff				#first row file-type indicator header location
000f3dbc: 00405021 addu r10,r2,r0				#r10 = padding
000f3dc0: 91230000 lbu r3,0x0000(r9)				#load file type header
000f3dc4: 34020017 ori r2,r0,0x0017
000f3dc8: 1462005e bne r3,r2,0x000f3f44			#branch if not 0x17 (texture)
000f3dcc: 34020022 ori r2,r0,0x0022				#r2 = 0x22
000f3dd0: 3c018012 lui r1,0x8012
000f3dd4: 00280821 addu r1,r1,r8
000f3dd8: 84234604 lh r3,0x4604(r1)				#load variable header
000f3ddc: 00000000 nop
000f3de0: 10620003 beq r3,r2,0x000f3df0			#branch if variable is 0x22
000f3de4: 34020030 ori r2,r0,0x0030
000f3de8: 14620056 bne r3,r2,0x000f3f44			#branch if variable is not 0x30 (find next texture file which's header variable is 0x22 or 0x30?)
000f3dec: 00000000 nop
000f3df0: 3c018012 lui r1,0x8012
000f3df4: 00280821 addu r1,r1,r8				
000f3df8: 84224606 lh r2,0x4606(r1)				#load room arrangement + time of day + weather
000f3dfc: 00000000 nop
000f3e00: 14400050 bne r2,r0,0x000f3f44			#branch if != 0 (alternate mesh files should not have default weather? find next texture file with alternate texture?)
000f3e04: 00003021 addu r6,r0,r0
000f3e08: 01402021 addu r4,r10,r0				#r4 = row padding
000f3e0c: 256501cc addiu r5,r11,0x01cc				#another duplicate GNS row
000f3e10: 2547000e addiu r7,r10,0x000e				#loop until next section header
000f3e14: 90820000 lbu r2,0x0000(r4)				#load byte
000f3e18: 24840001 addiu r4,r4,0x0001
000f3e1c: 90a30000 lbu r3,0x0000(r5)				#load duplicate's byte
000f3e20: 24a50001 addiu r5,r5,0x0001
000f3e24: 00621826 xor r3,r3,r2				#return != 0 if there's a discrepency 
000f3e28: 0087102a slt r2,r4,r7
000f3e2c: 1440fff9 bne r2,r0,0x000f3e14			#branch until r4 = r7
000f3e30: 00c33025 or r6,r6,r3
000f3e34: 30c200ff andi r2,r6,0x00ff				#r2 != 0 if discrepency detected
000f3e38: 10400042 beq r2,r0,0x000f3f44			#if alternate texture file does not match duplicate row, find next texture file that matches
000f3e3c: 00000000 nop
000f3e40: 91230000 lbu r3,0x0000(r9)				#load file type header (should be 0x17...?)
000f3e44: 00000000 nop
000f3e48: 00031080 sll r2,r3,0x02
000f3e4c: 00431021 addu r2,r2,r3
000f3e50: 00021080 sll r2,r2,0x02				#file type header * 0x14
000f3e54: 3c018012 lui r1,0x8012
000f3e58: 00280821 addu r1,r1,r8
000f3e5c: 88234607 lwl r3,0x4607(r1)
000f3e60: 3c018012 lui r1,0x8012
000f3e64: 00280821 addu r1,r1,r8
000f3e68: 98234604 lwr r3,0x4604(r1)				#loads Header variable, room arrangement, time of day, and weather in big endian
000f3e6c: 3c018012 lui r1,0x8012
000f3e70: 00280821 addu r1,r1,r8
000f3e74: 8824460b lwl r4,0x460b(r1)
000f3e78: 3c018012 lui r1,0x8012
000f3e7c: 00280821 addu r1,r1,r8
000f3e80: 98244608 lwr r4,0x4608(r1)				#load file type indicator and first padding in bit order in big endian
000f3e84: 3c018012 lui r1,0x8012
000f3e88: 00280821 addu r1,r1,r8
000f3e8c: 8825460f lwl r5,0x460f(r1)
000f3e90: 3c018012 lui r1,0x8012
000f3e94: 00280821 addu r1,r1,r8
000f3e98: 9825460c lwr r5,0x460c(r1)				#load LBA block number in big endian
000f3e9c: 3c018012 lui r1,0x8012
000f3ea0: 00280821 addu r1,r1,r8
000f3ea4: 88264613 lwl r6,0x4613(r1)
000f3ea8: 3c018012 lui r1,0x8012
000f3eac: 00280821 addu r1,r1,r8
000f3eb0: 98264610 lwr r6,0x4610(r1)				#load file length in big endian
000f3eb4: 3c01800f lui r1,0x800f
000f3eb8: 00220821 addu r1,r1,r2
000f3ebc: a8237a63 swl r3,0x7a63(r1)
000f3ec0: 3c01800f lui r1,0x800f
000f3ec4: 00220821 addu r1,r1,r2
000f3ec8: b8237a60 swr r3,0x7a60(r1)				#move to 0x800f7a60 + 0x1cc (duplicate GNS row)
000f3ecc: 3c01800f lui r1,0x800f
000f3ed0: 00220821 addu r1,r1,r2
000f3ed4: a8247a67 swl r4,0x7a67(r1)
000f3ed8: 3c01800f lui r1,0x800f
000f3edc: 00220821 addu r1,r1,r2
000f3ee0: b8247a64 swr r4,0x7a64(r1)				#move to 0x800f7a64 + 0x1cc (duplicate GNS row)
000f3ee4: 3c01800f lui r1,0x800f
000f3ee8: 00220821 addu r1,r1,r2
000f3eec: a8257a6b swl r5,0x7a6b(r1)
000f3ef0: 3c01800f lui r1,0x800f
000f3ef4: 00220821 addu r1,r1,r2
000f3ef8: b8257a68 swr r5,0x7a68(r1)				#move to 0x800f7a68 + 0x1cc (duplicate GNS row)
000f3efc: 3c01800f lui r1,0x800f
000f3f00: 00220821 addu r1,r1,r2
000f3f04: a8267a6f swl r6,0x7a6f(r1)
000f3f08: 3c01800f lui r1,0x800f
000f3f0c: 00220821 addu r1,r1,r2
000f3f10: b8267a6c swr r6,0x7a6c(r1)				#move to 0x800f7a6c + 0x1cc (duplicate GNS row)
000f3f14: 3c018012 lui r1,0x8012
000f3f18: 00280821 addu r1,r1,r8
000f3f1c: 88234617 lwl r3,0x4617(r1)
000f3f20: 3c018012 lui r1,0x8012
000f3f24: 00280821 addu r1,r1,r8
000f3f28: 98234614 lwr r3,0x4614(r1)				#load padding in big endian
000f3f2c: 3c01800f lui r1,0x800f
000f3f30: 00220821 addu r1,r1,r2
000f3f34: a8237a73 swl r3,0x7a73(r1)				#move to 0x800f7a6c + 0x1cc (duplicate GNS row)
000f3f38: 3c01800f lui r1,0x800f
000f3f3c: 00220821 addu r1,r1,r2
000f3f40: b8237a70 swr r3,0x7a70(r1)
000f3f44: 25290014 addiu r9,r9,0x0014				#next GNS row
000f3f48: 25080014 addiu r8,r8,0x0014				#next GNS row (offset)
000f3f4c: 91220000 lbu r2,0x0000(r9)				#load file type header
000f3f50: 00000000 nop
000f3f54: 2c420080 sltiu r2,r2,0x0080				#
000f3f58: 1440ff99 bne r2,r0,0x000f3dc0			#loop if instruction is not "stop looking"
000f3f5c: 254a0014 addiu r10,r10,0x0014			#next GNS row (padding)
000f3f60: 3c028012 lui r2,0x8012
000f3f64: 90424609 lbu r2,0x4609(r2)				#load file type indicator of first GNS row
000f3f68: 00000000 nop
000f3f6c: 2c420080 sltiu r2,r2,0x0080
000f3f70: 104002cb beq r2,r0,0x000f4aa0			#branch if file exists (doesn't check for erroneous - finishes map reload)
000f3f74: 00000000 nop
000f3f78: 3c148010 lui r20,0x8010
000f3f7c: 2694a6c6 addiu r20,r20,0xa6c6
000f3f80: 3c028012 lui r2,0x8012
000f3f84: 2442460a addiu r2,r2,0x460a
000f3f88: 2452ffff addiu r18,r2,0xffff
000f3f8c: 00008821 addu r17,r0,r0
000f3f90: 00409821 addu r19,r2,r0
000f3f94: 92420000 lbu r2,0x0000(r18)
000f3f98: 00000000 nop
000f3f9c: 1040008b beq r2,r0,0x000f41cc
000f3fa0: 34020022 ori r2,r0,0x0022
000f3fa4: 3c018012 lui r1,0x8012
000f3fa8: 00310821 addu r1,r1,r17
000f3fac: 84244604 lh r4,0x4604(r1)
000f3fb0: 00000000 nop
000f3fb4: 14820007 bne r4,r2,0x000f3fd4
000f3fb8: 34020030 ori r2,r0,0x0030
000f3fbc: 3c018012 lui r1,0x8012
000f3fc0: 00310821 addu r1,r1,r17
000f3fc4: 84224606 lh r2,0x4606(r1)
000f3fc8: 00000000 nop
000f3fcc: 1040007f beq r2,r0,0x000f41cc
000f3fd0: 34020030 ori r2,r0,0x0030
000f3fd4: 14820007 bne r4,r2,0x000f3ff4
000f3fd8: 00000000 nop
000f3fdc: 3c018012 lui r1,0x8012
000f3fe0: 00310821 addu r1,r1,r17
000f3fe4: 84224606 lh r2,0x4606(r1)
000f3fe8: 00000000 nop
000f3fec: 10400077 beq r2,r0,0x000f41cc
000f3ff0: 00000000 nop
000f3ff4: 0c04ed64 jal 0x0013b590
000f3ff8: 00000000 nop
000f3ffc: 34040023 ori r4,r0,0x0023
000f4000: 0c04ed64 jal 0x0013b590
000f4004: 30500fff andi r16,r2,0x0fff
000f4008: 34040024 ori r4,r0,0x0024
000f400c: 30420007 andi r2,r2,0x0007
000f4010: 00021300 sll r2,r2,0x0c
000f4014: 0c04ed64 jal 0x0013b590
000f4018: 02028025 or r16,r16,r2
000f401c: 30420001 andi r2,r2,0x0001
000f4020: 000213c0 sll r2,r2,0x0f
000f4024: 02028025 or r16,r16,r2
000f4028: 00108400 sll r16,r16,0x10
000f402c: 3c018012 lui r1,0x8012
000f4030: 00310821 addu r1,r1,r17
000f4034: 90244608 lbu r4,0x4608(r1)
000f4038: 3c018012 lui r1,0x8012
000f403c: 00310821 addu r1,r1,r17
000f4040: 84254606 lh r5,0x4606(r1)
000f4044: 0c03c986 jal 0x000f2618             # check if map state matches the input values.
000f4048: 00103403 sra r6,r16,0x10
000f404c: 00021400 sll r2,r2,0x10
000f4050: 1040005e beq r2,r0,0x000f41cc       # if not, loop
000f4054: 00003021 addu r6,r0,r0              # whatever this is.
000f4058: 02602821 addu r5,r19,r0
000f405c: 92430000 lbu r3,0x0000(r18)
000f4060: 2667000e addiu r7,r19,0x000e
000f4064: 00031080 sll r2,r3,0x02
000f4068: 00431021 addu r2,r2,r3
000f406c: 00021080 sll r2,r2,0x02
000f4070: 00542021 addu r4,r2,r20
000f4074: 90a20000 lbu r2,0x0000(r5)
000f4078: 24a50001 addiu r5,r5,0x0001
000f407c: 90830000 lbu r3,0x0000(r4)
000f4080: 24840001 addiu r4,r4,0x0001
000f4084: 00621826 xor r3,r3,r2
000f4088: 00a7102a slt r2,r5,r7
000f408c: 1440fff9 bne r2,r0,0x000f4074
000f4090: 00c33025 or r6,r6,r3
000f4094: 30c200ff andi r2,r6,0x00ff
000f4098: 10400044 beq r2,r0,0x000f41ac
000f409c: 00000000 nop
000f40a0: 92430000 lbu r3,0x0000(r18)
000f40a4: 00000000 nop
000f40a8: 00031080 sll r2,r3,0x02
000f40ac: 00431021 addu r2,r2,r3
000f40b0: 00021080 sll r2,r2,0x02
000f40b4: 3c018012 lui r1,0x8012
000f40b8: 00310821 addu r1,r1,r17
000f40bc: 88234607 lwl r3,0x4607(r1)
000f40c0: 3c018012 lui r1,0x8012
000f40c4: 00310821 addu r1,r1,r17
000f40c8: 98234604 lwr r3,0x4604(r1)
000f40cc: 3c018012 lui r1,0x8012
000f40d0: 00310821 addu r1,r1,r17
000f40d4: 8824460b lwl r4,0x460b(r1)
000f40d8: 3c018012 lui r1,0x8012
000f40dc: 00310821 addu r1,r1,r17
000f40e0: 98244608 lwr r4,0x4608(r1)
000f40e4: 3c018012 lui r1,0x8012
000f40e8: 00310821 addu r1,r1,r17
000f40ec: 8825460f lwl r5,0x460f(r1)
000f40f0: 3c018012 lui r1,0x8012
000f40f4: 00310821 addu r1,r1,r17
000f40f8: 9825460c lwr r5,0x460c(r1)
000f40fc: 3c018012 lui r1,0x8012
000f4100: 00310821 addu r1,r1,r17
000f4104: 88264613 lwl r6,0x4613(r1)
000f4108: 3c018012 lui r1,0x8012
000f410c: 00310821 addu r1,r1,r17
000f4110: 98264610 lwr r6,0x4610(r1)
000f4114: 3c01800f lui r1,0x800f
000f4118: 00220821 addu r1,r1,r2
000f411c: a8237a63 swl r3,0x7a63(r1)
000f4120: 3c01800f lui r1,0x800f
000f4124: 00220821 addu r1,r1,r2
000f4128: b8237a60 swr r3,0x7a60(r1)
000f412c: 3c01800f lui r1,0x800f
000f4130: 00220821 addu r1,r1,r2
000f4134: a8247a67 swl r4,0x7a67(r1)
000f4138: 3c01800f lui r1,0x800f
000f413c: 00220821 addu r1,r1,r2
000f4140: b8247a64 swr r4,0x7a64(r1)
000f4144: 3c01800f lui r1,0x800f
000f4148: 00220821 addu r1,r1,r2
000f414c: a8257a6b swl r5,0x7a6b(r1)
000f4150: 3c01800f lui r1,0x800f
000f4154: 00220821 addu r1,r1,r2
000f4158: b8257a68 swr r5,0x7a68(r1)
000f415c: 3c01800f lui r1,0x800f
000f4160: 00220821 addu r1,r1,r2
000f4164: a8267a6f swl r6,0x7a6f(r1)
000f4168: 3c01800f lui r1,0x800f
000f416c: 00220821 addu r1,r1,r2
000f4170: b8267a6c swr r6,0x7a6c(r1)
000f4174: 3c018012 lui r1,0x8012
000f4178: 00310821 addu r1,r1,r17
000f417c: 88234617 lwl r3,0x4617(r1)
000f4180: 3c018012 lui r1,0x8012
000f4184: 00310821 addu r1,r1,r17
000f4188: 98234614 lwr r3,0x4614(r1)
000f418c: 3c01800f lui r1,0x800f
000f4190: 00220821 addu r1,r1,r2
000f4194: a8237a73 swl r3,0x7a73(r1)
000f4198: 3c01800f lui r1,0x800f
000f419c: 00220821 addu r1,r1,r2
000f41a0: b8237a70 swr r3,0x7a70(r1)
000f41a4: 0803d074 j 0x000f41d0
000f41a8: 26520014 addiu r18,r18,0x0014
000f41ac: 92430000 lbu r3,0x0000(r18)
000f41b0: 00000000 nop
000f41b4: 00031080 sll r2,r3,0x02
000f41b8: 00431021 addu r2,r2,r3
000f41bc: 00021080 sll r2,r2,0x02
000f41c0: 3c01800f lui r1,0x800f
000f41c4: 00220821 addu r1,r1,r2
000f41c8: a0207a65 sb r0,0x7a65(r1)
000f41cc: 26520014 addiu r18,r18,0x0014		#increment GNS pointers
000f41d0: 26310014 addiu r17,r17,0x0014
000f41d4: 92420000 lbu r2,0x0000(r18)			#load header
000f41d8: 00000000 nop
000f41dc: 2c420080 sltiu r2,r2,0x0080
000f41e0: 1440ff6c bne r2,r0,0x000f3f94		#loop whilst still not 80
000f41e4: 26730014 addiu r19,r19,0x0014		#increment GNS
000f41e8: 0803d2a8 j 0x000f4aa0
000f41ec: 00000000 nop
# deep dark loading new mesh?
000f41f0: 0c0111b2 jal 0x000446c8			#000446c8 - 000446d4 returns r2 = whatever is at 0x8004eaf8 (file currently busy loading?)
000f41f4: 00000000 nop
000f41f8: 14400229 bne r2,r0,0x000f4aa0		#branch if isn't 0
000f41fc: 00000000 nop
000f4200: 3c038010 lui r3,0x8010
000f4204: 8c63bdf4 lw r3,-0x420c(r3)                   #map file type to load index
000f4208: 00000000 nop
000f420c: 00031080 sll r2,r3,0x02
000f4210: 00431021 addu r2,r2,r3
000f4214: 00021080 sll r2,r2,0x02                      # index * 0x14
000f4218: 3c01800f lui r1,0x800f
000f421c: 00220821 addu r1,r1,r2
000f4220: 90247a65 lbu r4,0x7a65(r1)
000f4224: 00000000 nop
000f4228: 14800004 bne r4,r0,0x000f423c                # branch if file exists that wants to be loaded
000f422c: 2482ffee addiu r2,r4,0xffee                  # 
000f4230: 2c620031 sltiu r2,r3,0x0031
000f4234: 14400004 bne r2,r0,0x000f4248                # loop for all 0x31 file types. most of which don't exist but whatever.
000f4238: 2482ffee addiu r2,r4,0xffee
000f423c: 2c420006 sltiu r2,r2,0x0006                  # 
000f4240: 10400009 beq r2,r0,0x000f4268                # branch if not texture resource file
000f4244: 00000000 nop
000f4248: 3c028010 lui r2,0x8010
000f424c: 8c42bdf4 lw r2,-0x420c(r2)
000f4250: 00000000 nop
000f4254: 24420001 addiu r2,r2,0x0001
000f4258: 3c018010 lui r1,0x8010
000f425c: ac22bdf4 sw r2,-0x420c(r1)
000f4260: 0803d080 j 0x000f4200
000f4264: 00000000 nop
000f4268: 3c038010 lui r3,0x8010
000f426c: 8c63bdf4 lw r3,-0x420c(r3)
000f4270: 00000000 nop
000f4274: 2c620031 sltiu r2,r3,0x0031                  # set if haven't looped 0x31 times
000f4278: 10400019 beq r2,r0,0x000f42e0
000f427c: 3402001b ori r2,r0,0x001b
000f4280: 14620005 bne r3,r2,0x000f4298                # branch if != 0x1b
000f4284: 00000000 nop
000f4288: 3c048012 lui r4,0x8012
000f428c: 8c841ffc lw r4,0x1ffc(r4)
000f4290: 0c0088bb jal 0x000222ec                      # bzero(0x80121ffc*,0x280)
000f4294: 34050280 ori r5,r0,0x0280
000f4298: 3c04800e lui r4,0x800e
000f429c: 24847160 addiu r4,r4,0x7160
000f42a0: 3c02800f lui r2,0x800f
000f42a4: 24427a66 addiu r2,r2,0x7a66                  # map file-to-load data
000f42a8: 3c078010 lui r7,0x8010
000f42ac: 8ce7bdf4 lw r7,-0x420c(r7)                   # file index
000f42b0: 3c068012 lui r6,0x8012
000f42b4: 8cc61ffc lw r6,0x1ffc(r6)                    # where to load file into
000f42b8: 00072880 sll r5,r7,0x02                      # 
000f42bc: 00a72821 addu r5,r5,r7
000f42c0: 00052880 sll r5,r5,0x02                      # index * 0x14
000f42c4: 0c03cdb1 jal 0x000f36c4                      # store data to load map file 000f36c4 - 000f3714
000f42c8: 00a22821 addu r5,r5,r2                       # pointer to map's file data (like LBA sector & file size)
000f42cc: 34020078 ori r2,r0,0x0078
000f42d0: 3c01800f lui r1,0x800f
000f42d4: ac225c5c sw r2,0x5c5c(r1)
000f42d8: 0803d2a8 j 0x000f4aa0
000f42dc: 00000000 nop


000f42e0: 3c10800f lui r16,0x800f
000f42e4: 26107bcd addiu r16,r16,0x7bcd
000f42e8: 92020000 lbu r2,0x0000(r16)
000f42ec: 00000000 nop
000f42f0: 10400005 beq r2,r0,0x000f4308
000f42f4: 34040002 ori r4,r0,0x0002
000f42f8: 0c011280 jal 0x00044a00
000f42fc: 340503cb ori r5,r0,0x03cb
000f4300: 0803d2a8 j 0x000f4aa0
000f4304: a2000000 sb r0,0x0000(r16)
000f4308: 3c02800f lui r2,0x800f
000f430c: 90427be1 lbu r2,0x7be1(r2)
000f4310: 00000000 nop
000f4314: 10400012 beq r2,r0,0x000f4360
000f4318: 26050015 addiu r5,r16,0x0015
000f431c: 3c04800e lui r4,0x800e
000f4320: 24847160 addiu r4,r4,0x7160
000f4324: 34070013 ori r7,r0,0x0013
000f4328: 3c028012 lui r2,0x8012
000f432c: 8c421ffc lw r2,0x1ffc(r2)
000f4330: 34068000 ori r6,r0,0x8000
000f4334: 3c01800f lui r1,0x800f
000f4338: a0207be1 sb r0,0x7be1(r1)
000f433c: 0c03cdb1 jal 0x000f36c4
000f4340: 00463021 addu r6,r2,r6
000f4344: 34020001 ori r2,r0,0x0001
000f4348: 3c01800f lui r1,0x800f
000f434c: a0226cbc sb r2,0x6cbc(r1)
000f4350: 3c01800f lui r1,0x800f
000f4354: a0226cb4 sb r2,0x6cb4(r1)
000f4358: 0803d2a8 j 0x000f4aa0
000f435c: 00000000 nop
000f4360: 3c02800f lui r2,0x800f
000f4364: 90427bf5 lbu r2,0x7bf5(r2)
000f4368: 00000000 nop
000f436c: 10400012 beq r2,r0,0x000f43b8
000f4370: 26050029 addiu r5,r16,0x0029
000f4374: 3c04800e lui r4,0x800e
000f4378: 24847160 addiu r4,r4,0x7160
000f437c: 34070014 ori r7,r0,0x0014
000f4380: 3c028012 lui r2,0x8012
000f4384: 8c421ffc lw r2,0x1ffc(r2)
000f4388: 3c060001 lui r6,0x0001
000f438c: 3c01800f lui r1,0x800f
000f4390: a0207bf5 sb r0,0x7bf5(r1)
000f4394: 0c03cdb1 jal 0x000f36c4
000f4398: 00463021 addu r6,r2,r6
000f439c: 34020001 ori r2,r0,0x0001
000f43a0: 3c01800f lui r1,0x800f
000f43a4: a0226cc0 sb r2,0x6cc0(r1)
000f43a8: 3c01800f lui r1,0x800f
000f43ac: a0226cb4 sb r2,0x6cb4(r1)
000f43b0: 0803d2a8 j 0x000f4aa0
000f43b4: 00000000 nop
000f43b8: 3c02800f lui r2,0x800f
000f43bc: 90427c09 lbu r2,0x7c09(r2)
000f43c0: 00000000 nop
000f43c4: 10400013 beq r2,r0,0x000f4414
000f43c8: 3c020001 lui r2,0x0001
000f43cc: 34428000 ori r2,r2,0x8000
000f43d0: 3c04800e lui r4,0x800e
000f43d4: 24847160 addiu r4,r4,0x7160
000f43d8: 2605003d addiu r5,r16,0x003d
000f43dc: 3c068012 lui r6,0x8012
000f43e0: 8cc61ffc lw r6,0x1ffc(r6)
000f43e4: 34070015 ori r7,r0,0x0015
000f43e8: 3c01800f lui r1,0x800f
000f43ec: a0207c09 sb r0,0x7c09(r1)
000f43f0: 0c03cdb1 jal 0x000f36c4
000f43f4: 00c23021 addu r6,r6,r2
000f43f8: 34020001 ori r2,r0,0x0001
000f43fc: 3c01800f lui r1,0x800f
000f4400: a0226cc4 sb r2,0x6cc4(r1)
000f4404: 3c01800f lui r1,0x800f
000f4408: a0226cb4 sb r2,0x6cb4(r1)
000f440c: 0803d2a8 j 0x000f4aa0
000f4410: 00000000 nop
000f4414: 3c02800f lui r2,0x800f
000f4418: 90427c1d lbu r2,0x7c1d(r2)
000f441c: 00000000 nop
000f4420: 10400012 beq r2,r0,0x000f446c
000f4424: 26050051 addiu r5,r16,0x0051
000f4428: 3c04800e lui r4,0x800e
000f442c: 24847160 addiu r4,r4,0x7160
000f4430: 34070016 ori r7,r0,0x0016
000f4434: 3c028012 lui r2,0x8012
000f4438: 8c421ffc lw r2,0x1ffc(r2)
000f443c: 3c060002 lui r6,0x0002
000f4440: 3c01800f lui r1,0x800f
000f4444: a0207c1d sb r0,0x7c1d(r1)
000f4448: 0c03cdb1 jal 0x000f36c4
000f444c: 00463021 addu r6,r2,r6
000f4450: 34020001 ori r2,r0,0x0001
000f4454: 3c01800f lui r1,0x800f
000f4458: a0226cc8 sb r2,0x6cc8(r1)
000f445c: 3c01800f lui r1,0x800f
000f4460: a0226cb4 sb r2,0x6cb4(r1)
000f4464: 0803d2a8 j 0x000f4aa0
000f4468: 00000000 nop
000f446c: 3c02800f lui r2,0x800f
000f4470: 90427c31 lbu r2,0x7c31(r2)
000f4474: 00000000 nop
000f4478: 10400019 beq r2,r0,0x000f44e0
000f447c: 26050065 addiu r5,r16,0x0065
000f4480: 3c04800e lui r4,0x800e
000f4484: 24847160 addiu r4,r4,0x7160
000f4488: 3c068012 lui r6,0x8012
000f448c: 8cc61ffc lw r6,0x1ffc(r6)
000f4490: 3c01800f lui r1,0x800f
000f4494: a0207c31 sb r0,0x7c31(r1)
000f4498: 0c03cdb1 jal 0x000f36c4
000f449c: 34070017 ori r7,r0,0x0017
000f44a0: 34020001 ori r2,r0,0x0001
000f44a4: 3c01800f lui r1,0x800f
000f44a8: a0226cbc sb r2,0x6cbc(r1)
000f44ac: 3c01800f lui r1,0x800f
000f44b0: a0226cc0 sb r2,0x6cc0(r1)
000f44b4: 3c01800f lui r1,0x800f
000f44b8: a0226cc4 sb r2,0x6cc4(r1)
000f44bc: 3c01800f lui r1,0x800f
000f44c0: a0226cc8 sb r2,0x6cc8(r1)
000f44c4: 3c01800f lui r1,0x800f
000f44c8: a0226cb4 sb r2,0x6cb4(r1)
000f44cc: 34020092 ori r2,r0,0x0092
000f44d0: 3c01800f lui r1,0x800f
000f44d4: ac225c5c sw r2,0x5c5c(r1)
000f44d8: 0803d2a8 j 0x000f4aa0
000f44dc: 00000000 nop
000f44e0: 3c028012 lui r2,0x8012
000f44e4: 90424609 lbu r2,0x4609(r2)
000f44e8: 00000000 nop
000f44ec: 2c420080 sltiu r2,r2,0x0080
000f44f0: 1040000c beq r2,r0,0x000f4524
000f44f4: 00008021 addu r16,r0,r0
000f44f8: 3c038012 lui r3,0x8012
000f44fc: 24634609 addiu r3,r3,0x4609
000f4500: 90620000 lbu r2,0x0000(r3)
000f4504: 00000000 nop
000f4508: 10400006 beq r2,r0,0x000f4524
000f450c: 24630014 addiu r3,r3,0x0014
000f4510: 90620000 lbu r2,0x0000(r3)
000f4514: 00000000 nop
000f4518: 2c420080 sltiu r2,r2,0x0080
000f451c: 1440fff8 bne r2,r0,0x000f4500
000f4520: 26100001 addiu r16,r16,0x0001
000f4524: 26100001 addiu r16,r16,0x0001
000f4528: 00101080 sll r2,r16,0x02
000f452c: 00501021 addu r2,r2,r16
000f4530: 00021080 sll r2,r2,0x02
000f4534: 3c038012 lui r3,0x8012
000f4538: 24634604 addiu r3,r3,0x4604
000f453c: 00431021 addu r2,r2,r3
000f4540: 3c018010 lui r1,0x8010
000f4544: ac22bdf4 sw r2,-0x420c(r1)
000f4548: 90420005 lbu r2,0x0005(r2)
000f454c: 00000000 nop
000f4550: 1040000c beq r2,r0,0x000f4584
000f4554: 34020077 ori r2,r0,0x0077
000f4558: 3c058010 lui r5,0x8010
000f455c: 8ca5bdf4 lw r5,-0x420c(r5)
000f4560: 0c03cd31 jal 0x000f34c4
000f4564: 34040002 ori r4,r0,0x0002
000f4568: 3c028010 lui r2,0x8010
000f456c: 8c42bdf4 lw r2,-0x420c(r2)
000f4570: 00000000 nop
000f4574: 90420005 lbu r2,0x0005(r2)
000f4578: 00000000 nop
000f457c: 1440fff6 bne r2,r0,0x000f4558
000f4580: 34020077 ori r2,r0,0x0077
000f4584: 3c01800f lui r1,0x800f
000f4588: ac205c58 sw r0,0x5c58(r1)
000f458c: 3c01800f lui r1,0x800f
000f4590: ac225c5c sw r2,0x5c5c(r1)
000f4594: 0c03babe jal 0x000eeaf8
000f4598: 3404008b ori r4,r0,0x008b
000f459c: 3c048012 lui r4,0x8012
000f45a0: 8c841ffc lw r4,0x1ffc(r4)
000f45a4: 0c011180 jal 0x00044600
000f45a8: 00000000 nop
000f45ac: 0803d2a8 j 0x000f4aa0
000f45b0: 00000000 nop
000f45b4: 2c620020 sltiu r2,r3,0x0020			#set if 0x74 <= map data < 0x94
000f45b8: 10400139 beq r2,r0,0x000f4aa0		#branch if map data => 0x94
000f45bc: 00031080 sll r2,r3,0x02			#r3 word pointer
000f45c0: 3c01800e lui r1,0x800e
000f45c4: 00220821 addu r1,r1,r2
000f45c8: 8c227220 lw r2,0x7220(r1)			#load address; 0x74 leads to 0x800f45d8, 0x78 to 0x800f4674, 0x79 to 0x800f4898, 0x92 to 0x800f47f8, 0x93 to 0x800f4848. everything else goes to 0x800f41a0.
000f45cc: 00000000 nop
000f45d0: 00400008 jr r2				#0x1f clears snowy weather if any(?)
000f45d4: 00000000 nop
000f45d8: 0c0111b2 jal 0x000446c8
000f45dc: 00000000 nop
000f45e0: 1440012f bne r2,r0,0x000f4aa0
000f45e4: 00000000 nop
000f45e8: 00008021 addu r16,r0,r0
000f45ec: 3c078012 lui r7,0x8012
000f45f0: 8ce71ffc lw r7,0x1ffc(r7)
000f45f4: 3c068012 lui r6,0x8012
000f45f8: 24c64604 addiu r6,r6,0x4604
000f45fc: 3c01800f lui r1,0x800f
000f4600: ac205c5c sw r0,0x5c5c(r1)
000f4604: 88e20003 lwl r2,0x0003(r7)
000f4608: 98e20000 lwr r2,0x0000(r7)
000f460c: 88e30007 lwl r3,0x0007(r7)
000f4610: 98e30004 lwr r3,0x0004(r7)
000f4614: 88e4000b lwl r4,0x000b(r7)
000f4618: 98e40008 lwr r4,0x0008(r7)
000f461c: 88e5000f lwl r5,0x000f(r7)
000f4620: 98e5000c lwr r5,0x000c(r7)
000f4624: a8c20003 swl r2,0x0003(r6)
000f4628: b8c20000 swr r2,0x0000(r6)
000f462c: a8c30007 swl r3,0x0007(r6)
000f4630: b8c30004 swr r3,0x0004(r6)
000f4634: a8c4000b swl r4,0x000b(r6)
000f4638: b8c40008 swr r4,0x0008(r6)
000f463c: a8c5000f swl r5,0x000f(r6)
000f4640: b8c5000c swr r5,0x000c(r6)
000f4644: 88e20013 lwl r2,0x0013(r7)
000f4648: 98e20010 lwr r2,0x0010(r7)
000f464c: 00000000 nop
000f4650: a8c20013 swl r2,0x0013(r6)
000f4654: b8c20010 swr r2,0x0010(r6)
000f4658: 24c60014 addiu r6,r6,0x0014
000f465c: 26100001 addiu r16,r16,0x0001
000f4660: 2a020096 slti r2,r16,0x0096
000f4664: 1440ffe7 bne r2,r0,0x000f4604
000f4668: 24e70014 addiu r7,r7,0x0014
000f466c: 0803d2a8 j 0x000f4aa0
000f4670: 00000000 nop
000f4674: 0c0111b2 jal 0x000446c8
000f4678: 00000000 nop
000f467c: 14400108 bne r2,r0,0x000f4aa0
000f4680: 00000000 nop
000f4684: 3c02800f lui r2,0x800f
000f4688: 90425c54 lbu r2,0x5c54(r2)			#?
000f468c: 00000000 nop
000f4690: 14400105 bne r2,r0,0x000f4aa8		#branch if is not 0
000f4694: 3402009b ori r2,r0,0x009b			#r2 = 0x9b
000f4698: 3c058012 lui r5,0x8012
000f469c: 8ca51ffc lw r5,0x1ffc(r5)			#Start of map GNS data
000f46a0: 3c038010 lui r3,0x8010
000f46a4: 8c63bdf4 lw r3,-0x420c(r3)			#?
000f46a8: 3c01800f lui r1,0x800f
000f46ac: ac205c5c sw r0,0x5c5c(r1)			#0
000f46b0: 00031080 sll r2,r3,0x02			#r3 * 4
000f46b4: 00431021 addu r2,r2,r3			#r3 * 5
000f46b8: 00021080 sll r2,r2,0x02			#r3 * 0x14 (0d20)
000f46bc: 3c01800f lui r1,0x800f
000f46c0: 00220821 addu r1,r1,r2
000f46c4: 90247a65 lbu r4,0x7a65(r1)			#0x800f7a65 + 0x14 (load something initialised as input...?)
000f46c8: 0c03c9af jal 0x000f26bc			#000f26bc - 000f34c0 
000f46cc: 00000000 nop
000f46d0: 3c038010 lui r3,0x8010
000f46d4: 8c63bdf4 lw r3,-0x420c(r3)
000f46d8: 00000000 nop
000f46dc: 00031080 sll r2,r3,0x02
000f46e0: 00431021 addu r2,r2,r3
000f46e4: 00021080 sll r2,r2,0x02
000f46e8: 3c01800f lui r1,0x800f
000f46ec: 00220821 addu r1,r1,r2
000f46f0: 88237a63 lwl r3,0x7a63(r1)
000f46f4: 3c01800f lui r1,0x800f
000f46f8: 00220821 addu r1,r1,r2
000f46fc: 98237a60 lwr r3,0x7a60(r1)
000f4700: 3c01800f lui r1,0x800f
000f4704: 00220821 addu r1,r1,r2
000f4708: 88247a67 lwl r4,0x7a67(r1)
000f470c: 3c01800f lui r1,0x800f
000f4710: 00220821 addu r1,r1,r2
000f4714: 98247a64 lwr r4,0x7a64(r1)
000f4718: 3c01800f lui r1,0x800f
000f471c: 00220821 addu r1,r1,r2
000f4720: 88257a6b lwl r5,0x7a6b(r1)
000f4724: 3c01800f lui r1,0x800f
000f4728: 00220821 addu r1,r1,r2
000f472c: 98257a68 lwr r5,0x7a68(r1)
000f4730: 3c01800f lui r1,0x800f
000f4734: 00220821 addu r1,r1,r2
000f4738: 88267a6f lwl r6,0x7a6f(r1)
000f473c: 3c01800f lui r1,0x800f
000f4740: 00220821 addu r1,r1,r2
000f4744: 98267a6c lwr r6,0x7a6c(r1)
000f4748: 3c018010 lui r1,0x8010
000f474c: 00220821 addu r1,r1,r2
000f4750: a823a6c3 swl r3,-0x593d(r1)
000f4754: 3c018010 lui r1,0x8010
000f4758: 00220821 addu r1,r1,r2
000f475c: b823a6c0 swr r3,-0x5940(r1)
000f4760: 3c018010 lui r1,0x8010
000f4764: 00220821 addu r1,r1,r2
000f4768: a824a6c7 swl r4,-0x5939(r1)
000f476c: 3c018010 lui r1,0x8010
000f4770: 00220821 addu r1,r1,r2
000f4774: b824a6c4 swr r4,-0x593c(r1)
000f4778: 3c018010 lui r1,0x8010
000f477c: 00220821 addu r1,r1,r2
000f4780: a825a6cb swl r5,-0x5935(r1)
000f4784: 3c018010 lui r1,0x8010
000f4788: 00220821 addu r1,r1,r2
000f478c: b825a6c8 swr r5,-0x5938(r1)
000f4790: 3c018010 lui r1,0x8010
000f4794: 00220821 addu r1,r1,r2
000f4798: a826a6cf swl r6,-0x5931(r1)
000f479c: 3c018010 lui r1,0x8010
000f47a0: 00220821 addu r1,r1,r2
000f47a4: b826a6cc swr r6,-0x5934(r1)
000f47a8: 3c01800f lui r1,0x800f
000f47ac: 00220821 addu r1,r1,r2
000f47b0: 88237a73 lwl r3,0x7a73(r1)
000f47b4: 3c01800f lui r1,0x800f
000f47b8: 00220821 addu r1,r1,r2
000f47bc: 98237a70 lwr r3,0x7a70(r1)
000f47c0: 3c018010 lui r1,0x8010
000f47c4: 00220821 addu r1,r1,r2
000f47c8: a823a6d3 swl r3,-0x592d(r1)
000f47cc: 3c018010 lui r1,0x8010
000f47d0: 00220821 addu r1,r1,r2
000f47d4: b823a6d0 swr r3,-0x5930(r1)
000f47d8: 3c028010 lui r2,0x8010
000f47dc: 8c42bdf4 lw r2,-0x420c(r2)
000f47e0: 00000000 nop
000f47e4: 24420001 addiu r2,r2,0x0001
000f47e8: 3c018010 lui r1,0x8010
000f47ec: ac22bdf4 sw r2,-0x420c(r1)
000f47f0: 0803d2a8 j 0x000f4aa0
000f47f4: 00000000 nop
000f47f8: 0c0111b2 jal 0x000446c8
000f47fc: 00000000 nop
000f4800: 144000a7 bne r2,r0,0x000f4aa0
000f4804: 00000000 nop
000f4808: 3c02800f lui r2,0x800f
000f480c: 90426aac lbu r2,0x6aac(r2)
000f4810: 00000000 nop
000f4814: 10400006 beq r2,r0,0x000f4830
000f4818: 34020093 ori r2,r0,0x0093
000f481c: 3c05800f lui r5,0x800f
000f4820: 24a56a7c addiu r5,r5,0x6a7c
000f4824: 0c03c9af jal 0x000f26bc
000f4828: 34040032 ori r4,r0,0x0032
000f482c: 34020093 ori r2,r0,0x0093
000f4830: 3c01800f lui r1,0x800f
000f4834: a0206aac sb r0,0x6aac(r1)
000f4838: 3c01800f lui r1,0x800f
000f483c: ac225c5c sw r2,0x5c5c(r1)
000f4840: 0803d2a8 j 0x000f4aa0
000f4844: 00000000 nop
000f4848: 3c02800f lui r2,0x800f
000f484c: 90426cb4 lbu r2,0x6cb4(r2)
000f4850: 00000000 nop
000f4854: 10400005 beq r2,r0,0x000f486c
000f4858: 00000000 nop
000f485c: 3c058012 lui r5,0x8012
000f4860: 8ca51ffc lw r5,0x1ffc(r5)			#GNS pointer
000f4864: 0c03c9af jal 0x000f26bc			#parse clear weather to weather update
000f4868: 34040017 ori r4,r0,0x0017			#r4 = clear snowy weather (?)
000f486c: 3c02800f lui r2,0x800f
000f4870: 90426cb0 lbu r2,0x6cb0(r2)
000f4874: 00000000 nop
000f4878: 10400087 beq r2,r0,0x000f4a98
000f487c: 00000000 nop
000f4880: 3c05800f lui r5,0x800f
000f4884: 24a56ab0 addiu r5,r5,0x6ab0
000f4888: 0c03c9af jal 0x000f26bc
000f488c: 34040033 ori r4,r0,0x0033
000f4890: 0803d2a6 j 0x000f4a98
000f4894: 00000000 nop
000f4898: 3c03800f lui r3,0x800f
000f489c: 8c637980 lw r3,0x7980(r3)
000f48a0: 3c028012 lui r2,0x8012
000f48a4: 8c42a2d4 lw r2,-0x5d2c(r2)
000f48a8: 00000000 nop
000f48ac: 1062007c beq r3,r2,0x000f4aa0
000f48b0: 00000000 nop
000f48b4: 00008021 addu r16,r0,r0
000f48b8: 00008821 addu r17,r0,r0
000f48bc: 3c12800f lui r18,0x800f
000f48c0: 26527994 addiu r18,r18,0x7994
000f48c4: 3c01800f lui r1,0x800f
000f48c8: ac207984 sw r0,0x7984(r1)
000f48cc: 3c01800f lui r1,0x800f
000f48d0: ac207988 sw r0,0x7988(r1)
000f48d4: 3c01800f lui r1,0x800f
000f48d8: ac20798c sw r0,0x798c(r1)
000f48dc: 3c01800f lui r1,0x800f
000f48e0: ac207990 sw r0,0x7990(r1)
000f48e4: 8e440000 lw r4,0x0000(r18)
000f48e8: 00000000 nop
000f48ec: 10800003 beq r4,r0,0x000f48fc
000f48f0: 26520004 addiu r18,r18,0x0004
000f48f4: 0c03d55e jal 0x000f5578
000f48f8: 00000000 nop
000f48fc: 3c018010 lui r1,0x8010
000f4900: 00310821 addu r1,r1,r17
000f4904: 9424be90 lhu r4,-0x4170(r1)
000f4908: 3c018010 lui r1,0x8010
000f490c: 00310821 addu r1,r1,r17
000f4910: 9425be92 lhu r5,-0x416e(r1)
000f4914: 3c018010 lui r1,0x8010
000f4918: 00310821 addu r1,r1,r17
000f491c: 9426be94 lhu r6,-0x416c(r1)
000f4920: 3c018010 lui r1,0x8010
000f4924: 00310821 addu r1,r1,r17
000f4928: 9427be96 lhu r7,-0x416a(r1)
000f492c: 3c02800f lui r2,0x800f
000f4930: 8c427984 lw r2,0x7984(r2)
000f4934: 3c03800f lui r3,0x800f
000f4938: 8c637988 lw r3,0x7988(r3)
000f493c: 00822021 addu r4,r4,r2
000f4940: 00a32821 addu r5,r5,r3
000f4944: 3c02800f lui r2,0x800f
000f4948: 8c42798c lw r2,0x798c(r2)
000f494c: 3c03800f lui r3,0x800f
000f4950: 8c637990 lw r3,0x7990(r3)
000f4954: 26100001 addiu r16,r16,0x0001
000f4958: 3c01800f lui r1,0x800f
000f495c: ac247984 sw r4,0x7984(r1)
000f4960: 3c01800f lui r1,0x800f
000f4964: ac257988 sw r5,0x7988(r1)
000f4968: 00c23021 addu r6,r6,r2
000f496c: 00e33821 addu r7,r7,r3
000f4970: 2a020009 slti r2,r16,0x0009
000f4974: 3c01800f lui r1,0x800f
000f4978: ac26798c sw r6,0x798c(r1)
000f497c: 3c01800f lui r1,0x800f
000f4980: ac277990 sw r7,0x7990(r1)
000f4984: 1440ffd7 bne r2,r0,0x000f48e4
000f4988: 26310098 addiu r17,r17,0x0098
000f498c: 34020091 ori r2,r0,0x0091
000f4990: 3c01800f lui r1,0x800f
000f4994: ac225c5c sw r2,0x5c5c(r1)
000f4998: 0803d2a8 j 0x000f4aa0
000f499c: 00000000 nop
000f49a0: 3c03800f lui r3,0x800f
000f49a4: 8c637980 lw r3,0x7980(r3)
000f49a8: 3c028012 lui r2,0x8012
000f49ac: 8c42a2d4 lw r2,-0x5d2c(r2)
000f49b0: 00000000 nop
000f49b4: 1062003a beq r3,r2,0x000f4aa0
000f49b8: 00000000 nop
000f49bc: 00008021 addu r16,r0,r0
000f49c0: 00008821 addu r17,r0,r0
000f49c4: 3c12800f lui r18,0x800f
000f49c8: 26527994 addiu r18,r18,0x7994
000f49cc: 3c01800f lui r1,0x800f
000f49d0: ac207984 sw r0,0x7984(r1)
000f49d4: 3c01800f lui r1,0x800f
000f49d8: ac207988 sw r0,0x7988(r1)
000f49dc: 3c01800f lui r1,0x800f
000f49e0: ac20798c sw r0,0x798c(r1)
000f49e4: 3c01800f lui r1,0x800f
000f49e8: ac207990 sw r0,0x7990(r1)
000f49ec: 8e440000 lw r4,0x0000(r18)
000f49f0: 00000000 nop
000f49f4: 10800003 beq r4,r0,0x000f4a04
000f49f8: 26100001 addiu r16,r16,0x0001
000f49fc: 0c03d55e jal 0x000f5578
000f4a00: 00000000 nop
000f4a04: ae400000 sw r0,0x0000(r18)
000f4a08: 3c018010 lui r1,0x8010
000f4a0c: 00310821 addu r1,r1,r17
000f4a10: 9424be90 lhu r4,-0x4170(r1)
000f4a14: 3c018010 lui r1,0x8010
000f4a18: 00310821 addu r1,r1,r17
000f4a1c: 9425be92 lhu r5,-0x416e(r1)
000f4a20: 3c018010 lui r1,0x8010
000f4a24: 00310821 addu r1,r1,r17
000f4a28: 9426be94 lhu r6,-0x416c(r1)
000f4a2c: 3c018010 lui r1,0x8010
000f4a30: 00310821 addu r1,r1,r17
000f4a34: 9427be96 lhu r7,-0x416a(r1)
000f4a38: 26310098 addiu r17,r17,0x0098
000f4a3c: 3c02800f lui r2,0x800f
000f4a40: 8c427984 lw r2,0x7984(r2)
000f4a44: 3c03800f lui r3,0x800f
000f4a48: 8c637988 lw r3,0x7988(r3)
000f4a4c: 00822021 addu r4,r4,r2
000f4a50: 00a32821 addu r5,r5,r3
000f4a54: 3c02800f lui r2,0x800f
000f4a58: 8c42798c lw r2,0x798c(r2)
000f4a5c: 3c03800f lui r3,0x800f
000f4a60: 8c637990 lw r3,0x7990(r3)
000f4a64: 3c01800f lui r1,0x800f
000f4a68: ac247984 sw r4,0x7984(r1)
000f4a6c: 3c01800f lui r1,0x800f
000f4a70: ac257988 sw r5,0x7988(r1)
000f4a74: 00c23021 addu r6,r6,r2
000f4a78: 00e33821 addu r7,r7,r3
000f4a7c: 2a020009 slti r2,r16,0x0009
000f4a80: 3c01800f lui r1,0x800f
000f4a84: ac26798c sw r6,0x798c(r1)
000f4a88: 3c01800f lui r1,0x800f
000f4a8c: ac277990 sw r7,0x7990(r1)
000f4a90: 1440ffd6 bne r2,r0,0x000f49ec
000f4a94: 26520004 addiu r18,r18,0x0004
000f4a98: 3c01800f lui r1,0x800f
000f4a9c: ac205c5c sw r0,0x5c5c(r1)
000f4aa0: 3c02800f lui r2,0x800f
000f4aa4: 8c425c58 lw r2,0x5c58(r2)			#return r2 = whatever is at 0x800f5c58
000f4aa8: 8fbf0024 lw r31,0x0024(r29)
000f4aac: 8fb40020 lw r20,0x0020(r29)
000f4ab0: 8fb3001c lw r19,0x001c(r29)
000f4ab4: 8fb20018 lw r18,0x0018(r29)
000f4ab8: 8fb10014 lw r17,0x0014(r29)
000f4abc: 8fb00010 lw r16,0x0010(r29)
000f4ac0: 27bd0028 addiu r29,r29,0x0028
000f4ac4: 03e00008 jr r31
000f4ac8: 00000000 nop