...
2af2d4: 9a003786 lh s7,154(s1)
2af2d8: 588c0d0c jal 0x363160
2af2dc: 2d202002 move a0,s1
2af2e0: cae1040c jal 0x138728
2af2e4: 2d804000 move s0,v0 ; s0 ← 999
2af2e8: 33000424 li a0,51
2af2ec: 64000324 li v1,100
2af2f0: 1a004400 div zero,v0,a0
...
2af2fc: 10100000 mfhi v0
2af300: 32004224 addiu v0,v0,50 ; v0 ← 乱数 50〜100
2af304: 1810e202 mult v0,s7,v0
2af308: 02006014 bnez v1,0x2af314
2af30c: 1a004300 div zero,v0,v1
2af310: cd010000 break 0x0,0x7
2af314: 12100000 mflo v0 ; v0 ← (すばやさ) × (乱数 50〜100) / 100
2af318: 2a080202 slt at,s0,v0
2af31c: 03002010 beqz at,0x2af32c
2af320: 00000000 nop
2af324: 04000010 b 0x2af338
2af328: 2d100002 move v0,s0
2af32c: 02004104 bgez v0,0x2af338
2af330: 00000000 nop
2af334: 2d100000 move v0,zero
2af338: 23100202 subu v0,s0,v0 ; v0 ← 999 - v0
...
; シャッフル処理
2af3b8: b0050224 li v0,1456
2af3bc: 2db80000 move s7,zero
2af3c0: 63000010 b 0x2af550
2af3c4: 01001224 li s2,1
2af3c8: 5b000010 b 0x2af538
2af3cc: 48049026 addiu s0,s4,1096 ;
; begin
2af3d0: 1c00038e lw v1,28(s0)
2af3d4: 58006010 beqz v1,0x2af538
2af3d8: 00000000 nop
2af3dc: 03002016 bnez s1,0x2af3ec
2af3e0: 00000000 nop
2af3e4: 54000010 b 0x2af538
2af3e8: 2d880002 move s1,s0
2af3ec: 1c00228e lw v0,28(s1)
2af3f0: 7800428c lw v0,120(v0)
2af3f4: 05004018 blez v0,0x2af40c
2af3f8: 2da80000 move s5,zero
2af3fc: 7800628c lw v0,120(v1)
2af400: 0200401c bgtz v0,0x2af40c
2af404: 00000000 nop
2af408: 01001564 daddiu s5,zero,1
2af40c: 1c00248e lw a0,28(s1)
2af410: 7800828c lw v0,120(a0)
2af414: 0e004018 blez v0,0x2af450
2af418: 00000000 nop
2af41c: 1c00028e lw v0,28(s0)
2af420: 7800428c lw v0,120(v0)
2af424: 0a004018 blez v0,0x2af450
2af428: 00000000 nop
2af42c: 988e0d0c jal 0x363a60
2af430: 00000000 nop
2af434: 06004014 bnez v0,0x2af450
2af438: 00000000 nop
2af43c: 988e0d0c jal 0x363a60
2af440: 1c00048e lw a0,28(s0)
2af444: 02004010 beqz v0,0x2af450
2af448: 00000000 nop
2af44c: 01001564 daddiu s5,zero,1
2af450: 3800a016 bnez s5,0x2af534
2af454: 00000000 nop
2af458: 1c00228e lw v0,28(s1)
2af45c: 7800428c lw v0,120(v0)
2af460: 0600401c bgtz v0,0x2af47c
2af464: 2da80000 move s5,zero
2af468: 1c00028e lw v0,28(s0)
2af46c: 7800428c lw v0,120(v0)
2af470: 02004018 blez v0,0x2af47c
2af474: 00000000 nop
2af478: 01001564 daddiu s5,zero,1
2af47c: 1c00248e lw a0,28(s1)
2af480: 7800828c lw v0,120(a0)
2af484: 0e004018 blez v0,0x2af4c0
2af488: 00000000 nop
2af48c: 1c00028e lw v0,28(s0)
2af490: 7800428c lw v0,120(v0)
2af494: 0a004018 blez v0,0x2af4c0
2af498: 00000000 nop
2af49c: 988e0d0c jal 0x363a60
2af4a0: 00000000 nop
2af4a4: 06004010 beqz v0,0x2af4c0
2af4a8: 00000000 nop
2af4ac: 988e0d0c jal 0x363a60
2af4b0: 1c00048e lw a0,28(s0)
2af4b4: 02004014 bnez v0,0x2af4c0
2af4b8: 00000000 nop
2af4bc: 01001564 daddiu s5,zero,1 ; s5 == 1: swap する
2af4c0: 06002396 lhu v1,6(s1)
2af4c4: 06000296 lhu v0,6(s0)
2af4c8: 0c006214 bne v1,v0,0x2af4fc
2af4cc: 00000000 nop
; 行動順を決める値が同じ場合
2af4d0: cae1040c jal 0x138728
2af4d4: 00000000 nop
2af4d8: 04004104 bgez v0,0x2af4ec
2af4dc: ff004330 andi v1,v0,0xff ; v1 ← 乱数 0〜255
2af4e0: 03006010 beqz v1,0x2af4f0
2af4e4: 80006128 slti at,v1,128
2af4e8: 00ff6324 addiu v1,v1,-256
2af4ec: 80006128 slti at,v1,128
2af4f0: 02002010 beqz at,0x2af4fc ; 乱数値 >= 128 の場合
2af4f4: 00000000 nop
2af4f8: 01001564 daddiu s5,zero,1 ; s5 == 1: 順序を交換する
2af4fc: 0d00a012 beqz s5,0x2af534
2af500: 00000000 nop
; 順序を交換する
2af504: 0800238e lw v1,8(s1)
2af508: 02006010 beqz v1,0x2af514
2af50c: 0c00028e lw v0,12(s0)
2af510: 0c0070ac sw s0,12(v1)
2af514: 080003ae sw v1,8(s0)
2af518: 0c0011ae sw s1,12(s0)
2af51c: 080030ae sw s0,8(s1)
2af520: 02004010 beqz v0,0x2af52c
2af524: 0c0022ae sw v0,12(s1)
2af528: 080051ac sw s1,8(v0)
2af52c: 2d802002 move s0,s1
2af530: 01001764 daddiu s7,zero,1
2af534: 2d880002 move s1,s0 ;
2af538: 0c00108e lw s0,12(s0) ;
2af53c: a4ff0016 bnez s0,0x2af3d0
2af540: 00000000 nop
2af544: 0500e012 beqz s7,0x2af55c ; 初回に順序交換が生じなかった場合、終了する
2af548: 00000000 nop
2af54c: 01005226 addiu s2,s2,1
2af550: 2400422a slti v0,s2,36
2af554: 9cff4014 bnez v0,0x2af3c8
2af558: 2d880000 move s1,zero
...