Filled holes in overlay 28

This commit is contained in:
AnonymousRandomPerson
2023-08-04 23:59:30 -04:00
parent 0470e54cd7
commit 0d524d47c8
2 changed files with 404 additions and 91 deletions

View File

@@ -14,3 +14,10 @@
.public sub_02027170
.public sub_02027228
.public GetStringFromFileVeneer
.public sub_02025B90
.public sub_0202822C
.public ov11_022E6E8C
.public sub_02028FA0
.public sub_02025B80
.public sub_02028354
.public ov11_022E6EC8

View File

@@ -333,97 +333,403 @@ ov28_0238A58C: ; 0x0238A58C
.align 2, 0
_0238A5C8: .word 0x0238AD80
arm_func_end ov28_0238A58C
_0238A5CC:
.byte 0xF0, 0x41, 0x2D, 0xE9
.byte 0x18, 0xD0, 0x4D, 0xE2, 0x74, 0x65, 0x9F, 0xE5, 0x00, 0x10, 0x96, 0xE5, 0x00, 0x00, 0x91, 0xE5
.byte 0x06, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x55, 0x01, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA
.byte 0x31, 0x00, 0x00, 0xEA, 0x33, 0x00, 0x00, 0xEA, 0x28, 0x00, 0x00, 0xEA, 0x1D, 0x00, 0x00, 0xEA
.byte 0x2E, 0x01, 0x00, 0xEA, 0x21, 0x01, 0x00, 0xEA, 0x2E, 0x72, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3
.byte 0x4B, 0x01, 0x00, 0x0A, 0x38, 0x05, 0x9F, 0xE5, 0x06, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0x90, 0xE5
.byte 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x1A, 0x00, 0x20, 0x91, 0xE5, 0x01, 0x00, 0xA0, 0xE3
.byte 0x58, 0x20, 0x82, 0xE2, 0x02, 0x3B, 0x82, 0xE2, 0x10, 0x10, 0xA0, 0xE3, 0x68, 0x20, 0xA0, 0xE3
.byte 0x63, 0x01, 0x00, 0xEB, 0x06, 0x00, 0x00, 0xEA, 0x00, 0x20, 0x91, 0xE5, 0x00, 0x00, 0xA0, 0xE3
.byte 0x58, 0x20, 0x82, 0xE2, 0x02, 0x3B, 0x82, 0xE2, 0x10, 0x10, 0xA0, 0xE3, 0x60, 0x20, 0xA0, 0xE3
.byte 0x5B, 0x01, 0x00, 0xEB, 0xE4, 0x04, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5
.byte 0x00, 0x10, 0x80, 0xE5, 0x32, 0x01, 0x00, 0xEA, 0x12, 0x72, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3
.byte 0x2F, 0x01, 0x00, 0x0A, 0x01, 0x00, 0xA0, 0xE3, 0xFF, 0x71, 0xFD, 0xEB, 0x06, 0x00, 0xA0, 0xE1
.byte 0x00, 0x00, 0x90, 0xE5, 0x03, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x28, 0x01, 0x00, 0xEA
.byte 0x08, 0x72, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0xA0, 0x11, 0x00, 0x00, 0x90, 0x15
.byte 0x01, 0x10, 0xA0, 0x13, 0x00, 0x10, 0x80, 0x15, 0x21, 0x01, 0x00, 0xEA, 0x02, 0x00, 0xA0, 0xE3
.byte 0x00, 0x00, 0x81, 0xE5, 0x1E, 0x01, 0x00, 0xEA, 0x00, 0x40, 0xA0, 0xE3, 0x01, 0x70, 0xE0, 0xE3
.byte 0x00, 0x00, 0x96, 0xE5, 0x04, 0x00, 0x80, 0xE0, 0xD9, 0x80, 0xD0, 0xE1, 0x07, 0x00, 0x58, 0xE1
.byte 0x0C, 0x00, 0x00, 0x0A, 0x08, 0x00, 0xA0, 0xE1, 0x19, 0x77, 0xF2, 0xEB, 0x02, 0x00, 0x50, 0xE3
.byte 0x08, 0x00, 0x00, 0x1A, 0x08, 0x00, 0xA0, 0xE1, 0x28, 0x7A, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3
.byte 0x04, 0x00, 0x00, 0x1A, 0x08, 0x00, 0xA0, 0xE1, 0xC7, 0x76, 0xF2, 0xEB, 0x00, 0x00, 0x96, 0xE5
.byte 0x04, 0x00, 0x80, 0xE0, 0x09, 0x70, 0xC0, 0xE5, 0x01, 0x40, 0x84, 0xE2, 0x14, 0x00, 0x54, 0xE3
.byte 0xEA, 0xFF, 0xFF, 0xBA, 0x28, 0x04, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x00, 0x00, 0x52, 0xE3
.byte 0x47, 0x00, 0x00, 0x1A, 0x14, 0x04, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x20, 0x00, 0x80, 0xE2
.byte 0x8F, 0xFE, 0xFF, 0xEB, 0x04, 0x14, 0x9F, 0xE5, 0x00, 0x50, 0xA0, 0xE1, 0x00, 0x10, 0x91, 0xE5
.byte 0x24, 0x00, 0x91, 0xE5, 0x40, 0x08, 0xA0, 0xE1, 0xC0, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0xBA
.byte 0x3C, 0x00, 0x81, 0xE2, 0x01, 0x0B, 0x80, 0xE2, 0x85, 0xFE, 0xFF, 0xEB, 0x00, 0x50, 0x85, 0xE1
.byte 0xB4, 0x00, 0x00, 0xEA, 0x3C, 0x40, 0x81, 0xE2, 0x10, 0x04, 0x94, 0xE5, 0x00, 0x00, 0x50, 0xE3
.byte 0x02, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x50, 0xE3, 0x21, 0x00, 0x00, 0x0A, 0xAD, 0x00, 0x00, 0xEA
.byte 0x03, 0x00, 0xE0, 0xE3, 0x10, 0x00, 0x8D, 0xE5, 0x04, 0x04, 0x94, 0xE5, 0x10, 0x10, 0x8D, 0xE2
.byte 0x40, 0x08, 0xA0, 0xE1, 0x14, 0x00, 0x8D, 0xE5, 0x0C, 0x04, 0x94, 0xE5, 0xFF, 0x00, 0x00, 0xE2
.byte 0xF4, 0x79, 0xF2, 0xEB, 0x98, 0x03, 0x9F, 0xE5, 0x98, 0x13, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5
.byte 0x04, 0x24, 0x94, 0xE5, 0x00, 0x01, 0x91, 0xE7, 0x00, 0x00, 0x82, 0xE0, 0x04, 0x04, 0x84, 0xE5
.byte 0x14, 0x00, 0x9D, 0xE5, 0x88, 0x00, 0x50, 0xE3, 0x9A, 0x00, 0x00, 0xDA, 0x0C, 0x04, 0x94, 0xE5
.byte 0x20, 0x20, 0xA0, 0xE3, 0x10, 0x10, 0x8D, 0xE2, 0x02, 0x30, 0xA0, 0xE1, 0xFF, 0x00, 0x00, 0xE2
.byte 0xBC, 0x79, 0xF2, 0xEB, 0x0C, 0x04, 0x94, 0xE5, 0x01, 0x10, 0xA0, 0xE3, 0xFF, 0x00, 0x00, 0xE2
.byte 0x95, 0x76, 0xF2, 0xEB, 0x10, 0x04, 0x94, 0xE5, 0x01, 0x00, 0x80, 0xE2, 0x10, 0x04, 0x84, 0xE5
.byte 0x8C, 0x00, 0x00, 0xEA, 0x0C, 0x14, 0x94, 0xE5, 0x01, 0x0B, 0x84, 0xE2, 0xFF, 0x10, 0x01, 0xE2
.byte 0x46, 0xFE, 0xFF, 0xEB, 0x03, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0xA0, 0xE3, 0x10, 0x10, 0x8D, 0xE5
.byte 0x14, 0x00, 0x8D, 0xE5, 0x0C, 0x04, 0x94, 0xE5, 0x10, 0x10, 0x8D, 0xE2, 0xFF, 0x00, 0x00, 0xE2
.byte 0xD0, 0x79, 0xF2, 0xEB, 0x10, 0x04, 0x94, 0xE5, 0x01, 0x00, 0x80, 0xE2, 0x10, 0x04, 0x84, 0xE5
.byte 0x7C, 0x00, 0x00, 0xEA, 0xF4, 0x02, 0x9F, 0xE5, 0x00, 0x40, 0x90, 0xE5, 0x24, 0x00, 0x94, 0xE5
.byte 0x40, 0x08, 0xA0, 0xE1, 0x08, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0xBA, 0x20, 0x00, 0x84, 0xE2
.byte 0x43, 0xFE, 0xFF, 0xEB, 0x00, 0x50, 0xA0, 0xE1, 0x29, 0x00, 0x00, 0xEA, 0x30, 0x00, 0x94, 0xE5
.byte 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x50, 0xE3, 0xC4, 0x02, 0x9F, 0x05
.byte 0x24, 0x10, 0x94, 0x05, 0x02, 0x01, 0x90, 0x07, 0x00, 0x00, 0x81, 0x00, 0x24, 0x00, 0x84, 0x05
.byte 0x1F, 0x00, 0x00, 0xEA, 0x03, 0x00, 0xE0, 0xE3, 0x08, 0x00, 0x8D, 0xE5, 0x24, 0x00, 0x94, 0xE5
.byte 0x08, 0x10, 0x8D, 0xE2, 0x40, 0x08, 0xA0, 0xE1, 0x0C, 0x00, 0x8D, 0xE5, 0x2C, 0x00, 0x94, 0xE5
.byte 0xFF, 0x00, 0x00, 0xE2, 0xAF, 0x79, 0xF2, 0xEB, 0x84, 0x02, 0x9F, 0xE5, 0x84, 0x12, 0x9F, 0xE5
.byte 0x00, 0x00, 0x90, 0xE5, 0x24, 0x20, 0x94, 0xE5, 0x00, 0x01, 0x91, 0xE7, 0x00, 0x00, 0x82, 0xE0
.byte 0x24, 0x00, 0x84, 0xE5, 0x0C, 0x00, 0x9D, 0xE5, 0x88, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x00, 0xDA
.byte 0x2C, 0x00, 0x94, 0xE5, 0x20, 0x20, 0xA0, 0xE3, 0x08, 0x10, 0x8D, 0xE2, 0x02, 0x30, 0xA0, 0xE1
.byte 0xFF, 0x00, 0x00, 0xE2, 0x77, 0x79, 0xF2, 0xEB, 0x2C, 0x00, 0x94, 0xE5, 0x01, 0x10, 0xA0, 0xE3
.byte 0xFF, 0x00, 0x00, 0xE2, 0x50, 0x76, 0xF2, 0xEB, 0x30, 0x00, 0x94, 0xE5, 0x01, 0x00, 0x80, 0xE2
.byte 0x30, 0x00, 0x84, 0xE5, 0x24, 0x02, 0x9F, 0xE5, 0x00, 0x40, 0x90, 0xE5, 0x24, 0x00, 0x94, 0xE5
.byte 0x40, 0x08, 0xA0, 0xE1, 0x60, 0x00, 0x50, 0xE3, 0x42, 0x00, 0x00, 0xBA, 0x40, 0x04, 0x94, 0xE5
.byte 0x40, 0x08, 0xA0, 0xE1, 0x68, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0xBA, 0x3C, 0x00, 0x84, 0xE2
.byte 0x01, 0x0B, 0x80, 0xE2, 0x0A, 0xFE, 0xFF, 0xEB, 0x00, 0x50, 0x85, 0xE1, 0x39, 0x00, 0x00, 0xEA
.byte 0x4C, 0x04, 0x94, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x50, 0xE3
.byte 0x0C, 0x00, 0x00, 0x0A, 0x02, 0x00, 0x50, 0xE3, 0x2B, 0x00, 0x00, 0x0A, 0x31, 0x00, 0x00, 0xEA
.byte 0x58, 0x00, 0x84, 0xE2, 0x10, 0x10, 0xA0, 0xE3, 0x50, 0x20, 0x41, 0xE2, 0x02, 0x3B, 0x80, 0xE2
.byte 0x01, 0x00, 0xA0, 0xE3, 0x8E, 0x00, 0x00, 0xEB, 0x4C, 0x04, 0x94, 0xE5, 0x01, 0x00, 0x80, 0xE2
.byte 0x4C, 0x04, 0x84, 0xE5, 0x27, 0x00, 0x00, 0xEA, 0x03, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x8D, 0xE5
.byte 0x40, 0x04, 0x94, 0xE5, 0x00, 0x10, 0x8D, 0xE2, 0x40, 0x08, 0xA0, 0xE1, 0x04, 0x00, 0x8D, 0xE5
.byte 0x48, 0x04, 0x94, 0xE5, 0xFF, 0x00, 0x00, 0xE2, 0x6E, 0x79, 0xF2, 0xEB, 0x80, 0x01, 0x9F, 0xE5
.byte 0x80, 0x11, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x40, 0x24, 0x94, 0xE5, 0x00, 0x01, 0x91, 0xE7
.byte 0x00, 0x00, 0x82, 0xE0, 0x40, 0x04, 0x84, 0xE5, 0x04, 0x00, 0x9D, 0xE5, 0xD0, 0x00, 0x50, 0xE3
.byte 0x14, 0x00, 0x00, 0xDA, 0x48, 0x04, 0x94, 0xE5, 0x20, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x8D, 0xE2
.byte 0x02, 0x30, 0xA0, 0xE1, 0xFF, 0x00, 0x00, 0xE2, 0x36, 0x79, 0xF2, 0xEB, 0x48, 0x04, 0x94, 0xE5
.byte 0x01, 0x10, 0xA0, 0xE3, 0xFF, 0x00, 0x00, 0xE2, 0x0F, 0x76, 0xF2, 0xEB, 0x4C, 0x04, 0x94, 0xE5
.byte 0x01, 0x00, 0x80, 0xE2, 0x4C, 0x04, 0x84, 0xE5, 0x06, 0x00, 0x00, 0xEA, 0x20, 0x01, 0x9F, 0xE5
.byte 0x20, 0x11, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x40, 0x24, 0x94, 0xE5, 0x00, 0x01, 0x91, 0xE7
.byte 0x00, 0x00, 0x82, 0xE0, 0x40, 0x04, 0x84, 0xE5, 0x00, 0x01, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5
.byte 0x08, 0x00, 0xD2, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x06, 0x00, 0x00, 0x1A, 0x20, 0x00, 0x92, 0xE5
.byte 0x03, 0x00, 0x50, 0xE3, 0x03, 0x00, 0x00, 0xBA, 0x01, 0x10, 0xA0, 0xE3, 0x02, 0x00, 0xA0, 0xE3
.byte 0x08, 0x10, 0xC2, 0xE5, 0x04, 0x71, 0xFD, 0xEB, 0x00, 0x00, 0x55, 0xE3, 0xCC, 0x00, 0x9F, 0x05
.byte 0x06, 0x10, 0xA0, 0x03, 0x00, 0x00, 0x90, 0x05, 0x00, 0x10, 0x80, 0x05, 0x2C, 0x00, 0x00, 0xEA
.byte 0x00, 0x00, 0xA0, 0xE3, 0x01, 0x10, 0xA0, 0xE3, 0xEF, 0x75, 0xF2, 0xEB, 0x01, 0x00, 0xA0, 0xE3
.byte 0x00, 0x10, 0xA0, 0xE1, 0xEC, 0x75, 0xF2, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0x33, 0x6C, 0xF2, 0xEB
.byte 0x00, 0x00, 0xA0, 0xE3, 0xF4, 0x70, 0xFD, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x21, 0x00, 0x00, 0xEA
.byte 0x03, 0x00, 0xE0, 0xE3, 0x24, 0x00, 0x00, 0xEB, 0x00, 0x00, 0xA0, 0xE3, 0xEE, 0x70, 0xFD, 0xEB
.byte 0x7C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x05, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90
.byte 0x11, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA, 0x05, 0x00, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA
.byte 0x07, 0x00, 0x00, 0xEA, 0x08, 0x00, 0x00, 0xEA, 0x09, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xA0, 0xE3
.byte 0x0A, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0x08, 0x00, 0x00, 0xEA, 0x02, 0x00, 0xA0, 0xE3
.byte 0x06, 0x00, 0x00, 0xEA, 0x03, 0x00, 0xA0, 0xE3, 0x04, 0x00, 0x00, 0xEA, 0x04, 0x00, 0xA0, 0xE3
.byte 0x02, 0x00, 0x00, 0xEA, 0x05, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA, 0x00, 0x00, 0xE0, 0xE3
.byte 0x16, 0x6C, 0xF2, 0xEB, 0x14, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5
.byte 0x00, 0x10, 0x80, 0xE5, 0x01, 0x00, 0xA0, 0xE3, 0x18, 0xD0, 0x8D, 0xE2, 0xF0, 0x81, 0xBD, 0xE8
.byte 0x80, 0xAD, 0x38, 0x02, 0xA0, 0xAD, 0x38, 0x02, 0x0C, 0xAD, 0x38, 0x02
arm_func_start ov28_0238A5CC
ov28_0238A5CC: ; 0x0238A5CC
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x18
ldr r6, _0238AB50 ; =0x0238AD80
ldr r1, [r6]
ldr r0, [r1]
cmp r0, #6
addls pc, pc, r0, lsl #2
b _0238AB44
_0238A5EC: ; jump table
b _0238A608 ; case 0
b _0238A6BC ; case 1
b _0238A6C8 ; case 2
b _0238A6A0 ; case 3
b _0238A678 ; case 4
b _0238AAC0 ; case 5
b _0238AA90 ; case 6
_0238A608:
bl ov11_022E6EC8
cmp r0, #0
beq _0238AB44
ldr r0, _0238AB54 ; =0x0238ADA0
mov r1, r6
ldr r0, [r0]
cmp r0, #0
bne _0238A648
ldr r2, [r1]
mov r0, #1
add r2, r2, #0x58
add r3, r2, #0x800
mov r1, #0x10
mov r2, #0x68
bl ov28_0238ABD4
b _0238A664
_0238A648:
ldr r2, [r1]
mov r0, #0
add r2, r2, #0x58
add r3, r2, #0x800
mov r1, #0x10
mov r2, #0x60
bl ov28_0238ABD4
_0238A664:
ldr r0, _0238AB50 ; =0x0238AD80
mov r1, #4
ldr r0, [r0]
str r1, [r0]
b _0238AB44
_0238A678:
bl ov11_022E6EC8
cmp r0, #0
beq _0238AB44
mov r0, #1
bl ov11_022E6E8C
mov r0, r6
ldr r0, [r0]
mov r1, #3
str r1, [r0]
b _0238AB44
_0238A6A0:
bl ov11_022E6EC8
cmp r0, #0
movne r0, r6
ldrne r0, [r0]
movne r1, #1
strne r1, [r0]
b _0238AB44
_0238A6BC:
mov r0, #2
str r0, [r1]
b _0238AB44
_0238A6C8:
mov r4, #0
mvn r7, #1
_0238A6D0:
ldr r0, [r6]
add r0, r0, r4
ldrsb r8, [r0, #9]
cmp r8, r7
beq _0238A718
mov r0, r8
bl sub_02028354
cmp r0, #2
bne _0238A718
mov r0, r8
bl sub_02028FA0
cmp r0, #0
bne _0238A718
mov r0, r8
bl sub_0202822C
ldr r0, [r6]
add r0, r0, r4
strb r7, [r0, #9]
_0238A718:
add r4, r4, #1
cmp r4, #0x14
blt _0238A6D0
ldr r0, _0238AB54 ; =0x0238ADA0
ldr r2, [r0]
cmp r2, #0
bne _0238A854
ldr r0, _0238AB50 ; =0x0238AD80
ldr r0, [r0]
add r0, r0, #0x20
bl ov28_0238A184
ldr r1, _0238AB50 ; =0x0238AD80
mov r5, r0
ldr r1, [r1]
ldr r0, [r1, #0x24]
mov r0, r0, asr #0x10
cmp r0, #0xc0
blt _0238A774
add r0, r1, #0x3c
add r0, r0, #0x400
bl ov28_0238A184
orr r5, r5, r0
b _0238AA48
_0238A774:
add r4, r1, #0x3c
ldr r0, [r4, #0x410]
cmp r0, #0
beq _0238A790
cmp r0, #1
beq _0238A814
b _0238AA48
_0238A790:
mvn r0, #3
str r0, [sp, #0x10]
ldr r0, [r4, #0x404]
add r1, sp, #0x10
mov r0, r0, asr #0x10
str r0, [sp, #0x14]
ldr r0, [r4, #0x40c]
and r0, r0, #0xff
bl sub_02028F88
ldr r0, _0238AB54 ; =0x0238ADA0
ldr r1, _0238AB58 ; =0x0238AD0C
ldr r0, [r0]
ldr r2, [r4, #0x404]
ldr r0, [r1, r0, lsl #2]
add r0, r2, r0
str r0, [r4, #0x404]
ldr r0, [sp, #0x14]
cmp r0, #0x88
ble _0238AA48
ldr r0, [r4, #0x40c]
mov r2, #0x20
add r1, sp, #0x10
mov r3, r2
and r0, r0, #0xff
bl sub_02028EE8
ldr r0, [r4, #0x40c]
mov r1, #1
and r0, r0, #0xff
bl sub_0202825C
ldr r0, [r4, #0x410]
add r0, r0, #1
str r0, [r4, #0x410]
b _0238AA48
_0238A814:
ldr r1, [r4, #0x40c]
add r0, r4, #0x400
and r1, r1, #0xff
bl ov28_0238A140
mvn r1, #3
mov r0, #0
str r1, [sp, #0x10]
str r0, [sp, #0x14]
ldr r0, [r4, #0x40c]
add r1, sp, #0x10
and r0, r0, #0xff
bl sub_02028F88
ldr r0, [r4, #0x410]
add r0, r0, #1
str r0, [r4, #0x410]
b _0238AA48
_0238A854:
ldr r0, _0238AB50 ; =0x0238AD80
ldr r4, [r0]
ldr r0, [r4, #0x24]
mov r0, r0, asr #0x10
cmp r0, #8
blt _0238A87C
add r0, r4, #0x20
bl ov28_0238A184
mov r5, r0
b _0238A924
_0238A87C:
ldr r0, [r4, #0x30]
cmp r0, #0
beq _0238A8A4
cmp r0, #1
ldreq r0, _0238AB58 ; =0x0238AD0C
ldreq r1, [r4, #0x24]
ldreq r0, [r0, r2, lsl #2]
addeq r0, r1, r0
streq r0, [r4, #0x24]
b _0238A924
_0238A8A4:
mvn r0, #3
str r0, [sp, #8]
ldr r0, [r4, #0x24]
add r1, sp, #8
mov r0, r0, asr #0x10
str r0, [sp, #0xc]
ldr r0, [r4, #0x2c]
and r0, r0, #0xff
bl sub_02028F88
ldr r0, _0238AB54 ; =0x0238ADA0
ldr r1, _0238AB58 ; =0x0238AD0C
ldr r0, [r0]
ldr r2, [r4, #0x24]
ldr r0, [r1, r0, lsl #2]
add r0, r2, r0
str r0, [r4, #0x24]
ldr r0, [sp, #0xc]
cmp r0, #0x88
ble _0238A924
ldr r0, [r4, #0x2c]
mov r2, #0x20
add r1, sp, #8
mov r3, r2
and r0, r0, #0xff
bl sub_02028EE8
ldr r0, [r4, #0x2c]
mov r1, #1
and r0, r0, #0xff
bl sub_0202825C
ldr r0, [r4, #0x30]
add r0, r0, #1
str r0, [r4, #0x30]
_0238A924:
ldr r0, _0238AB50 ; =0x0238AD80
ldr r4, [r0]
ldr r0, [r4, #0x24]
mov r0, r0, asr #0x10
cmp r0, #0x60
blt _0238AA48
ldr r0, [r4, #0x440]
mov r0, r0, asr #0x10
cmp r0, #0x68
blt _0238A960
add r0, r4, #0x3c
add r0, r0, #0x400
bl ov28_0238A184
orr r5, r5, r0
b _0238AA48
_0238A960:
ldr r0, [r4, #0x44c]
cmp r0, #0
beq _0238A980
cmp r0, #1
beq _0238A9A8
cmp r0, #2
beq _0238AA2C
b _0238AA48
_0238A980:
add r0, r4, #0x58
mov r1, #0x10
sub r2, r1, #0x50
add r3, r0, #0x800
mov r0, #1
bl ov28_0238ABD4
ldr r0, [r4, #0x44c]
add r0, r0, #1
str r0, [r4, #0x44c]
b _0238AA48
_0238A9A8:
mvn r0, #3
str r0, [sp]
ldr r0, [r4, #0x440]
add r1, sp, #0
mov r0, r0, asr #0x10
str r0, [sp, #4]
ldr r0, [r4, #0x448]
and r0, r0, #0xff
bl sub_02028F88
ldr r0, _0238AB54 ; =0x0238ADA0
ldr r1, _0238AB58 ; =0x0238AD0C
ldr r0, [r0]
ldr r2, [r4, #0x440]
ldr r0, [r1, r0, lsl #2]
add r0, r2, r0
str r0, [r4, #0x440]
ldr r0, [sp, #4]
cmp r0, #0xd0
ble _0238AA48
ldr r0, [r4, #0x448]
mov r2, #0x20
add r1, sp, #0
mov r3, r2
and r0, r0, #0xff
bl sub_02028EE8
ldr r0, [r4, #0x448]
mov r1, #1
and r0, r0, #0xff
bl sub_0202825C
ldr r0, [r4, #0x44c]
add r0, r0, #1
str r0, [r4, #0x44c]
b _0238AA48
_0238AA2C:
ldr r0, _0238AB54 ; =0x0238ADA0
ldr r1, _0238AB58 ; =0x0238AD0C
ldr r0, [r0]
ldr r2, [r4, #0x440]
ldr r0, [r1, r0, lsl #2]
add r0, r2, r0
str r0, [r4, #0x440]
_0238AA48:
ldr r0, _0238AB50 ; =0x0238AD80
ldr r2, [r0]
ldrb r0, [r2, #8]
cmp r0, #0
bne _0238AA78
ldr r0, [r2, #0x20]
cmp r0, #3
blt _0238AA78
mov r1, #1
mov r0, #2
strb r1, [r2, #8]
bl ov11_022E6E8C
_0238AA78:
cmp r5, #0
ldreq r0, _0238AB50 ; =0x0238AD80
moveq r1, #6
ldreq r0, [r0]
streq r1, [r0]
b _0238AB44
_0238AA90:
mov r0, #0
mov r1, #1
bl sub_0202825C
mov r0, #1
mov r1, r0
bl sub_0202825C
mov r0, #0
bl sub_02025B80
mov r0, #0
bl ov11_022E6E8C
mov r0, #4
b _0238AB48
_0238AAC0:
mvn r0, #3
bl ov28_0238AB5C
mov r0, #0
bl ov11_022E6E8C
ldr r0, _0238AB54 ; =0x0238ADA0
ldr r0, [r0]
cmp r0, #5
addls pc, pc, r0, lsl #2
b _0238AB2C
_0238AAE4: ; jump table
b _0238AAFC ; case 0
b _0238AB04 ; case 1
b _0238AB0C ; case 2
b _0238AB14 ; case 3
b _0238AB1C ; case 4
b _0238AB24 ; case 5
_0238AAFC:
mov r0, #0
b _0238AB30
_0238AB04:
mov r0, #1
b _0238AB30
_0238AB0C:
mov r0, #2
b _0238AB30
_0238AB14:
mov r0, #3
b _0238AB30
_0238AB1C:
mov r0, #4
b _0238AB30
_0238AB24:
mov r0, #5
b _0238AB30
_0238AB2C:
mvn r0, #0
_0238AB30:
bl sub_02025B90
ldr r0, _0238AB50 ; =0x0238AD80
mov r1, #0
ldr r0, [r0]
str r1, [r0]
_0238AB44:
mov r0, #1
_0238AB48:
add sp, sp, #0x18
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_0238AB50: .word 0x0238AD80
_0238AB54: .word 0x0238ADA0
_0238AB58: .word 0x0238AD0C
arm_func_end ov28_0238A5CC
arm_func_start ov28_0238AB5C
ov28_0238AB5C: ; 0x0238AB5C