Difference between revisions of "Some event data setting routine"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with "<font face='Courier New'> 0014ca80: 3c018017 lui r1,0x8017 0014ca84: 00200821 addu r1,r1,r0 0014ca88: 8c284038 lw r8,0x4038(r1) load Block # 0014ca8c: 00000000 nop 00...")
 
m
 
Line 1: Line 1:
<font face='Courier New'>
+
Seeks a new thread to run.
 +
Start from currently running thread (0x80174038) and check the running flag (0x48)
 +
  - If the thread is running, changes all the registers values (r16 to r31)
 +
  - If there's no running thread after the current one switch to thread 0x00
 +
-----------------------------------------------------------------------------------------
 +
0014ca80: 3c018017 lui r1,0x8017            |
 +
0014ca84: 00200821 addu r1,r1,r0            |
 +
0014ca88: 8c284038 lw r8,0x4038(r1)        |{{f/adr|<nowiki>r8 = Currently running thread</nowiki>}} {{f/std|<nowiki> 0x80174038</nowiki>}}
 +
0014ca8c: 00000000 nop                      |
 +
0014ca90: 00084280 sll r8,r8,0x0a          |{{f/std|<nowiki>r8 = Currently running thread * 0x400</nowiki>}}
 +
0014ca94: 3c018016 lui r1,0x8016            |
 +
0014ca98: 00200821 addu r1,r1,r0            |
 +
0014ca9c: 8c295f98 lw r9,0x5f98(r1)        |{{f/adr|<nowiki>r3 = 8016986c - Thread array data pointer (EVTCHR)</nowiki>}} {{f/std|<nowiki> 0x80165f98</nowiki>}}
 +
0014caa0: 00000000 nop                      |
 +
0014caa4: 01094021 addu r8,r8,r9            |{{f/std|<nowiki>r8 = Currently running thread data pointer</nowiki>}}
 +
0014caa8: ad100010 sw r16,0x0010(r8)        |{{f/store|<nowiki>Store all register in currently running thread</nowiki>}}
 +
0014caac: ad110014 sw r17,0x0014(r8)        |
 +
0014cab0: ad120018 sw r18,0x0018(r8)        |
 +
0014cab4: ad13001c sw r19,0x001c(r8)        |
 +
0014cab8: ad140020 sw r20,0x0020(r8)        |
 +
0014cabc: ad150024 sw r21,0x0024(r8)        |
 +
0014cac0: ad160028 sw r22,0x0028(r8)        |
 +
0014cac4: ad17002c sw r23,0x002c(r8)        |
 +
0014cac8: ad1a0030 sw r26,0x0030(r8)        |
 +
0014cacc: ad1b0034 sw r27,0x0034(r8)        |
 +
0014cad0: ad1c0038 sw r28,0x0038(r8)        |
 +
0014cad4: ad1d003c sw r29,0x003c(r8)        |
 +
0014cad8: ad1e0040 sw r30,0x0040(r8)        |
 +
0014cadc: ad1f0044 sw r31,0x0044(r8)        |
 +
0014cae0: 25080400 addiu r8,r8,0x0400      {{f/bloop|<nowiki>LOOP</nowiki>}} {{f/adr|<nowiki>r8 = Next thread data pointer</nowiki>}} Seek a running thread after current thread
 +
0014cae4: 3c018017 lui r1,0x8017                |
 +
0014cae8: 00200821 addu r1,r1,r0                |
 +
0014caec: 8c2a4038 lw r10,0x4038(r1)            |{{f/adr|<nowiki>r10 = Currently running thread ID</nowiki>}}
 +
0014caf0: 00000000 nop                          |
 +
0014caf4: 254a0001 addiu r10,r10,0x0001          |{{f/std|<nowiki>r10 = Next Thread ID</nowiki>}}
 +
0014caf8: 3c018017 lui r1,0x8017                |
 +
0014cafc: 00200821 addu r1,r1,r0                |
 +
0014cb00: ac2a4038 sw r10,0x4038(r1)            |{{f/store|<nowiki>Store next Thread ID in Currently running thread</nowiki>}}
 +
0014cb04: 340b0010 ori r11,r0,0x0010            |{{f/std|<nowiki>r11 = 0x10</nowiki>}}
 +
0014cb08: 114b0007 beq r10,r11,0x0014cb28        {{f/Cond|<nowiki>If Next Thread ID <> 0x10 (Last Thread)</nowiki>}}
 +
0014cb0c: 00000000 nop                              |
 +
0014cb10: 8d0b0048 lw r11,0x0048(r8)                |{{f/adr|<nowiki>r11 = Thread's Is Running flag</nowiki>}}
 +
0014cb14: 00000000 nop                              |
 +
0014cb18: 140b0009 bne r0,r11,0x0014cb40            {{f/Cond|<nowiki>If T his thread is not running loop</nowiki>}} /If thread is running, branch avoiding return to 1st thread
 +
0014cb1c: 00000000 nop                              |
 +
0014cb20: 080532b8 j 0x0014cae0            {{f/eloop|<nowiki>LOOP while not at the last Thread</nowiki>}}
 +
0014cb24: 00000000 nop   
 +
                 
 +
                                      {{f/com|<nowiki>Last thread is reached and not running</nowiki>}}
 +
0014cb28: 3c018016 lui r1,0x8016                |{{f/std|<nowiki>r1 = 0x80160000</nowiki>}}
 +
0014cb2c: 00200821 addu r1,r1,r0                |
 +
0014cb30: 8c285f98 lw r8,0x5f98(r1)              |{{f/adr|<nowiki>r8 = 8016986c - 1st Thread array data pointer (EVTCHR)</nowiki>}} {{f/std|<nowiki> 0x80165f98</nowiki>}}
 +
0014cb34: 3c018017 lui r1,0x8017                |
 +
0014cb38: 00200821 addu r1,r1,r0                |
 +
0014cb3c: ac204038 sw r0,0x4038(r1)              |{{f/store|<nowiki>set 0x00 in currently running thread ID</nowiki>}}
 
   
 
   
  0014ca80: 3c018017 lui r1,0x8017
+
                                      {{f/com|<nowiki>Thread is set (0x00 or New ID)</nowiki>}}
  0014ca84: 00200821 addu r1,r1,r0
+
  0014cb40: 0c050b2a jal 0x00142ca8          |{{f/jal|00142ca8_-_00142d28|<nowiki>00142ca8_-_00142d28</nowiki>}}  Store value at 0x801697d0 (based on thread task) - Might nullify 0x8016d9b8
  0014ca88: 8c284038 lw r8,0x4038(r1) load Block #
+
0014cb44: 00000000 nop                      |
  0014ca8c: 00000000 nop
+
0014cb48: 3c018017 lui r1,0x8017           |
  0014ca90: 00084280 sll r8,r8,0x0a
+
  0014cb4c: 00200821 addu r1,r1,r0           |
  0014ca94: 3c018016 lui r1,0x8016
+
  0014cb50: 8c284038 lw r8,0x4038(r1)         |{{f/adr|<nowiki>r8 = Currently running thread ID</nowiki>}}
  0014ca98: 00200821 addu r1,r1,r0
+
  0014cb54: 00000000 nop                     |
  0014ca9c: 8c295f98 lw r9,0x5f98(r1) start of EVTCHR data (block data
+
  0014cb58: 00084280 sll r8,r8,0x0a           |{{f/std|<nowiki>r8 = Currently running thread ID x 0x400</nowiki>}}
  0014caa0: 00000000 nop
+
  0014cb5c: 3c018016 lui r1,0x8016           |
  0014caa4: 01094021 addu r8,r8,r9 get new address
+
  0014cb60: 00200821 addu r1,r1,r0           |
  0014caa8: ad100010 sw r16,0x0010(r8) store all kinds of data
+
  0014cb64: 8c295f98 lw r9,0x5f98(r1)         |{{f/adr|<nowiki>r9 = 8016986c - 1st Thread array data pointer (EVTCHR)</nowiki>}}
  0014caac: ad110014 sw r17,0x0014(r8)
+
  0014cb68: 00000000 nop                     |
  0014cab0: ad120018 sw r18,0x0018(r8)
+
  0014cb6c: 01094021 addu r8,r8,r9           |{{f/adr|<nowiki>r8 = New thread data pointer</nowiki>}}
  0014cab4: ad13001c sw r19,0x001c(r8)
+
  0014cb70: 8d100010 lw r16,0x0010(r8)       |{{f/load|<nowiki>load all register from new thread</nowiki>}}
  0014cab8: ad140020 sw r20,0x0020(r8)
+
  0014cb74: 8d110014 lw r17,0x0014(r8)       |
  0014cabc: ad150024 sw r21,0x0024(r8)
+
  0014cb78: 8d120018 lw r18,0x0018(r8)       |
  0014cac0: ad160028 sw r22,0x0028(r8)
+
  0014cb7c: 8d13001c lw r19,0x001c(r8)       |
  0014cac4: ad17002c sw r23,0x002c(r8)
+
  0014cb80: 8d140020 lw r20,0x0020(r8)       |
  0014cac8: ad1a0030 sw r26,0x0030(r8)
+
  0014cb84: 8d150024 lw r21,0x0024(r8)       |
  0014cacc: ad1b0034 sw r27,0x0034(r8)
+
  0014cb88: 8d160028 lw r22,0x0028(r8)       |
  0014cad0: ad1c0038 sw r28,0x0038(r8)
+
  0014cb8c: 8d17002c lw r23,0x002c(r8)       |
  0014cad4: ad1d003c sw r29,0x003c(r8)
+
  0014cb90: 8d1a0030 lw r26,0x0030(r8)       |
  0014cad8: ad1e0040 sw r30,0x0040(r8)
+
  0014cb94: 8d1b0034 lw r27,0x0034(r8)       |
  0014cadc: ad1f0044 sw r31,0x0044(r8)
+
  0014cb98: 8d1c0038 lw r28,0x0038(r8)       |
  0014cae0: 25080400 addiu r8,r8,0x0400 go to next block of data
+
  0014cb9c: 8d1d003c lw r29,0x003c(r8)       |
  0014cae4: 3c018017 lui r1,0x8017
+
  0014cba0: 8d1e0040 lw r30,0x0040(r8)       |
  0014cae8: 00200821 addu r1,r1,r0
+
  0014cba4: 8d1f0044 lw r31,0x0044(r8)       |{{f/load|<nowiki>Might load a different return address</nowiki>}}
  0014caec: 8c2a4038 lw r10,0x4038(r1) load byte again
+
0014cba8: 00000000 nop                     
  0014caf0: 00000000 nop
+
0014cbac: 03e00008 jr r31                 
  0014caf4: 254a0001 addiu r10,r10,0x0001 increment byte
+
0014cbb0: 00000000 nop                     
  0014caf8: 3c018017 lui r1,0x8017
+
=== Return locations ===
  0014cafc: 00200821 addu r1,r1,r0
+
'''Battle.bin'''
  0014cb00: ac2a4038 sw r10,0x4038(r1) store new byte
+
0012dbf8:
  0014cb04: 340b0010 ori r11,r0,0x0010
+
  0012dc48:
  0014cb08: 114b0007 beq r10,r11,0x0014cb28 branch if = 0x10 last block?
+
0012dda4:
  0014cb0c: 00000000 nop
+
0012de7c:
  0014cb10: 8d0b0048 lw r11,0x0048(r8) load ?? byte
+
0012dea4:
  0014cb14: 00000000 nop
+
0012efe0:
  0014cb18: 140b0009 bne r0,r11,0x0014cb40 branch if not 0
+
0012f7b4:
  0014cb1c: 00000000 nop
+
001306f8:
  0014cb20: 080532b8 j 0x0014cae0 check next block
+
001316a4:
  0014cb24: 00000000 nop
+
001316c4:
  if out of bounds
+
00131a78:
  0014cb28: 3c018016 lui r1,0x8016
+
00131b44:
  0014cb2c: 00200821 addu r1,r1,r0
+
00131bd4:
  0014cb30: 8c285f98 lw r8,0x5f98(r1)
+
00131c94:
  0014cb34: 3c018017 lui r1,0x8017
+
00131cfc:
  0014cb38: 00200821 addu r1,r1,r0
+
00131d58:
  0014cb3c: ac204038 sw r0,0x4038(r1) clear byte if none found
+
00131f30:
  if 0x48 byte = 0x01
+
00132028:
  0014cb40: 0c050b2a jal 0x00142ca8
+
001320d0:
  0014cb44: 00000000 nop
+
00132188:
  0014cb48: 3c018017 lui r1,0x8017
+
00132198:
  0014cb4c: 00200821 addu r1,r1,r0
+
00132230:
  0014cb50: 8c284038 lw r8,0x4038(r1) load block pointer
+
001327e8:
  0014cb54: 00000000 nop
+
00132b80:
  0014cb58: 00084280 sll r8,r8,0x0a
+
00132cb4:
  0014cb5c: 3c018016 lui r1,0x8016
+
00132da8:
  0014cb60: 00200821 addu r1,r1,r0
+
00132fb4:
  0014cb64: 8c295f98 lw r9,0x5f98(r1)
+
001345b4:
  0014cb68: 00000000 nop
+
001346b8:
  0014cb6c: 01094021 addu r8,r8,r9 get block address
+
00136068:
  0014cb70: 8d100010 lw r16,0x0010(r8) load data from new block
+
001360c0:
  0014cb74: 8d110014 lw r17,0x0014(r8)
+
001362d4:
  0014cb78: 8d120018 lw r18,0x0018(r8)
+
001362dc:
  0014cb7c: 8d13001c lw r19,0x001c(r8)
+
00136354:
  0014cb80: 8d140020 lw r20,0x0020(r8)
+
0013635c:
  0014cb84: 8d150024 lw r21,0x0024(r8)
+
001367ac:
  0014cb88: 8d160028 lw r22,0x0028(r8)
+
00136ab4:
  0014cb8c: 8d17002c lw r23,0x002c(r8)
+
00136f18:
  0014cb90: 8d1a0030 lw r26,0x0030(r8)
+
00137070:
  0014cb94: 8d1b0034 lw r27,0x0034(r8)
+
0013713c:
  0014cb98: 8d1c0038 lw r28,0x0038(r8)
+
001375bc:
  0014cb9c: 8d1d003c lw r29,0x003c(r8)
+
00137754:
  0014cba0: 8d1e0040 lw r30,0x0040(r8)
+
001377d0:
  0014cba4: 8d1f0044 lw r31,0x0044(r8) load different return address
+
001377d8:
  0014cba8: 00000000 nop
+
00137af0:
  0014cbac: 03e00008 jr r31
+
00138e24:
  0014cbb0: 00000000 nop
+
00138e9c:
</font>
+
00138fa4:
 +
0013907c:
 +
0013a27c:
 +
0013a34c:
 +
0013a844:
 +
0013ae78:
 +
0013b100:
 +
0013b23c:
 +
0013b3d0:
 +
0013b4bc:
 +
0013b524:
 +
0013b55c:
 +
0013bbac:
 +
0013bc38:
 +
0013bc78:
 +
0013bce0:
 +
0013bd20:
 +
0013bff8:
 +
0013c04c:
 +
0013c0d0:
 +
0013c150:
 +
0013c358:
 +
0013c428:
 +
0013c6c8:
 +
0013c6d0:
 +
0013c818:
 +
0013c848:
 +
0013c878:
 +
0013c8e4:
 +
0013c914:
 +
0013c9a0:
 +
0013c9e4:
 +
0013ca18:
 +
0013cd50:
 +
0013d208:
 +
0013d218:
 +
0013df64:
 +
0013e5a4:
 +
0013e7f8:
 +
0013e84c:
 +
0013e8a8:
 +
0013ef24:
 +
001407d8:
 +
00141520:
 +
00142c08:
 +
001431b0:
 +
00143ed4:
 +
0014400c:
 +
001440bc:
 +
001440d8:
 +
  001440e0:
 +
  00144218:
 +
  00144234:
 +
  0014423c:
 +
  001442cc:
 +
  001442e4:
 +
  001442fc:
 +
  00144674:
 +
  001447b4:
 +
  001447d8:
 +
  00144820:
 +
  00144844:
 +
  001449dc:
 +
  00144a14:
 +
  00144b68:
 +
  00144d94:
 +
  00144dbc:
 +
  001453e4:
 +
  0014540c:
 +
  0014542c:
 +
  00145490:
 +
  001454b0:
 +
  001454d0:
 +
  001454f0:
 +
  00145524:
 +
  00145544:
 +
  00145594:
 +
  001458c4:
 +
  001458f0:
 +
  0014597c:
 +
  001459d8:
 +
  00145a54:
 +
  00145d0c:
 +
  00145d14:
 +
  00145db8:
 +
  00145f94:
 +
  001460c0:
 +
  001465a0:
 +
  00146678:
 +
  00146760:
 +
  00146854:
 +
  0014685c:
 +
  00146910:
 +
  00146918:
 +
  00146b20:
 +
  00146eb0:
 +
  00146ff4:
 +
  0014991c:
 +
  00149980:
 +
  00149ab4:
 +
  0014a444:
 +
  0014a500:
 +
  0014c87c:
 +
  0014c984: [[0014c958_-_0014c990]]
 +
0014c9e8:

Latest revision as of 20:15, 3 March 2022

Seeks a new thread to run.
Start from currently running thread (0x80174038) and check the running flag (0x48)
 - If the thread is running, changes all the registers values (r16 to r31)
 - If there's no running thread after the current one switch to thread 0x00
-----------------------------------------------------------------------------------------
0014ca80: 3c018017 lui r1,0x8017            |
0014ca84: 00200821 addu r1,r1,r0            |
0014ca88: 8c284038 lw r8,0x4038(r1)         |r8 = Currently running thread  0x80174038
0014ca8c: 00000000 nop                      |
0014ca90: 00084280 sll r8,r8,0x0a           |r8 = Currently running thread * 0x400
0014ca94: 3c018016 lui r1,0x8016            |
0014ca98: 00200821 addu r1,r1,r0            |
0014ca9c: 8c295f98 lw r9,0x5f98(r1)         |r3 = 8016986c - Thread array data pointer (EVTCHR)  0x80165f98
0014caa0: 00000000 nop                      |
0014caa4: 01094021 addu r8,r8,r9            |r8 = Currently running thread data pointer
0014caa8: ad100010 sw r16,0x0010(r8)        |Store all register in currently running thread
0014caac: ad110014 sw r17,0x0014(r8)        |
0014cab0: ad120018 sw r18,0x0018(r8)        |
0014cab4: ad13001c sw r19,0x001c(r8)        |
0014cab8: ad140020 sw r20,0x0020(r8)        |
0014cabc: ad150024 sw r21,0x0024(r8)        |
0014cac0: ad160028 sw r22,0x0028(r8)        |
0014cac4: ad17002c sw r23,0x002c(r8)        |
0014cac8: ad1a0030 sw r26,0x0030(r8)        |
0014cacc: ad1b0034 sw r27,0x0034(r8)        |
0014cad0: ad1c0038 sw r28,0x0038(r8)        |
0014cad4: ad1d003c sw r29,0x003c(r8)        |
0014cad8: ad1e0040 sw r30,0x0040(r8)        |
0014cadc: ad1f0044 sw r31,0x0044(r8)        |
0014cae0: 25080400 addiu r8,r8,0x0400       @LOOP r8 = Next thread data pointer Seek a running thread after current thread
0014cae4: 3c018017 lui r1,0x8017                 |
0014cae8: 00200821 addu r1,r1,r0                 |
0014caec: 8c2a4038 lw r10,0x4038(r1)             |r10 = Currently running thread ID
0014caf0: 00000000 nop                           |
0014caf4: 254a0001 addiu r10,r10,0x0001          |r10 = Next Thread ID
0014caf8: 3c018017 lui r1,0x8017                 |
0014cafc: 00200821 addu r1,r1,r0                 |
0014cb00: ac2a4038 sw r10,0x4038(r1)             |Store next Thread ID in Currently running thread
0014cb04: 340b0010 ori r11,r0,0x0010             |r11 = 0x10
0014cb08: 114b0007 beq r10,r11,0x0014cb28        #If Next Thread ID <> 0x10 (Last Thread)
0014cb0c: 00000000 nop                               |
0014cb10: 8d0b0048 lw r11,0x0048(r8)                 |r11 = Thread's Is Running flag
0014cb14: 00000000 nop                               |
0014cb18: 140b0009 bne r0,r11,0x0014cb40             #If T his thread is not running loop /If thread is running, branch avoiding return to 1st thread
0014cb1c: 00000000 nop                               |
0014cb20: 080532b8 j 0x0014cae0             Λ LOOP while not at the last Thread
0014cb24: 00000000 nop    
                  
                                     Last thread is reached and not running
0014cb28: 3c018016 lui r1,0x8016                 |r1 = 0x80160000
0014cb2c: 00200821 addu r1,r1,r0                 |
0014cb30: 8c285f98 lw r8,0x5f98(r1)              |r8 = 8016986c - 1st Thread array data pointer (EVTCHR)  0x80165f98
0014cb34: 3c018017 lui r1,0x8017                 |
0014cb38: 00200821 addu r1,r1,r0                 |
0014cb3c: ac204038 sw r0,0x4038(r1)              |set 0x00 in currently running thread ID

                                     Thread is set (0x00 or New ID)
0014cb40: 0c050b2a jal 0x00142ca8           |-->00142ca8_-_00142d28  Store value at 0x801697d0 (based on thread task) - Might nullify 0x8016d9b8
0014cb44: 00000000 nop                      |
0014cb48: 3c018017 lui r1,0x8017            |
0014cb4c: 00200821 addu r1,r1,r0            |
0014cb50: 8c284038 lw r8,0x4038(r1)         |r8 = Currently running thread ID
0014cb54: 00000000 nop                      |
0014cb58: 00084280 sll r8,r8,0x0a           |r8 = Currently running thread ID x 0x400
0014cb5c: 3c018016 lui r1,0x8016            |
0014cb60: 00200821 addu r1,r1,r0            |
0014cb64: 8c295f98 lw r9,0x5f98(r1)         |r9 = 8016986c - 1st Thread array data pointer (EVTCHR)
0014cb68: 00000000 nop                      |
0014cb6c: 01094021 addu r8,r8,r9            |r8 = New thread data pointer
0014cb70: 8d100010 lw r16,0x0010(r8)        |load all register from new thread
0014cb74: 8d110014 lw r17,0x0014(r8)        |
0014cb78: 8d120018 lw r18,0x0018(r8)        |
0014cb7c: 8d13001c lw r19,0x001c(r8)        |
0014cb80: 8d140020 lw r20,0x0020(r8)        |
0014cb84: 8d150024 lw r21,0x0024(r8)        |
0014cb88: 8d160028 lw r22,0x0028(r8)        |
0014cb8c: 8d17002c lw r23,0x002c(r8)        |
0014cb90: 8d1a0030 lw r26,0x0030(r8)        |
0014cb94: 8d1b0034 lw r27,0x0034(r8)        |
0014cb98: 8d1c0038 lw r28,0x0038(r8)        |
0014cb9c: 8d1d003c lw r29,0x003c(r8)        |
0014cba0: 8d1e0040 lw r30,0x0040(r8)        |
0014cba4: 8d1f0044 lw r31,0x0044(r8)        |Might load a different return address
0014cba8: 00000000 nop                      
0014cbac: 03e00008 jr r31                   
0014cbb0: 00000000 nop                      

Return locations

Battle.bin
0012dbf8:
0012dc48:
0012dda4:
0012de7c:
0012dea4:
0012efe0:
0012f7b4:
001306f8:
001316a4:
001316c4:
00131a78:
00131b44:
00131bd4:
00131c94:
00131cfc:
00131d58:
00131f30:
00132028:
001320d0:
00132188:
00132198:
00132230:
001327e8:
00132b80:
00132cb4:
00132da8:
00132fb4:
001345b4:
001346b8:
00136068:
001360c0:
001362d4:
001362dc:
00136354:
0013635c:
001367ac:
00136ab4:
00136f18:
00137070:
0013713c:
001375bc:
00137754:
001377d0:
001377d8:
00137af0:
00138e24:
00138e9c:
00138fa4:
0013907c:
0013a27c:
0013a34c:
0013a844:
0013ae78:
0013b100:
0013b23c:
0013b3d0:
0013b4bc:
0013b524:
0013b55c:
0013bbac:
0013bc38:
0013bc78:
0013bce0:
0013bd20:
0013bff8:
0013c04c:
0013c0d0:
0013c150:
0013c358:
0013c428:
0013c6c8:
0013c6d0:
0013c818:
0013c848:
0013c878:
0013c8e4:
0013c914:
0013c9a0:
0013c9e4:
0013ca18:
0013cd50:
0013d208:
0013d218:
0013df64:
0013e5a4:
0013e7f8:
0013e84c:
0013e8a8:
0013ef24:
001407d8:
00141520:
00142c08:
001431b0:
00143ed4:
0014400c:
001440bc:
001440d8:
001440e0:
00144218:
00144234:
0014423c:
001442cc:
001442e4:
001442fc:
00144674:
001447b4:
001447d8:
00144820:
00144844:
001449dc:
00144a14:
00144b68:
00144d94:
00144dbc:
001453e4:
0014540c:
0014542c:
00145490:
001454b0:
001454d0:
001454f0:
00145524:
00145544:
00145594:
001458c4:
001458f0:
0014597c:
001459d8:
00145a54:
00145d0c:
00145d14:
00145db8:
00145f94:
001460c0:
001465a0:
00146678:
00146760:
00146854:
0014685c:
00146910:
00146918:
00146b20:
00146eb0:
00146ff4:
0014991c:
00149980:
00149ab4:
0014a444:
0014a500:
0014c87c:
0014c984: 0014c958_-_0014c990
0014c9e8: