Decompile union_room_chat.c up to sub_801F5B8

This commit is contained in:
Marcus Huderle
2019-03-27 19:09:12 -05:00
parent af1baa89f1
commit aebc676913
8 changed files with 399 additions and 749 deletions
-740
View File
@@ -5,746 +5,6 @@
.text
thumb_func_start sub_801EFF8
sub_801EFF8: @ 801EFF8
push {r4-r6,lr}
adds r6, r0, 0
adds r5, r1, 0
ldrb r0, [r5]
adds r1, r0, 0
adds r4, r5, 0x1
adds r5, r4, 0
adds r5, 0x8
cmp r0, 0x2
beq _0801F020
cmp r0, 0x2
bgt _0801F016
cmp r0, 0x1
beq _0801F044
b _0801F0A8
_0801F016:
cmp r1, 0x3
beq _0801F07A
cmp r1, 0x5
beq _0801F06E
b _0801F0A8
_0801F020:
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
ldrb r0, [r0, 0x13]
ldrb r1, [r4, 0x8]
cmp r0, r1
beq _0801F0A8
bl DynamicPlaceholderTextUtil_Reset
movs r0, 0
adds r1, r4, 0
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r1, =gText_F700JoinedChat
b _0801F094
.pool
_0801F044:
adds r0, r6, 0
adds r1, r4, 0
bl StringCopy
movs r1, 0xFC
strb r1, [r0]
adds r0, 0x1
movs r1, 0x13
strb r1, [r0]
adds r0, 0x1
movs r1, 0x2A
strb r1, [r0]
adds r0, 0x1
movs r1, 0xF0
strb r1, [r0]
adds r0, 0x1
adds r1, r5, 0
bl StringCopy
movs r0, 0x1
b _0801F0AA
_0801F06E:
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
adds r0, 0x79
adds r1, r4, 0
bl StringCopy
_0801F07A:
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
ldrb r0, [r0, 0x13]
ldrb r5, [r5]
cmp r0, r5
beq _0801F0A8
bl DynamicPlaceholderTextUtil_Reset
movs r0, 0
adds r1, r4, 0
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r1, =gText_F700LeftChat
_0801F094:
adds r0, r6, 0
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
movs r0, 0x1
b _0801F0AA
.pool
_0801F0A8:
movs r0, 0
_0801F0AA:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_801EFF8
thumb_func_start sub_801F0B0
sub_801F0B0: @ 801F0B0
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
ldrb r0, [r0, 0x10]
bx lr
.pool
thumb_func_end sub_801F0B0
thumb_func_start sub_801F0BC
sub_801F0BC: @ 801F0BC
ldr r2, =gUnknown_02022C84
ldr r3, [r2]
ldrb r2, [r3, 0x11]
strb r2, [r0]
ldrb r0, [r3, 0x12]
strb r0, [r1]
bx lr
.pool
thumb_func_end sub_801F0BC
thumb_func_start sub_801F0D0
sub_801F0D0: @ 801F0D0
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
adds r0, 0x1A
bx lr
.pool
thumb_func_end sub_801F0D0
thumb_func_start sub_801F0DC
sub_801F0DC: @ 801F0DC
push {lr}
bl sub_801F0D0
bl StringLength_Multibyte
pop {r1}
bx r1
thumb_func_end sub_801F0DC
thumb_func_start sub_801F0EC
sub_801F0EC: @ 801F0EC
push {r4,lr}
adds r4, r0, 0
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
ldrb r3, [r0, 0x15]
ldrb r2, [r0, 0x14]
subs r0, r3, r2
cmp r0, 0
bge _0801F108
negs r0, r0
str r3, [r4]
b _0801F10A
.pool
_0801F108:
str r2, [r4]
_0801F10A:
str r0, [r1]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801F0EC
thumb_func_start sub_801F114
sub_801F114: @ 801F114
push {lr}
bl sub_801EED8
lsls r0, 16
lsrs r2, r0, 16
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0x1A
cmp r2, 0
beq _0801F13A
_0801F12A:
ldrb r0, [r1]
cmp r0, 0xF9
bne _0801F132
adds r1, 0x1
_0801F132:
adds r1, 0x1
subs r2, 0x1
cmp r2, 0
bne _0801F12A
_0801F13A:
adds r0, r1, 0
pop {r1}
bx r1
.pool
thumb_func_end sub_801F114
thumb_func_start sub_801F144
sub_801F144: @ 801F144
push {r4,lr}
bl sub_801EED8
lsls r0, 16
lsrs r4, r0, 16
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0x1A
movs r2, 0
movs r3, 0
cmp r2, r4
bcs _0801F174
_0801F15E:
ldrb r0, [r1]
cmp r0, 0xF9
bne _0801F166
adds r1, 0x1
_0801F166:
adds r1, 0x1
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
adds r3, 0x1
cmp r3, r4
bcc _0801F15E
_0801F174:
adds r0, r2, 0
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_801F144
thumb_func_start sub_801F180
sub_801F180: @ 801F180
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
adds r0, 0x39
bx lr
.pool
thumb_func_end sub_801F180
thumb_func_start sub_801F18C
sub_801F18C: @ 801F18C
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
ldrb r0, [r0, 0x16]
bx lr
.pool
thumb_func_end sub_801F18C
thumb_func_start sub_801F198
sub_801F198: @ 801F198
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
ldrb r0, [r0, 0x15]
bx lr
.pool
thumb_func_end sub_801F198
thumb_func_start sub_801F1A4
sub_801F1A4: @ 801F1A4
push {lr}
bl sub_801EEA8
ldrb r1, [r0]
cmp r1, 0xFF
bhi _0801F1BE
ldr r0, =gUnknown_082F2AA8
adds r0, r1, r0
ldrb r0, [r0]
cmp r0, r1
beq _0801F1BE
cmp r0, 0
bne _0801F1C8
_0801F1BE:
movs r0, 0x3
b _0801F1CA
.pool
_0801F1C8:
movs r0, 0
_0801F1CA:
pop {r1}
bx r1
thumb_func_end sub_801F1A4
thumb_func_start sub_801F1D0
sub_801F1D0: @ 801F1D0
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
adds r0, 0x79
bx lr
.pool
thumb_func_end sub_801F1D0
thumb_func_start copy_strings_to_sav1
copy_strings_to_sav1: @ 801F1DC
push {r4,lr}
ldr r4, =gSaveBlock1Ptr
ldr r0, [r4]
ldr r1, =0x00003c88
adds r0, r1
ldr r1, =gText_Hello
bl StringCopy
ldr r0, [r4]
ldr r1, =0x00003c9d
adds r0, r1
ldr r1, =gText_Pokemon2
bl StringCopy
ldr r0, [r4]
ldr r1, =0x00003cb2
adds r0, r1
ldr r1, =gText_Trade
bl StringCopy
ldr r0, [r4]
ldr r1, =0x00003cc7
adds r0, r1
ldr r1, =gText_Battle
bl StringCopy
ldr r0, [r4]
ldr r1, =0x00003cdc
adds r0, r1
ldr r1, =gText_Lets
bl StringCopy
ldr r0, [r4]
ldr r1, =0x00003cf1
adds r0, r1
ldr r1, =gText_Ok
bl StringCopy
ldr r0, [r4]
ldr r1, =0x00003d06
adds r0, r1
ldr r1, =gText_Sorry
bl StringCopy
ldr r0, [r4]
ldr r1, =0x00003d1b
adds r0, r1
ldr r1, =gText_YayUnkF9F9
bl StringCopy
ldr r0, [r4]
ldr r1, =0x00003d30
adds r0, r1
ldr r1, =gText_ThankYou
bl StringCopy
ldr r0, [r4]
ldr r1, =0x00003d45
adds r0, r1
ldr r1, =gText_ByeBye
bl StringCopy
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end copy_strings_to_sav1
thumb_func_start sub_801F2B4
sub_801F2B4: @ 801F2B4
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0x7
bls _0801F2CE
b _0801F4C4
_0801F2CE:
lsls r0, 2
ldr r1, =_0801F2E0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0801F2E0:
.4byte _0801F300
.4byte _0801F30E
.4byte _0801F4A8
.4byte _0801F35C
.4byte _0801F448
.4byte _0801F480
.4byte _0801F494
.4byte _0801F438
_0801F300:
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
bne _0801F30A
b _0801F49C
_0801F30A:
movs r0, 0x1
strh r0, [r4]
_0801F30E:
bl GetLinkPlayerCount
lsls r0, 24
lsrs r0, 24
adds r2, r0, 0
strh r0, [r4, 0x8]
ldr r3, =gUnknown_02022C84
ldr r0, [r3]
ldrb r1, [r0, 0xD]
movs r5, 0x8
ldrsh r0, [r4, r5]
cmp r1, r0
beq _0801F33C
movs r0, 0x2
strh r0, [r4]
ldr r0, [r3]
strb r2, [r0, 0xD]
b _0801F4C4
.pool
_0801F33C:
bl GetBlockReceivedStatus
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x6]
cmp r0, 0
bne _0801F354
bl sub_8011A9C
cmp r0, 0
beq _0801F354
b _0801F4C4
_0801F354:
movs r0, 0
strh r0, [r4, 0x2]
movs r0, 0x3
strh r0, [r4]
_0801F35C:
movs r1, 0x2
ldrsh r0, [r4, r1]
cmp r0, 0x4
bgt _0801F396
movs r2, 0x6
ldrsh r0, [r4, r2]
movs r3, 0x2
ldrsh r1, [r4, r3]
asrs r0, r1
movs r1, 0x1
ands r0, r1
cmp r0, 0
bne _0801F396
movs r2, 0x1
_0801F378:
ldrh r0, [r4, 0x2]
adds r0, 0x1
strh r0, [r4, 0x2]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bgt _0801F396
movs r5, 0x6
ldrsh r0, [r4, r5]
movs r3, 0x2
ldrsh r1, [r4, r3]
asrs r0, r1
ands r0, r2
cmp r0, 0
beq _0801F378
_0801F396:
ldrh r1, [r4, 0x2]
movs r5, 0x2
ldrsh r0, [r4, r5]
cmp r0, 0x5
bne _0801F3A2
b _0801F4C0
_0801F3A2:
strh r1, [r4, 0x4]
lsls r0, r1, 24
lsrs r0, 24
bl ResetBlockReceivedFlag
movs r1, 0x2
ldrsh r0, [r4, r1]
lsls r0, 8
ldr r1, =gBlockRecvBuffer
adds r0, r1
ldrb r0, [r0]
subs r0, 0x1
cmp r0, 0x4
bhi _0801F3E4
lsls r0, 2
ldr r1, =_0801F3D0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0801F3D0:
.4byte _0801F3E4
.4byte _0801F3E8
.4byte _0801F3EC
.4byte _0801F3F0
.4byte _0801F3F4
_0801F3E4:
movs r0, 0x3
b _0801F3F6
_0801F3E8:
movs r0, 0x3
b _0801F3F6
_0801F3EC:
movs r0, 0x4
b _0801F3F6
_0801F3F0:
movs r0, 0x5
b _0801F3F6
_0801F3F4:
movs r0, 0x6
_0801F3F6:
strh r0, [r4, 0xA]
ldr r5, =gUnknown_02022C84
ldr r0, [r5]
adds r0, 0x39
movs r2, 0x2
ldrsh r1, [r4, r2]
lsls r1, 8
ldr r2, =gBlockRecvBuffer
adds r1, r2
bl sub_801EFF8
cmp r0, 0
beq _0801F42C
ldr r0, [r5]
ldrh r1, [r4, 0x2]
strb r1, [r0, 0x16]
movs r0, 0xC
movs r1, 0x2
bl sub_801F5EC
movs r0, 0x7
b _0801F42E
.pool
_0801F42C:
ldrh r0, [r4, 0xA]
_0801F42E:
strh r0, [r4]
ldrh r0, [r4, 0x2]
adds r0, 0x1
strh r0, [r4, 0x2]
b _0801F4C4
_0801F438:
movs r0, 0x2
bl sub_801F644
lsls r0, 24
cmp r0, 0
bne _0801F4C4
ldrh r0, [r4, 0xA]
b _0801F4C2
_0801F448:
ldr r6, =gUnknown_02022C84
ldr r0, [r6]
ldrb r0, [r0, 0x13]
cmp r0, 0
bne _0801F47C
movs r3, 0x4
ldrsh r0, [r4, r3]
cmp r0, 0
beq _0801F47C
bl GetLinkPlayerCount
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _0801F474
bl sub_80104B0
ldr r1, [r6]
movs r0, 0x1
b _0801F49A
.pool
_0801F474:
movs r5, 0x4
ldrsh r0, [r4, r5]
bl sub_8011DE0
_0801F47C:
movs r0, 0x3
b _0801F4C2
_0801F480:
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
ldrb r0, [r1, 0x13]
cmp r0, 0
beq _0801F49C
movs r0, 0x2
b _0801F49A
.pool
_0801F494:
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0x3
_0801F49A:
strb r0, [r1, 0x17]
_0801F49C:
adds r0, r5, 0
bl DestroyTask
b _0801F4C4
.pool
_0801F4A8:
bl sub_8011A9C
cmp r0, 0
bne _0801F4C4
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
ldrb r0, [r1, 0x13]
cmp r0, 0
bne _0801F4C0
ldrb r0, [r1, 0xD]
bl sub_80110B8
_0801F4C0:
movs r0, 0x1
_0801F4C2:
strh r0, [r4]
_0801F4C4:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_801F2B4
thumb_func_start sub_801F4D0
sub_801F4D0: @ 801F4D0
push {r4,lr}
ldr r4, =gUnknown_02022C88
ldr r0, =0x00002168
bl Alloc
str r0, [r4]
cmp r0, 0
beq _0801F52C
bl sub_8020890
cmp r0, 0
beq _0801F52C
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, =gUnknown_082F2C60
movs r0, 0
movs r2, 0x4
bl InitBgsFromTemplates
ldr r0, =gUnknown_082F2C70
bl InitWindows
bl reset_temp_tile_data_buffers
bl sub_8020770
ldr r0, [r4]
bl sub_801F574
bl sub_801F580
movs r0, 0
movs r1, 0
bl sub_801F5EC
movs r0, 0x1
b _0801F52E
.pool
_0801F52C:
movs r0, 0
_0801F52E:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801F4D0
thumb_func_start sub_801F534
sub_801F534: @ 801F534
push {lr}
movs r0, 0
bl sub_801F644
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_801F534
thumb_func_start sub_801F544
sub_801F544: @ 801F544
push {r4,lr}
bl sub_80208D0
ldr r4, =gUnknown_02022C88
ldr r0, [r4]
cmp r0, 0
beq _0801F55A
bl Free
movs r0, 0
str r0, [r4]
_0801F55A:
bl FreeAllWindowBuffers
ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_801F544
thumb_func_start sub_801F574
sub_801F574: @ 801F574
movs r2, 0
movs r1, 0xFF
strh r1, [r0, 0x18]
strh r1, [r0, 0x1E]
strh r2, [r0, 0x1A]
bx lr
thumb_func_end sub_801F574
thumb_func_start sub_801F580
sub_801F580: @ 801F580
push {r4,r5,lr}
ldr r1, =gUnknown_02022C88
ldr r0, [r1]
cmp r0, 0
beq _0801F5A8
movs r2, 0
adds r4, r1, 0
ldr r5, =sub_801FDD8
movs r3, 0
_0801F592:
ldr r0, [r4]
lsls r1, r2, 3
adds r0, r1
str r5, [r0]
strb r3, [r0, 0x4]
ldr r0, [r4]
adds r0, r1
strb r3, [r0, 0x5]
adds r2, 0x1
cmp r2, 0x2
ble _0801F592
_0801F5A8:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_801F580
thumb_func_start sub_801F5B8
sub_801F5B8: @ 801F5B8
push {r4-r6,lr}
ldr r1, =gUnknown_02022C88
ldr r0, [r1]
cmp r0, 0
beq _0801F5E0
movs r5, 0
adds r6, r1, 0
_0801F5C6:
ldr r1, [r6]
lsls r4, r5, 3
adds r1, r4
adds r0, r1, 0x5
ldr r1, [r1]
bl _call_via_r1
ldr r1, [r6]
adds r1, r4
strb r0, [r1, 0x4]
adds r5, 0x1
cmp r5, 0x2
ble _0801F5C6
_0801F5E0:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_801F5B8
thumb_func_start sub_801F5EC
sub_801F5EC: @ 801F5EC
push {r4-r7,lr}