sub_8103AC8

This commit is contained in:
PikalaxALT
2019-12-11 17:06:27 -05:00
parent f55abfddc5
commit 0d586d304d
4 changed files with 338 additions and 888 deletions
-878
View File
@@ -5,884 +5,6 @@
.text
thumb_func_start sub_8103AC8
sub_8103AC8: @ 8103AC8
push {r4,r5,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08103AE8 @ =gUnknown_203ACF0
ldr r0, [r1]
ldrb r0, [r0, 0x1]
adds r5, r1, 0
cmp r0, 0x1A
bls _08103ADE
b _08104228
_08103ADE:
lsls r0, 2
ldr r1, _08103AEC @ =_08103AF0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08103AE8: .4byte gUnknown_203ACF0
_08103AEC: .4byte _08103AF0
.align 2, 0
_08103AF0:
.4byte _08103B5C
.4byte _08103B98
.4byte _08103BF8
.4byte _08103C24
.4byte _08103C5C
.4byte _08103C84
.4byte _08103E6C
.4byte _08103E6C
.4byte _08103EA0
.4byte _08103ED4
.4byte _08103EA0
.4byte _08103EFC
.4byte _08103F20
.4byte _08103F42
.4byte _08103F54
.4byte _08103F68
.4byte _08103F7A
.4byte _08103FF0
.4byte _0810403A
.4byte _0810406C
.4byte _08104080
.4byte _081040E4
.4byte _081040F4
.4byte _08104118
.4byte _081041DE
.4byte _081041F0
.4byte _0810421C
_08103B5C:
movs r0, 0x3
bl HideBg
movs r0, 0x2
bl HideBg
movs r0, 0x1
bl HideBg
ldr r4, _08103B94 @ =gUnknown_203ACF0
ldr r0, [r4]
adds r0, 0x28
ldrb r0, [r0]
bl sub_810699C
ldr r0, [r4]
adds r2, r0, 0
adds r2, 0x2B
adds r0, 0x29
ldrb r1, [r0]
ldrb r0, [r2]
cmp r0, r1
bcs _08103B8C
strb r1, [r2]
_08103B8C:
ldr r1, [r4]
movs r0, 0x2
b _08104226
.align 2, 0
_08103B94: .4byte gUnknown_203ACF0
_08103B98:
bl sub_8104E90
movs r0, 0x2
bl HideBg
movs r0, 0x1
bl HideBg
ldr r0, _08103BC8 @ =gUnknown_203ACF0
ldr r0, [r0]
adds r0, 0x2F
ldrb r0, [r0]
cmp r0, 0
beq _08103BB8
cmp r0, 0x1
beq _08103BD4
_08103BB8:
ldr r0, _08103BCC @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _08103BD0 @ =sub_810287C
b _08103BE0
.align 2, 0
_08103BC8: .4byte gUnknown_203ACF0
_08103BCC: .4byte gTasks
_08103BD0: .4byte sub_810287C
_08103BD4:
ldr r0, _08103BEC @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _08103BF0 @ =sub_8103238
_08103BE0:
str r0, [r1]
ldr r0, _08103BF4 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0
b _08104226
.align 2, 0
_08103BEC: .4byte gTasks
_08103BF0: .4byte sub_8103238
_08103BF4: .4byte gUnknown_203ACF0
_08103BF8:
movs r0, 0
bl sub_8104F0C
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0xFF
bl sub_8105058
ldr r0, _08103C20 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x3
b _08104226
.align 2, 0
_08103C20: .4byte gUnknown_203ACF0
_08103C24:
ldr r0, _08103C50 @ =0xffff7fff
ldr r1, _08103C54 @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
movs r0, 0x3
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x1
bl ShowBg
ldr r0, _08103C58 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x4
b _08104226
.align 2, 0
_08103C50: .4byte 0xffff7fff
_08103C54: .4byte 0x0000ffff
_08103C58: .4byte gUnknown_203ACF0
_08103C5C:
bl sub_8104234
ldr r4, _08103C7C @ =gUnknown_203ACF0
ldr r1, [r4]
adds r1, 0x60
strb r0, [r1]
ldr r0, _08103C80 @ =gUnknown_84524C4
movs r1, 0
bl ListMenuAddCursorObjectInternal
ldr r1, [r4]
adds r1, 0x61
strb r0, [r1]
ldr r1, [r4]
movs r0, 0x5
b _08104226
.align 2, 0
_08103C7C: .4byte gUnknown_203ACF0
_08103C80: .4byte gUnknown_84524C4
_08103C84:
ldr r0, [r5]
adds r0, 0x2D
ldrb r0, [r0]
bl sub_8105058
ldr r2, [r5]
adds r0, r2, 0
adds r0, 0x61
ldrb r0, [r0]
adds r1, r2, 0
adds r1, 0x2D
ldrb r1, [r1]
adds r2, 0x2C
ldrb r2, [r2]
bl sub_8105178
ldr r2, [r5]
adds r0, r2, 0
adds r0, 0x2B
ldrb r0, [r0]
adds r1, r2, 0
adds r1, 0x62
strh r0, [r1]
movs r4, 0
ldr r0, _08103CF8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08103CFC
adds r0, r2, 0
adds r0, 0x2D
ldrb r1, [r0]
lsls r1, 1
subs r0, 0x15
adds r0, r1
ldrh r0, [r0]
movs r1, 0
movs r2, 0x1
bl sub_8104AB0
lsls r0, 24
cmp r0, 0
beq _08103CFC
ldr r0, [r5]
adds r0, 0x60
ldrb r0, [r0]
bl RemoveScrollIndicatorArrowPair
ldr r0, [r5]
adds r0, 0x61
ldrb r0, [r0]
movs r1, 0
bl ListMenuRemoveCursorObject
ldr r1, [r5]
movs r0, 0xC
b _08104226
.align 2, 0
_08103CF8: .4byte gMain
_08103CFC:
ldr r2, _08103D28 @ =gMain
ldrh r1, [r2, 0x2C]
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
bne _08103D6E
ldrh r1, [r2, 0x30]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _08103D32
ldr r0, _08103D2C @ =gUnknown_203ACF0
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0x2D
ldrb r0, [r1]
cmp r0, 0
beq _08103D30
subs r0, 0x1
strb r0, [r1]
b _08103D60
.align 2, 0
_08103D28: .4byte gMain
_08103D2C: .4byte gUnknown_203ACF0
_08103D30:
movs r4, 0x1
_08103D32:
ldrh r1, [r2, 0x2C]
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
bne _08103D6E
ldrh r1, [r2, 0x30]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _08103D6E
ldr r0, _08103D68 @ =gUnknown_203ACF0
ldr r0, [r0]
adds r2, r0, 0
adds r2, 0x2D
ldrb r1, [r2]
adds r0, 0x2C
ldrb r0, [r0]
subs r0, 0x1
cmp r1, r0
bge _08103D6C
adds r0, r1, 0x1
strb r0, [r2]
_08103D60:
movs r0, 0x5
bl PlaySE
b _08104228
.align 2, 0
_08103D68: .4byte gUnknown_203ACF0
_08103D6C:
movs r4, 0x2
_08103D6E:
cmp r4, 0
bne _08103D78
bl sub_8104284
adds r4, r0, 0
_08103D78:
cmp r4, 0x1
beq _08103D94
cmp r4, 0x1
ble _08103E4E
cmp r4, 0x2
beq _08103DF8
b _08103E4E
_08103D86:
ldr r1, [r4]
movs r0, 0x8
strb r0, [r1, 0x1]
ldr r5, _08103D90 @ =gUnknown_203ACF0
b _08103DDA
.align 2, 0
_08103D90: .4byte gUnknown_203ACF0
_08103D94:
ldr r0, _08103DE4 @ =gUnknown_203ACF0
ldr r1, [r0]
adds r2, r1, 0
adds r2, 0x2B
adds r1, 0x29
ldrb r2, [r2]
adds r5, r0, 0
ldrb r1, [r1]
cmp r2, r1
bls _08103DDA
adds r4, r5, 0
_08103DAA:
ldr r1, [r4]
adds r1, 0x2B
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x28
ldrb r0, [r0]
adds r1, 0x2B
ldrb r1, [r1]
bl sub_8106838
lsls r0, 24
cmp r0, 0
bne _08103D86
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x2B
adds r1, 0x29
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
bhi _08103DAA
_08103DDA:
ldr r1, [r5]
ldrb r0, [r1, 0x1]
cmp r0, 0x8
beq _08103E4E
b _08103E4A
.align 2, 0
_08103DE4: .4byte gUnknown_203ACF0
_08103DE8:
ldr r1, [r4]
movs r0, 0xA
strb r0, [r1, 0x1]
ldr r5, _08103DF4 @ =gUnknown_203ACF0
b _08103E42
.align 2, 0
_08103DF4: .4byte gUnknown_203ACF0
_08103DF8:
ldr r1, _08103E64 @ =gUnknown_203ACF0
ldr r0, [r1]
adds r2, r0, 0
adds r2, 0x2B
ldrb r2, [r2]
adds r0, 0x2A
ldrb r0, [r0]
subs r0, 0x1
adds r5, r1, 0
cmp r2, r0
bge _08103E42
adds r4, r5, 0
_08103E10:
ldr r1, [r4]
adds r1, 0x2B
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x28
ldrb r0, [r0]
adds r1, 0x2B
ldrb r1, [r1]
bl sub_8106838
lsls r0, 24
cmp r0, 0
bne _08103DE8
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0x2B
ldrb r1, [r1]
adds r0, 0x2A
ldrb r0, [r0]
subs r0, 0x1
cmp r1, r0
blt _08103E10
_08103E42:
ldr r1, [r5]
ldrb r0, [r1, 0x1]
cmp r0, 0xA
beq _08103E4E
_08103E4A:
movs r0, 0x6
strb r0, [r1, 0x1]
_08103E4E:
ldr r0, _08103E68 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _08103E5C
b _08104228
_08103E5C:
ldr r0, _08103E64 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x6
b _08104226
.align 2, 0
_08103E64: .4byte gUnknown_203ACF0
_08103E68: .4byte gMain
_08103E6C:
ldr r0, [r5]
adds r0, 0x60
ldrb r0, [r0]
bl RemoveScrollIndicatorArrowPair
ldr r0, [r5]
adds r0, 0x61
ldrb r0, [r0]
movs r1, 0
bl ListMenuRemoveCursorObject
ldr r0, _08103E98 @ =0xffff7fff
ldr r1, _08103E9C @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, [r5]
movs r0, 0x1
b _08104226
.align 2, 0
_08103E98: .4byte 0xffff7fff
_08103E9C: .4byte 0x0000ffff
_08103EA0:
bl sub_8104E90
movs r0, 0xFF
bl sub_8105058
ldr r4, _08103ED0 @ =gUnknown_203ACF0
ldr r0, [r4]
adds r0, 0x61
ldrb r0, [r0]
movs r1, 0
movs r2, 0xA0
movs r3, 0
bl ListMenuUpdateCursorObject
ldr r0, [r4]
adds r0, 0x2E
movs r1, 0
strb r1, [r0]
ldr r0, [r4]
strb r1, [r0, 0x2]
ldr r1, [r4]
ldrb r0, [r1, 0x1]
adds r0, 0x1
b _08104226
.align 2, 0
_08103ED0: .4byte gUnknown_203ACF0
_08103ED4:
movs r0, 0
bl sub_81052D0
lsls r0, 24
cmp r0, 0
bne _08103EE2
b _08104228
_08103EE2:
ldr r2, _08103EF8 @ =gUnknown_203ACF0
ldr r1, [r2]
adds r0, r1, 0
adds r0, 0x2C
ldrb r0, [r0]
subs r0, 0x1
adds r1, 0x2D
strb r0, [r1]
ldr r1, [r2]
movs r0, 0x5
b _08104226
.align 2, 0
_08103EF8: .4byte gUnknown_203ACF0
_08103EFC:
movs r0, 0x1
bl sub_81052D0
lsls r0, 24
cmp r0, 0
bne _08103F0A
b _08104228
_08103F0A:
ldr r2, _08103F1C @ =gUnknown_203ACF0
ldr r0, [r2]
adds r0, 0x2D
movs r1, 0
strb r1, [r0]
ldr r1, [r2]
movs r0, 0x5
b _08104226
.align 2, 0
_08103F1C: .4byte gUnknown_203ACF0
_08103F20:
ldr r2, [r5]
adds r0, r2, 0
adds r0, 0x2D
ldrb r1, [r0]
lsls r1, 1
subs r0, 0x15
adds r0, r1
ldrh r1, [r0]
adds r0, r2, 0
adds r0, 0x5A
strh r1, [r0]
movs r0, 0x5
bl PlaySE
ldr r1, [r5]
movs r0, 0xE
b _08104226
_08103F42:
bl sub_8106014
ldr r0, _08103F50 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x4
b _08104226
.align 2, 0
_08103F50: .4byte gUnknown_203ACF0
_08103F54:
movs r0, 0
bl sub_8105E1C
ldr r0, _08103F64 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0xF
b _08104226
.align 2, 0
_08103F64: .4byte gUnknown_203ACF0
_08103F68:
ldr r0, [r5]
movs r1, 0
strb r1, [r0, 0x2]
ldr r0, [r5]
strb r1, [r0, 0x3]
ldr r1, [r5]
ldrb r0, [r1, 0x1]
adds r0, 0x1
strb r0, [r1, 0x1]
_08103F7A:
ldr r1, [r5]
ldrb r0, [r1, 0x3]
cmp r0, 0x5
bhi _08103FA8
ldrb r0, [r1, 0x2]
cmp r0, 0
bne _08103F8A
b _081040BE
_08103F8A:
ldrb r1, [r1, 0x3]
movs r0, 0
bl sub_8105594
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r1, [r5]
movs r0, 0x4
strb r0, [r1, 0x2]
ldr r1, [r5]
ldrb r0, [r1, 0x3]
adds r0, 0x1
strb r0, [r1, 0x3]
b _08104228
_08103FA8:
movs r0, 0x1E
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, [r5]
adds r0, 0x5A
ldrh r0, [r0]
movs r1, 0
movs r2, 0x7D
movs r3, 0xA
bl PlayCry2
ldr r1, [r5]
movs r0, 0
strb r0, [r1, 0x2]
ldr r1, [r5]
movs r0, 0x11
b _08104226
_08103FF0:
ldr r0, _08104024 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0810402C
bl sub_8106014
movs r0, 0x1E
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x1
bl CopyBgTilemapBufferToVram
ldr r0, _08104028 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x15
b _08104226
.align 2, 0
_08104024: .4byte gMain
_08104028: .4byte gUnknown_203ACF0
_0810402C:
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _08104036
b _081041D8
_08104036:
ldr r1, [r5]
b _08104224
_0810403A:
movs r0, 0
bl sub_8104F0C
movs r0, 0
movs r1, 0x6
bl sub_8105594
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, _08104068 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x13
b _08104226
.align 2, 0
_08104068: .4byte gUnknown_203ACF0
_0810406C:
ldr r1, [r5]
movs r0, 0
strb r0, [r1, 0x2]
ldr r1, [r5]
movs r0, 0x6
strb r0, [r1, 0x3]
ldr r1, [r5]
ldrb r0, [r1, 0x1]
adds r0, 0x1
strb r0, [r1, 0x1]
_08104080:
ldr r1, [r5]
ldrb r2, [r1, 0x3]
cmp r2, 0
beq _081040C4
ldrb r0, [r1, 0x2]
cmp r0, 0
beq _081040BE
subs r0, r2, 0x1
strb r0, [r1, 0x3]
movs r0, 0x1E
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
ldr r0, [r5]
ldrb r1, [r0, 0x3]
movs r0, 0
bl sub_8105594
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r1, [r5]
movs r0, 0x1
strb r0, [r1, 0x2]
b _08104228
_081040BE:
subs r0, 0x1
strb r0, [r1, 0x2]
b _08104228
_081040C4:
movs r0, 0x1E
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r1, [r5]
movs r0, 0xD
b _08104226
_081040E4:
bl sub_810603C
ldr r0, _081040F0 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x16
b _08104226
.align 2, 0
_081040F0: .4byte gUnknown_203ACF0
_081040F4:
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, _08104114 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x17
b _08104226
.align 2, 0
_08104114: .4byte gUnknown_203ACF0
_08104118:
ldr r0, _08104174 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0810417C
movs r5, 0x1E
str r5, [sp]
movs r4, 0x10
str r4, [sp, 0x4]
movs r0, 0x2
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, _08104178 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x1A
b _08104226
.align 2, 0
_08104174: .4byte gMain
_08104178: .4byte gUnknown_203ACF0
_0810417C:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081041D8
movs r5, 0x1E
str r5, [sp]
movs r4, 0x10
str r4, [sp, 0x4]
movs r0, 0x2
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, _081041D4 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x18
b _08104226
.align 2, 0
_081041D4: .4byte gUnknown_203ACF0
_081041D8:
bl sub_8106B34
b _08104228
_081041DE:
bl sub_81067C0
ldr r0, _081041EC @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x19
b _08104226
.align 2, 0
_081041EC: .4byte gUnknown_203ACF0
_081041F0:
movs r0, 0
bl sub_8105E1C
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, _08104218 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x11
b _08104226
.align 2, 0
_08104218: .4byte gUnknown_203ACF0
_0810421C:
bl sub_81067C0
ldr r0, _08104230 @ =gUnknown_203ACF0
ldr r1, [r0]
_08104224:
movs r0, 0x12
_08104226:
strb r0, [r1, 0x1]
_08104228:
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08104230: .4byte gUnknown_203ACF0
thumb_func_end sub_8103AC8
thumb_func_start sub_8104234
sub_8104234: @ 8104234
push {r4,lr}