.type sub_8049ED4,function
.thumb_func
sub_8049ED4:
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, r9
mov r5, r8
push {r5, r6, r7}
add sp, sp, #0xffffff80
lsl r0, r0, #0x18
lsr r7, r0, #0x18
mov r0, #0x1
str r0, [sp, #0x6c]
ldr r1, .L649
ldr r5, [r1]
add r0, r5, #0
add r0, r0, #0x82
add r0, r0, r7
ldrb r0, [r0]
cmp r0, #0x5
bhi .L632 @cond_branch
mov r2, #0x0
str r2, [sp, #0x6c]
.L632:
mov r1, #0x6
bl __umodsi3
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x70]
add r0, r5, #0
add r0, r0, #0x80
add r3, r0, r7
ldrb r0, [r3]
cmp r0, #0x2
bne .LCB5359
b .L641 @long jump
.LCB5359:
cmp r0, #0x2
bgt .L647 @cond_branch
cmp r0, #0x1
beq .L634 @cond_branch
b .L633
.L650:
.align 2, 0
.L649:
.word gUnknown_03004824
.L647:
cmp r0, #0x3
bne .LCB5374
b .L643 @long jump
.LCB5374:
cmp r0, #0x4
bne .LCB5376
b .L644 @long jump
.LCB5376:
b .L633
.L634:
mov r4, #0x0
add r0, r5, #0
add r0, r0, #0x42
add r0, r0, r7
ldr r6, .L651
ldr r3, [sp, #0x6c]
lsl r3, r3, #0x1
mov r8, r3
ldr r5, .L651+0x4
mov sl, r5
ldr r1, .L651+0x8
mov ip, r1
lsl r2, r7, #0x4
str r2, [sp, #0x7c]
ldrb r0, [r0]
cmp r4, r0
bcs .L636 @cond_branch
mov r9, r6
ldr r2, .L651+0xc
ldr r0, [sp, #0x6c]
add r0, r0, r8
lsl r3, r0, #0x1
mov r5, #0x4
.L638:
ldr r0, [r2]
add r1, r4, r3
add r0, r0, #0x34
add r0, r0, r1
ldrb r1, [r0]
lsl r0, r1, #0x4
add r0, r0, r1
lsl r0, r0, #0x2
add r0, r0, r9
add r0, r0, #0x3e
ldrb r1, [r0]
orr r1, r1, r5
strb r1, [r0]
add r0, r4, #0x1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
ldr r0, [r2]
add r0, r0, #0x42
add r0, r0, r7
ldrb r0, [r0]
cmp r4, r0
bcc .L638 @cond_branch
.L636:
ldr r3, .L651+0xc
ldr r0, [r3]
ldr r5, [sp, #0x6c]
add r5, r5, r8
lsl r5, r5, #0x1
ldr r1, [sp, #0x70]
add r5, r1, r5
add r0, r0, #0x34
add r0, r0, r5
ldrb r1, [r0]
lsl r0, r1, #0x4
add r0, r0, r1
lsl r0, r0, #0x2
add r0, r0, r6
add r0, r0, #0x3e
ldrb r2, [r0]
mov r1, #0x5
neg r1, r1
and r1, r1, r2
strb r1, [r0]
ldr r3, [r3]
add r3, r3, #0x34
add r3, r3, r5
ldrb r1, [r3]
lsl r0, r1, #0x4
add r0, r0, r1
lsl r0, r0, #0x2
add r0, r0, r6
mov r2, #0x0
mov r9, r2
mov r1, #0x14
strh r1, [r0, #0x2e]
ldrb r0, [r3]
lsl r2, r0, #0x4
add r2, r2, r0
lsl r2, r2, #0x2
add r2, r2, r6
lsl r4, r5, #0x1
mov r1, sl
add r0, r4, r1
ldrb r1, [r0]
add r0, r5, #0x1
lsl r0, r0, #0x1
add r0, r0, sl
ldrb r0, [r0]
add r1, r1, r0
asr r1, r1, #0x1
lsl r1, r1, #0x3
add r1, r1, #0xe
strh r1, [r2, #0x32]
ldrb r0, [r3]
lsl r1, r0, #0x4
add r1, r1, r0
lsl r1, r1, #0x2
add r1, r1, r6
mov r0, sl
add r0, r0, #0x1
add r4, r4, r0
ldrb r0, [r4]
lsl r0, r0, #0x3
sub r0, r0, #0xc
strh r0, [r1, #0x36]
ldrb r1, [r3]
lsl r0, r1, #0x4
add r0, r0, r1
lsl r0, r0, #0x2
add r0, r0, r6
mov r1, ip
bl oamt_set_x3A_32
ldr r2, .L651+0xc
ldr r1, [r2]
add r1, r1, #0x80
add r1, r1, r7
ldrb r0, [r1]
add r0, r0, #0x1
strb r0, [r1]
ldr r0, [r2]
add r0, r0, #0x34
add r0, r0, r5
ldrb r1, [r0]
lsl r0, r1, #0x4
add r0, r0, r1
lsl r0, r0, #0x2
add r0, r0, r6
bl sub_8078A34
bl HandleDestroyMenuCursors
ldr r3, .L651+0xc
ldr r0, [r3]
add r0, r0, #0x4
ldr r1, .L651+0x10
mov r5, r8
add r2, r5, r1
ldrb r2, [r2]
add r1, r1, #0x1
add r1, r1, r8
ldrb r1, [r1]
str r1, [sp]
mov r1, #0x13
str r1, [sp, #0x4]
mov r1, #0x0
mov r3, #0x0
bl FillWindowRect_DefaultPalette
ldr r1, .L651+0xc
ldr r0, [r1]
add r0, r0, #0xc8
ldr r2, [sp, #0x7c]
sub r1, r2, r7
lsl r1, r1, #0x18
lsr r1, r1, #0x18
ldr r3, .L651+0x14
mov r2, #0xf
str r2, [sp]
mov r2, #0x11
str r2, [sp, #0x4]
mov r5, r9
str r5, [sp, #0x8]
mov r2, #0x0
bl sub_804A96C
ldr r0, [sp, #0x6c]
cmp r0, #0
beq .LCB5578
b .L633 @long jump
.LCB5578:
bl sub_804A80C
b .L633
.L652:
.align 2, 0
.L651:
.word gSprites
.word gTradeMonSpriteCoords
.word sub_809D62C
.word gUnknown_03004824
.word gUnknown_0820C330
.word gTradePartyBoxTilemap
.L641:
ldr r2, .L653
ldr r1, [sp, #0x6c]
lsl r0, r1, #0x1
add r0, r0, r1
lsl r0, r0, #0x1
ldr r1, [sp, #0x70]
add r0, r1, r0
add r1, r5, #0
add r1, r1, #0x34
add r1, r1, r0
ldrb r1, [r1]
lsl r0, r1, #0x4
add r0, r0, r1
lsl r0, r0, #0x2
add r2, r2, #0x1c
add r0, r0, r2
ldr r1, [r0]
ldr r0, .L653+0x4
cmp r1, r0
beq .LCB5614
b .L633 @long jump
.LCB5614:
mov r0, #0x3
strb r0, [r3]
b .L633
.L654:
.align 2, 0
.L653:
.word gSprites
.word sub_809D62C
.L643:
add r0, r5, #0
add r0, r0, #0xc8
ldr r2, [sp, #0x6c]
lsl r1, r2, #0x4
sub r1, r1, r2
lsl r1, r1, #0x18
lsr r1, r1, #0x18
ldr r3, .L655
mov r2, #0xf
str r2, [sp]
mov r5, #0x11
str r5, [sp, #0x4]
mov r2, #0x0
mov r8, r2
str r2, [sp, #0x8]
bl sub_804A96C
ldr r3, .L655+0x4
mov ip, r3
ldr r5, .L655+0x8
ldr r3, [r5]
ldr r0, [sp, #0x6c]
lsl r0, r0, #0x1
mov r9, r0
ldr r1, [sp, #0x6c]
add r1, r1, r9
str r1, [sp, #0x74]
lsl r1, r1, #0x1
ldr r2, [sp, #0x70]
add r1, r2, r1
add r3, r3, #0x34
add r3, r3, r1
ldrb r0, [r3]
lsl r2, r0, #0x4
add r2, r2, r0
lsl r2, r2, #0x2
add r2, r2, ip
ldr r4, .L655+0xc
lsl r5, r1, #0x1
add r0, r5, r4
ldrb r0, [r0]
add r1, r1, #0x1
lsl r1, r1, #0x1
add r1, r1, r4
ldrb r1, [r1]
add r0, r0, r1
asr r0, r0, #0x1
lsl r0, r0, #0x3
add r0, r0, #0xe
strh r0, [r2, #0x20]
ldrb r0, [r3]
lsl r1, r0, #0x4
add r1, r1, r0
lsl r1, r1, #0x2
add r1, r1, ip
add r4, r4, #0x1
add r5, r5, r4
ldrb r0, [r5]
lsl r0, r0, #0x3
sub r0, r0, #0xc
strh r0, [r1, #0x22]
ldrb r1, [r3]
lsl r0, r1, #0x4
add r0, r0, r1
lsl r0, r0, #0x2
add r0, r0, ip
mov r5, r8
strh r5, [r0, #0x24]
ldrb r1, [r3]
lsl r0, r1, #0x4
add r0, r0, r1
lsl r0, r0, #0x2
add r0, r0, ip
strh r5, [r0, #0x26]
mov r0, sp
add r0, r0, #0x12
ldr r1, [sp, #0x6c]
ldr r2, [sp, #0x70]
bl sub_804A2B4
add r1, sp, #0xc
mov r3, #0xfc
strb r3, [r1]
add r2, r1, #0
mov r1, #0x6
strb r1, [r2, #0x1]
mov r1, #0x4
strb r1, [r2, #0x2]
add r1, r2, #0
strb r3, [r1, #0x3]
mov r2, #0x11
strb r2, [r1, #0x4]
add r2, r1, #0
lsl r0, r0, #0x18
asr r0, r0, #0x18
mov r1, #0x40
sub r1, r1, r0
lsr r0, r1, #0x1f
add r1, r1, r0
asr r1, r1, #0x1
strb r1, [r2, #0x5]
ldr r3, .L655+0x8
ldr r1, [r3]
add r0, r1, #0x4
add r1, r1, #0x7a
ldrb r2, [r1]
ldr r5, [sp, #0x74]
lsl r5, r5, #0x6
str r5, [sp, #0x78]
add r2, r2, r5
ldr r4, .L655+0x10
mov r3, r9
add r1, r3, r4
ldrb r3, [r1]
add r5, r4, #0x1
mov sl, r5
add r9, r9, sl
mov r5, r9
ldrb r1, [r5]
str r1, [sp]
add r1, sp, #0xc
bl sub_8003460
add r0, sp, #0x34
mov r8, r0
ldr r1, [sp, #0x6c]
ldr r2, [sp, #0x70]
bl sub_804A33C
ldr r1, .L655+0x8
ldr r2, [r1]
add r0, r2, #0x4
ldr r1, .L655+0x14
add r2, r2, #0x7a
ldrb r2, [r2]
ldr r3, [sp, #0x78]
add r2, r2, r3
add r2, r2, #0x20
ldr r3, [sp, #0x6c]
add r3, r3, #0x1
lsl r3, r3, #0x1
add r4, r3, r4
ldrb r5, [r4]
add r3, r3, sl
ldrb r4, [r3]
add r4, r4, #0x1
lsl r4, r4, #0x18
lsr r4, r4, #0x18
str r4, [sp]
add r3, r5, #0
bl sub_8003460
ldr r0, .L655+0x8
ldr r1, [r0]
add r0, r1, #0x4
add r1, r1, #0x7a
ldrb r2, [r1]
ldr r1, [sp, #0x78]
add r2, r2, r1
add r2, r2, #0x26
str r4, [sp]
mov r1, r8
add r3, r5, #0
bl sub_8003460
ldr r2, .L655+0x8
ldr r1, [r2]
b .L648
.L656:
.align 2, 0
.L655:
.word gTradePartyBoxTilemap
.word gSprites
.word gUnknown_03004824
.word gTradeMonSpriteCoords
.word gUnknown_0820C334
.word gOtherText_Terminator2
.L644:
ldr r0, .L657
ldr r0, [r0, #0x14]
add r1, r5, #0
add r1, r1, #0x7e
ldrh r1, [r1]
lsl r1, r1, #0x5
ldr r3, .L657+0x4
add r1, r1, r3
mov r2, #0x14
bl sub_804ACD8
ldr r0, .L657+0x8
lsl r1, r7, #0x1
add r4, r1, r0
ldrb r2, [r4]
add r2, r2, #0x4
lsl r2, r2, #0x18
lsr r2, r2, #0x18
add r0, r0, #0x1
add r1, r1, r0
ldrb r3, [r1]
add r3, r3, #0x1
lsl r3, r3, #0x18
lsr r3, r3, #0x18
ldrb r0, [r4]
str r0, [sp]
ldrb r0, [r1]
str r0, [sp, #0x4]
add r0, r7, #0
ldr r1, [sp, #0x70]
bl sub_804A51C
ldr r5, .L657+0xc
ldr r1, [r5]
.L648:
add r1, r1, #0x80
add r1, r1, r7
ldrb r0, [r1]
add r0, r0, #0x1
strb r0, [r1]
.L633:
add sp, sp, #0x80
pop {r3, r4, r5}
mov r8, r3
mov r9, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.L658:
.align 2, 0
.L657:
.word gUnknown_0820C14C
.word 0x6010000
.word gUnknown_0820C3D1
.word gUnknown_03004824
.Lfe42:
.size sub_8049ED4,.Lfe42-sub_8049ED4
.align 2, 0
Comments
0 B
|👍
/👎