summaryrefslogtreecommitdiff
path: root/asm/code_805744C.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/code_805744C.s')
-rw-r--r--asm/code_805744C.s552
1 files changed, 552 insertions, 0 deletions
diff --git a/asm/code_805744C.s b/asm/code_805744C.s
new file mode 100644
index 0000000..4272c44
--- /dev/null
+++ b/asm/code_805744C.s
@@ -0,0 +1,552 @@
+ #include "asm/constants/gba_constants.inc"
+ #include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_805744C
+sub_805744C:
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r6, [r0, 0x70]
+ ldrh r1, [r4, 0x2]
+ ldr r0, _080574A8
+ cmp r1, r0
+ beq _080574BA
+ ldrb r1, [r4]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _080574B6
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080574B6
+ cmp r2, 0
+ beq _080574BA
+ adds r0, r6, 0
+ adds r0, 0xBC
+ ldrb r1, [r0]
+ adds r5, r0, 0
+ cmp r1, 0x5
+ bne _0805748E
+ adds r0, r4, 0
+ bl MoveDealsDirectDamage
+ lsls r0, 24
+ cmp r0, 0
+ beq _080574B6
+_0805748E:
+ ldrb r0, [r5]
+ cmp r0, 0x6
+ bne _080574BA
+ ldrh r1, [r4, 0x2]
+ movs r0, 0xB0
+ lsls r0, 1
+ cmp r1, r0
+ bne _080574AC
+ movs r1, 0x9C
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrb r1, [r0]
+ b _080574AE
+ .align 2, 0
+_080574A8: .4byte 0x00000163
+_080574AC:
+ ldrb r1, [r4]
+_080574AE:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _080574BA
+_080574B6:
+ movs r0, 0
+ b _080574BC
+_080574BA:
+ movs r0, 0x1
+_080574BC:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_805744C
+
+ thumb_func_start sub_80574C4
+sub_80574C4:
+ push {r4-r6,lr}
+ sub sp, 0x104
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r3, 0
+ movs r2, 0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08057502
+ cmp r0, r5
+ beq _080574EA
+_080574DA:
+ lsls r0, r3, 2
+ mov r6, sp
+ adds r1, r6, r0
+ lsls r0, r2, 2
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r3, 0x1
+_080574EA:
+ adds r2, 0x1
+ cmp r2, 0x40
+ bgt _08057502
+ lsls r0, r2, 2
+ adds r0, r4
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08057502
+ cmp r0, r5
+ beq _080574EA
+ cmp r3, 0x3F
+ ble _080574DA
+_08057502:
+ movs r2, 0
+ ldr r0, [r4]
+ b _08057524
+_08057508:
+ lsls r0, r3, 2
+ mov r6, sp
+ adds r1, r6, r0
+ lsls r0, r2, 2
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r3, 0x1
+_08057518:
+ adds r2, 0x1
+ cmp r2, 0x40
+ bgt _08057530
+ lsls r0, r2, 2
+ adds r0, r4
+ ldr r0, [r0]
+_08057524:
+ cmp r0, 0
+ beq _08057530
+ cmp r0, r5
+ bne _08057518
+ cmp r3, 0x3F
+ ble _08057508
+_08057530:
+ cmp r3, 0x40
+ bgt _08057542
+ movs r1, 0
+ lsls r0, r3, 2
+ add r0, sp
+_0805753A:
+ stm r0!, {r1}
+ adds r3, 0x1
+ cmp r3, 0x40
+ ble _0805753A
+_08057542:
+ mov r3, sp
+ adds r1, r4, 0
+ movs r2, 0x40
+_08057548:
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08057548
+ add sp, 0x104
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80574C4
+
+ thumb_func_start sub_805755C
+sub_805755C:
+ push {r4,lr}
+ lsls r1, 16
+ lsrs r4, r1, 16
+ cmp r4, 0x97
+ bne _08057576
+ bl GetWeather
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08057576
+ movs r0, 0
+ b _08057580
+_08057576:
+ adds r0, r4, 0
+ bl DoesMoveCharge
+ lsls r0, 24
+ lsrs r0, 24
+_08057580:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_805755C
+
+ thumb_func_start sub_8057588
+sub_8057588:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080575F8
+ ldr r5, [r4, 0x70]
+ movs r3, 0
+_0805759E:
+ lsls r0, r3, 3
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r0, r1
+ adds r2, r5, r0
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ adds r4, r3, 0x1
+ cmp r0, 0
+ beq _080575F2
+ movs r3, 0x1
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080575C8
+ movs r0, 0xEF
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ movs r3, 0x2
+_080575C8:
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080575F2
+ movs r0, 0xF7
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ cmp r6, 0
+ beq _080575F2
+ cmp r3, 0
+ beq _080575F2
+ adds r1, r3, 0
+_080575E2:
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0
+ beq _080575EC
+ subs r0, 0x1
+ strb r0, [r2, 0x4]
+_080575EC:
+ subs r1, 0x1
+ cmp r1, 0
+ bne _080575E2
+_080575F2:
+ adds r3, r4, 0
+ cmp r3, 0x3
+ ble _0805759E
+_080575F8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8057588
+
+ thumb_func_start sub_8057600
+sub_8057600:
+ push {r4,lr}
+ ldrh r4, [r0, 0x2]
+ adds r0, r1, 0
+ bl sub_8057620
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_8094828
+ lsls r0, 16
+ asrs r0, 16
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8057600
+
+ thumb_func_start sub_8057620
+sub_8057620:
+ push {lr}
+ cmp r0, 0
+ beq _0805762C
+ lsls r0, 24
+ lsrs r0, 24
+ b _0805762E
+_0805762C:
+ movs r0, 0
+_0805762E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8057620
+
+ thumb_func_start sub_8057634
+sub_8057634:
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ adds r6, r1, 0
+ movs r7, 0
+ movs r4, 0x80
+ lsls r4, 1
+ str r3, [sp]
+ adds r3, r4, 0
+ bl sub_8055640
+ cmp r0, 0
+ beq _08057678
+ movs r7, 0x1
+ ldr r0, _08057684
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_805727C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08057678
+ ldr r0, _08057688
+ ldr r2, [r0]
+ str r7, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r3, 0x1
+ bl sub_8076F80
+_08057678:
+ adds r0, r7, 0
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08057684: .4byte gUnknown_80F4DB4
+_08057688: .4byte gUnknown_8106A4C
+ thumb_func_end sub_8057634
+
+ thumb_func_start sub_805768C
+sub_805768C:
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r3, 0
+ movs r6, 0
+ ldr r4, _080576B8
+ ldr r3, [r4]
+ adds r3, 0x1
+ str r3, [r4]
+ ldr r4, _080576BC
+ lsls r3, 2
+ adds r3, r4
+ ldr r3, [r3]
+ str r5, [sp]
+ bl sub_8055640
+ cmp r0, 0
+ bne _080576C4
+ ldr r1, _080576C0
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080576C6
+ .align 2, 0
+_080576B8: .4byte gUnknown_202F21C
+_080576BC: .4byte gUnknown_8106A54
+_080576C0: .4byte gUnknown_202F220
+_080576C4:
+ movs r6, 0x1
+_080576C6:
+ adds r0, r6, 0
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_805768C
+
+ thumb_func_start sub_80576D0
+sub_80576D0:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r1, _080576F4
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_808417C
+ adds r2, r0, 0
+ adds r2, 0x1
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8075F34
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080576F4: .4byte gUnknown_80F4F28
+ thumb_func_end sub_80576D0
+
+ thumb_func_start sub_80576F8
+sub_80576F8:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r1, _0805771C
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_808417C
+ adds r2, r0, 0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8075C58
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0805771C: .4byte gUnknown_80F4E74
+ thumb_func_end sub_80576F8
+
+ thumb_func_start sub_8057720
+sub_8057720:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r1, _08057744
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_808417C
+ adds r2, r0, 0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8075DBC
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08057744: .4byte gUnknown_80F4E78
+ thumb_func_end sub_8057720
+
+ thumb_func_start sub_8057748
+sub_8057748:
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldr r4, _08057778
+ bl GetWeather
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r3, 0
+ bl HealTargetHP
+ movs r0, 0x1
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08057778: .4byte gUnknown_80F502A
+ thumb_func_end sub_8057748
+
+ thumb_func_start sub_805777C
+sub_805777C:
+ push {lr}
+ bl sub_8079DB8
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_805777C
+
+ thumb_func_start sub_8057788
+sub_8057788:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r7, r1, 0
+ adds r6, r2, 0
+ mov r8, r3
+ movs r0, 0
+ mov r9, r0
+ adds r0, r4, 0
+ bl GetMapTileForDungeonEntity_2
+ adds r5, r0, 0
+ bl IsTileGround
+ lsls r0, 24
+ cmp r0, 0
+ beq _080577BA
+ ldrh r1, [r5]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ beq _080577CC
+_080577BA:
+ ldr r0, _080577C8
+ ldr r2, [r0]
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl sub_80522F4
+ b _0805780E
+ .align 2, 0
+_080577C8: .4byte gUnknown_80FD14C
+_080577CC:
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl MoveMatchesChargingStatus
+ lsls r0, 24
+ cmp r0, 0
+ beq _080577F8
+ ldr r0, _080577F4
+ ldr r3, [r0]
+ mov r0, r8
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl sub_8055640
+ adds r0, r4, 0
+ bl sub_8079764
+ b _0805780A
+ .align 2, 0
+_080577F4: .4byte gUnknown_80F4F68
+_080577F8:
+ ldr r0, _08057820
+ ldr r0, [r0]
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r2, 0xA
+ adds r3, r6, 0
+ bl sub_8079618
+_0805780A:
+ movs r0, 0x1
+ mov r9, r0
+_0805780E:
+ mov r0, r9
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08057820: .4byte gUnknown_80FAD4C
+ thumb_func_end sub_8057788
+
+ .align 2,0 @ Don't pad with nop