Bond697 icon

Battle Animation Scripting

Bond697 | PRO | 03/08/13 06:03:35 AM UTC | 0 ⭐ | 11187 👁️ | Never ⏰ | []
ARM |

29.88 KB

|

None

|

0 👍

/

0 👎

OVL_168:021E1CB8             ; =============== S U B R O U T I N E =======================================
OVL_168:021E1CB8
OVL_168:021E1CB8
OVL_168:021E1CB8             sub_21E1CB8                             ; DATA XREF: OVL_168:021F3110o
OVL_168:021E1CB8
OVL_168:021E1CB8             marker          = -0x20
OVL_168:021E1CB8             var_1C          = -0x1C
OVL_168:021E1CB8
OVL_168:021E1CB8 F8 B5                       PUSH    {R3-R7,LR}
OVL_168:021E1CBA 82 B0                       SUB     SP, SP, #8      ; marker
OVL_168:021E1CBC 05 1C                       MOVS    R5, R0
OVL_168:021E1CBE 2F 48                       LDR     R0, =0x7AD
OVL_168:021E1CC0 0E 1C                       MOVS    R6, R1
OVL_168:021E1CC2 00 90                       STR     R0, [SP,#0x20+marker] ; marker
OVL_168:021E1CC4 8E 20 80 00                 MOVS    R0, 0x238
OVL_168:021E1CC8 31 5A                       LDRH    R1, [R6,R0]
OVL_168:021E1CCA 2D 48                       LDR     R0, =0x7FFF
OVL_168:021E1CCC 2D 4B                       LDR     R3, =aBtlv_effvm_c ; "btlv_effvm.c"
OVL_168:021E1CCE 01 40                       ANDS    R1, R0
OVL_168:021E1CD0 40 1C                       ADDS    R0, R0, #1
OVL_168:021E1CD2 08 43                       ORRS    R0, R1
OVL_168:021E1CD4 00 04                       LSLS    R0, R0, #0x10
OVL_168:021E1CD6 00 0C                       LSRS    R0, R0, #0x10
OVL_168:021E1CD8 5C 21                       MOVS    R1, #0x5C ; '\' ; blockLength
OVL_168:021E1CDA 01 22                       MOVS    R2, #1          ; clearBlock
OVL_168:021E1CDC 58 F6 A4 FA                 BL      allocateBlockFromExpHeap
OVL_168:021E1CE0 04 1C                       MOVS    R4, R0
OVL_168:021E1CE2 28 1C                       MOVS    R0, R5          ; vm
OVL_168:021E1CE4 33 F6 8E FE                 BL      scriptRead32
OVL_168:021E1CE8 01 1C                       MOVS    R1, R0
OVL_168:021E1CEA 30 1C                       MOVS    R0, R6
OVL_168:021E1CEC 04 F0 5E F9                 BL      sub_21E5FAC
OVL_168:021E1CF0 01 1C                       MOVS    R1, R0
OVL_168:021E1CF2 30 1C                       MOVS    R0, R6
OVL_168:021E1CF4 03 F0 22 F8                 BL      sub_21E4D3C
OVL_168:021E1CF8 07 1C                       MOVS    R7, R0
OVL_168:021E1CFA 28 1C                       MOVS    R0, R5          ; vm
OVL_168:021E1CFC 33 F6 82 FE                 BL      scriptRead32
OVL_168:021E1D00 01 90                       STR     R0, [SP,#0x20+var_1C]
OVL_168:021E1D02 25 60                       STR     R5, [R4]
OVL_168:021E1D04 28 1C                       MOVS    R0, R5          ; vm
OVL_168:021E1D06 33 F6 7D FE                 BL      scriptRead32
OVL_168:021E1D0A 60 60                       STR     R0, [R4,#4]
OVL_168:021E1D0C 28 1C                       MOVS    R0, R5          ; vm
OVL_168:021E1D0E 33 F6 79 FE                 BL      scriptRead32
OVL_168:021E1D12 A0 60                       STR     R0, [R4,#8]
OVL_168:021E1D14 00 20                       MOVS    R0, #0
OVL_168:021E1D16 E0 60                       STR     R0, [R4,#0xC]
OVL_168:021E1D18 28 1C                       MOVS    R0, R5          ; vm
OVL_168:021E1D1A 33 F6 73 FE                 BL      scriptRead32
OVL_168:021E1D1E 20 61                       STR     R0, [R4,#0x10]
OVL_168:021E1D20 00 20                       MOVS    R0, #0
OVL_168:021E1D22 60 61                       STR     R0, [R4,#0x14]
OVL_168:021E1D24 28 1C                       MOVS    R0, R5          ; vm
OVL_168:021E1D26 33 F6 6D FE                 BL      scriptRead32
OVL_168:021E1D2A A0 61                       STR     R0, [R4,#0x18]
OVL_168:021E1D2C 28 1C                       MOVS    R0, R5          ; vm
OVL_168:021E1D2E 33 F6 69 FE                 BL      scriptRead32
OVL_168:021E1D32 28 1C                       MOVS    R0, R5          ; vm
OVL_168:021E1D34 33 F6 66 FE                 BL      scriptRead32
OVL_168:021E1D38 60 64                       STR     R0, [R4,#0x44]
OVL_168:021E1D3A 28 1C                       MOVS    R0, R5          ; vm
OVL_168:021E1D3C 33 F6 62 FE                 BL      scriptRead32
OVL_168:021E1D40 A0 64                       STR     R0, [R4,#0x48]
OVL_168:021E1D42 28 1C                       MOVS    R0, R5          ; vm
OVL_168:021E1D44 33 F6 5E FE                 BL      scriptRead32
OVL_168:021E1D48 E0 64                       STR     R0, [R4,#0x4C]
OVL_168:021E1D4A 28 1C                       MOVS    R0, R5          ; vm
OVL_168:021E1D4C 33 F6 5A FE                 BL      scriptRead32
OVL_168:021E1D50 20 65                       STR     R0, [R4,#0x50]
OVL_168:021E1D52 A0 68                       LDR     R0, [R4,#8]
OVL_168:021E1D54 08 28                       CMP     R0, #8
OVL_168:021E1D56 01 D1                       BNE     loc_21E1D5C
OVL_168:021E1D58 60 68                       LDR     R0, [R4,#4]
OVL_168:021E1D5A A0 60                       STR     R0, [R4,#8]
OVL_168:021E1D5C
OVL_168:021E1D5C             loc_21E1D5C                             ; CODE XREF: sub_21E1CB8+9Ej
OVL_168:021E1D5C 10 2F                       CMP     R7, #0x10
OVL_168:021E1D5E 05 D0                       BEQ     loc_21E1D6C
OVL_168:021E1D60 01 9B                       LDR     R3, [SP,#0x20+var_1C]
OVL_168:021E1D62 30 1C                       MOVS    R0, R6
OVL_168:021E1D64 21 1C                       MOVS    R1, R4
OVL_168:021E1D66 3A 1C                       MOVS    R2, R7
OVL_168:021E1D68 03 F0 0A FE                 BL      sub_21E5980
OVL_168:021E1D6C
OVL_168:021E1D6C             loc_21E1D6C                             ; CODE XREF: sub_21E1CB8+A6j
OVL_168:021E1D6C 20 1C                       MOVS    R0, R4          ; pBlk
OVL_168:021E1D6E 58 F6 83 FA                 BL      freeBlock
OVL_168:021E1D72 8F 20 80 00                 MOVS    R0, 0x23C
OVL_168:021E1D76 30 58                       LDR     R0, [R6,R0]
OVL_168:021E1D78 02 B0                       ADD     SP, SP, #8
OVL_168:021E1D7A F8 BD                       POP     {R3-R7,PC}
OVL_168:021E1D7A             ; End of function sub_21E1CB8
OVL_168:021E1D7A
OVL_168:021E1D7A             ; ---------------------------------------------------------------------------
OVL_168:021E1D7C             ; int dword_21E1D7C
OVL_168:021E1D7C AD 07 00 00 dword_21E1D7C   DCD 0x7AD               ; DATA XREF: sub_21E1CB8+6r
OVL_168:021E1D80 FF 7F 00 00 dword_21E1D80   DCD 0x7FFF              ; DATA XREF: sub_21E1CB8+12r
OVL_168:021E1D84             ; char *off_21E1D84
OVL_168:021E1D84 B4 41 1F 02 off_21E1D84     DCD aBtlv_effvm_c       ; DATA XREF: sub_21E1CB8+14r
OVL_168:021E1D84                                                     ; "btlv_effvm.c"
 
OVL_168:021E5980
OVL_168:021E5980             sub_21E5980                             ; CODE XREF: sub_21E1CB8+B0p
OVL_168:021E5980                                                     ; sub_21E1E84+148p ...
OVL_168:021E5980
OVL_168:021E5980             marker          = -0x78
OVL_168:021E5980             var_74          = -0x74
OVL_168:021E5980             var_70          = -0x70
OVL_168:021E5980             var_6C          = -0x6C
OVL_168:021E5980             var_68          = -0x68
OVL_168:021E5980             var_64          = -0x64
OVL_168:021E5980             var_60          = -0x60
OVL_168:021E5980             var_5C          = -0x5C
OVL_168:021E5980             var_58          = -0x58
OVL_168:021E5980             var_54          = -0x54
OVL_168:021E5980             var_50          = -0x50
OVL_168:021E5980             var_34          = -0x34
OVL_168:021E5980
OVL_168:021E5980 F0 B5                       PUSH    {R4-R7,LR}
OVL_168:021E5982 99 B0                       SUB     SP, SP, #0x64   ; marker
OVL_168:021E5984 07 1C                       MOVS    R7, R0
OVL_168:021E5986 08 1C                       MOVS    R0, R1
OVL_168:021E5988 15 1C                       MOVS    R5, R2
OVL_168:021E598A 42 68                       LDR     R2, [R0,#4]
OVL_168:021E598C 80 68                       LDR     R0, [R0,#8]
OVL_168:021E598E 01 91                       STR     R1, [SP,#0x78+var_74]
OVL_168:021E5990 02 93                       STR     R3, [SP,#0x78+var_70]
OVL_168:021E5992 90 42                       CMP     R0, R2
OVL_168:021E5994 50 D1                       BNE     loc_21E5A38
OVL_168:021E5996 01 1C                       MOVS    R1, R0
OVL_168:021E5998 0B 39                       SUBS    R1, #0xB
OVL_168:021E599A 01 29                       CMP     R1, #1
OVL_168:021E599C 4C D8                       BHI     loc_21E5A38
OVL_168:021E599E 0C 28                       CMP     R0, #0xC
OVL_168:021E59A0 02 D1                       BNE     loc_21E59A8
OVL_168:021E59A2 01 98                       LDR     R0, [SP,#0x78+var_74]
OVL_168:021E59A4 01 21                       MOVS    R1, #1
OVL_168:021E59A6 81 65                       STR     R1, [R0,#0x58]
OVL_168:021E59A8
OVL_168:021E59A8             loc_21E59A8                             ; CODE XREF: sub_21E5980+20j
OVL_168:021E59A8 38 1C                       MOVS    R0, R7
OVL_168:021E59AA 10 21                       MOVS    R1, #0x10
OVL_168:021E59AC 11 AA                       ADD     R2, SP, #0x78+var_34
OVL_168:021E59AE FE F7 7B FF                 BL      sub_21E48A8
OVL_168:021E59B2 06 90                       STR     R0, [SP,#0x78+var_60]
OVL_168:021E59B4 00 28                       CMP     R0, #0
OVL_168:021E59B6 02 D0                       BEQ     loc_21E59BE
OVL_168:021E59B8 00 24                       MOVS    R4, #0
OVL_168:021E59BA 00 28                       CMP     R0, #0
OVL_168:021E59BC 00 DC                       BGT     loc_21E59C0
OVL_168:021E59BE
OVL_168:021E59BE             loc_21E59BE                             ; CODE XREF: sub_21E5980+36j
OVL_168:021E59BE F0 E0                       B       loc_21E5BA2
OVL_168:021E59C0             ; ---------------------------------------------------------------------------
OVL_168:021E59C0
OVL_168:021E59C0             loc_21E59C0                             ; CODE XREF: sub_21E5980+3Cj
OVL_168:021E59C0 A8 00                       LSLS    R0, R5, #2
OVL_168:021E59C2 38 18                       ADDS    R0, R7, R0
OVL_168:021E59C4 03 90                       STR     R0, [SP,#0x78+var_6C]
OVL_168:021E59C6 60 1E                       SUBS    R0, R4, #1
OVL_168:021E59C8 40 0C                       LSRS    R0, R0, #0x11
OVL_168:021E59CA 07 90                       STR     R0, [SP,#0x78+var_5C]
OVL_168:021E59CC
OVL_168:021E59CC             loc_21E59CC                             ; CODE XREF: sub_21E5980+B2j
OVL_168:021E59CC 76 48                       LDR     R0, =0x1D0B
OVL_168:021E59CE 77 4B                       LDR     R3, =aBtlv_effvm_c ; "btlv_effvm.c"
OVL_168:021E59D0 00 90                       STR     R0, [SP,#0x78+marker] ; marker
OVL_168:021E59D2 8E 20 80 00                 MOVS    R0, 0x238
OVL_168:021E59D6 39 5A                       LDRH    R1, [R7,R0]
OVL_168:021E59D8 07 98                       LDR     R0, [SP,#0x78+var_5C]
OVL_168:021E59DA 01 22                       MOVS    R2, #1          ; clearBlock
OVL_168:021E59DC 01 40                       ANDS    R1, R0
OVL_168:021E59DE 02 20 80 03                 MOVS    R0, 0x8000
OVL_168:021E59E2 08 43                       ORRS    R0, R1
OVL_168:021E59E4 00 04                       LSLS    R0, R0, #0x10
OVL_168:021E59E6 00 0C                       LSRS    R0, R0, #0x10
OVL_168:021E59E8 5C 21                       MOVS    R1, #0x5C ; '\' ; blockLength
OVL_168:021E59EA 54 F6 1D FC                 BL      allocateBlockFromExpHeap
OVL_168:021E59EE 05 1C                       MOVS    R5, R0
OVL_168:021E59F0 01 9E                       LDR     R6, [SP,#0x78+var_74]
OVL_168:021E59F2 2B 1C                       MOVS    R3, R5
OVL_168:021E59F4 0B 22                       MOVS    R2, #0xB
OVL_168:021E59F6
OVL_168:021E59F6             loc_21E59F6                             ; CODE XREF: sub_21E5980+7Cj
OVL_168:021E59F6 03 CE                       LDMIA   R6!, {R0,R1}
OVL_168:021E59F8 03 C3                       STMIA   R3!, {R0,R1}
OVL_168:021E59FA 52 1E                       SUBS    R2, R2, #1
OVL_168:021E59FC FB D1                       BNE     loc_21E59F6
OVL_168:021E59FE 30 68                       LDR     R0, [R6]
OVL_168:021E5A00 A1 00                       LSLS    R1, R4, #2
OVL_168:021E5A02 18 60                       STR     R0, [R3]
OVL_168:021E5A04 11 A8                       ADD     R0, SP, #0x78+var_34
OVL_168:021E5A06 40 58                       LDR     R0, [R0,R1]
OVL_168:021E5A08 69 4A                       LDR     R2, =(sub_21E4D60+1)
OVL_168:021E5A0A 68 60                       STR     R0, [R5,#4]
OVL_168:021E5A0C 11 A8                       ADD     R0, SP, #0x78+var_34
OVL_168:021E5A0E 40 58                       LDR     R0, [R0,R1]
OVL_168:021E5A10 02 99                       LDR     R1, [SP,#0x78+var_70]
OVL_168:021E5A12 A8 60                       STR     R0, [R5,#8]
OVL_168:021E5A14 03 98                       LDR     R0, [SP,#0x78+var_6C]
OVL_168:021E5A16 2B 1C                       MOVS    R3, R5
OVL_168:021E5A18 C0 68                       LDR     R0, [R0,#0xC]
OVL_168:021E5A1A 6A F6 45 FB                 BL      sub_20500A8
OVL_168:021E5A1E 00 21                       MOVS    R1, #0
OVL_168:021E5A20 C9 43                       MVNS    R1, R1
OVL_168:021E5A22 88 42                       CMP     R0, R1
OVL_168:021E5A24 02 D1                       BNE     loc_21E5A2C
OVL_168:021E5A26 28 1C                       MOVS    R0, R5          ; pBlk
OVL_168:021E5A28 54 F6 26 FC                 BL      freeBlock
OVL_168:021E5A2C
OVL_168:021E5A2C             loc_21E5A2C                             ; CODE XREF: sub_21E5980+A4j
OVL_168:021E5A2C 06 98                       LDR     R0, [SP,#0x78+var_60]
OVL_168:021E5A2E 64 1C                       ADDS    R4, R4, #1
OVL_168:021E5A30 84 42                       CMP     R4, R0
OVL_168:021E5A32 CB DB                       BLT     loc_21E59CC
OVL_168:021E5A34 19 B0                       ADD     SP, SP, #0x64
OVL_168:021E5A36 F0 BD                       POP     {R4-R7,PC}      ; marker
OVL_168:021E5A38             ; ---------------------------------------------------------------------------
OVL_168:021E5A38
OVL_168:021E5A38             loc_21E5A38                             ; CODE XREF: sub_21E5980+14j
OVL_168:021E5A38                                                     ; sub_21E5980+1Cj
OVL_168:021E5A38 90 42                       CMP     R0, R2
OVL_168:021E5A3A 04 D1                       BNE     loc_21E5A46
OVL_168:021E5A3C 92 22 92 00                 MOVS    R2, 0x248
OVL_168:021E5A40 B9 5C                       LDRB    R1, [R7,R2]
OVL_168:021E5A42 0C 29                       CMP     R1, #0xC
OVL_168:021E5A44 00 D0                       BEQ     loc_21E5A48
OVL_168:021E5A46
OVL_168:021E5A46             loc_21E5A46                             ; CODE XREF: sub_21E5980+BAj
OVL_168:021E5A46 81 E0                       B       loc_21E5B4C
OVL_168:021E5A48             ; ---------------------------------------------------------------------------
OVL_168:021E5A48
OVL_168:021E5A48             loc_21E5A48                             ; CODE XREF: sub_21E5980+C4j
OVL_168:021E5A48 39 68                       LDR     R1, [R7]
OVL_168:021E5A4A 49 06                       LSLS    R1, R1, #0x19
OVL_168:021E5A4C C9 0F                       LSRS    R1, R1, #0x1F
OVL_168:021E5A4E 7D D1                       BNE     loc_21E5B4C
OVL_168:021E5A50 11 1C                       MOVS    R1, R2
OVL_168:021E5A52 10 31                       ADDS    R1, #0x10
OVL_168:021E5A54 79 5A                       LDRH    R1, [R7,R1]
OVL_168:021E5A56 DA 3A                       SUBS    R2, #0xDA ; '+'
OVL_168:021E5A58 91 42                       CMP     R1, R2
OVL_168:021E5A5A 77 D0                       BEQ     loc_21E5B4C
OVL_168:021E5A5C 01 1C                       MOVS    R1, R0
OVL_168:021E5A5E 09 39                       SUBS    R1, #9
OVL_168:021E5A60 01 29                       CMP     R1, #1
OVL_168:021E5A62 73 D8                       BHI     loc_21E5B4C
OVL_168:021E5A64 0A 28                       CMP     R0, #0xA
OVL_168:021E5A66 02 D1                       BNE     loc_21E5A6E
OVL_168:021E5A68 01 98                       LDR     R0, [SP,#0x78+var_74]
OVL_168:021E5A6A 01 21                       MOVS    R1, #1
OVL_168:021E5A6C 81 65                       STR     R1, [R0,#0x58]
OVL_168:021E5A6E
OVL_168:021E5A6E             loc_21E5A6E                             ; CODE XREF: sub_21E5980+E6j
OVL_168:021E5A6E FA F7 5B FB                 BL      sub_21E0128
OVL_168:021E5A72 03 28                       CMP     R0, #3
OVL_168:021E5A74 09 D8                       BHI     loc_21E5A8A
OVL_168:021E5A76 00 18                       ADDS    R0, R0, R0
OVL_168:021E5A78 78 44                       ADD     R0, PC
OVL_168:021E5A7A C0 88                       LDRH    R0, [R0,#6]
OVL_168:021E5A7C 00 04                       LSLS    R0, R0, #0x10
OVL_168:021E5A7E 00 14                       ASRS    R0, R0, #0x10
OVL_168:021E5A80 87 44                       ADD     PC, R0
OVL_168:021E5A80             ; ---------------------------------------------------------------------------
OVL_168:021E5A82 06 00                       DCW 6
OVL_168:021E5A84 10 00                       DCW 0x10
OVL_168:021E5A86 24 00                       DCW 0x24
OVL_168:021E5A88 06 00                       DCW 6
OVL_168:021E5A8A             ; ---------------------------------------------------------------------------
OVL_168:021E5A8A
OVL_168:021E5A8A             loc_21E5A8A                             ; CODE XREF: sub_21E5980+F4j
OVL_168:021E5A8A 38 1C                       MOVS    R0, R7
OVL_168:021E5A8C DC 30                       ADDS    R0, #0xDC ; '_'
OVL_168:021E5A8E 00 68                       LDR     R0, [R0]
OVL_168:021E5A90 09 90                       STR     R0, [SP,#0x78+var_54]
OVL_168:021E5A92 07 E0                       B       loc_21E5AA4
OVL_168:021E5A94             ; ---------------------------------------------------------------------------
OVL_168:021E5A94 38 1C                       MOVS    R0, R7
OVL_168:021E5A96 DC 30                       ADDS    R0, #0xDC ; '_'
OVL_168:021E5A98 00 68                       LDR     R0, [R0]
OVL_168:021E5A9A 01 21                       MOVS    R1, #1
OVL_168:021E5A9C 08 42                       TST     R0, R1
OVL_168:021E5A9E 00 D1                       BNE     loc_21E5AA2
OVL_168:021E5AA0 00 21                       MOVS    R1, #0
OVL_168:021E5AA2
OVL_168:021E5AA2             loc_21E5AA2                             ; CODE XREF: sub_21E5980+11Ej
OVL_168:021E5AA2 09 91                       STR     R1, [SP,#0x78+var_54]
OVL_168:021E5AA4
OVL_168:021E5AA4             loc_21E5AA4                             ; CODE XREF: sub_21E5980+112j
OVL_168:021E5AA4 01 20                       MOVS    R0, #1
OVL_168:021E5AA6 10 E0                       B       loc_21E5ACA
OVL_168:021E5AA8             ; ---------------------------------------------------------------------------
OVL_168:021E5AA8 38 1C                       MOVS    R0, R7
OVL_168:021E5AAA DC 30                       ADDS    R0, #0xDC ; '_'
OVL_168:021E5AAC 01 68                       LDR     R1, [R0]
OVL_168:021E5AAE 01 20                       MOVS    R0, #1
OVL_168:021E5AB0 08 40                       ANDS    R0, R1
OVL_168:021E5AB2 01 D0                       BEQ     loc_21E5AB8
OVL_168:021E5AB4 13 21                       MOVS    R1, #0x13
OVL_168:021E5AB6 00 E0                       B       loc_21E5ABA
OVL_168:021E5AB8             ; ---------------------------------------------------------------------------
OVL_168:021E5AB8
OVL_168:021E5AB8             loc_21E5AB8                             ; CODE XREF: sub_21E5980+132j
OVL_168:021E5AB8 12 21                       MOVS    R1, #0x12
OVL_168:021E5ABA
OVL_168:021E5ABA             loc_21E5ABA                             ; CODE XREF: sub_21E5980+136j
OVL_168:021E5ABA 09 91                       STR     R1, [SP,#0x78+var_54]
OVL_168:021E5ABC 00 28                       CMP     R0, #0
OVL_168:021E5ABE 01 D0                       BEQ     loc_21E5AC4
OVL_168:021E5AC0 15 20                       MOVS    R0, #0x15
OVL_168:021E5AC2 00 E0                       B       loc_21E5AC6
OVL_168:021E5AC4             ; ---------------------------------------------------------------------------
OVL_168:021E5AC4
OVL_168:021E5AC4             loc_21E5AC4                             ; CODE XREF: sub_21E5980+13Ej
OVL_168:021E5AC4 14 20                       MOVS    R0, #0x14
OVL_168:021E5AC6
OVL_168:021E5AC6             loc_21E5AC6                             ; CODE XREF: sub_21E5980+142j
OVL_168:021E5AC6 0A 90                       STR     R0, [SP,#0x78+var_50]
OVL_168:021E5AC8 02 20                       MOVS    R0, #2
OVL_168:021E5ACA
OVL_168:021E5ACA             loc_21E5ACA                             ; CODE XREF: sub_21E5980+126j
OVL_168:021E5ACA 05 90                       STR     R0, [SP,#0x78+var_64]
OVL_168:021E5ACC 05 98                       LDR     R0, [SP,#0x78+var_64]
OVL_168:021E5ACE 00 28                       CMP     R0, #0
OVL_168:021E5AD0 67 D0                       BEQ     loc_21E5BA2
OVL_168:021E5AD2 00 24                       MOVS    R4, #0
OVL_168:021E5AD4 00 28                       CMP     R0, #0
OVL_168:021E5AD6 64 DD                       BLE     loc_21E5BA2
OVL_168:021E5AD8 A8 00                       LSLS    R0, R5, #2
OVL_168:021E5ADA 38 18                       ADDS    R0, R7, R0
OVL_168:021E5ADC 04 90                       STR     R0, [SP,#0x78+var_68]
OVL_168:021E5ADE 60 1E                       SUBS    R0, R4, #1
OVL_168:021E5AE0 40 0C                       LSRS    R0, R0, #0x11
OVL_168:021E5AE2 08 90                       STR     R0, [SP,#0x78+var_58]
OVL_168:021E5AE4
OVL_168:021E5AE4             loc_21E5AE4                             ; CODE XREF: sub_21E5980+1C6j
OVL_168:021E5AE4 33 48                       LDR     R0, =0x1D42
OVL_168:021E5AE6 31 4B                       LDR     R3, =aBtlv_effvm_c ; "btlv_effvm.c"
OVL_168:021E5AE8 00 90                       STR     R0, [SP,#0x78+marker] ; marker
OVL_168:021E5AEA 8E 20 80 00                 MOVS    R0, 0x238
OVL_168:021E5AEE 39 5A                       LDRH    R1, [R7,R0]
OVL_168:021E5AF0 08 98                       LDR     R0, [SP,#0x78+var_58]
OVL_168:021E5AF2 01 22                       MOVS    R2, #1          ; clearBlock
OVL_168:021E5AF4 01 40                       ANDS    R1, R0
OVL_168:021E5AF6 02 20 80 03                 MOVS    R0, 0x8000
OVL_168:021E5AFA 08 43                       ORRS    R0, R1
OVL_168:021E5AFC 00 04                       LSLS    R0, R0, #0x10
OVL_168:021E5AFE 00 0C                       LSRS    R0, R0, #0x10
OVL_168:021E5B00 5C 21                       MOVS    R1, #0x5C ; '\' ; blockLength
OVL_168:021E5B02 54 F6 91 FB                 BL      allocateBlockFromExpHeap
OVL_168:021E5B06 05 1C                       MOVS    R5, R0
OVL_168:021E5B08 01 9E                       LDR     R6, [SP,#0x78+var_74]
OVL_168:021E5B0A 2B 1C                       MOVS    R3, R5
OVL_168:021E5B0C 0B 22                       MOVS    R2, #0xB
OVL_168:021E5B0E
OVL_168:021E5B0E             loc_21E5B0E                             ; CODE XREF: sub_21E5980+194j
OVL_168:021E5B0E 03 CE                       LDMIA   R6!, {R0,R1}
OVL_168:021E5B10 03 C3                       STMIA   R3!, {R0,R1}
OVL_168:021E5B12 52 1E                       SUBS    R2, R2, #1
OVL_168:021E5B14 FB D1                       BNE     loc_21E5B0E
OVL_168:021E5B16 30 68                       LDR     R0, [R6]
OVL_168:021E5B18 A1 00                       LSLS    R1, R4, #2
OVL_168:021E5B1A 18 60                       STR     R0, [R3]
OVL_168:021E5B1C 09 A8                       ADD     R0, SP, #0x78+var_54
OVL_168:021E5B1E 40 58                       LDR     R0, [R0,R1]
OVL_168:021E5B20 02 99                       LDR     R1, [SP,#0x78+var_70]
OVL_168:021E5B22 68 60                       STR     R0, [R5,#4]
OVL_168:021E5B24 A8 60                       STR     R0, [R5,#8]
OVL_168:021E5B26 04 98                       LDR     R0, [SP,#0x78+var_68]
OVL_168:021E5B28 21 4A                       LDR     R2, =(sub_21E4D60+1)
OVL_168:021E5B2A C0 68                       LDR     R0, [R0,#0xC]
OVL_168:021E5B2C 2B 1C                       MOVS    R3, R5
OVL_168:021E5B2E 6A F6 BB FA                 BL      sub_20500A8
OVL_168:021E5B32 00 21                       MOVS    R1, #0
OVL_168:021E5B34 C9 43                       MVNS    R1, R1
OVL_168:021E5B36 88 42                       CMP     R0, R1
OVL_168:021E5B38 02 D1                       BNE     loc_21E5B40
OVL_168:021E5B3A 28 1C                       MOVS    R0, R5          ; pBlk
OVL_168:021E5B3C 54 F6 9C FB                 BL      freeBlock
OVL_168:021E5B40
OVL_168:021E5B40             loc_21E5B40                             ; CODE XREF: sub_21E5980+1B8j
OVL_168:021E5B40 05 98                       LDR     R0, [SP,#0x78+var_64]
OVL_168:021E5B42 64 1C                       ADDS    R4, R4, #1
OVL_168:021E5B44 84 42                       CMP     R4, R0
OVL_168:021E5B46 CD DB                       BLT     loc_21E5AE4
OVL_168:021E5B48 19 B0                       ADD     SP, SP, #0x64
OVL_168:021E5B4A F0 BD                       POP     {R4-R7,PC}      ; marker
OVL_168:021E5B4C             ; ---------------------------------------------------------------------------
OVL_168:021E5B4C
OVL_168:021E5B4C             loc_21E5B4C                             ; CODE XREF: sub_21E5980:loc_21E5A46j
OVL_168:021E5B4C                                                     ; sub_21E5980+CEj ...
OVL_168:021E5B4C 1A 48                       LDR     R0, =0x1D55
OVL_168:021E5B4E 17 4B                       LDR     R3, =aBtlv_effvm_c ; "btlv_effvm.c"
OVL_168:021E5B50 00 90                       STR     R0, [SP,#0x78+marker] ; marker
OVL_168:021E5B52 8E 20 80 00                 MOVS    R0, 0x238
OVL_168:021E5B56 39 5A                       LDRH    R1, [R7,R0]
OVL_168:021E5B58 18 48                       LDR     R0, =0x7FFF
OVL_168:021E5B5A 01 22                       MOVS    R2, #1          ; clearBlock
OVL_168:021E5B5C 01 40                       ANDS    R1, R0
OVL_168:021E5B5E 40 1C                       ADDS    R0, R0, #1
OVL_168:021E5B60 08 43                       ORRS    R0, R1
OVL_168:021E5B62 00 04                       LSLS    R0, R0, #0x10
OVL_168:021E5B64 00 0C                       LSRS    R0, R0, #0x10
OVL_168:021E5B66 5C 21                       MOVS    R1, #0x5C ; '\' ; blockLength
OVL_168:021E5B68 54 F6 5E FB                 BL      allocateBlockFromExpHeap
OVL_168:021E5B6C 06 1C                       MOVS    R6, R0
OVL_168:021E5B6E 34 1C                       MOVS    R4, R6
OVL_168:021E5B70 0B 23                       MOVS    R3, #0xB
OVL_168:021E5B72
OVL_168:021E5B72             loc_21E5B72                             ; CODE XREF: sub_21E5980+1FCj
OVL_168:021E5B72 01 9A                       LDR     R2, [SP,#0x78+var_74]
OVL_168:021E5B74 5B 1E                       SUBS    R3, R3, #1
OVL_168:021E5B76 03 CA                       LDMIA   R2!, {R0,R1}
OVL_168:021E5B78 01 92                       STR     R2, [SP,#0x78+var_74]
OVL_168:021E5B7A 03 C4                       STMIA   R4!, {R0,R1}
OVL_168:021E5B7C F9 D1                       BNE     loc_21E5B72
OVL_168:021E5B7E 10 1C                       MOVS    R0, R2
OVL_168:021E5B80 00 68                       LDR     R0, [R0]
OVL_168:021E5B82 02 99                       LDR     R1, [SP,#0x78+var_70]
OVL_168:021E5B84 20 60                       STR     R0, [R4]
OVL_168:021E5B86 A8 00                       LSLS    R0, R5, #2
OVL_168:021E5B88 38 18                       ADDS    R0, R7, R0
OVL_168:021E5B8A C0 68                       LDR     R0, [R0,#0xC]
OVL_168:021E5B8C 08 4A                       LDR     R2, =(sub_21E4D60+1)
OVL_168:021E5B8E 33 1C                       MOVS    R3, R6
OVL_168:021E5B90 6A F6 8A FA                 BL      sub_20500A8
OVL_168:021E5B94 00 21                       MOVS    R1, #0
OVL_168:021E5B96 C9 43                       MVNS    R1, R1
OVL_168:021E5B98 88 42                       CMP     R0, R1
OVL_168:021E5B9A 02 D1                       BNE     loc_21E5BA2
OVL_168:021E5B9C 30 1C                       MOVS    R0, R6          ; pBlk
OVL_168:021E5B9E 54 F6 6B FB                 BL      freeBlock
OVL_168:021E5BA2
OVL_168:021E5BA2             loc_21E5BA2                             ; CODE XREF: sub_21E5980:loc_21E59BEj
OVL_168:021E5BA2                                                     ; sub_21E5980+150j ...
OVL_168:021E5BA2 19 B0                       ADD     SP, SP, #0x64
OVL_168:021E5BA4 F0 BD                       POP     {R4-R7,PC}
OVL_168:021E5BA4             ; End of function sub_21E5980
OVL_168:021E5BA4
OVL_168:021E5BA4             ; ---------------------------------------------------------------------------
OVL_168:021E5BA6 C0                          DCB 0xC0 ; +
OVL_168:021E5BA7 46                          DCB 0x46 ; F
OVL_168:021E5BA8             ; int dword_21E5BA8
OVL_168:021E5BA8 0B 1D 00 00 dword_21E5BA8   DCD 0x1D0B              ; DATA XREF: sub_21E5980:loc_21E59CCr
OVL_168:021E5BAC             ; char *off_21E5BAC
OVL_168:021E5BAC B4 41 1F 02 off_21E5BAC     DCD aBtlv_effvm_c       ; DATA XREF: sub_21E5980+4Er
OVL_168:021E5BAC                                                     ; sub_21E5980+166r ...
OVL_168:021E5BAC                                                     ; "btlv_effvm.c"
OVL_168:021E5BB0 61 4D 1E 02 off_21E5BB0     DCD sub_21E4D60+1       ; DATA XREF: sub_21E5980+88r
OVL_168:021E5BB0                                                     ; sub_21E5980+1A8r ...
OVL_168:021E5BB4             ; int dword_21E5BB4
OVL_168:021E5BB4 42 1D 00 00 dword_21E5BB4   DCD 0x1D42              ; DATA XREF: sub_21E5980:loc_21E5AE4r
OVL_168:021E5BB8             ; int dword_21E5BB8
OVL_168:021E5BB8 55 1D 00 00 dword_21E5BB8   DCD 0x1D55              ; DATA XREF: sub_21E5980:loc_21E5B4Cr
OVL_168:021E5BBC FF 7F 00 00 dword_21E5BBC   DCD 0x7FFF              ; DATA XREF: sub_21E5980+1D8r

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎