Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement