pmd-sky/asm/overlay_29_02333FD0.s
2024-06-23 00:33:13 -05:00

1315 lines
23 KiB
ArmAsm

.include "asm/macros.inc"
.include "overlay_29_02333FD0.inc"
.text
arm_func_start ov29_02333FD0
ov29_02333FD0: ; 0x02333FD0
#ifdef JAPAN
#define OV29_02333FD0_OFFSET -4
#else
#define OV29_02333FD0_OFFSET 0
#endif
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r6, r1
ldr r5, [r6, #0xb4]
mov r7, r0
ldrb r0, [r5, #0xc4]
mov r8, r2
ldr r4, [r7, #0xb4]
cmp r0, #1
bne _02334008
mov r0, r8
bl IsThawingMove
cmp r0, #0
movne r0, #0
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
_02334008:
ldrh r1, [r8, #4]
ldr r0, _02334CA4 ; =0x0000010A
cmp r1, r0
bgt _0233429C
bge _023349A4
cmp r1, #0x8a
bgt _023341C8
bge _023349F4
cmp r1, #0x56
bgt _02334164
bge _023347B0
cmp r1, #0x4f
bgt _02334140
bge _023344D0
cmp r1, #0x3b
bgt _02334134
bge _0233473C
cmp r1, #0x36
addls pc, pc, r1, lsl #2
b _02334C9C
_02334058: ; jump table
b _02334C9C ; case 0
b _02334C9C ; case 1
b _02334C9C ; case 2
b _023344E8 ; case 3
b _023344D0 ; case 4
b _02334510 ; case 5
b _02334C9C ; case 6
b _02334C9C ; case 7
b _02334C9C ; case 8
b _02334C9C ; case 9
b _02334524 ; case 10
b _02334538 ; case 11
b _02334C9C ; case 12
b _02334A74 ; case 13
b _02334C9C ; case 14
b _02334C9C ; case 15
b _02334C9C ; case 16
b _0233454C ; case 17
b _02334C9C ; case 18
b _02334C9C ; case 19
b _02334574 ; case 20
b _02334588 ; case 21
b _023345A0 ; case 22
b _02334618 ; case 23
b _02334A74 ; case 24
b _02334C9C ; case 25
b _02334C9C ; case 26
b _02334630 ; case 27
b _02334C9C ; case 28
b _02334C9C ; case 29
b _02334C9C ; case 30
b _02334C9C ; case 31
b _02334C9C ; case 32
b _02334644 ; case 33
b _023344D0 ; case 34
b _02334658 ; case 35
b _02334C9C ; case 36
b _023346C0 ; case 37
b _02334C9C ; case 38
b _02334C9C ; case 39
b _02334C9C ; case 40
b _02334C9C ; case 41
b _02334C9C ; case 42
b _023346D4 ; case 43
b _02334C9C ; case 44
b _02334A74 ; case 45
b _02334C9C ; case 46
b _023346F0 ; case 47
b _02334C9C ; case 48
b _02334C9C ; case 49
b _02334C9C ; case 50
b _02334C9C ; case 51
b _02334C9C ; case 52
b _02334C9C ; case 53
b _02334704 ; case 54
_02334134:
cmp r1, #0x42
beq _02334750
b _02334C9C
_02334140:
cmp r1, #0x54
bgt _02334158
bge _023344D0
cmp r1, #0x53
beq _02334780
b _02334C9C
_02334158:
cmp r1, #0x55
beq _02334794
b _02334C9C
_02334164:
cmp r1, #0x6f
bgt _02334194
bge _023344D0
cmp r1, #0x59
bgt _02334188
bge _023347B0
cmp r1, #0x58
beq _023347C4
b _02334C9C
_02334188:
cmp r1, #0x6a
beq _02334618
b _02334C9C
_02334194:
cmp r1, #0x73
bgt _023341AC
bge _02334830
cmp r1, #0x70
beq _0233481C
b _02334C9C
_023341AC:
cmp r1, #0x7a
bgt _023341BC
beq _0233476C
b _02334C9C
_023341BC:
cmp r1, #0x7c
beq _0233473C
b _02334C9C
_023341C8:
cmp r1, #0xc5
bgt _02334238
bge _02334A40
cmp r1, #0xac
bgt _02334204
bge _023348B8
cmp r1, #0x92
bgt _023341F8
bge _023348A4
cmp r1, #0x8e
beq _023348A4
b _02334C9C
_023341F8:
cmp r1, #0xab
beq _02334A74
b _02334C9C
_02334204:
cmp r1, #0xc0
bgt _0233421C
bge _0233473C
cmp r1, #0xbf
beq _02334A74
b _02334C9C
_0233421C:
cmp r1, #0xc2
bgt _0233422C
beq _023347B0
b _02334C9C
_0233422C:
cmp r1, #0xc4
beq _02334A54
b _02334C9C
_02334238:
cmp r1, #0xdc
bgt _02334268
bge _0233493C
cmp r1, #0xd1
bgt _0233425C
bge _023348CC
cmp r1, #0xc7
beq _02334A54
b _02334C9C
_0233425C:
cmp r1, #0xd9
beq _02334928
b _02334C9C
_02334268:
cmp r1, #0xe7
bgt _02334280
bge _023344D0
cmp r1, #0xe0
beq _0233476C
b _02334C9C
_02334280:
cmp r1, #0xed
bgt _02334290
beq _02334960
b _02334C9C
_02334290:
cmp r1, #0xf9
beq _02334908
b _02334C9C
_0233429C:
add r2, r0, #0xb5
cmp r1, r2
bgt _023343B8
bge _02334AB0
add r2, r0, #0x31
cmp r1, r2
bgt _0233432C
bge _02334704
add r2, r0, #0xf
cmp r1, r2
bgt _023342FC
bge _0233473C
add r2, r0, #7
cmp r1, r2
bgt _023342EC
bge _023348A4
add r0, r0, #1
cmp r1, r0
beq _02334928
b _02334C9C
_023342EC:
add r0, r0, #8
cmp r1, r0
beq _02334A74
b _02334C9C
_023342FC:
add r2, r0, #0x1c
cmp r1, r2
bgt _0233431C
bge _02334A20
add r0, r0, #0x1b
cmp r1, r0
beq _023349E0
b _02334C9C
_0233431C:
add r0, r0, #0x30
cmp r1, r0
beq _023349B8
b _02334C9C
_0233432C:
add r2, r0, #0x55
cmp r1, r2
bgt _0233436C
bge _02334618
add r2, r0, #0x3d
cmp r1, r2
bgt _0233435C
bge _023349F4
add r0, r0, #0x3c
cmp r1, r0
beq _02334A0C
b _02334C9C
_0233435C:
add r0, r0, #0x3f
cmp r1, r0
beq _023349CC
b _02334C9C
_0233436C:
add r2, r0, #0x74
cmp r1, r2
bgt _0233438C
bge _02334A74
add r0, r0, #0x71
cmp r1, r0
beq _023349A4
b _02334C9C
_0233438C:
add r2, r0, #0xac
cmp r1, r2
bgt _023343A8
add r0, r0, #0xac
cmp r1, r0
beq _02334A88
b _02334C9C
_023343A8:
add r0, r0, #0xad
cmp r1, r0
beq _02334A9C
b _02334C9C
_023343B8:
add r2, r0, #0xe3
cmp r1, r2
bgt _02334450
bge _02334B64
add r2, r0, #0xc8
cmp r1, r2
bgt _02334408
bge _02334B00
add r2, r0, #0xb8
cmp r1, r2
bgt _023343FC
add r0, r0, #0xb8
cmp r1, r0
bge _02334AEC
cmp r1, #0x1c0
beq _02334AC4
b _02334C9C
_023343FC:
cmp r1, #0x1c8
beq _02334524
b _02334C9C
_02334408:
add r2, r0, #0xd8
cmp r1, r2
bgt _02334428
bge _023348CC
add r0, r0, #0xd4
cmp r1, r0
beq _02334B14
b _02334C9C
_02334428:
add r2, r0, #0xd9
cmp r1, r2
bgt _02334444
add r0, r0, #0xd9
cmp r1, r0
beq _023344D0
b _02334C9C
_02334444:
cmp r1, #0x1ec
beq _02334B28
b _02334C9C
_02334450:
add r2, r0, #0xf8
cmp r1, r2
bgt _02334494
bge _02334C00
add r2, r0, #0xf0
cmp r1, r2
bgt _02334484
add r0, r0, #0xf0
cmp r1, r0
bge _02334B78
cmp r1, #0x1f8
beq _0233481C
b _02334C9C
_02334484:
add r0, r0, #0xf7
cmp r1, r0
beq _02334BD8
b _02334C9C
_02334494:
cmp r1, #0x210
bgt _023344B0
bge _02334C18
ldr r0, _02334CA8 ; =0x0000020D
cmp r1, r0
beq _023349F4
b _02334C9C
_023344B0:
cmp r1, #0x214
bgt _023344C0
beq _02334C60
b _02334C9C
_023344C0:
add r0, r0, #0x10c
cmp r1, r0
beq _02334C74
b _02334C9C
_023344D0:
mov r0, r6
bl IsMonsterSleeping
cmp r0, #0
beq _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_023344E8:
ldrb r0, [r5, #0xbd]
cmp r0, #4
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
mov r0, r6
bl IsMonsterSleeping
cmp r0, #0
beq _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334510:
ldrb r0, [r5, #0xbd]
cmp r0, #3
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334524:
ldrsh r0, [r5, #0x2e]
cmp r0, #1
bge _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334538:
ldr r0, [r5, #0x34]
cmp r0, #0x3f
bge _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_0233454C:
ldrb r0, [r5, #0xd0]
cmp r0, #6
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
add r0, r5, #0x124 + OV29_02333FD0_OFFSET
bl ov29_02334CAC
cmp r0, #0
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334574:
ldrsh r0, [r5, #0x10]
cmp r0, #2
bge _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334588:
ldrsh r1, [r5, #0x10]
ldrsh r0, [r4, #0x10]
cmp r1, r0
bgt _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_023345A0:
mov r3, #0
mov r0, r3
mov r1, #1
b _023345DC
_023345B0:
add r2, r5, r3, lsl #3
ldrb r2, [r2, #0x124 + OV29_02333FD0_OFFSET]
tst r2, #1
movne r4, r1
moveq r4, r0
tst r4, #0xff
beq _023345D8
tst r2, #0x20
movne r0, #1
bne _023345F4
_023345D8:
add r3, r3, #1
_023345DC:
cmp r3, #4
blt _023345B0
ldrb r0, [r5, #0x144 + OV29_02333FD0_OFFSET]
tst r0, #0x20
movne r0, #1
moveq r0, #0
_023345F4:
cmp r0, #0
movne r0, #0
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
add r0, r5, #0x124 + OV29_02333FD0_OFFSET
bl ov29_02334CAC
cmp r0, #0
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334618:
ldr r0, [r6, #0xb4]
ldr r0, [r0, #0x110 + OV29_02333FD0_OFFSET]
cmp r0, #1
bge _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334630:
ldr r0, [r5, #0x3c]
cmp r0, #0x3f
bge _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334644:
ldrsh r0, [r5, #0x2a]
cmp r0, #1
bge _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334658:
mov r4, #0
add r3, r5, #0x124 + OV29_02333FD0_OFFSET
mov r1, r4
mov r2, #1
b _023346A4
_0233466C:
ldrb r5, [r3, r4, lsl #3]
add r0, r3, r4, lsl #3
tst r5, #1
movne r6, r2
moveq r6, r1
tst r6, #0xff
beq _023346A0
tst r5, #0x10
beq _023346A0
ldrb r0, [r0, #6]
cmp r0, #0
moveq r0, #1
beq _023346B0
_023346A0:
add r4, r4, #1
_023346A4:
cmp r4, #4
blt _0233466C
mov r0, #0
_023346B0:
cmp r0, #0
beq _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_023346C0:
ldrb r0, [r5, #0xec]
cmp r0, #2
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_023346D4:
ldr r0, [r5, #0x34]
cmp r0, #0x3f
ldrlt r0, [r5, #0x38]
cmplt r0, #0x3f
bge _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_023346F0:
ldrb r0, [r5, #0xbf]
cmp r0, #1
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334704:
ldrb r0, [r5, #0x5e]
cmp r0, #0xe
ldrneb r0, [r5, #0x5f]
cmpne r0, #0xe
bne _02334728
ldrb r0, [r5, #0xfe]
cmp r0, #0
moveq r0, #1
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
_02334728:
ldrsh r0, [r5, #0x2e]
cmp r0, #0xa
bgt _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_0233473C:
ldrb r0, [r5, #0xbf]
cmp r0, #4
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334750:
ldrsh r1, [r5, #0x10]
ldrsh r0, [r4, #0x10]
sub r0, r1, r0
cmp r0, #1
bge _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_0233476C:
ldrsh r0, [r5, #0x28]
cmp r0, #1
bge _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334780:
ldrsh r0, [r5, #0x2a]
cmp r0, #1
bge _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334794:
ldrsh r0, [r5, #0x24]
cmp r0, #1
ldrltsh r0, [r5, #0x28]
cmplt r0, #1
bge _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_023347B0:
ldrb r0, [r5, #0xc4]
cmp r0, #2
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_023347C4:
mov r2, #0
b _02334804
_023347CC:
add r1, r5, r2, lsl #1
ldrsh r0, [r1, #0x24]
cmp r0, #0xa
ldrgesh r0, [r1, #0x28]
cmpge r0, #0xa
ldrgesh r0, [r1, #0x2c]
cmpge r0, #0xa
addge r1, r5, r2, lsl #2
ldrge r0, [r1, #0x34]
cmpge r0, #0x100
ldrge r0, [r1, #0x3c]
cmpge r0, #0x100
blt _0233480C
add r2, r2, #1
_02334804:
cmp r2, #2
blt _023347CC
_0233480C:
cmp r2, #2
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_0233481C:
ldrb r0, [r5, #0xbd]
cmp r0, #2
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334830:
mov r0, #0
b _0233488C
_02334838:
add r6, r4, r0, lsl #1
add r3, r5, r0, lsl #1
ldrsh r2, [r6, #0x24]
ldrsh r1, [r3, #0x24]
cmp r2, r1
ldrgesh r2, [r6, #0x28]
ldrgesh r1, [r3, #0x28]
cmpge r2, r1
ldrgesh r2, [r6, #0x2c]
ldrgesh r1, [r3, #0x2c]
cmpge r2, r1
addge r6, r4, r0, lsl #2
addge r3, r5, r0, lsl #2
ldrge r2, [r6, #0x34]
ldrge r1, [r3, #0x34]
cmpge r2, r1
ldrge r2, [r6, #0x3c]
ldrge r1, [r3, #0x3c]
cmpge r2, r1
blt _02334894
add r0, r0, #1
_0233488C:
cmp r0, #2
blt _02334838
_02334894:
cmp r0, #2
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_023348A4:
ldrsh r0, [r5, #0x2c]
cmp r0, #1
bge _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_023348B8:
ldrb r0, [r5, #0xd0]
cmp r0, #5
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_023348CC:
ldrb r0, [r4, #0x62]
tst r0, #1
movne r0, #1
moveq r0, #0
tst r0, #0xff
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
ldrb r0, [r5, #0x62]
tst r0, #1
movne r0, #1
moveq r0, #0
tst r0, #0xff
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334908:
ldrb r0, [r5, #0x62]
tst r0, #1
movne r0, #1
moveq r0, #0
tst r0, #0xff
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334928:
ldrsh r0, [r5, #0x24]
cmp r0, #1
bge _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_0233493C:
ldrb r1, [r4, #0x60]
ldrb r0, [r5, #0x60]
cmp r1, r0
ldreqb r1, [r4, #0x61]
ldreqb r0, [r5, #0x61]
cmpeq r1, r0
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334960:
mov r0, r7
mov r1, #0xe
bl MonsterIsType
cmp r0, #0
beq _02334988
ldrb r0, [r5, #0xd8]
cmp r0, #1
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334988:
ldrsh r0, [r4, #0x24]
cmp r0, #0x13
ldrgtsh r0, [r4, #0x28]
cmpgt r0, #0x13
ble _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_023349A4:
ldrb r0, [r5, #0xd0]
cmp r0, #3
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_023349B8:
ldrsh r0, [r5, #0x10]
cmp r0, #2
bge _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_023349CC:
ldrb r0, [r5, #0xe0]
cmp r0, #1
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_023349E0:
#ifdef JAPAN
ldrb r0, [r5, #0x105]
#else
ldrb r0, [r5, #0x106]
#endif
cmp r0, #0
beq _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_023349F4:
add r0, r5, #0x124 + OV29_02333FD0_OFFSET
bl ov29_02334CAC
cmp r0, #0
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334A0C:
ldrb r0, [r5, #0xd0]
cmp r0, #7
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334A20:
ldrb r0, [r5, #0xc4]
cmp r0, #3
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
cmp r0, #4
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334A40:
ldrb r0, [r5, #0xbf]
cmp r0, #3
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334A54:
ldrb r0, [r5, #0xbf]
cmp r0, #2
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
cmp r0, #3
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334A74:
ldrb r0, [r5, #0xd0]
cmp r0, #2
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334A88:
ldrb r0, [r5, #0xd8]
cmp r0, #4
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334A9C:
ldrb r0, [r5, #0xd8]
cmp r0, #4
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334AB0:
ldrb r0, [r5, #0xd5]
cmp r0, #0x11
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334AC4:
ldrsh r3, [r4, #0x28]
ldrsh r2, [r4, #0x2a]
ldrsh r1, [r5, #0x28]
ldrsh r0, [r5, #0x2a]
add r2, r3, r2
add r0, r1, r0
cmp r2, r0
blt _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334AEC:
ldrb r0, [r5, #0xd8]
cmp r0, #5
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334B00:
ldrb r0, [r5, #0xd8]
cmp r0, #6
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334B14:
bl GravityIsActive
cmp r0, #0
beq _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334B28:
mov r2, #0
b _02334B4C
_02334B30:
add r1, r5, r2, lsl #1
ldrsh r0, [r1, #0x24]
cmp r0, #0x14
ldrgesh r0, [r1, #0x28]
cmpge r0, #0x14
blt _02334B54
add r2, r2, #1
_02334B4C:
cmp r2, #2
blt _02334B30
_02334B54:
cmp r2, #2
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334B64:
ldrb r0, [r5, #0xf7]
cmp r0, #1
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334B78:
ldrsh r3, [r4, #0x28]
ldrsh r1, [r4, #0x2a]
ldrsh r2, [r5, #0x28]
ldrsh r0, [r5, #0x2a]
add r1, r3, r1
mov r1, r1, lsl #0x10
add r0, r2, r0
mov r2, r0, lsl #0x10
ldrsh r6, [r4, #0x24]
ldrsh r0, [r4, #0x26]
ldrsh r4, [r5, #0x24]
ldrsh r3, [r5, #0x26]
add r0, r6, r0
mov r0, r0, lsl #0x10
add r3, r4, r3
mov r4, r1, asr #0x10
mov r1, r3, lsl #0x10
mov r2, r2, asr #0x10
add r3, r4, r0, asr #16
add r0, r2, r1, asr #16
cmp r3, r0
blt _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334BD8:
ldrsh r3, [r4, #0x24]
ldrsh r2, [r4, #0x26]
ldrsh r1, [r5, #0x24]
ldrsh r0, [r5, #0x26]
add r2, r3, r2
add r0, r1, r0
cmp r2, r0
blt _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334C00:
ldrsh r1, [r4, #0x24]
ldrsh r0, [r4, #0x28]
cmp r1, r0
blt _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334C18:
ldrb r0, [r5, #0x5e]
cmp r0, #0x10
ldrneb r0, [r5, #0x5f]
cmpne r0, #0x10
bne _02334C4C
ldrb r0, [r5, #0xf5]
cmp r0, #1
bne _02334C9C
ldrsh r0, [r5, #0x2e]
cmp r0, #0xa
bgt _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334C4C:
ldrsh r0, [r5, #0x2e]
cmp r0, #0xa
bgt _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334C60:
ldrb r0, [r5, #0xd5]
cmp r0, #0xf
bne _02334C9C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02334C74:
ldrsh r0, [r5, #0x26]
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
ldrsh r0, [r4, #2]
ldrsh r1, [r5, #2]
bl GendersEqualNotGenderless
cmp r0, #0
movne r0, #0
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
_02334C9C:
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_02334CA4: .word 0x0000010A
_02334CA8: .word 0x0000020D
arm_func_end ov29_02333FD0
arm_func_start ov29_02334CAC
ov29_02334CAC: ; 0x02334CAC
stmdb sp!, {r3, lr}
mov r3, #0
mov r1, r3
mov r2, #1
b _02334CE8
_02334CC0:
ldrb ip, [r0, r3, lsl #3]
tst ip, #1
movne lr, r2
moveq lr, r1
tst lr, #0xff
beq _02334CE4
tst ip, #0x10
movne r0, #1
ldmneia sp!, {r3, pc}
_02334CE4:
add r3, r3, #1
_02334CE8:
cmp r3, #4
blt _02334CC0
ldrb r0, [r0, #0x20]
tst r0, #0x10
movne r0, #1
moveq r0, #0
and r0, r0, #0xff
ldmia sp!, {r3, pc}
arm_func_end ov29_02334CAC
arm_func_start GetApparentWeather
GetApparentWeather: ; 0x02334D08
stmdb sp!, {r4, lr}
movs r4, r0
beq _02334D40
mov r1, #0x6f
bl AbilityIsActiveVeneer
cmp r0, #0
movne r0, #0
bne _02334D34
mov r0, r4
mov r1, #0x34
bl HasHeldItem
_02334D34:
cmp r0, #0
movne r0, #0
ldmneia sp!, {r4, pc}
_02334D40:
ldr r0, _02334D54 ; =DUNGEON_PTR
ldr r0, [r0]
add r0, r0, #0xc000
#ifdef JAPAN
ldrb r0, [r0, #0xc94]
#else
ldrb r0, [r0, #0xd38]
#endif
ldmia sp!, {r4, pc}
.align 2, 0
_02334D54: .word DUNGEON_PTR
arm_func_end GetApparentWeather
arm_func_start ov29_02334D58
ov29_02334D58: ; 0x02334D58
stmdb sp!, {r3, lr}
bl IsSecretFloor
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _02334DA4 ; =DUNGEON_PTR
ldr r0, [r0]
add r0, r0, #0x28000
#ifdef JAPAN
ldrb r0, [r0, #0x612]
#else
ldrb r0, [r0, #0x6b6]
#endif
cmp r0, #8
bne _02334D8C
mov r0, #8
bl DungeonRandInt
and r0, r0, #0xff
_02334D8C:
bl ov29_02334DA8
bl TryActivateArtificialWeatherAbilities
mov r0, #0
mov r1, #1
bl TryActivateWeather
ldmia sp!, {r3, pc}
.align 2, 0
_02334DA4: .word DUNGEON_PTR
arm_func_end ov29_02334D58
arm_func_start ov29_02334DA8
ov29_02334DA8: ; 0x02334DA8
#ifdef JAPAN
#define OV29_02334DA8_OFFSET -0xA4
#else
#define OV29_02334DA8_OFFSET 0
#endif
ldr r3, _02334E6C ; =DUNGEON_PTR
mov r1, #0
ldr r2, [r3]
add r2, r2, #0xc000
strb r0, [r2, #0xd39 + OV29_02334DA8_OFFSET]
ldr r0, [r3]
add r0, r0, #0xc000
ldrb r2, [r0, #0xd39 + OV29_02334DA8_OFFSET]
strb r2, [r0, #0xd38 + OV29_02334DA8_OFFSET]
ldr r0, [r3]
add r0, r0, #0xc000
strb r1, [r0, #0xd5d + OV29_02334DA8_OFFSET]
mov r0, r1
_02334DDC:
ldr r2, [r3]
add r2, r2, r1, lsl #1
#ifdef JAPAN
add r2, r2, #0xcc00
strh r0, [r2, #0x96]
ldr r2, [r3]
add r2, r2, r1, lsl #1
add r2, r2, #0xcc00
add r1, r1, #1
strh r0, [r2, #0xa6]
#else
add r2, r2, #0xcd00
strh r0, [r2, #0x3a]
ldr r2, [r3]
add r2, r2, r1, lsl #1
add r2, r2, #0xcd00
add r1, r1, #1
strh r0, [r2, #0x4a]
#endif
cmp r1, #8
blt _02334DDC
ldr r2, _02334E6C ; =DUNGEON_PTR
mov r3, #9
ldr r1, [r2]
add r1, r1, #0xc000
strb r3, [r1, #0xd5a + OV29_02334DA8_OFFSET]
ldr r1, [r2]
add r1, r1, #0xc000
strb r0, [r1, #0xd5b + OV29_02334DA8_OFFSET]
ldr r1, [r2]
add r1, r1, #0xc000
strb r0, [r1, #0xd5c + OV29_02334DA8_OFFSET]
_02334E34:
ldr r1, [r2]
and r3, r0, #0xff
add r1, r1, r0, lsl #2
strb r3, [r1, #0x1e0]
ldr r1, [r2]
add r1, r1, r0, lsl #2
strb r3, [r1, #0x1e1]
ldr r1, [r2]
add r1, r1, r0, lsl #2
add r0, r0, #1
strb r3, [r1, #0x1e2]
cmp r0, #0x100
blt _02334E34
bx lr
.align 2, 0
_02334E6C: .word DUNGEON_PTR
arm_func_end ov29_02334DA8
arm_func_start ov29_02334E70
ov29_02334E70: ; 0x02334E70
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
str r0, [sp]
mov r0, #0
bl GetApparentWeather
bl GetWeatherColorTable
mov r5, r0
mov r0, #0
bl GetApparentWeather
ldr r1, [sp]
bl ov29_022E5FE8
mov r0, #0x25
bl AdvanceFrame
mov r0, #1
bl AnimationDelayOrSomething
ldr r0, _0233503C ; =ov29_02353562
mov r1, #1
ldrb fp, [r0]
mov r4, #0
strb r1, [r0]
b _0233500C
_02334EC0:
mov r0, #0x25
mov r6, #0
bl AdvanceFrame
mov r8, r6
_02334ED0:
ldr r0, _02335040 ; =DUNGEON_PTR
ldrb r7, [r5, r8, lsl #2]
ldr sl, [r0]
add r0, sl, r8, lsl #2
ldrb sb, [r0, #0x1e0]
sub r0, sb, r7
bl abs
cmp r0, #0xa
addlt r0, sl, r8, lsl #2
strltb r7, [r0, #0x1e0]
blt _02334F28
cmp sb, r7
addlo r1, sl, r8, lsl #2
ldrlob r0, [r1, #0x1e0]
mov r6, #1
addlo r0, r0, #0xa
strlob r0, [r1, #0x1e0]
blo _02334F28
addhi r1, sl, r8, lsl #2
ldrhib r0, [r1, #0x1e0]
subhi r0, r0, #0xa
strhib r0, [r1, #0x1e0]
_02334F28:
ldr r0, _02335040 ; =DUNGEON_PTR
add r1, r5, r8, lsl #2
ldr sl, [r0]
ldrb r7, [r1, #1]
add r0, sl, r8, lsl #2
ldrb sb, [r0, #0x1e1]
sub r0, sb, r7
bl abs
cmp r0, #0xa
addlt r0, sl, r8, lsl #2
strltb r7, [r0, #0x1e1]
blt _02334F84
cmp sb, r7
addlo r1, sl, r8, lsl #2
ldrlob r0, [r1, #0x1e1]
mov r6, #1
addlo r0, r0, #0xa
strlob r0, [r1, #0x1e1]
blo _02334F84
addhi r1, sl, r8, lsl #2
ldrhib r0, [r1, #0x1e1]
subhi r0, r0, #0xa
strhib r0, [r1, #0x1e1]
_02334F84:
ldr r0, _02335040 ; =DUNGEON_PTR
add r1, r5, r8, lsl #2
ldr sl, [r0]
ldrb r7, [r1, #2]
add r0, sl, r8, lsl #2
ldrb sb, [r0, #0x1e2]
sub r0, sb, r7
bl abs
cmp r0, #0xa
addlt r0, sl, r8, lsl #2
strltb r7, [r0, #0x1e2]
blt _02334FE0
cmp sb, r7
addlo r1, sl, r8, lsl #2
ldrlob r0, [r1, #0x1e2]
mov r6, #1
addlo r0, r0, #0xa
strlob r0, [r1, #0x1e2]
blo _02334FE0
addhi r1, sl, r8, lsl #2
ldrhib r0, [r1, #0x1e2]
subhi r0, r0, #0xa
strhib r0, [r1, #0x1e2]
_02334FE0:
add r0, r8, #1
mov r0, r0, lsl #0x10
mov r8, r0, asr #0x10
cmp r8, #0x100
blt _02334ED0
bl ov29_022DE608
cmp r6, #0
beq _02335014
add r0, r4, #1
mov r0, r0, lsl #0x10
mov r4, r0, asr #0x10
_0233500C:
cmp r4, #0x40
blt _02334EC0
_02335014:
ldr r0, _02335040 ; =DUNGEON_PTR
ldr r0, [r0]
add r0, r0, #0xc000
#ifdef JAPAN
ldrb r0, [r0, #0xc94]
#else
ldrb r0, [r0, #0xd38]
#endif
bl ov29_02338A4C
ldr r1, _0233503C ; =ov29_02353562
ldr r0, [sp]
strb fp, [r1]
bl ov29_02335044
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_0233503C: .word ov29_02353562
_02335040: .word DUNGEON_PTR
arm_func_end ov29_02334E70
arm_func_start ov29_02335044
ov29_02335044: ; 0x02335044
stmdb sp!, {r4, r5, r6, lr}
ldr r1, _023350D4 ; =DUNGEON_PTR
mov r5, r0
ldr r0, [r1]
add r0, r0, #0x1a000
#ifdef JAPAN
ldr r4, [r0, #0x188]
#else
ldr r4, [r0, #0x22c]
#endif
cmp r4, #0
bne _0233506C
bl GetLeader
mov r4, r0
_0233506C:
cmp r5, #0
beq _02335094
mov r0, #0
bl GetApparentWeather
#ifdef JAPAN
add r0, r0, #0x56
add r0, r0, #0xc00
#else
add r0, r0, #0x45
add r0, r0, #0xa00
#endif
mov r1, r0, lsl #0x10
mov r0, r4
mov r1, r1, lsr #0x10
bl LogMessageByIdWithPopupCheckUser
_02335094:
ldr r4, _023350D4 ; =DUNGEON_PTR
mov r5, #0
_0233509C:
ldr r0, [r4]
add r0, r0, r5, lsl #2
add r0, r0, #0x12000
#ifdef JAPAN
ldr r6, [r0, #0xad4]
#else
ldr r6, [r0, #0xb78]
#endif
mov r0, r6
bl EntityIsValid__023350D8
cmp r0, #0
beq _023350C4
mov r0, r6
bl TryWeatherFormChange
_023350C4:
add r5, r5, #1
cmp r5, #0x14
blt _0233509C
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_023350D4: .word DUNGEON_PTR
arm_func_end ov29_02335044