#include #include "constants.h" #include "game/data/data_000000.h" #include "game/data/data_0083d0.h" #include "game/data/data_00e460.h" #include "game/data/data_0160b0.h" #include "game/data/data_01a3a0.h" #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" #include "types.h" GLOBAL_ASM( glabel func0004b170 /* 4b170: 10c0001a */ beqz $a2,.L0004b1dc /* 4b174: 00a03825 */ or $a3,$a1,$zero /* 4b178: 10850018 */ beq $a0,$a1,.L0004b1dc /* 4b17c: 00a4082a */ slt $at,$a1,$a0 /* 4b180: 54200008 */ bnezl $at,.L0004b1a4 /* 4b184: 28c10010 */ slti $at,$a2,0x10 /* 4b188: 00861020 */ add $v0,$a0,$a2 /* 4b18c: 00a2082a */ slt $at,$a1,$v0 /* 4b190: 50200004 */ beqzl $at,.L0004b1a4 /* 4b194: 28c10010 */ slti $at,$a2,0x10 /* 4b198: 1000005b */ b .L0004b308 /* 4b19c: 28c10010 */ slti $at,$a2,0x10 /* 4b1a0: 28c10010 */ slti $at,$a2,0x10 .L0004b1a4: /* 4b1a4: 14200005 */ bnez $at,.L0004b1bc /* 4b1a8: 00000000 */ nop /* 4b1ac: 30820003 */ andi $v0,$a0,0x3 /* 4b1b0: 30a30003 */ andi $v1,$a1,0x3 /* 4b1b4: 1043000b */ beq $v0,$v1,.L0004b1e4 /* 4b1b8: 00000000 */ nop .L0004b1bc: /* 4b1bc: 10c00007 */ beqz $a2,.L0004b1dc /* 4b1c0: 00000000 */ nop /* 4b1c4: 00861821 */ addu $v1,$a0,$a2 .L0004b1c8: /* 4b1c8: 80820000 */ lb $v0,0x0($a0) /* 4b1cc: 24840001 */ addiu $a0,$a0,0x1 /* 4b1d0: 24a50001 */ addiu $a1,$a1,0x1 /* 4b1d4: 1483fffc */ bne $a0,$v1,.L0004b1c8 /* 4b1d8: a0a2ffff */ sb $v0,-0x1($a1) .L0004b1dc: /* 4b1dc: 03e00008 */ jr $ra /* 4b1e0: 00e01025 */ or $v0,$a3,$zero .L0004b1e4: /* 4b1e4: 10400018 */ beqz $v0,.L0004b248 /* 4b1e8: 24010001 */ addiu $at,$zero,0x1 /* 4b1ec: 1041000f */ beq $v0,$at,.L0004b22c /* 4b1f0: 24010002 */ addiu $at,$zero,0x2 /* 4b1f4: 50410008 */ beql $v0,$at,.L0004b218 /* 4b1f8: 84820000 */ lh $v0,0x0($a0) /* 4b1fc: 80820000 */ lb $v0,0x0($a0) /* 4b200: 24840001 */ addiu $a0,$a0,0x1 /* 4b204: 24a50001 */ addiu $a1,$a1,0x1 /* 4b208: 24c6ffff */ addiu $a2,$a2,-1 /* 4b20c: 1000000e */ b .L0004b248 /* 4b210: a0a2ffff */ sb $v0,-0x1($a1) /* 4b214: 84820000 */ lh $v0,0x0($a0) .L0004b218: /* 4b218: 24840002 */ addiu $a0,$a0,0x2 /* 4b21c: 24a50002 */ addiu $a1,$a1,0x2 /* 4b220: 24c6fffe */ addiu $a2,$a2,-2 /* 4b224: 10000008 */ b .L0004b248 /* 4b228: a4a2fffe */ sh $v0,-0x2($a1) .L0004b22c: /* 4b22c: 80820000 */ lb $v0,0x0($a0) /* 4b230: 84830001 */ lh $v1,0x1($a0) /* 4b234: 24840003 */ addiu $a0,$a0,0x3 /* 4b238: 24a50003 */ addiu $a1,$a1,0x3 /* 4b23c: 24c6fffd */ addiu $a2,$a2,-3 /* 4b240: a0a2fffd */ sb $v0,-0x3($a1) /* 4b244: a4a3fffe */ sh $v1,-0x2($a1) .L0004b248: /* 4b248: 28c10020 */ slti $at,$a2,0x20 /* 4b24c: 54200016 */ bnezl $at,.L0004b2a8 /* 4b250: 28c10010 */ slti $at,$a2,0x10 /* 4b254: 8c820000 */ lw $v0,0x0($a0) /* 4b258: 8c830004 */ lw $v1,0x4($a0) /* 4b25c: 8c880008 */ lw $t0,0x8($a0) /* 4b260: 8c89000c */ lw $t1,0xc($a0) /* 4b264: 8c8a0010 */ lw $t2,0x10($a0) /* 4b268: 8c8b0014 */ lw $t3,0x14($a0) /* 4b26c: 8c8c0018 */ lw $t4,0x18($a0) /* 4b270: 8c8d001c */ lw $t5,0x1c($a0) /* 4b274: 24840020 */ addiu $a0,$a0,0x20 /* 4b278: 24a50020 */ addiu $a1,$a1,0x20 /* 4b27c: 24c6ffe0 */ addiu $a2,$a2,-32 /* 4b280: aca2ffe0 */ sw $v0,-0x20($a1) /* 4b284: aca3ffe4 */ sw $v1,-0x1c($a1) /* 4b288: aca8ffe8 */ sw $t0,-0x18($a1) /* 4b28c: aca9ffec */ sw $t1,-0x14($a1) /* 4b290: acaafff0 */ sw $t2,-0x10($a1) /* 4b294: acabfff4 */ sw $t3,-0xc($a1) /* 4b298: acacfff8 */ sw $t4,-0x8($a1) /* 4b29c: 1000ffea */ b .L0004b248 /* 4b2a0: acadfffc */ sw $t5,-0x4($a1) .L0004b2a4: /* 4b2a4: 28c10010 */ slti $at,$a2,0x10 .L0004b2a8: /* 4b2a8: 5420000e */ bnezl $at,.L0004b2e4 /* 4b2ac: 28c10004 */ slti $at,$a2,0x4 /* 4b2b0: 8c820000 */ lw $v0,0x0($a0) /* 4b2b4: 8c830004 */ lw $v1,0x4($a0) /* 4b2b8: 8c880008 */ lw $t0,0x8($a0) /* 4b2bc: 8c89000c */ lw $t1,0xc($a0) /* 4b2c0: 24840010 */ addiu $a0,$a0,0x10 /* 4b2c4: 24a50010 */ addiu $a1,$a1,0x10 /* 4b2c8: 24c6fff0 */ addiu $a2,$a2,-16 /* 4b2cc: aca2fff0 */ sw $v0,-0x10($a1) /* 4b2d0: aca3fff4 */ sw $v1,-0xc($a1) /* 4b2d4: aca8fff8 */ sw $t0,-0x8($a1) /* 4b2d8: 1000fff2 */ b .L0004b2a4 /* 4b2dc: aca9fffc */ sw $t1,-0x4($a1) .L0004b2e0: /* 4b2e0: 28c10004 */ slti $at,$a2,0x4 .L0004b2e4: /* 4b2e4: 1420ffb5 */ bnez $at,.L0004b1bc /* 4b2e8: 00000000 */ nop /* 4b2ec: 8c820000 */ lw $v0,0x0($a0) /* 4b2f0: 24840004 */ addiu $a0,$a0,0x4 /* 4b2f4: 24a50004 */ addiu $a1,$a1,0x4 /* 4b2f8: 24c6fffc */ addiu $a2,$a2,-4 /* 4b2fc: 1000fff8 */ b .L0004b2e0 /* 4b300: aca2fffc */ sw $v0,-0x4($a1) /* 4b304: 28c10010 */ slti $at,$a2,0x10 .L0004b308: /* 4b308: 00862020 */ add $a0,$a0,$a2 /* 4b30c: 14200005 */ bnez $at,.L0004b324 /* 4b310: 00a62820 */ add $a1,$a1,$a2 /* 4b314: 30820003 */ andi $v0,$a0,0x3 /* 4b318: 30a30003 */ andi $v1,$a1,0x3 /* 4b31c: 1043000d */ beq $v0,$v1,.L0004b354 /* 4b320: 00000000 */ nop .L0004b324: /* 4b324: 10c0ffad */ beqz $a2,.L0004b1dc /* 4b328: 00000000 */ nop /* 4b32c: 2484ffff */ addiu $a0,$a0,-1 /* 4b330: 24a5ffff */ addiu $a1,$a1,-1 /* 4b334: 00861823 */ subu $v1,$a0,$a2 .L0004b338: /* 4b338: 80820000 */ lb $v0,0x0($a0) /* 4b33c: 2484ffff */ addiu $a0,$a0,-1 /* 4b340: 24a5ffff */ addiu $a1,$a1,-1 /* 4b344: 1483fffc */ bne $a0,$v1,.L0004b338 /* 4b348: a0a20001 */ sb $v0,0x1($a1) /* 4b34c: 03e00008 */ jr $ra /* 4b350: 00e01025 */ or $v0,$a3,$zero .L0004b354: /* 4b354: 10400018 */ beqz $v0,.L0004b3b8 /* 4b358: 24010003 */ addiu $at,$zero,0x3 /* 4b35c: 1041000f */ beq $v0,$at,.L0004b39c /* 4b360: 24010002 */ addiu $at,$zero,0x2 /* 4b364: 50410008 */ beql $v0,$at,.L0004b388 /* 4b368: 8482fffe */ lh $v0,-0x2($a0) /* 4b36c: 8082ffff */ lb $v0,-0x1($a0) /* 4b370: 2484ffff */ addiu $a0,$a0,-1 /* 4b374: 24a5ffff */ addiu $a1,$a1,-1 /* 4b378: 24c6ffff */ addiu $a2,$a2,-1 /* 4b37c: 1000000e */ b .L0004b3b8 /* 4b380: a0a20000 */ sb $v0,0x0($a1) /* 4b384: 8482fffe */ lh $v0,-0x2($a0) .L0004b388: /* 4b388: 2484fffe */ addiu $a0,$a0,-2 /* 4b38c: 24a5fffe */ addiu $a1,$a1,-2 /* 4b390: 24c6fffe */ addiu $a2,$a2,-2 /* 4b394: 10000008 */ b .L0004b3b8 /* 4b398: a4a20000 */ sh $v0,0x0($a1) .L0004b39c: /* 4b39c: 8082ffff */ lb $v0,-0x1($a0) /* 4b3a0: 8483fffd */ lh $v1,-0x3($a0) /* 4b3a4: 2484fffd */ addiu $a0,$a0,-3 /* 4b3a8: 24a5fffd */ addiu $a1,$a1,-3 /* 4b3ac: 24c6fffd */ addiu $a2,$a2,-3 /* 4b3b0: a0a20002 */ sb $v0,0x2($a1) /* 4b3b4: a4a30000 */ sh $v1,0x0($a1) .L0004b3b8: /* 4b3b8: 28c10020 */ slti $at,$a2,0x20 /* 4b3bc: 54200016 */ bnezl $at,.L0004b418 /* 4b3c0: 28c10010 */ slti $at,$a2,0x10 /* 4b3c4: 8c82fffc */ lw $v0,-0x4($a0) /* 4b3c8: 8c83fff8 */ lw $v1,-0x8($a0) /* 4b3cc: 8c88fff4 */ lw $t0,-0xc($a0) /* 4b3d0: 8c89fff0 */ lw $t1,-0x10($a0) /* 4b3d4: 8c8affec */ lw $t2,-0x14($a0) /* 4b3d8: 8c8bffe8 */ lw $t3,-0x18($a0) /* 4b3dc: 8c8cffe4 */ lw $t4,-0x1c($a0) /* 4b3e0: 8c8dffe0 */ lw $t5,-0x20($a0) /* 4b3e4: 2484ffe0 */ addiu $a0,$a0,-32 /* 4b3e8: 24a5ffe0 */ addiu $a1,$a1,-32 /* 4b3ec: 24c6ffe0 */ addiu $a2,$a2,-32 /* 4b3f0: aca2001c */ sw $v0,0x1c($a1) /* 4b3f4: aca30018 */ sw $v1,0x18($a1) /* 4b3f8: aca80014 */ sw $t0,0x14($a1) /* 4b3fc: aca90010 */ sw $t1,0x10($a1) /* 4b400: acaa000c */ sw $t2,0xc($a1) /* 4b404: acab0008 */ sw $t3,0x8($a1) /* 4b408: acac0004 */ sw $t4,0x4($a1) /* 4b40c: 1000ffea */ b .L0004b3b8 /* 4b410: acad0000 */ sw $t5,0x0($a1) .L0004b414: /* 4b414: 28c10010 */ slti $at,$a2,0x10 .L0004b418: /* 4b418: 5420000e */ bnezl $at,.L0004b454 /* 4b41c: 28c10004 */ slti $at,$a2,0x4 /* 4b420: 8c82fffc */ lw $v0,-0x4($a0) /* 4b424: 8c83fff8 */ lw $v1,-0x8($a0) /* 4b428: 8c88fff4 */ lw $t0,-0xc($a0) /* 4b42c: 8c89fff0 */ lw $t1,-0x10($a0) /* 4b430: 2484fff0 */ addiu $a0,$a0,-16 /* 4b434: 24a5fff0 */ addiu $a1,$a1,-16 /* 4b438: 24c6fff0 */ addiu $a2,$a2,-16 /* 4b43c: aca2000c */ sw $v0,0xc($a1) /* 4b440: aca30008 */ sw $v1,0x8($a1) /* 4b444: aca80004 */ sw $t0,0x4($a1) /* 4b448: 1000fff2 */ b .L0004b414 /* 4b44c: aca90000 */ sw $t1,0x0($a1) .L0004b450: /* 4b450: 28c10004 */ slti $at,$a2,0x4 .L0004b454: /* 4b454: 1420ffb3 */ bnez $at,.L0004b324 /* 4b458: 00000000 */ nop /* 4b45c: 8c82fffc */ lw $v0,-0x4($a0) /* 4b460: 2484fffc */ addiu $a0,$a0,-4 /* 4b464: 24a5fffc */ addiu $a1,$a1,-4 /* 4b468: 24c6fffc */ addiu $a2,$a2,-4 /* 4b46c: 1000fff8 */ b .L0004b450 /* 4b470: aca20000 */ sw $v0,0x0($a1) /* 4b474: 00000000 */ nop /* 4b478: 00000000 */ nop /* 4b47c: 00000000 */ nop );