.set noat # allow manual use of $at .set noreorder # don't insert nops after branches glabel osPfsReadWriteFile /* 43BE0 800687E0 27BDFEA0 */ addiu $sp, $sp, -0x160 /* 43BE4 800687E4 AFB60158 */ sw $s6, 0x158($sp) /* 43BE8 800687E8 8FB60170 */ lw $s6, 0x170($sp) /* 43BEC 800687EC AFB00140 */ sw $s0, 0x140($sp) /* 43BF0 800687F0 00808021 */ addu $s0, $a0, $zero /* 43BF4 800687F4 AFB50154 */ sw $s5, 0x154($sp) /* 43BF8 800687F8 00A0A821 */ addu $s5, $a1, $zero /* 43BFC 800687FC AFB10144 */ sw $s1, 0x144($sp) /* 43C00 80068800 00E08821 */ addu $s1, $a3, $zero /* 43C04 80068804 AFBF015C */ sw $ra, 0x15c($sp) /* 43C08 80068808 AFB40150 */ sw $s4, 0x150($sp) /* 43C0C 8006880C AFB3014C */ sw $s3, 0x14c($sp) /* 43C10 80068810 AFB20148 */ sw $s2, 0x148($sp) /* 43C14 80068814 8E020050 */ lw $v0, 0x50($s0) /* 43C18 80068818 00151FC2 */ srl $v1, $s5, 0x1f /* 43C1C 8006881C 02A2102A */ slt $v0, $s5, $v0 /* 43C20 80068820 38420001 */ xori $v0, $v0, 1 /* 43C24 80068824 00431025 */ or $v0, $v0, $v1 /* 43C28 80068828 1440003F */ bnez $v0, .L80068928 /* 43C2C 8006882C 00C0A021 */ addu $s4, $a2, $zero /* 43C30 80068830 1AC0003D */ blez $s6, .L80068928 /* 43C34 80068834 32C2001F */ andi $v0, $s6, 0x1f /* 43C38 80068838 544000EF */ bnel $v0, $zero, .L80068BF8 /* 43C3C 8006883C 24020005 */ addiu $v0, $zero, 5 /* 43C40 80068840 06200039 */ bltz $s1, .L80068928 /* 43C44 80068844 3222001F */ andi $v0, $s1, 0x1f /* 43C48 80068848 144000EB */ bnez $v0, .L80068BF8 /* 43C4C 8006884C 24020005 */ addiu $v0, $zero, 5 /* 43C50 80068850 8E020000 */ lw $v0, ($s0) /* 43C54 80068854 30420001 */ andi $v0, $v0, 1 /* 43C58 80068858 104000E7 */ beqz $v0, .L80068BF8 /* 43C5C 8006885C 24020005 */ addiu $v0, $zero, 5 /* 43C60 80068860 0C01A775 */ jal osCheckId /* 43C64 80068864 02002021 */ addu $a0, $s0, $zero /* 43C68 80068868 24030002 */ addiu $v1, $zero, 2 /* 43C6C 8006886C 104300E2 */ beq $v0, $v1, .L80068BF8 /* 43C70 80068870 24020002 */ addiu $v0, $zero, 2 /* 43C74 80068874 92020065 */ lbu $v0, 0x65($s0) /* 43C78 80068878 10400006 */ beqz $v0, .L80068894 /* 43C7C 8006887C 02002021 */ addu $a0, $s0, $zero /* 43C80 80068880 0C01A5B4 */ jal osPfsSelectBank /* 43C84 80068884 00002821 */ addu $a1, $zero, $zero /* 43C88 80068888 00401821 */ addu $v1, $v0, $zero /* 43C8C 8006888C 146000DA */ bnez $v1, .L80068BF8 /* 43C90 80068890 00000000 */ nop .L80068894: /* 43C94 80068894 8E040004 */ lw $a0, 4($s0) /* 43C98 80068898 8E06005C */ lw $a2, 0x5c($s0) /* 43C9C 8006889C 8E050008 */ lw $a1, 8($s0) /* 43CA0 800688A0 27A70018 */ addiu $a3, $sp, 0x18 /* 43CA4 800688A4 00D53021 */ addu $a2, $a2, $s5 /* 43CA8 800688A8 0C01A874 */ jal osContRamRead /* 43CAC 800688AC 30C6FFFF */ andi $a2, $a2, 0xffff /* 43CB0 800688B0 00401821 */ addu $v1, $v0, $zero /* 43CB4 800688B4 146000D0 */ bnez $v1, .L80068BF8 /* 43CB8 800688B8 00000000 */ nop /* 43CBC 800688BC 97A2001C */ lhu $v0, 0x1c($sp) /* 43CC0 800688C0 104000CD */ beqz $v0, .L80068BF8 /* 43CC4 800688C4 24020005 */ addiu $v0, $zero, 5 /* 43CC8 800688C8 8FA20018 */ lw $v0, 0x18($sp) /* 43CCC 800688CC 104000CA */ beqz $v0, .L80068BF8 /* 43CD0 800688D0 24020005 */ addiu $v0, $zero, 5 /* 43CD4 800688D4 97A2001E */ lhu $v0, 0x1e($sp) /* 43CD8 800688D8 8E030060 */ lw $v1, 0x60($s0) /* 43CDC 800688DC 0043102A */ slt $v0, $v0, $v1 /* 43CE0 800688E0 1440000D */ bnez $v0, .L80068918 /* 43CE4 800688E4 00000000 */ nop /* 43CE8 800688E8 93A2001E */ lbu $v0, 0x1e($sp) /* 43CEC 800688EC 92030064 */ lbu $v1, 0x64($s0) /* 43CF0 800688F0 0043102B */ sltu $v0, $v0, $v1 /* 43CF4 800688F4 10400008 */ beqz $v0, .L80068918 /* 43CF8 800688F8 00000000 */ nop /* 43CFC 800688FC 93A2001F */ lbu $v0, 0x1f($sp) /* 43D00 80068900 2C430001 */ sltiu $v1, $v0, 1 /* 43D04 80068904 2C420080 */ sltiu $v0, $v0, 0x80 /* 43D08 80068908 38420001 */ xori $v0, $v0, 1 /* 43D0C 8006890C 00621825 */ or $v1, $v1, $v0 /* 43D10 80068910 50600007 */ beql $v1, $zero, .L80068930 /* 43D14 80068914 328200FF */ andi $v0, $s4, 0xff .L80068918: /* 43D18 80068918 97A4001E */ lhu $a0, 0x1e($sp) /* 43D1C 8006891C 24030001 */ addiu $v1, $zero, 1 /* 43D20 80068920 148300B5 */ bne $a0, $v1, .L80068BF8 /* 43D24 80068924 24020003 */ addiu $v0, $zero, 3 .L80068928: /* 43D28 80068928 0801A2FE */ j .L80068BF8 /* 43D2C 8006892C 24020005 */ addiu $v0, $zero, 5 .L80068930: /* 43D30 80068930 14400007 */ bnez $v0, .L80068950 /* 43D34 80068934 240200FF */ addiu $v0, $zero, 0xff /* 43D38 80068938 93A20020 */ lbu $v0, 0x20($sp) /* 43D3C 8006893C 30420002 */ andi $v0, $v0, 2 /* 43D40 80068940 14400003 */ bnez $v0, .L80068950 /* 43D44 80068944 240200FF */ addiu $v0, $zero, 0xff /* 43D48 80068948 0801A2FE */ j .L80068BF8 /* 43D4C 8006894C 24020006 */ addiu $v0, $zero, 6 .L80068950: /* 43D50 80068950 02203821 */ addu $a3, $s1, $zero /* 43D54 80068954 04E10002 */ bgez $a3, .L80068960 /* 43D58 80068958 A3A20138 */ sb $v0, 0x138($sp) /* 43D5C 8006895C 24E7001F */ addiu $a3, $a3, 0x1f .L80068960: /* 43D60 80068960 97A2001E */ lhu $v0, 0x1e($sp) /* 43D64 80068964 00078943 */ sra $s1, $a3, 5 /* 43D68 80068968 A7A2013A */ sh $v0, 0x13a($sp) /* 43D6C 8006896C 2A220008 */ slti $v0, $s1, 8 /* 43D70 80068970 1440002C */ bnez $v0, .L80068A24 /* 43D74 80068974 02C01021 */ addu $v0, $s6, $zero /* 43D78 80068978 27B20038 */ addiu $s2, $sp, 0x38 /* 43D7C 8006897C 24130001 */ addiu $s3, $zero, 1 .L80068980: /* 43D80 80068980 93A3013A */ lbu $v1, 0x13a($sp) /* 43D84 80068984 93A20138 */ lbu $v0, 0x138($sp) /* 43D88 80068988 306700FF */ andi $a3, $v1, 0xff /* 43D8C 8006898C 10E20007 */ beq $a3, $v0, .L800689AC /* 43D90 80068990 02002021 */ addu $a0, $s0, $zero /* 43D94 80068994 A3A30138 */ sb $v1, 0x138($sp) /* 43D98 80068998 02402821 */ addu $a1, $s2, $zero /* 43D9C 8006899C 0C01A7A3 */ jal osPfsRWInode /* 43DA0 800689A0 00003021 */ addu $a2, $zero, $zero /* 43DA4 800689A4 1440001A */ bnez $v0, .L80068A10 /* 43DA8 800689A8 00401821 */ addu $v1, $v0, $zero .L800689AC: /* 43DAC 800689AC 93A2013B */ lbu $v0, 0x13b($sp) /* 43DB0 800689B0 00021040 */ sll $v0, $v0, 1 /* 43DB4 800689B4 00521021 */ addu $v0, $v0, $s2 /* 43DB8 800689B8 94430000 */ lhu $v1, ($v0) /* 43DBC 800689BC A7A3013A */ sh $v1, 0x13a($sp) /* 43DC0 800689C0 8E020060 */ lw $v0, 0x60($s0) /* 43DC4 800689C4 0062182A */ slt $v1, $v1, $v0 /* 43DC8 800689C8 1460000D */ bnez $v1, .L80068A00 /* 43DCC 800689CC 00000000 */ nop /* 43DD0 800689D0 93A2013A */ lbu $v0, 0x13a($sp) /* 43DD4 800689D4 92030064 */ lbu $v1, 0x64($s0) /* 43DD8 800689D8 0043102B */ sltu $v0, $v0, $v1 /* 43DDC 800689DC 10400008 */ beqz $v0, .L80068A00 /* 43DE0 800689E0 00000000 */ nop /* 43DE4 800689E4 93A2013B */ lbu $v0, 0x13b($sp) /* 43DE8 800689E8 2C430001 */ sltiu $v1, $v0, 1 /* 43DEC 800689EC 2C420080 */ sltiu $v0, $v0, 0x80 /* 43DF0 800689F0 38420001 */ xori $v0, $v0, 1 /* 43DF4 800689F4 00621825 */ or $v1, $v1, $v0 /* 43DF8 800689F8 50600005 */ beql $v1, $zero, .L80068A10 /* 43DFC 800689FC 00001821 */ addu $v1, $zero, $zero .L80068A00: /* 43E00 80068A00 97A2013A */ lhu $v0, 0x13a($sp) /* 43E04 80068A04 14530002 */ bne $v0, $s3, .L80068A10 /* 43E08 80068A08 24030003 */ addiu $v1, $zero, 3 /* 43E0C 80068A0C 24030005 */ addiu $v1, $zero, 5 .L80068A10: /* 43E10 80068A10 14600074 */ bnez $v1, .L80068BE4 /* 43E14 80068A14 2631FFF8 */ addiu $s1, $s1, -8 /* 43E18 80068A18 2A220008 */ slti $v0, $s1, 8 /* 43E1C 80068A1C 1040FFD8 */ beqz $v0, .L80068980 /* 43E20 80068A20 02C01021 */ addu $v0, $s6, $zero .L80068A24: /* 43E24 80068A24 04420001 */ bltzl $v0, .L80068A2C /* 43E28 80068A28 2442001F */ addiu $v0, $v0, 0x1f .L80068A2C: /* 43E2C 80068A2C 00029943 */ sra $s3, $v0, 5 /* 43E30 80068A30 8FB20174 */ lw $s2, 0x174($sp) /* 43E34 80068A34 5A60004E */ blezl $s3, .L80068B70 /* 43E38 80068A38 328300FF */ andi $v1, $s4, 0xff /* 43E3C 80068A3C 24160001 */ addiu $s6, $zero, 1 .L80068A40: /* 43E40 80068A40 24020008 */ addiu $v0, $zero, 8 /* 43E44 80068A44 16220028 */ bne $s1, $v0, .L80068AE8 /* 43E48 80068A48 00000000 */ nop /* 43E4C 80068A4C 93A3013A */ lbu $v1, 0x13a($sp) /* 43E50 80068A50 93A20138 */ lbu $v0, 0x138($sp) /* 43E54 80068A54 306700FF */ andi $a3, $v1, 0xff /* 43E58 80068A58 10E20008 */ beq $a3, $v0, .L80068A7C /* 43E5C 80068A5C 27B10038 */ addiu $s1, $sp, 0x38 /* 43E60 80068A60 A3A30138 */ sb $v1, 0x138($sp) /* 43E64 80068A64 02002021 */ addu $a0, $s0, $zero /* 43E68 80068A68 02202821 */ addu $a1, $s1, $zero /* 43E6C 80068A6C 0C01A7A3 */ jal osPfsRWInode /* 43E70 80068A70 00003021 */ addu $a2, $zero, $zero /* 43E74 80068A74 1440001A */ bnez $v0, .L80068AE0 /* 43E78 80068A78 00401821 */ addu $v1, $v0, $zero .L80068A7C: /* 43E7C 80068A7C 93A2013B */ lbu $v0, 0x13b($sp) /* 43E80 80068A80 00021040 */ sll $v0, $v0, 1 /* 43E84 80068A84 00511021 */ addu $v0, $v0, $s1 /* 43E88 80068A88 94430000 */ lhu $v1, ($v0) /* 43E8C 80068A8C A7A3013A */ sh $v1, 0x13a($sp) /* 43E90 80068A90 8E020060 */ lw $v0, 0x60($s0) /* 43E94 80068A94 0062182A */ slt $v1, $v1, $v0 /* 43E98 80068A98 1460000D */ bnez $v1, .L80068AD0 /* 43E9C 80068A9C 00000000 */ nop /* 43EA0 80068AA0 93A2013A */ lbu $v0, 0x13a($sp) /* 43EA4 80068AA4 92030064 */ lbu $v1, 0x64($s0) /* 43EA8 80068AA8 0043102B */ sltu $v0, $v0, $v1 /* 43EAC 80068AAC 10400008 */ beqz $v0, .L80068AD0 /* 43EB0 80068AB0 00000000 */ nop /* 43EB4 80068AB4 93A2013B */ lbu $v0, 0x13b($sp) /* 43EB8 80068AB8 2C430001 */ sltiu $v1, $v0, 1 /* 43EBC 80068ABC 2C420080 */ sltiu $v0, $v0, 0x80 /* 43EC0 80068AC0 38420001 */ xori $v0, $v0, 1 /* 43EC4 80068AC4 00621825 */ or $v1, $v1, $v0 /* 43EC8 80068AC8 50600005 */ beql $v1, $zero, .L80068AE0 /* 43ECC 80068ACC 00001821 */ addu $v1, $zero, $zero .L80068AD0: /* 43ED0 80068AD0 97A2013A */ lhu $v0, 0x13a($sp) /* 43ED4 80068AD4 14560002 */ bne $v0, $s6, .L80068AE0 /* 43ED8 80068AD8 24030003 */ addiu $v1, $zero, 3 /* 43EDC 80068ADC 24030005 */ addiu $v1, $zero, 5 .L80068AE0: /* 43EE0 80068AE0 14600040 */ bnez $v1, .L80068BE4 /* 43EE4 80068AE4 00008821 */ addu $s1, $zero, $zero .L80068AE8: /* 43EE8 80068AE8 92020065 */ lbu $v0, 0x65($s0) /* 43EEC 80068AEC 93A5013A */ lbu $a1, 0x13a($sp) /* 43EF0 80068AF0 10450006 */ beq $v0, $a1, .L80068B0C /* 43EF4 80068AF4 00000000 */ nop /* 43EF8 80068AF8 0C01A5B4 */ jal osPfsSelectBank /* 43EFC 80068AFC 02002021 */ addu $a0, $s0, $zero /* 43F00 80068B00 00401821 */ addu $v1, $v0, $zero /* 43F04 80068B04 1460003C */ bnez $v1, .L80068BF8 /* 43F08 80068B08 00601021 */ addu $v0, $v1, $zero .L80068B0C: /* 43F0C 80068B0C 93A2013B */ lbu $v0, 0x13b($sp) /* 43F10 80068B10 000210C0 */ sll $v0, $v0, 3 /* 43F14 80068B14 00513021 */ addu $a2, $v0, $s1 /* 43F18 80068B18 328200FF */ andi $v0, $s4, 0xff /* 43F1C 80068B1C 54400008 */ bnel $v0, $zero, .L80068B40 /* 43F20 80068B20 AFA00010 */ sw $zero, 0x10($sp) /* 43F24 80068B24 8E040004 */ lw $a0, 4($s0) /* 43F28 80068B28 8E050008 */ lw $a1, 8($s0) /* 43F2C 80068B2C 30C6FFFF */ andi $a2, $a2, 0xffff /* 43F30 80068B30 0C01A874 */ jal osContRamRead /* 43F34 80068B34 02403821 */ addu $a3, $s2, $zero /* 43F38 80068B38 0801A2D6 */ j .L80068B58 /* 43F3C 80068B3C 00401821 */ addu $v1, $v0, $zero .L80068B40: /* 43F40 80068B40 8E040004 */ lw $a0, 4($s0) /* 43F44 80068B44 8E050008 */ lw $a1, 8($s0) /* 43F48 80068B48 30C6FFFF */ andi $a2, $a2, 0xffff /* 43F4C 80068B4C 0C01A8F0 */ jal osContRamWrite /* 43F50 80068B50 02403821 */ addu $a3, $s2, $zero /* 43F54 80068B54 00401821 */ addu $v1, $v0, $zero .L80068B58: /* 43F58 80068B58 14600022 */ bnez $v1, .L80068BE4 /* 43F5C 80068B5C 26520020 */ addiu $s2, $s2, 0x20 /* 43F60 80068B60 2673FFFF */ addiu $s3, $s3, -1 /* 43F64 80068B64 1E60FFB6 */ bgtz $s3, .L80068A40 /* 43F68 80068B68 26310001 */ addiu $s1, $s1, 1 /* 43F6C 80068B6C 328300FF */ andi $v1, $s4, 0xff .L80068B70: /* 43F70 80068B70 24020001 */ addiu $v0, $zero, 1 /* 43F74 80068B74 1462001D */ bne $v1, $v0, .L80068BEC /* 43F78 80068B78 00000000 */ nop /* 43F7C 80068B7C 93A30020 */ lbu $v1, 0x20($sp) /* 43F80 80068B80 30620002 */ andi $v0, $v1, 2 /* 43F84 80068B84 14400019 */ bnez $v0, .L80068BEC /* 43F88 80068B88 34620002 */ ori $v0, $v1, 2 /* 43F8C 80068B8C A3A20020 */ sb $v0, 0x20($sp) /* 43F90 80068B90 92020065 */ lbu $v0, 0x65($s0) /* 43F94 80068B94 10400006 */ beqz $v0, .L80068BB0 /* 43F98 80068B98 02002021 */ addu $a0, $s0, $zero /* 43F9C 80068B9C 0C01A5B4 */ jal osPfsSelectBank /* 43FA0 80068BA0 00002821 */ addu $a1, $zero, $zero /* 43FA4 80068BA4 00401821 */ addu $v1, $v0, $zero /* 43FA8 80068BA8 14600013 */ bnez $v1, .L80068BF8 /* 43FAC 80068BAC 00000000 */ nop .L80068BB0: /* 43FB0 80068BB0 8E06005C */ lw $a2, 0x5c($s0) /* 43FB4 80068BB4 AFA00010 */ sw $zero, 0x10($sp) /* 43FB8 80068BB8 8E040004 */ lw $a0, 4($s0) /* 43FBC 80068BBC 8E050008 */ lw $a1, 8($s0) /* 43FC0 80068BC0 27A70018 */ addiu $a3, $sp, 0x18 /* 43FC4 80068BC4 00D53021 */ addu $a2, $a2, $s5 /* 43FC8 80068BC8 0C01A8F0 */ jal osContRamWrite /* 43FCC 80068BCC 30C6FFFF */ andi $a2, $a2, 0xffff /* 43FD0 80068BD0 00401821 */ addu $v1, $v0, $zero /* 43FD4 80068BD4 10600005 */ beqz $v1, .L80068BEC /* 43FD8 80068BD8 00000000 */ nop /* 43FDC 80068BDC 0801A2FE */ j .L80068BF8 /* 43FE0 80068BE0 00000000 */ nop .L80068BE4: /* 43FE4 80068BE4 0801A2FE */ j .L80068BF8 /* 43FE8 80068BE8 00601021 */ addu $v0, $v1, $zero .L80068BEC: /* 43FEC 80068BEC 8E040004 */ lw $a0, 4($s0) /* 43FF0 80068BF0 0C01A530 */ jal osPfsGetStatus /* 43FF4 80068BF4 8E050008 */ lw $a1, 8($s0) .L80068BF8: /* 43FF8 80068BF8 8FBF015C */ lw $ra, 0x15c($sp) /* 43FFC 80068BFC 8FB60158 */ lw $s6, 0x158($sp) /* 44000 80068C00 8FB50154 */ lw $s5, 0x154($sp) /* 44004 80068C04 8FB40150 */ lw $s4, 0x150($sp) /* 44008 80068C08 8FB3014C */ lw $s3, 0x14c($sp) /* 4400C 80068C0C 8FB20148 */ lw $s2, 0x148($sp) /* 44010 80068C10 8FB10144 */ lw $s1, 0x144($sp) /* 44014 80068C14 8FB00140 */ lw $s0, 0x140($sp) /* 44018 80068C18 03E00008 */ jr $ra /* 4401C 80068C1C 27BD0160 */ addiu $sp, $sp, 0x160