mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 17:02:46 +01:00
120 lines
5.2 KiB
ArmAsm
120 lines
5.2 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
|
|
glabel nuSiMgrThread
|
|
/* 0083D0 8002CFD0 27BDFFA8 */ addiu $sp, $sp, -0x58
|
|
/* 0083D4 8002CFD4 AFB00048 */ sw $s0, 0x48($sp)
|
|
/* 0083D8 8002CFD8 3C10800E */ lui $s0, 0x800e
|
|
/* 0083DC 8002CFDC 261091F8 */ addiu $s0, $s0, -0x6e08
|
|
/* 0083E0 8002CFE0 0200202D */ daddu $a0, $s0, $zero
|
|
/* 0083E4 8002CFE4 27A50020 */ addiu $a1, $sp, 0x20
|
|
/* 0083E8 8002CFE8 24060008 */ addiu $a2, $zero, 8
|
|
/* 0083EC 8002CFEC AFBF0050 */ sw $ra, 0x50($sp)
|
|
/* 0083F0 8002CFF0 0C019560 */ jal osCreateMesgQueue
|
|
/* 0083F4 8002CFF4 AFB1004C */ sw $s1, 0x4c($sp)
|
|
/* 0083F8 8002CFF8 27A40010 */ addiu $a0, $sp, 0x10
|
|
/* 0083FC 8002CFFC 0200282D */ daddu $a1, $s0, $zero
|
|
/* 008400 8002D000 0C017B8C */ jal nuScAddClient
|
|
/* 008404 8002D004 24060001 */ addiu $a2, $zero, 1
|
|
.L8002D008:
|
|
/* 008408 8002D008 3C04800E */ lui $a0, 0x800e
|
|
/* 00840C 8002D00C 248491F8 */ addiu $a0, $a0, -0x6e08
|
|
/* 008410 8002D010 27A50040 */ addiu $a1, $sp, 0x40
|
|
/* 008414 8002D014 0C0195BC */ jal osRecvMesg
|
|
/* 008418 8002D018 24060001 */ addiu $a2, $zero, 1
|
|
/* 00841C 8002D01C 8FA40040 */ lw $a0, 0x40($sp)
|
|
/* 008420 8002D020 3C108007 */ lui $s0, 0x8007
|
|
/* 008424 8002D024 26107400 */ addiu $s0, $s0, 0x7400
|
|
/* 008428 8002D028 84830000 */ lh $v1, ($a0)
|
|
/* 00842C 8002D02C 24020001 */ addiu $v0, $zero, 1
|
|
/* 008430 8002D030 10620005 */ beq $v1, $v0, .L8002D048
|
|
/* 008434 8002D034 24027F00 */ addiu $v0, $zero, 0x7f00
|
|
/* 008438 8002D038 10620016 */ beq $v1, $v0, .L8002D094
|
|
/* 00843C 8002D03C 0000282D */ daddu $a1, $zero, $zero
|
|
/* 008440 8002D040 0800B432 */ j .L8002D0C8
|
|
/* 008444 8002D044 00000000 */ nop
|
|
|
|
.L8002D048:
|
|
/* 008448 8002D048 8E020000 */ lw $v0, ($s0)
|
|
/* 00844C 8002D04C 1040FFEE */ beqz $v0, .L8002D008
|
|
/* 008450 8002D050 00000000 */ nop
|
|
.L8002D054:
|
|
/* 008454 8002D054 8E020000 */ lw $v0, ($s0)
|
|
/* 008458 8002D058 8C420004 */ lw $v0, 4($v0)
|
|
/* 00845C 8002D05C 8C420000 */ lw $v0, ($v0)
|
|
/* 008460 8002D060 10400004 */ beqz $v0, .L8002D074
|
|
/* 008464 8002D064 00000000 */ nop
|
|
/* 008468 8002D068 0040F809 */ jalr $v0
|
|
/* 00846C 8002D06C 8FA40040 */ lw $a0, 0x40($sp)
|
|
/* 008470 8002D070 0040882D */ daddu $s1, $v0, $zero
|
|
.L8002D074:
|
|
/* 008474 8002D074 1620FFE4 */ bnez $s1, .L8002D008
|
|
/* 008478 8002D078 00000000 */ nop
|
|
/* 00847C 8002D07C 8E100000 */ lw $s0, ($s0)
|
|
/* 008480 8002D080 8E020000 */ lw $v0, ($s0)
|
|
/* 008484 8002D084 1440FFF3 */ bnez $v0, .L8002D054
|
|
/* 008488 8002D088 00000000 */ nop
|
|
/* 00848C 8002D08C 0800B402 */ j .L8002D008
|
|
/* 008490 8002D090 00000000 */ nop
|
|
|
|
.L8002D094:
|
|
/* 008494 8002D094 8C840004 */ lw $a0, 4($a0)
|
|
/* 008498 8002D098 0C019608 */ jal osSendMesg
|
|
/* 00849C 8002D09C 24060001 */ addiu $a2, $zero, 1
|
|
/* 0084A0 8002D0A0 27A40010 */ addiu $a0, $sp, 0x10
|
|
/* 0084A4 8002D0A4 0C017BCE */ jal nuScResetClientMesgType
|
|
/* 0084A8 8002D0A8 0000282D */ daddu $a1, $zero, $zero
|
|
/* 0084AC 8002D0AC 0C019850 */ jal osStopThread
|
|
/* 0084B0 8002D0B0 0000202D */ daddu $a0, $zero, $zero
|
|
/* 0084B4 8002D0B4 27A40010 */ addiu $a0, $sp, 0x10
|
|
/* 0084B8 8002D0B8 0C017BCE */ jal nuScResetClientMesgType
|
|
/* 0084BC 8002D0BC 24050001 */ addiu $a1, $zero, 1
|
|
/* 0084C0 8002D0C0 0800B402 */ j .L8002D008
|
|
/* 0084C4 8002D0C4 00000000 */ nop
|
|
|
|
.L8002D0C8:
|
|
/* 0084C8 8002D0C8 8FA20040 */ lw $v0, 0x40($sp)
|
|
/* 0084CC 8002D0CC 94420000 */ lhu $v0, ($v0)
|
|
/* 0084D0 8002D0D0 8E030000 */ lw $v1, ($s0)
|
|
/* 0084D4 8002D0D4 3044FF00 */ andi $a0, $v0, 0xff00
|
|
/* 0084D8 8002D0D8 1060FFCB */ beqz $v1, .L8002D008
|
|
/* 0084DC 8002D0DC 304200FF */ andi $v0, $v0, 0xff
|
|
/* 0084E0 8002D0E0 3085FFFF */ andi $a1, $a0, 0xffff
|
|
/* 0084E4 8002D0E4 3044FFFF */ andi $a0, $v0, 0xffff
|
|
/* 0084E8 8002D0E8 00043080 */ sll $a2, $a0, 2
|
|
.L8002D0EC:
|
|
/* 0084EC 8002D0EC 8E030000 */ lw $v1, ($s0)
|
|
/* 0084F0 8002D0F0 94620008 */ lhu $v0, 8($v1)
|
|
/* 0084F4 8002D0F4 54450015 */ bnel $v0, $a1, .L8002D14C
|
|
/* 0084F8 8002D0F8 0060802D */ daddu $s0, $v1, $zero
|
|
/* 0084FC 8002D0FC 9062000A */ lbu $v0, 0xa($v1)
|
|
/* 008500 8002D100 0082102B */ sltu $v0, $a0, $v0
|
|
/* 008504 8002D104 10400009 */ beqz $v0, .L8002D12C
|
|
/* 008508 8002D108 00000000 */ nop
|
|
/* 00850C 8002D10C 8C620004 */ lw $v0, 4($v1)
|
|
/* 008510 8002D110 8FA40040 */ lw $a0, 0x40($sp)
|
|
/* 008514 8002D114 00C21021 */ addu $v0, $a2, $v0
|
|
/* 008518 8002D118 8C420000 */ lw $v0, ($v0)
|
|
/* 00851C 8002D11C 0040F809 */ jalr $v0
|
|
/* 008520 8002D120 00000000 */ nop
|
|
/* 008524 8002D124 8FA30040 */ lw $v1, 0x40($sp)
|
|
/* 008528 8002D128 AC620008 */ sw $v0, 8($v1)
|
|
.L8002D12C:
|
|
/* 00852C 8002D12C 8FA20040 */ lw $v0, 0x40($sp)
|
|
/* 008530 8002D130 8C440004 */ lw $a0, 4($v0)
|
|
/* 008534 8002D134 1080FFB4 */ beqz $a0, .L8002D008
|
|
/* 008538 8002D138 0000282D */ daddu $a1, $zero, $zero
|
|
/* 00853C 8002D13C 0C019608 */ jal osSendMesg
|
|
/* 008540 8002D140 24060001 */ addiu $a2, $zero, 1
|
|
/* 008544 8002D144 0800B402 */ j .L8002D008
|
|
/* 008548 8002D148 00000000 */ nop
|
|
|
|
.L8002D14C:
|
|
/* 00854C 8002D14C 8E020000 */ lw $v0, ($s0)
|
|
/* 008550 8002D150 1440FFE6 */ bnez $v0, .L8002D0EC
|
|
/* 008554 8002D154 00000000 */ nop
|
|
/* 008558 8002D158 0800B402 */ j .L8002D008
|
|
/* 00855C 8002D15C 00000000 */ nop
|
|
|