Difference between revisions of "Composite frame loading for parameter sets"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with "<font face='Courier New'> 001aa1f8: 27bdff80 addiu r29,r29,0xff80 001aa1fc: afb40070 sw r20,0x0070(r29) 001aa200: 00a0a021 addu r20,r5,r0 001aa204: afb50074 sw r21,0x007...")
 
m (links)
Line 192: Line 192:
 
  001aa4d0: 3c10800a lui r16,0x800a
 
  001aa4d0: 3c10800a lui r16,0x800a
 
  001aa4d4: 26108a24 addiu r16,r16,0x8a24 80098a24 (matrix elements)
 
  001aa4d4: 26108a24 addiu r16,r16,0x8a24 80098a24 (matrix elements)
  001aa4d8: 0c00742a jal 0x0001d0a8 store rotation matrix elements
+
  001aa4d8: 0c00742a jal 0x0001d0a8             [[Store_Rotation_matrix_elements_to_GTE]]
 
  001aa4dc: 02002021 addu r4,r16,r0
 
  001aa4dc: 02002021 addu r4,r16,r0
  001aa4e0: 0c00744e jal 0x0001d138 store translation vectors
+
  001aa4e0: 0c00744e jal 0x0001d138 [[Store_Translation_Vectors_to_GTE]]
 
  001aa4e4: 02002021 addu r4,r16,r0
 
  001aa4e4: 02002021 addu r4,r16,r0
 
  001aa4e8: 9622000c lhu r2,0x000c(r17) load ??
 
  001aa4e8: 9622000c lhu r2,0x000c(r17) load ??
Line 288: Line 288:
 
  001aa650: 3c10800a lui r16,0x800a
 
  001aa650: 3c10800a lui r16,0x800a
 
  001aa654: 26108a24 addiu r16,r16,0x8a24
 
  001aa654: 26108a24 addiu r16,r16,0x8a24
  001aa658: 0c00742a jal 0x0001d0a8
+
  001aa658: 0c00742a jal 0x0001d0a8               [[Store_Rotation_matrix_elements_to_GTE]]
 
  001aa65c: 02002021 addu r4,r16,r0
 
  001aa65c: 02002021 addu r4,r16,r0
  001aa660: 0c00744e jal 0x0001d138
+
  001aa660: 0c00744e jal 0x0001d138               [[Store_Translation_Vectors_to_GTE]]
 
  001aa664: 02002021 addu r4,r16,r0
 
  001aa664: 02002021 addu r4,r16,r0
 
  001aa668: 9622000c lhu r2,0x000c(r17)
 
  001aa668: 9622000c lhu r2,0x000c(r17)

Revision as of 12:00, 17 January 2022

001aa1f8: 27bdff80 addiu r29,r29,0xff80
001aa1fc: afb40070 sw r20,0x0070(r29)
001aa200: 00a0a021 addu r20,r5,r0
001aa204: afb50074 sw r21,0x0074(r29)
001aa208: 00c0a821 addu r21,r6,r0
001aa20c: afb60078 sw r22,0x0078(r29)
001aa210: afb10064 sw r17,0x0064(r29)
001aa214: 00808821 addu r17,r4,r0
001aa218: afbf007c sw r31,0x007c(r29)
001aa21c: afb3006c sw r19,0x006c(r29)
001aa220: afb20068 sw r18,0x0068(r29)
001aa224: afb00060 sw r16,0x0060(r29)
001aa228: 96220016 lhu r2,0x0016(r17)		load duration byte
001aa22c: 8e260020 lw r6,0x0020(r17)
001aa230: 2442fffe addiu r2,r2,0xfffe		duration byte - 2
001aa234: a6220016 sh r2,0x0016(r17)		store new
001aa238: 00021400 sll r2,r2,0x10		
001aa23c: 1c40005a bgtz r2,0x001aa3a8		branch if still running parameter
001aa240: 00e0b021 addu r22,r7,r0
if getting new parameter
001aa244: 9622001c lhu r2,0x001c(r17)		load counter
001aa248: 8e230018 lw r3,0x0018(r17)		load address
001aa24c: 00000000 nop
001aa250: 00622021 addu r4,r3,r2
001aa254: 90830000 lbu r3,0x0000(r4)		load new frame byte
001aa258: 00000000 nop
001aa25c: 30620080 andi r2,r3,0x0080		
001aa260: 1440001d bne r2,r0,0x001aa2d8		branch if special function
001aa264: 34020002 ori r2,r0,0x0002
001aa268: 9222001f lbu r2,0x001f(r17)		load current frame byte
001aa26c: 00000000 nop
001aa270: 10430005 beq r2,r3,0x001aa288		branch if = to new frame?
001aa274: 00000000 nop
001aa278: 96220006 lhu r2,0x0006(r17)
001aa27c: a223001f sb r3,0x001f(r17)		store new frame
001aa280: 34420001 ori r2,r2,0x0001
001aa284: a6220006 sh r2,0x0006(r17)		set changing frame flag
001aa288: 9622001c lhu r2,0x001c(r17)
001aa28c: 8e230018 lw r3,0x0018(r17)		load current set address
001aa290: 00000000 nop
001aa294: 00431021 addu r2,r2,r3		add em
001aa298: 90440001 lbu r4,0x0001(r2)		load duration byte
001aa29c: 9622001c lhu r2,0x001c(r17)		load counter?
001aa2a0: 8e230018 lw r3,0x0018(r17)		load address
001aa2a4: 00000000 nop
001aa2a8: 00431021 addu r2,r2,r3
001aa2ac: a6240016 sh r4,0x0016(r17)		store duration byte
001aa2b0: 90420002 lbu r2,0x0002(r2)		load 3rd byte
001aa2b4: 86230016 lh r3,0x0016(r17)		load duration byte
001aa2b8: 00000000 nop
001aa2bc: 1060003a beq r3,r0,0x001aa3a8		branch if 0
001aa2c0: a2220014 sb r2,0x0014(r17)
001aa2c4: 9622001c lhu r2,0x001c(r17)
001aa2c8: 00000000 nop
001aa2cc: 24420003 addiu r2,r2,0x0003		increment counter
001aa2d0: 0806a8ea j 0x001aa3a8
001aa2d4: a622001c sh r2,0x001c(r17)		store new counter
	Special function
001aa2d8: 3063007f andi r3,r3,0x007f		remove 0x80 byte
001aa2dc: 1062000e beq r3,r2,0x001aa318		branch if = 2
001aa2e0: 28620003 slti r2,r3,0x0003
001aa2e4: 10400005 beq r2,r0,0x001aa2fc		branch if not 1 or 0
001aa2e8: 34020001 ori r2,r0,0x0001
001aa2ec: 10620008 beq r3,r2,0x001aa310		branch if = 1
001aa2f0: 00000000 nop
001aa2f4: 0806a891 j 0x001aa244
001aa2f8: 00000000 nop
if not 1 or 0
001aa2fc: 34020003 ori r2,r0,0x0003
001aa300: 10620016 beq r3,r2,0x001aa35c		branch if = 3
001aa304: 00000000 nop
001aa308: 0806a891 j 0x001aa244
001aa30c: 00000000 nop
	if = 1 (end of parameter set)
001aa310: 0806a891 j 0x001aa244			get next parameter
001aa314: a620001c sh r0,0x001c(r17)		store new counter = 0
	if special function = 2 (start of new parameter set)
001aa318: 90830002 lbu r3,0x0002(r4)		load 0x02
001aa31c: 90820001 lbu r2,0x0001(r4)		load 0x01
001aa320: 9624001c lhu r4,0x001c(r17)		load counter
001aa324: 8e250018 lw r5,0x0018(r17)		load address
001aa328: 00031a00 sll r3,r3,0x08		0x02 shifted left
001aa32c: 00431021 addu r2,r2,r3		add to 0x01
001aa330: 00852021 addu r4,r4,r5		counter + address
001aa334: a6220008 sh r2,0x0008(r17)		store 0x02, 0x01
001aa338: 90850003 lbu r5,0x0003(r4)		load 0x03
001aa33c: 9622001c lhu r2,0x001c(r17)		load counter
001aa340: 90830004 lbu r3,0x0004(r4)		load 0x04
001aa344: 24420005 addiu r2,r2,0x0005		counter+5
001aa348: 00031a00 sll r3,r3,0x08
001aa34c: 00a32821 addu r5,r5,r3
001aa350: a622001c sh r2,0x001c(r17)
001aa354: 0806a891 j 0x001aa244			get next parameter
001aa358: a625000a sh r5,0x000a(r17)
001aa35c: 90820001 lbu r2,0x0001(r4)		load next byte
001aa360: 96230008 lhu r3,0x0008(r17)		load first half of header
001aa364: 9624001c lhu r4,0x001c(r17)		load counter
001aa368: 8e250018 lw r5,0x0018(r17)		load address
001aa36c: 00021600 sll r2,r2,0x18		
001aa370: 00021603 sra r2,r2,0x18
001aa374: 00431021 addu r2,r2,r3		half of header + next byte
001aa378: 9623001c lhu r3,0x001c(r17)		load counter
001aa37c: 00852021 addu r4,r4,r5		counter + address
001aa380: a6220008 sh r2,0x0008(r17)		store half of header + next byte
001aa384: 90820002 lbu r2,0x0002(r4)		load 3rd byte
001aa388: 24630003 addiu r3,r3,0x0003		counter+3
001aa38c: 00021600 sll r2,r2,0x18
001aa390: a623001c sh r3,0x001c(r17)		store new counter
001aa394: 9623000a lhu r3,0x000a(r17)		load 2nd half of header
001aa398: 00021603 sra r2,r2,0x18
001aa39c: 00431021 addu r2,r2,r3		header + 3rd byte
001aa3a0: 0806a891 j 0x001aa244			get next parameter
001aa3a4: a622000a sh r2,0x000a(r17)		store
001aa3a8: 96220006 lhu r2,0x0006(r17)		
001aa3ac: 00000000 nop
001aa3b0: 30420001 andi r2,r2,0x0001
001aa3b4: 10400030 beq r2,r0,0x001aa478		branch if not changing to new frame
001aa3b8: 00000000 nop
001aa3bc: 9223001e lbu r3,0x001e(r17)		load 1e
001aa3c0: 3c04801c lui r4,0x801c
001aa3c4: 8c84bf78 lw r4,-0x4088(r4)		start of frame data address
001aa3c8: 9222001f lbu r2,0x001f(r17)		load current frame byte
001aa3cc: 00831821 addu r3,r4,r3		frame data address + 0x1e
001aa3d0: 84630000 lh r3,0x0000(r3)		load 2
001aa3d4: 00021040 sll r2,r2,0x01		current frame*2
001aa3d8: 00431021 addu r2,r2,r3		current frame*2 + 2
001aa3dc: 00821021 addu r2,r4,r2		start of frame data + frame address pointer
001aa3e0: 94420000 lhu r2,0x0000(r2)		load address pointer
001aa3e4: 00000000 nop
001aa3e8: 00449821 addu r19,r2,r4		r19 = frame address
001aa3ec: 86700002 lh r16,0x0002(r19)		load 0x02 of frame data
001aa3f0: 90c20003 lbu r2,0x0003(r6)		load ?? r6 = 1d17d8
001aa3f4: 00000000 nop
001aa3f8: 10500007 beq r2,r16,0x001aa418	branch if equal
001aa3fc: 02009021 addu r18,r16,r0
001aa400: 0c0694ad jal 0x001a52b4		???
001aa404: 00c02021 addu r4,r6,r0
001aa408: 0c06948b jal 0x001a522c		???
001aa40c: 324400ff andi r4,r18,0x00ff
001aa410: 00403021 addu r6,r2,r0
001aa414: ae260020 sw r6,0x0020(r17)		store return
001aa418: 1a000013 blez r16,0x001aa468		branch if 0x03 in frame data <= 0
001aa41c: 00002821 addu r5,r0,r0		r5 = counter
001aa420: 02003821 addu r7,r16,r0
001aa424: 00051c00 sll r3,r5,0x10
001aa428: 00031c03 sra r3,r3,0x10
001aa42c: 00032080 sll r4,r3,0x02		counter*4
001aa430: 00862021 addu r4,r4,r6		counter*4 + address
001aa434: 00031040 sll r2,r3,0x01		counter*2
001aa438: 00431021 addu r2,r2,r3		counter*3
001aa43c: 000210c0 sll r2,r2,0x03		counter*24
001aa440: 24420004 addiu r2,r2,0x0004		counter*24 + 04 (
001aa444: 02621021 addu r2,r19,r2		r2 = next frames address?
001aa448: ac820008 sw r2,0x0008(r4)		store next frames address in counter*4 + address + 0x08
001aa44c: 24a20001 addiu r2,r5,0x0001		counter++
001aa450: 00402821 addu r5,r2,r0
001aa454: 00021400 sll r2,r2,0x10
001aa458: 00021403 sra r2,r2,0x10
001aa45c: 0047102a slt r2,r2,r7
001aa460: 1440fff1 bne r2,r0,0x001aa428
001aa464: 00051c00 sll r3,r5,0x10
001aa468: 96220006 lhu r2,0x0006(r17)		
001aa46c: 00000000 nop
001aa470: 3042fffe andi r2,r2,0xfffe		remove changing to new frame byte
001aa474: a6220006 sh r2,0x0006(r17)
if not changing frames
001aa478: a0d40000 sb r20,0x0000(r6)		store r5 input
001aa47c: a0d50001 sb r21,0x0001(r6)		store r6 input
001aa480: a0d60002 sb r22,0x0002(r6)		store r7 input
001aa484: 96220006 lhu r2,0x0006(r17)		load function byte
001aa488: 00000000 nop
001aa48c: 30430006 andi r3,r2,0x0006
001aa490: 34020002 ori r2,r0,0x0002
001aa494: 1062004c beq r3,r2,0x001aa5c8		branch if 0x02
001aa498: 28620003 slti r2,r3,0x0003
001aa49c: 10400005 beq r2,r0,0x001aa4b4		branch if not 0x00 or 0x01
001aa4a0: 00000000 nop
001aa4a4: 1060000a beq r3,r0,0x001aa4d0		branch if 0
001aa4a8: 00000000 nop
if invalid?
001aa4ac: 0806a9e6 j 0x001aa798
001aa4b0: 00000000 nop
001aa4b4: 34020004 ori r2,r0,0x0004
001aa4b8: 10620065 beq r3,r2,0x001aa650		branch if 4
001aa4bc: 34020006 ori r2,r0,0x0006
001aa4c0: 10620098 beq r3,r2,0x001aa724		branch if 6
001aa4c4: 00000000 nop
001aa4c8: 0806a9e6 j 0x001aa798
001aa4cc: 00000000 nop
001aa4d0: 3c10800a lui r16,0x800a
001aa4d4: 26108a24 addiu r16,r16,0x8a24		80098a24 (matrix elements)
001aa4d8: 0c00742a jal 0x0001d0a8              Store_Rotation_matrix_elements_to_GTE
001aa4dc: 02002021 addu r4,r16,r0
001aa4e0: 0c00744e jal 0x0001d138		Store_Translation_Vectors_to_GTE 
001aa4e4: 02002021 addu r4,r16,r0
001aa4e8: 9622000c lhu r2,0x000c(r17)		load ??
001aa4ec: 96230008 lhu r3,0x0008(r17)		load first half of header/special function
001aa4f0: 27a40018 addiu r4,r29,0x0018
001aa4f4: 00431021 addu r2,r2,r3		?? + header/special function
001aa4f8: a7a20018 sh r2,0x0018(r29)		store on stack
001aa4fc: 9622000e lhu r2,0x000e(r17)		load ??
001aa500: 9623000a lhu r3,0x000a(r17)		load special function/header
001aa504: 27a50028 addiu r5,r29,0x0028
001aa508: 00431021 addu r2,r2,r3		add them
001aa50c: a7a2001a sh r2,0x001a(r29)		store on stack
001aa510: 96220010 lhu r2,0x0010(r17)		load ??
001aa514: 27a60034 addiu r6,r29,0x0034
001aa518: 0c00755e jal 0x0001d578		
001aa51c: a7a2001c sh r2,0x001c(r29)		store on stack
001aa520: 8fa20030 lw r2,0x0030(r29)		load ??
001aa524: 92230014 lbu r3,0x0014(r17)		load current 3rd byte in parameter
001aa528: 00022083 sra r4,r2,0x02		
001aa52c: 2463ffff addiu r3,r3,0xffff		decrement
001aa530: 2c620005 sltiu r2,r3,0x0005		set if less than 5
001aa534: 10400010 beq r2,r0,0x001aa578		branch if not
001aa538: 00031080 sll r2,r3,0x02		3rd byte*4
001aa53c: 3c01801a lui r1,0x801a
001aa540: 00220821 addu r1,r1,r2
001aa544: 8c220e34 lw r2,0x0e34(r1)		load return address
001aa548: 00000000 nop
001aa54c: 00400008 jr r2
001aa550: 00000000 nop
001aa554: 0806a95e j 0x001aa578
001aa558: 2484fff8 addiu r4,r4,0xfff8		?? - 8
001aa55c: 0806a95e j 0x001aa578
001aa560: 34040008 ori r4,r0,0x0008		?? = 8
001aa564: 0806a95e j 0x001aa578
001aa568: 3404017e ori r4,r0,0x017e		?? = 17e
001aa56c: 0806a95e j 0x001aa578
001aa570: 34040010 ori r4,r0,0x0010		?? = 10
001aa574: 2484fff0 addiu r4,r4,0xfff0		?? - 10
001aa578: 04800087 bltz r4,0x001aa798
001aa57c: 2882017f slti r2,r4,0x017f
001aa580: 14400002 bne r2,r0,0x001aa58c
001aa584: 27a50050 addiu r5,r29,0x0050
001aa588: 3404017e ori r4,r0,0x017e
001aa58c: 97a20028 lhu r2,0x0028(r29)
001aa590: 97a3002c lhu r3,0x002c(r29)
001aa594: a7a20050 sh r2,0x0050(r29)
001aa598: 00041080 sll r2,r4,0x02
001aa59c: a7a30052 sh r3,0x0052(r29)
001aa5a0: 3c03801c lui r3,0x801c
001aa5a4: 8c63c088 lw r3,-0x3f78(r3)
001aa5a8: 86260012 lh r6,0x0012(r17)
001aa5ac: 00431021 addu r2,r2,r3
001aa5b0: afa20010 sw r2,0x0010(r29)
001aa5b4: 8e240020 lw r4,0x0020(r17)
001aa5b8: 3c07800c lui r7,0x800c
001aa5bc: 24e77ca0 addiu r7,r7,0x7ca0
001aa5c0: 0806a9e4 j 0x001aa790
001aa5c4: 00000000 nop
001aa5c8: 9622000c lhu r2,0x000c(r17)
001aa5cc: 96230008 lhu r3,0x0008(r17)
001aa5d0: 3c04800a lui r4,0x800a
001aa5d4: 94848a38 lhu r4,-0x75c8(r4)
001aa5d8: 00431021 addu r2,r2,r3
001aa5dc: 00441021 addu r2,r2,r4
001aa5e0: a7a20050 sh r2,0x0050(r29)
001aa5e4: 9622000e lhu r2,0x000e(r17)
001aa5e8: 9623000a lhu r3,0x000a(r17)
001aa5ec: 3c04800a lui r4,0x800a
001aa5f0: 94848a3c lhu r4,-0x75c4(r4)
001aa5f4: 00431021 addu r2,r2,r3
001aa5f8: 00441021 addu r2,r2,r4
001aa5fc: a7a20052 sh r2,0x0052(r29)
001aa600: 86240010 lh r4,0x0010(r17)
001aa604: 00000000 nop
001aa608: 04810003 bgez r4,0x001aa618
001aa60c: 2882017f slti r2,r4,0x017f
001aa610: 00002021 addu r4,r0,r0
001aa614: 2882017f slti r2,r4,0x017f
001aa618: 14400002 bne r2,r0,0x001aa624
001aa61c: 27a50050 addiu r5,r29,0x0050
001aa620: 3404017e ori r4,r0,0x017e
001aa624: 00041080 sll r2,r4,0x02
001aa628: 3c03801c lui r3,0x801c
001aa62c: 8c63c088 lw r3,-0x3f78(r3)
001aa630: 86260012 lh r6,0x0012(r17)
001aa634: 00431021 addu r2,r2,r3
001aa638: afa20010 sw r2,0x0010(r29)
001aa63c: 8e240020 lw r4,0x0020(r17)
001aa640: 3c07800c lui r7,0x800c
001aa644: 24e77ca0 addiu r7,r7,0x7ca0
001aa648: 0806a9e4 j 0x001aa790
001aa64c: 00000000 nop
001aa650: 3c10800a lui r16,0x800a
001aa654: 26108a24 addiu r16,r16,0x8a24
001aa658: 0c00742a jal 0x0001d0a8               Store_Rotation_matrix_elements_to_GTE
001aa65c: 02002021 addu r4,r16,r0
001aa660: 0c00744e jal 0x0001d138               Store_Translation_Vectors_to_GTE
001aa664: 02002021 addu r4,r16,r0
001aa668: 9622000c lhu r2,0x000c(r17)
001aa66c: 96230008 lhu r3,0x0008(r17)
001aa670: 27a40018 addiu r4,r29,0x0018
001aa674: 00431021 addu r2,r2,r3
001aa678: a7a20018 sh r2,0x0018(r29)
001aa67c: 9622000e lhu r2,0x000e(r17)
001aa680: 9623000a lhu r3,0x000a(r17)
001aa684: 27a50028 addiu r5,r29,0x0028
001aa688: 00431021 addu r2,r2,r3
001aa68c: a7a2001a sh r2,0x001a(r29)
001aa690: 96220010 lhu r2,0x0010(r17)
001aa694: 27a60034 addiu r6,r29,0x0034
001aa698: 0c00755e jal 0x0001d578
001aa69c: a7a2001c sh r2,0x001c(r29)
001aa6a0: 8fa20030 lw r2,0x0030(r29)
001aa6a4: 92230014 lbu r3,0x0014(r17)
001aa6a8: 00022083 sra r4,r2,0x02
001aa6ac: 2463ffff addiu r3,r3,0xffff
001aa6b0: 2c620005 sltiu r2,r3,0x0005
001aa6b4: 10400010 beq r2,r0,0x001aa6f8
001aa6b8: 00031080 sll r2,r3,0x02
001aa6bc: 3c01801a lui r1,0x801a
001aa6c0: 00220821 addu r1,r1,r2
001aa6c4: 8c220e4c lw r2,0x0e4c(r1)
001aa6c8: 00000000 nop
001aa6cc: 00400008 jr r2
001aa6d0: 00000000 nop
001aa6d4: 0806a9be j 0x001aa6f8
001aa6d8: 2484fff8 addiu r4,r4,0xfff8
001aa6dc: 0806a9be j 0x001aa6f8
001aa6e0: 34040008 ori r4,r0,0x0008
001aa6e4: 0806a9be j 0x001aa6f8
001aa6e8: 3404017e ori r4,r0,0x017e
001aa6ec: 0806a9be j 0x001aa6f8
001aa6f0: 34040010 ori r4,r0,0x0010
001aa6f4: 2484fff0 addiu r4,r4,0xfff0
001aa6f8: 04800027 bltz r4,0x001aa798
001aa6fc: 2882017f slti r2,r4,0x017f
001aa700: 14400002 bne r2,r0,0x001aa70c
001aa704: 27a50050 addiu r5,r29,0x0050
001aa708: 3404017e ori r4,r0,0x017e
001aa70c: 97a20028 lhu r2,0x0028(r29)
001aa710: 97a3002c lhu r3,0x002c(r29)
001aa714: a7a20050 sh r2,0x0050(r29)
001aa718: 00041080 sll r2,r4,0x02
001aa71c: 0806a9dd j 0x001aa774
001aa720: a7a30052 sh r3,0x0052(r29)
001aa724: 9622000c lhu r2,0x000c(r17)
001aa728: 96230008 lhu r3,0x0008(r17)
001aa72c: 00000000 nop
001aa730: 00431021 addu r2,r2,r3
001aa734: a7a20050 sh r2,0x0050(r29)
001aa738: 9622000e lhu r2,0x000e(r17)
001aa73c: 9623000a lhu r3,0x000a(r17)
001aa740: 00000000 nop
001aa744: 00431021 addu r2,r2,r3
001aa748: a7a20052 sh r2,0x0052(r29)
001aa74c: 86240010 lh r4,0x0010(r17)
001aa750: 00000000 nop
001aa754: 04810003 bgez r4,0x001aa764
001aa758: 2882017f slti r2,r4,0x017f
001aa75c: 00002021 addu r4,r0,r0
001aa760: 2882017f slti r2,r4,0x017f
001aa764: 14400002 bne r2,r0,0x001aa770
001aa768: 27a50050 addiu r5,r29,0x0050
001aa76c: 3404017e ori r4,r0,0x017e
001aa770: 00041080 sll r2,r4,0x02
001aa774: 3c03801c lui r3,0x801c
001aa778: 8c63c088 lw r3,-0x3f78(r3)
001aa77c: 86260012 lh r6,0x0012(r17)
001aa780: 00431021 addu r2,r2,r3
001aa784: afa20010 sw r2,0x0010(r29)
001aa788: 8e240020 lw r4,0x0020(r17)
001aa78c: 00003821 addu r7,r0,r0
001aa790: 0c0694e5 jal 0x001a5394
001aa794: 00000000 nop
001aa798: 8fbf007c lw r31,0x007c(r29)
001aa79c: 8fb60078 lw r22,0x0078(r29)
001aa7a0: 8fb50074 lw r21,0x0074(r29)
001aa7a4: 8fb40070 lw r20,0x0070(r29)
001aa7a8: 8fb3006c lw r19,0x006c(r29)
001aa7ac: 8fb20068 lw r18,0x0068(r29)
001aa7b0: 8fb10064 lw r17,0x0064(r29)
001aa7b4: 8fb00060 lw r16,0x0060(r29)
001aa7b8: 27bd0080 addiu r29,r29,0x0080
001aa7bc: 03e00008 jr r31
001aa7c0: 00000000 nop