2020-08-04 08:49:11 +02:00
|
|
|
.set noat # allow manual use of $at
|
|
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
|
|
|
|
|
|
|
|
glabel osPfsRWInode
|
|
|
|
/* 04528C 80069E8C 27BDFFB0 */ addiu $sp, $sp, -0x50
|
|
|
|
/* 045290 80069E90 AFB20030 */ sw $s2, 0x30($sp)
|
|
|
|
/* 045294 80069E94 00809021 */ addu $s2, $a0, $zero
|
|
|
|
/* 045298 80069E98 AFB40038 */ sw $s4, 0x38($sp)
|
|
|
|
/* 04529C 80069E9C 00A0A021 */ addu $s4, $a1, $zero
|
|
|
|
/* 0452A0 80069EA0 AFB60040 */ sw $s6, 0x40($sp)
|
|
|
|
/* 0452A4 80069EA4 00C0B021 */ addu $s6, $a2, $zero
|
|
|
|
/* 0452A8 80069EA8 AFB70044 */ sw $s7, 0x44($sp)
|
|
|
|
/* 0452AC 80069EAC 00E0B821 */ addu $s7, $a3, $zero
|
|
|
|
/* 0452B0 80069EB0 32C200FF */ andi $v0, $s6, 0xff
|
|
|
|
/* 0452B4 80069EB4 AFBF004C */ sw $ra, 0x4c($sp)
|
|
|
|
/* 0452B8 80069EB8 AFBE0048 */ sw $fp, 0x48($sp)
|
|
|
|
/* 0452BC 80069EBC AFB5003C */ sw $s5, 0x3c($sp)
|
|
|
|
/* 0452C0 80069EC0 AFB30034 */ sw $s3, 0x34($sp)
|
|
|
|
/* 0452C4 80069EC4 AFB1002C */ sw $s1, 0x2c($sp)
|
|
|
|
/* 0452C8 80069EC8 14400011 */ bnez $v0, .L80069F10
|
|
|
|
/* 0452CC 80069ECC AFB00028 */ sw $s0, 0x28($sp)
|
|
|
|
/* 0452D0 80069ED0 3C038009 */ lui $v1, 0x8009
|
|
|
|
/* 0452D4 80069ED4 906358D4 */ lbu $v1, 0x58d4($v1)
|
|
|
|
/* 0452D8 80069ED8 32E200FF */ andi $v0, $s7, 0xff
|
|
|
|
/* 0452DC 80069EDC 1443000C */ bne $v0, $v1, .L80069F10
|
|
|
|
/* 0452E0 80069EE0 00000000 */ nop
|
|
|
|
/* 0452E4 80069EE4 8E430008 */ lw $v1, 8($s2)
|
|
|
|
/* 0452E8 80069EE8 3C028009 */ lui $v0, 0x8009
|
|
|
|
/* 0452EC 80069EEC 8C4258D0 */ lw $v0, 0x58d0($v0)
|
|
|
|
/* 0452F0 80069EF0 14620007 */ bne $v1, $v0, .L80069F10
|
|
|
|
/* 0452F4 80069EF4 00000000 */ nop
|
|
|
|
/* 0452F8 80069EF8 3C04800E */ lui $a0, 0x800e
|
|
|
|
/* 0452FC 80069EFC 24849680 */ addiu $a0, $a0, -0x6980
|
|
|
|
/* 045300 80069F00 0C019194 */ jal bcopy
|
|
|
|
/* 045304 80069F04 24060100 */ addiu $a2, $zero, 0x100
|
|
|
|
/* 045308 80069F08 0801A865 */ j .L8006A194
|
|
|
|
/* 04530C 80069F0C 00001021 */ addu $v0, $zero, $zero
|
|
|
|
|
|
|
|
.L80069F10:
|
|
|
|
/* 045310 80069F10 92420065 */ lbu $v0, 0x65($s2)
|
|
|
|
/* 045314 80069F14 10400006 */ beqz $v0, .L80069F30
|
|
|
|
/* 045318 80069F18 02402021 */ addu $a0, $s2, $zero
|
|
|
|
/* 04531C 80069F1C 0C01A5B4 */ jal osPfsSelectBank
|
|
|
|
/* 045320 80069F20 00002821 */ addu $a1, $zero, $zero
|
|
|
|
/* 045324 80069F24 00401821 */ addu $v1, $v0, $zero
|
|
|
|
/* 045328 80069F28 1460009A */ bnez $v1, .L8006A194
|
|
|
|
/* 04532C 80069F2C 00000000 */ nop
|
|
|
|
.L80069F30:
|
|
|
|
/* 045330 80069F30 32E200FF */ andi $v0, $s7, 0xff
|
|
|
|
/* 045334 80069F34 14400002 */ bnez $v0, .L80069F40
|
|
|
|
/* 045338 80069F38 24150001 */ addiu $s5, $zero, 1
|
|
|
|
/* 04533C 80069F3C 8E550060 */ lw $s5, 0x60($s2)
|
|
|
|
.L80069F40:
|
|
|
|
/* 045340 80069F40 32C300FF */ andi $v1, $s6, 0xff
|
|
|
|
/* 045344 80069F44 24020001 */ addiu $v0, $zero, 1
|
|
|
|
/* 045348 80069F48 14620011 */ bne $v1, $v0, .L80069F90
|
|
|
|
/* 04534C 80069F4C 00008021 */ addu $s0, $zero, $zero
|
|
|
|
/* 045350 80069F50 00151040 */ sll $v0, $s5, 1
|
|
|
|
/* 045354 80069F54 00542821 */ addu $a1, $v0, $s4
|
|
|
|
/* 045358 80069F58 00002021 */ addu $a0, $zero, $zero
|
|
|
|
/* 04535C 80069F5C 24020080 */ addiu $v0, $zero, 0x80
|
|
|
|
/* 045360 80069F60 00551023 */ subu $v0, $v0, $s5
|
|
|
|
/* 045364 80069F64 00023040 */ sll $a2, $v0, 1
|
|
|
|
/* 045368 80069F68 18C00007 */ blez $a2, .L80069F88
|
|
|
|
/* 04536C 80069F6C 00001821 */ addu $v1, $zero, $zero
|
|
|
|
.L80069F70:
|
|
|
|
/* 045370 80069F70 90A20000 */ lbu $v0, ($a1)
|
|
|
|
/* 045374 80069F74 24840001 */ addiu $a0, $a0, 1
|
|
|
|
/* 045378 80069F78 00621821 */ addu $v1, $v1, $v0
|
|
|
|
/* 04537C 80069F7C 0086102A */ slt $v0, $a0, $a2
|
|
|
|
/* 045380 80069F80 1440FFFB */ bnez $v0, .L80069F70
|
|
|
|
/* 045384 80069F84 24A50001 */ addiu $a1, $a1, 1
|
|
|
|
.L80069F88:
|
|
|
|
/* 045388 80069F88 A2830001 */ sb $v1, 1($s4)
|
|
|
|
/* 04538C 80069F8C 00008021 */ addu $s0, $zero, $zero
|
|
|
|
.L80069F90:
|
|
|
|
/* 045390 80069F90 32DE00FF */ andi $fp, $s6, 0xff
|
|
|
|
/* 045394 80069F94 32E200FF */ andi $v0, $s7, 0xff
|
|
|
|
/* 045398 80069F98 000298C0 */ sll $s3, $v0, 3
|
|
|
|
/* 04539C 80069F9C 00101140 */ sll $v0, $s0, 5
|
|
|
|
.L80069FA0:
|
|
|
|
/* 0453A0 80069FA0 24080001 */ addiu $t0, $zero, 1
|
|
|
|
/* 0453A4 80069FA4 17C80015 */ bne $fp, $t0, .L80069FFC
|
|
|
|
/* 0453A8 80069FA8 02828821 */ addu $s1, $s4, $v0
|
|
|
|
/* 0453AC 80069FAC 8E460054 */ lw $a2, 0x54($s2)
|
|
|
|
/* 0453B0 80069FB0 AFA00010 */ sw $zero, 0x10($sp)
|
|
|
|
/* 0453B4 80069FB4 8E440004 */ lw $a0, 4($s2)
|
|
|
|
/* 0453B8 80069FB8 8E450008 */ lw $a1, 8($s2)
|
|
|
|
/* 0453BC 80069FBC 02203821 */ addu $a3, $s1, $zero
|
|
|
|
/* 0453C0 80069FC0 00D33021 */ addu $a2, $a2, $s3
|
|
|
|
/* 0453C4 80069FC4 00D03021 */ addu $a2, $a2, $s0
|
|
|
|
/* 0453C8 80069FC8 0C01A8F0 */ jal osContRamWrite
|
|
|
|
/* 0453CC 80069FCC 30C6FFFF */ andi $a2, $a2, 0xffff
|
|
|
|
/* 0453D0 80069FD0 8E460058 */ lw $a2, 0x58($s2)
|
|
|
|
/* 0453D4 80069FD4 AFA00010 */ sw $zero, 0x10($sp)
|
|
|
|
/* 0453D8 80069FD8 8E440004 */ lw $a0, 4($s2)
|
|
|
|
/* 0453DC 80069FDC 8E450008 */ lw $a1, 8($s2)
|
|
|
|
/* 0453E0 80069FE0 02203821 */ addu $a3, $s1, $zero
|
|
|
|
/* 0453E4 80069FE4 00D33021 */ addu $a2, $a2, $s3
|
|
|
|
/* 0453E8 80069FE8 00D03021 */ addu $a2, $a2, $s0
|
|
|
|
/* 0453EC 80069FEC 0C01A8F0 */ jal osContRamWrite
|
|
|
|
/* 0453F0 80069FF0 30C6FFFF */ andi $a2, $a2, 0xffff
|
|
|
|
/* 0453F4 80069FF4 0801A808 */ j .L8006A020
|
|
|
|
/* 0453F8 80069FF8 00401821 */ addu $v1, $v0, $zero
|
|
|
|
|
|
|
|
.L80069FFC:
|
|
|
|
/* 0453FC 80069FFC 8E440004 */ lw $a0, 4($s2)
|
|
|
|
/* 045400 8006A000 8E460054 */ lw $a2, 0x54($s2)
|
|
|
|
/* 045404 8006A004 8E450008 */ lw $a1, 8($s2)
|
|
|
|
/* 045408 8006A008 02203821 */ addu $a3, $s1, $zero
|
|
|
|
/* 04540C 8006A00C 00D33021 */ addu $a2, $a2, $s3
|
|
|
|
/* 045410 8006A010 00D03021 */ addu $a2, $a2, $s0
|
|
|
|
/* 045414 8006A014 0C01A874 */ jal osContRamRead
|
|
|
|
/* 045418 8006A018 30C6FFFF */ andi $a2, $a2, 0xffff
|
|
|
|
/* 04541C 8006A01C 00401821 */ addu $v1, $v0, $zero
|
|
|
|
.L8006A020:
|
|
|
|
/* 045420 8006A020 1460003D */ bnez $v1, .L8006A118
|
|
|
|
/* 045424 8006A024 26100001 */ addiu $s0, $s0, 1
|
|
|
|
/* 045428 8006A028 2A020008 */ slti $v0, $s0, 8
|
|
|
|
/* 04542C 8006A02C 1440FFDC */ bnez $v0, .L80069FA0
|
|
|
|
/* 045430 8006A030 00101140 */ sll $v0, $s0, 5
|
|
|
|
/* 045434 8006A034 32C200FF */ andi $v0, $s6, 0xff
|
|
|
|
/* 045438 8006A038 5440004C */ bnel $v0, $zero, .L8006A16C
|
|
|
|
/* 04543C 8006A03C 02802021 */ addu $a0, $s4, $zero
|
|
|
|
/* 045440 8006A040 00003821 */ addu $a3, $zero, $zero
|
|
|
|
/* 045444 8006A044 00151040 */ sll $v0, $s5, 1
|
|
|
|
/* 045448 8006A048 00542821 */ addu $a1, $v0, $s4
|
|
|
|
/* 04544C 8006A04C 24020080 */ addiu $v0, $zero, 0x80
|
|
|
|
/* 045450 8006A050 00551023 */ subu $v0, $v0, $s5
|
|
|
|
/* 045454 8006A054 00023040 */ sll $a2, $v0, 1
|
|
|
|
/* 045458 8006A058 0066102A */ slt $v0, $v1, $a2
|
|
|
|
/* 04545C 8006A05C 10400007 */ beqz $v0, .L8006A07C
|
|
|
|
/* 045460 8006A060 00002021 */ addu $a0, $zero, $zero
|
|
|
|
.L8006A064:
|
|
|
|
/* 045464 8006A064 90A20000 */ lbu $v0, ($a1)
|
|
|
|
/* 045468 8006A068 24840001 */ addiu $a0, $a0, 1
|
|
|
|
/* 04546C 8006A06C 00E23821 */ addu $a3, $a3, $v0
|
|
|
|
/* 045470 8006A070 0086102A */ slt $v0, $a0, $a2
|
|
|
|
/* 045474 8006A074 1440FFFB */ bnez $v0, .L8006A064
|
|
|
|
/* 045478 8006A078 24A50001 */ addiu $a1, $a1, 1
|
|
|
|
.L8006A07C:
|
|
|
|
/* 04547C 8006A07C 92830001 */ lbu $v1, 1($s4)
|
|
|
|
/* 045480 8006A080 30E200FF */ andi $v0, $a3, 0xff
|
|
|
|
/* 045484 8006A084 10430038 */ beq $v0, $v1, .L8006A168
|
|
|
|
/* 045488 8006A088 32E200FF */ andi $v0, $s7, 0xff
|
|
|
|
/* 04548C 8006A08C 00008021 */ addu $s0, $zero, $zero
|
|
|
|
/* 045490 8006A090 000298C0 */ sll $s3, $v0, 3
|
|
|
|
/* 045494 8006A094 02808821 */ addu $s1, $s4, $zero
|
|
|
|
.L8006A098:
|
|
|
|
/* 045498 8006A098 8E440004 */ lw $a0, 4($s2)
|
|
|
|
/* 04549C 8006A09C 8E450008 */ lw $a1, 8($s2)
|
|
|
|
/* 0454A0 8006A0A0 8E460058 */ lw $a2, 0x58($s2)
|
|
|
|
/* 0454A4 8006A0A4 02203821 */ addu $a3, $s1, $zero
|
|
|
|
/* 0454A8 8006A0A8 26310020 */ addiu $s1, $s1, 0x20
|
|
|
|
/* 0454AC 8006A0AC 00D33021 */ addu $a2, $a2, $s3
|
|
|
|
/* 0454B0 8006A0B0 00D03021 */ addu $a2, $a2, $s0
|
|
|
|
/* 0454B4 8006A0B4 0C01A874 */ jal osContRamRead
|
|
|
|
/* 0454B8 8006A0B8 30C6FFFF */ andi $a2, $a2, 0xffff
|
|
|
|
/* 0454BC 8006A0BC 26100001 */ addiu $s0, $s0, 1
|
|
|
|
/* 0454C0 8006A0C0 2A020008 */ slti $v0, $s0, 8
|
|
|
|
/* 0454C4 8006A0C4 1440FFF4 */ bnez $v0, .L8006A098
|
|
|
|
/* 0454C8 8006A0C8 24030080 */ addiu $v1, $zero, 0x80
|
|
|
|
/* 0454CC 8006A0CC 00151040 */ sll $v0, $s5, 1
|
|
|
|
/* 0454D0 8006A0D0 00543021 */ addu $a2, $v0, $s4
|
|
|
|
/* 0454D4 8006A0D4 00002021 */ addu $a0, $zero, $zero
|
|
|
|
/* 0454D8 8006A0D8 00751823 */ subu $v1, $v1, $s5
|
|
|
|
/* 0454DC 8006A0DC 00031840 */ sll $v1, $v1, 1
|
|
|
|
/* 0454E0 8006A0E0 18600007 */ blez $v1, .L8006A100
|
|
|
|
/* 0454E4 8006A0E4 00002821 */ addu $a1, $zero, $zero
|
|
|
|
.L8006A0E8:
|
|
|
|
/* 0454E8 8006A0E8 90C20000 */ lbu $v0, ($a2)
|
|
|
|
/* 0454EC 8006A0EC 24840001 */ addiu $a0, $a0, 1
|
|
|
|
/* 0454F0 8006A0F0 00A22821 */ addu $a1, $a1, $v0
|
|
|
|
/* 0454F4 8006A0F4 0083102A */ slt $v0, $a0, $v1
|
|
|
|
/* 0454F8 8006A0F8 1440FFFB */ bnez $v0, .L8006A0E8
|
|
|
|
/* 0454FC 8006A0FC 24C60001 */ addiu $a2, $a2, 1
|
|
|
|
.L8006A100:
|
|
|
|
/* 045500 8006A100 92830001 */ lbu $v1, 1($s4)
|
|
|
|
/* 045504 8006A104 30A200FF */ andi $v0, $a1, 0xff
|
|
|
|
/* 045508 8006A108 10430005 */ beq $v0, $v1, .L8006A120
|
|
|
|
/* 04550C 8006A10C 24020003 */ addiu $v0, $zero, 3
|
|
|
|
/* 045510 8006A110 0801A865 */ j .L8006A194
|
|
|
|
/* 045514 8006A114 00000000 */ nop
|
|
|
|
|
|
|
|
.L8006A118:
|
|
|
|
/* 045518 8006A118 0801A865 */ j .L8006A194
|
|
|
|
/* 04551C 8006A11C 00601021 */ addu $v0, $v1, $zero
|
|
|
|
|
|
|
|
.L8006A120:
|
|
|
|
/* 045520 8006A120 00008021 */ addu $s0, $zero, $zero
|
|
|
|
/* 045524 8006A124 32E200FF */ andi $v0, $s7, 0xff
|
|
|
|
/* 045528 8006A128 000298C0 */ sll $s3, $v0, 3
|
|
|
|
/* 04552C 8006A12C 02808821 */ addu $s1, $s4, $zero
|
|
|
|
.L8006A130:
|
|
|
|
/* 045530 8006A130 8E460054 */ lw $a2, 0x54($s2)
|
|
|
|
/* 045534 8006A134 AFA00010 */ sw $zero, 0x10($sp)
|
|
|
|
/* 045538 8006A138 8E440004 */ lw $a0, 4($s2)
|
|
|
|
/* 04553C 8006A13C 8E450008 */ lw $a1, 8($s2)
|
|
|
|
/* 045540 8006A140 02203821 */ addu $a3, $s1, $zero
|
|
|
|
/* 045544 8006A144 26310020 */ addiu $s1, $s1, 0x20
|
|
|
|
/* 045548 8006A148 00D33021 */ addu $a2, $a2, $s3
|
|
|
|
/* 04554C 8006A14C 00D03021 */ addu $a2, $a2, $s0
|
|
|
|
/* 045550 8006A150 0C01A8F0 */ jal osContRamWrite
|
|
|
|
/* 045554 8006A154 30C6FFFF */ andi $a2, $a2, 0xffff
|
|
|
|
/* 045558 8006A158 26100001 */ addiu $s0, $s0, 1
|
|
|
|
/* 04555C 8006A15C 2A020008 */ slti $v0, $s0, 8
|
|
|
|
/* 045560 8006A160 1440FFF3 */ bnez $v0, .L8006A130
|
|
|
|
/* 045564 8006A164 00000000 */ nop
|
|
|
|
.L8006A168:
|
|
|
|
/* 045568 8006A168 02802021 */ addu $a0, $s4, $zero
|
|
|
|
.L8006A16C:
|
|
|
|
/* 04556C 8006A16C 3C05800E */ lui $a1, 0x800e
|
|
|
|
/* 045570 8006A170 24A59680 */ addiu $a1, $a1, -0x6980
|
|
|
|
/* 045574 8006A174 3C018009 */ lui $at, 0x8009
|
|
|
|
/* 045578 8006A178 A03758D4 */ sb $s7, 0x58d4($at)
|
|
|
|
/* 04557C 8006A17C 0C019194 */ jal bcopy
|
|
|
|
/* 045580 8006A180 24060100 */ addiu $a2, $zero, 0x100
|
|
|
|
/* 045584 8006A184 8E430008 */ lw $v1, 8($s2)
|
|
|
|
/* 045588 8006A188 00001021 */ addu $v0, $zero, $zero
|
|
|
|
/* 04558C 8006A18C 3C018009 */ lui $at, 0x8009
|
|
|
|
/* 045590 8006A190 AC2358D0 */ sw $v1, 0x58d0($at)
|
|
|
|
.L8006A194:
|
|
|
|
/* 045594 8006A194 8FBF004C */ lw $ra, 0x4c($sp)
|
|
|
|
/* 045598 8006A198 8FBE0048 */ lw $fp, 0x48($sp)
|
|
|
|
/* 04559C 8006A19C 8FB70044 */ lw $s7, 0x44($sp)
|
|
|
|
/* 0455A0 8006A1A0 8FB60040 */ lw $s6, 0x40($sp)
|
|
|
|
/* 0455A4 8006A1A4 8FB5003C */ lw $s5, 0x3c($sp)
|
|
|
|
/* 0455A8 8006A1A8 8FB40038 */ lw $s4, 0x38($sp)
|
|
|
|
/* 0455AC 8006A1AC 8FB30034 */ lw $s3, 0x34($sp)
|
|
|
|
/* 0455B0 8006A1B0 8FB20030 */ lw $s2, 0x30($sp)
|
|
|
|
/* 0455B4 8006A1B4 8FB1002C */ lw $s1, 0x2c($sp)
|
|
|
|
/* 0455B8 8006A1B8 8FB00028 */ lw $s0, 0x28($sp)
|
|
|
|
/* 0455BC 8006A1BC 03E00008 */ jr $ra
|
|
|
|
/* 0455C0 8006A1C0 27BD0050 */ addiu $sp, $sp, 0x50
|
|
|
|
|
|
|
|
/* 0455C4 8006A1C4 00000000 */ nop
|
|
|
|
/* 0455C8 8006A1C8 00000000 */ nop
|
|
|
|
/* 0455CC 8006A1CC 00000000 */ nop
|
|
|
|
|
2020-08-06 06:11:15 +02:00
|
|
|
|