mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-17 12:07:38 +01:00
6103 lines
92 KiB
ArmAsm
6103 lines
92 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_800ABBC
|
|
sub_800ABBC: @ 800ABBC
|
|
push {lr}
|
|
ldr r0, =gSerialIsRFU
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0800ABDC
|
|
ldr r0, =gLinkStatus
|
|
ldr r0, [r0]
|
|
lsrs r0, 5
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
b _0800ABE4
|
|
.pool
|
|
_0800ABDC:
|
|
bl sub_8011AB0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_0800ABE4:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800ABBC
|
|
|
|
thumb_func_start sub_800ABE8
|
|
sub_800ABE8: @ 800ABE8
|
|
ldr r0, =gUnknown_03000D58
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_800ABE8
|
|
|
|
thumb_func_start sub_800ABF4
|
|
sub_800ABF4: @ 800ABF4
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
ldr r0, =gSerialIsRFU
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0800AC0C
|
|
bl task_add_05_task_del_08FA224_when_no_RfuFunc
|
|
b _0800AC20
|
|
.pool
|
|
_0800AC0C:
|
|
ldr r2, =gLinkCallback
|
|
ldr r1, [r2]
|
|
cmp r1, 0
|
|
bne _0800AC20
|
|
ldr r0, =sub_800AC80
|
|
str r0, [r2]
|
|
ldr r0, =gUnknown_030030E4
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_030030F4
|
|
strh r3, [r0]
|
|
_0800AC20:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800ABF4
|
|
|
|
thumb_func_start sub_800AC34
|
|
sub_800AC34: @ 800AC34
|
|
push {lr}
|
|
ldr r0, =gSerialIsRFU
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0800AC48
|
|
bl task_add_05_task_del_08FA224_when_no_RfuFunc
|
|
b _0800AC70
|
|
.pool
|
|
_0800AC48:
|
|
ldr r2, =gLinkCallback
|
|
ldr r1, [r2]
|
|
cmp r1, 0
|
|
beq _0800AC64
|
|
ldr r1, =gUnknown_02022B08
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
b _0800AC70
|
|
.pool
|
|
_0800AC64:
|
|
ldr r0, =sub_800AC80
|
|
str r0, [r2]
|
|
ldr r0, =gUnknown_030030E4
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_030030F4
|
|
strh r1, [r0]
|
|
_0800AC70:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800AC34
|
|
|
|
thumb_func_start sub_800AC80
|
|
sub_800AC80: @ 800AC80
|
|
push {lr}
|
|
ldr r0, =gUnknown_03004130
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0800AC96
|
|
ldr r0, =0x00005fff
|
|
bl BuildSendCmd
|
|
ldr r1, =gLinkCallback
|
|
ldr r0, =sub_800ACAC
|
|
str r0, [r1]
|
|
_0800AC96:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800AC80
|
|
|
|
thumb_func_start sub_800ACAC
|
|
sub_800ACAC: @ 800ACAC
|
|
push {r4,lr}
|
|
bl GetLinkPlayerCount
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
movs r3, 0
|
|
movs r1, 0
|
|
cmp r3, r2
|
|
bge _0800ACD0
|
|
ldr r4, =gUnknown_030030F0
|
|
_0800ACC0:
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0800ACCA
|
|
adds r3, 0x1
|
|
_0800ACCA:
|
|
adds r1, 0x1
|
|
cmp r1, r2
|
|
blt _0800ACC0
|
|
_0800ACD0:
|
|
cmp r3, r2
|
|
bne _0800ACF4
|
|
ldr r2, =gBattleTypeFlags
|
|
ldr r0, [r2]
|
|
movs r1, 0x21
|
|
negs r1, r1
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r0, =gLinkVSyncDisabled
|
|
movs r4, 0x1
|
|
strb r4, [r0]
|
|
bl CloseLink
|
|
ldr r1, =gLinkCallback
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_030030E4
|
|
strb r4, [r0]
|
|
_0800ACF4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800ACAC
|
|
|
|
thumb_func_start sub_800AD10
|
|
sub_800AD10: @ 800AD10
|
|
push {lr}
|
|
ldr r0, =gSerialIsRFU
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0800AD24
|
|
bl task_add_05_task_del_08FA224_when_no_RfuFunc
|
|
b _0800AD4C
|
|
.pool
|
|
_0800AD24:
|
|
ldr r2, =gLinkCallback
|
|
ldr r1, [r2]
|
|
cmp r1, 0
|
|
beq _0800AD40
|
|
ldr r1, =gUnknown_02022B08
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
b _0800AD4C
|
|
.pool
|
|
_0800AD40:
|
|
ldr r0, =sub_800AD5C
|
|
str r0, [r2]
|
|
ldr r0, =gUnknown_030030E4
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_030030F4
|
|
strh r1, [r0]
|
|
_0800AD4C:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800AD10
|
|
|
|
thumb_func_start sub_800AD5C
|
|
sub_800AD5C: @ 800AD5C
|
|
push {lr}
|
|
ldr r0, =gUnknown_03004130
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0800AD72
|
|
ldr r0, =0x00005fff
|
|
bl BuildSendCmd
|
|
ldr r1, =gLinkCallback
|
|
ldr r0, =sub_800AD88
|
|
str r0, [r1]
|
|
_0800AD72:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800AD5C
|
|
|
|
thumb_func_start sub_800AD88
|
|
sub_800AD88: @ 800AD88
|
|
push {r4,r5,lr}
|
|
bl GetLinkPlayerCount
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
movs r1, 0
|
|
movs r2, 0
|
|
cmp r1, r3
|
|
bge _0800ADB6
|
|
ldr r5, =gUnknown_030030F0
|
|
ldr r4, =gLinkPlayers
|
|
_0800AD9E:
|
|
ldrh r0, [r4, 0x1A]
|
|
cmp r0, 0x1
|
|
beq _0800ADAC
|
|
adds r0, r2, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0800ADAE
|
|
_0800ADAC:
|
|
adds r1, 0x1
|
|
_0800ADAE:
|
|
adds r4, 0x1C
|
|
adds r2, 0x1
|
|
cmp r2, r3
|
|
blt _0800AD9E
|
|
_0800ADB6:
|
|
cmp r1, r3
|
|
bne _0800ADDA
|
|
ldr r2, =gBattleTypeFlags
|
|
ldr r0, [r2]
|
|
movs r1, 0x21
|
|
negs r1, r1
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r0, =gLinkVSyncDisabled
|
|
movs r4, 0x1
|
|
strb r4, [r0]
|
|
bl CloseLink
|
|
ldr r1, =gLinkCallback
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r0, =gUnknown_030030E4
|
|
strb r4, [r0]
|
|
_0800ADDA:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800AD88
|
|
|
|
thumb_func_start sub_800ADF8
|
|
sub_800ADF8: @ 800ADF8
|
|
push {lr}
|
|
ldr r0, =gSerialIsRFU
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0800AE0C
|
|
bl sub_8010434
|
|
b _0800AE1E
|
|
.pool
|
|
_0800AE0C:
|
|
ldr r1, =gLinkCallback
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
bne _0800AE18
|
|
ldr r0, =sub_800AE30
|
|
str r0, [r1]
|
|
_0800AE18:
|
|
ldr r1, =gUnknown_030030E4
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
_0800AE1E:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800ADF8
|
|
|
|
thumb_func_start sub_800AE30
|
|
sub_800AE30: @ 800AE30
|
|
push {lr}
|
|
ldr r0, =gUnknown_03004130
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0800AE46
|
|
ldr r0, =0x00002ffe
|
|
bl BuildSendCmd
|
|
ldr r1, =gLinkCallback
|
|
ldr r0, =sub_800AE5C
|
|
str r0, [r1]
|
|
_0800AE46:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800AE30
|
|
|
|
thumb_func_start sub_800AE5C
|
|
sub_800AE5C: @ 800AE5C
|
|
push {r4,lr}
|
|
bl GetLinkPlayerCount
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
movs r1, 0
|
|
cmp r1, r2
|
|
bcs _0800AE86
|
|
ldr r3, =gUnknown_030030EC
|
|
ldrb r0, [r3]
|
|
cmp r0, 0
|
|
beq _0800AE86
|
|
_0800AE74:
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, r2
|
|
bcs _0800AE86
|
|
adds r0, r1, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0800AE74
|
|
_0800AE86:
|
|
cmp r1, r2
|
|
bne _0800AEA4
|
|
movs r1, 0
|
|
ldr r4, =gLinkCallback
|
|
ldr r3, =gUnknown_030030EC
|
|
movs r2, 0
|
|
_0800AE92:
|
|
adds r0, r1, r3
|
|
strb r2, [r0]
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x3
|
|
bls _0800AE92
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_0800AEA4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800AE5C
|
|
|
|
thumb_func_start sub_800AEB4
|
|
sub_800AEB4: @ 800AEB4
|
|
push {lr}
|
|
ldr r0, =gLinkOpen
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0800AEF4
|
|
ldr r0, =gLinkStatus
|
|
ldr r2, [r0]
|
|
movs r0, 0xFE
|
|
lsls r0, 11
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0800AEF4
|
|
ldr r0, =gSuppressLinkErrorMessage
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0800AEEA
|
|
ldr r1, =gUnknown_02022B00
|
|
str r2, [r1]
|
|
ldr r0, =gUnknown_03004130
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, 0x4]
|
|
ldr r0, =gUnknown_03003160
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, 0x5]
|
|
ldr r0, =CB2_LinkError
|
|
bl SetMainCallback2
|
|
_0800AEEA:
|
|
ldr r1, =gLinkErrorOccurred
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
bl CloseLink
|
|
_0800AEF4:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800AEB4
|
|
|
|
thumb_func_start sub_800AF18
|
|
sub_800AF18: @ 800AF18
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_02022B00
|
|
str r0, [r4]
|
|
strb r1, [r4, 0x5]
|
|
strb r2, [r4, 0x4]
|
|
strb r3, [r4, 0x6]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800AF18
|
|
|
|
thumb_func_start CB2_LinkError
|
|
CB2_LinkError: @ 800AF30
|
|
push {r4,lr}
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r0, =gMPlay_SE1
|
|
bl m4aMPlayStop
|
|
ldr r0, =gMPlay_SE2
|
|
bl m4aMPlayStop
|
|
ldr r0, =gMPlay_SE3
|
|
bl m4aMPlayStop
|
|
ldr r0, =0x02000000
|
|
movs r1, 0xE0
|
|
lsls r1, 9
|
|
bl InitHeap
|
|
bl ResetSpriteData
|
|
bl FreeAllSpritePalettes
|
|
bl ResetPaletteFadeControl
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x2
|
|
bl FillPalette
|
|
bl ResetTasks
|
|
bl remove_some_task
|
|
ldr r1, =gSerialIsRFU
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0800AF8C
|
|
ldr r0, =gUnknown_02022B00
|
|
ldrb r0, [r0, 0x6]
|
|
cmp r0, 0
|
|
bne _0800AF88
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
_0800AF88:
|
|
bl sub_800E604
|
|
_0800AF8C:
|
|
ldr r0, =sub_80096BC
|
|
bl SetVBlankCallback
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, =gUnknown_082ED1FC
|
|
movs r0, 0
|
|
movs r2, 0x2
|
|
bl InitBgsFromTemplates
|
|
ldr r4, =gUnknown_02022B0C
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
bl Alloc
|
|
adds r1, r0, 0
|
|
str r1, [r4]
|
|
movs r0, 0x1
|
|
bl SetBgTilemapBuffer
|
|
ldr r0, =gUnknown_082ED204
|
|
bl InitWindows
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _0800B03C
|
|
bl DeactivateAllTextPrinters
|
|
bl reset_temp_tile_data_buffers
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x10
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x12
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x14
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x16
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r1, 0xE0
|
|
lsls r1, 8
|
|
movs r0, 0
|
|
bl ClearGpuRegBits
|
|
ldr r0, =gUnknown_0860F074
|
|
movs r1, 0xF0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r1, =gSoftResetDisabled
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r0, =Task_DestroySelf
|
|
movs r1, 0
|
|
bl CreateTask
|
|
bl StopMapMusic
|
|
ldr r1, =gMain
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
ldr r0, =sub_800B1A0
|
|
bl SetMainCallback2
|
|
_0800B03C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end CB2_LinkError
|
|
|
|
thumb_func_start sub_800B080
|
|
sub_800B080: @ 800B080
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
ldr r1, =g2BlankTilesGfx
|
|
movs r0, 0
|
|
movs r2, 0x20
|
|
movs r3, 0
|
|
bl LoadBgTiles
|
|
ldr r1, =gWirelessLinkDisplayGfx
|
|
movs r5, 0
|
|
str r5, [sp]
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl copy_decompressed_tile_data_to_vram_autofree
|
|
ldr r1, =gWirelessLinkDisplayTilemap
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
movs r0, 0x1
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, =gWirelessLinkDisplayPal
|
|
movs r1, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
ldr r4, =gUnknown_082ED224
|
|
str r4, [sp]
|
|
str r5, [sp, 0x4]
|
|
ldr r0, =gText_CommErrorEllipsis
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
movs r2, 0x2
|
|
movs r3, 0x6
|
|
bl box_print
|
|
str r4, [sp]
|
|
str r5, [sp, 0x4]
|
|
ldr r0, =gText_MoveCloserToLinkPartner
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x2
|
|
movs r1, 0x3
|
|
movs r2, 0x2
|
|
movs r3, 0x1
|
|
bl box_print
|
|
movs r0, 0
|
|
bl PutWindowTilemap
|
|
movs r0, 0x2
|
|
bl PutWindowTilemap
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl CopyWindowToVram
|
|
movs r0, 0x2
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800B080
|
|
|
|
thumb_func_start sub_800B138
|
|
sub_800B138: @ 800B138
|
|
push {lr}
|
|
sub sp, 0xC
|
|
ldr r1, =g2BlankTilesGfx
|
|
movs r0, 0
|
|
movs r2, 0x20
|
|
movs r3, 0
|
|
bl LoadBgTiles
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, =gUnknown_082ED224
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
ldr r0, =gText_CommErrorCheckConnections
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0x2
|
|
movs r3, 0
|
|
bl box_print
|
|
movs r0, 0x1
|
|
bl PutWindowTilemap
|
|
movs r0, 0x2
|
|
bl PutWindowTilemap
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl CopyWindowToVram
|
|
movs r0, 0x2
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
add sp, 0xC
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800B138
|
|
|
|
thumb_func_start sub_800B1A0
|
|
sub_800B1A0: @ 800B1A0
|
|
push {r4,lr}
|
|
sub sp, 0xC
|
|
ldr r0, =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1E
|
|
beq _0800B20C
|
|
cmp r0, 0x1E
|
|
bgt _0800B1C4
|
|
cmp r0, 0
|
|
beq _0800B1D8
|
|
cmp r0, 0x2
|
|
beq _0800B1F2
|
|
b _0800B260
|
|
.pool
|
|
_0800B1C4:
|
|
cmp r0, 0x5A
|
|
beq _0800B20C
|
|
cmp r0, 0x5A
|
|
bgt _0800B1D2
|
|
cmp r0, 0x3C
|
|
beq _0800B20C
|
|
b _0800B260
|
|
_0800B1D2:
|
|
cmp r0, 0x82
|
|
beq _0800B214
|
|
b _0800B260
|
|
_0800B1D8:
|
|
ldr r0, =gUnknown_02022B00
|
|
ldrb r0, [r0, 0x6]
|
|
cmp r0, 0
|
|
beq _0800B1EC
|
|
bl sub_800B080
|
|
b _0800B260
|
|
.pool
|
|
_0800B1EC:
|
|
bl sub_800B138
|
|
b _0800B260
|
|
_0800B1F2:
|
|
movs r0, 0
|
|
bl ShowBg
|
|
ldr r0, =gUnknown_02022B00
|
|
ldrb r0, [r0, 0x6]
|
|
cmp r0, 0
|
|
beq _0800B260
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
b _0800B260
|
|
.pool
|
|
_0800B20C:
|
|
movs r0, 0x16
|
|
bl PlaySE
|
|
b _0800B260
|
|
_0800B214:
|
|
ldr r0, =gSerialIsRFU
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _0800B244
|
|
ldr r0, =gUnknown_082ED224
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
ldr r0, =gText_ABtnTitleScreen
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
movs r2, 0x2
|
|
movs r3, 0x14
|
|
bl box_print
|
|
b _0800B260
|
|
.pool
|
|
_0800B244:
|
|
cmp r0, 0x1
|
|
bne _0800B260
|
|
ldr r0, =gUnknown_082ED224
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
ldr r0, =gText_ABtnRegistrationCounter
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
movs r2, 0x2
|
|
movs r3, 0x14
|
|
bl box_print
|
|
_0800B260:
|
|
ldr r0, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r0, r2
|
|
ldrb r1, [r1]
|
|
cmp r1, 0xA0
|
|
bne _0800B2D0
|
|
ldr r4, =gSerialIsRFU
|
|
ldrb r2, [r4]
|
|
cmp r2, 0x1
|
|
bne _0800B2A8
|
|
ldrh r0, [r0, 0x2E]
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _0800B2C2
|
|
movs r0, 0x15
|
|
bl PlaySE
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
ldr r1, =gUnknown_02022B00
|
|
movs r0, 0
|
|
strb r0, [r1, 0x6]
|
|
bl sub_81700F8
|
|
b _0800B2C2
|
|
.pool
|
|
_0800B2A8:
|
|
cmp r2, 0x2
|
|
bne _0800B2C2
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800B2C2
|
|
bl rfu_REQ_stopMode
|
|
bl rfu_waitREQComplete
|
|
bl DoSoftReset
|
|
_0800B2C2:
|
|
ldr r0, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r0, r2
|
|
ldrb r1, [r1]
|
|
cmp r1, 0xA0
|
|
beq _0800B2DC
|
|
_0800B2D0:
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_0800B2DC:
|
|
add sp, 0xC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800B1A0
|
|
|
|
thumb_func_start sub_800B2E8
|
|
sub_800B2E8: @ 800B2E8
|
|
ldr r0, =0x04000128
|
|
ldrh r0, [r0]
|
|
lsrs r0, 2
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_800B2E8
|
|
|
|
thumb_func_start sub_800B2F8
|
|
sub_800B2F8: @ 800B2F8
|
|
push {lr}
|
|
movs r3, 0
|
|
ldr r2, =0x04000128
|
|
ldrh r1, [r2]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800B314
|
|
ldrh r1, [r2]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0800B314
|
|
movs r3, 0x1
|
|
_0800B314:
|
|
adds r0, r3, 0
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_800B2F8
|
|
|
|
thumb_func_start sub_800B320
|
|
sub_800B320: @ 800B320
|
|
ldr r0, =gLinkStatus
|
|
ldr r0, [r0]
|
|
lsrs r0, 6
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_800B320
|
|
|
|
thumb_func_start SetSuppressLinkErrorMessage
|
|
SetSuppressLinkErrorMessage: @ 800B330
|
|
ldr r1, =gSuppressLinkErrorMessage
|
|
strb r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end SetSuppressLinkErrorMessage
|
|
|
|
thumb_func_start sub_800B33C
|
|
sub_800B33C: @ 800B33C
|
|
ldr r0, =gLinkErrorOccurred
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_800B33C
|
|
|
|
thumb_func_start sub_800B348
|
|
sub_800B348: @ 800B348
|
|
push {r4-r6,lr}
|
|
bl InitLocalLinkPlayer
|
|
ldr r1, =gLocalLinkPlayerBlock
|
|
adds r2, r1, 0
|
|
adds r2, 0x10
|
|
ldr r0, =gLocalLinkPlayer
|
|
ldm r0!, {r3-r5}
|
|
stm r2!, {r3-r5}
|
|
ldm r0!, {r3,r4,r6}
|
|
stm r2!, {r3,r4,r6}
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
ldr r3, =gASCIIGameFreakInc
|
|
adds r2, r1, 0
|
|
adds r0, r3, 0
|
|
ldm r0!, {r4-r6}
|
|
stm r2!, {r4-r6}
|
|
ldrh r4, [r0]
|
|
strh r4, [r2]
|
|
ldrb r0, [r0, 0x2]
|
|
strb r0, [r2, 0x2]
|
|
adds r0, r1, 0
|
|
adds r0, 0x2C
|
|
ldm r3!, {r2,r5,r6}
|
|
stm r0!, {r2,r5,r6}
|
|
ldrh r2, [r3]
|
|
strh r2, [r0]
|
|
ldrb r2, [r3, 0x2]
|
|
strb r2, [r0, 0x2]
|
|
ldr r0, =gBlockSendBuffer
|
|
movs r2, 0x3C
|
|
bl memcpy
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800B348
|
|
|
|
thumb_func_start sub_800B3A4
|
|
sub_800B3A4: @ 800B3A4
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r2, r0, 8
|
|
ldr r1, =gBlockRecvBuffer
|
|
adds r4, r2, r1
|
|
lsls r2, r0, 3
|
|
subs r2, r0
|
|
lsls r2, 2
|
|
ldr r0, =gLinkPlayers
|
|
adds r2, r0
|
|
adds r1, r2, 0
|
|
adds r0, r4, 0
|
|
adds r0, 0x10
|
|
ldm r0!, {r3,r5,r6}
|
|
stm r1!, {r3,r5,r6}
|
|
ldm r0!, {r3,r5,r6}
|
|
stm r1!, {r3,r5,r6}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
adds r0, r2, 0
|
|
bl sub_800B524
|
|
ldr r5, =gASCIIGameFreakInc
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl strcmp
|
|
cmp r0, 0
|
|
bne _0800B3EE
|
|
adds r0, r4, 0
|
|
adds r0, 0x2C
|
|
adds r1, r5, 0
|
|
bl strcmp
|
|
cmp r0, 0
|
|
beq _0800B3F4
|
|
_0800B3EE:
|
|
ldr r0, =CB2_LinkError
|
|
bl SetMainCallback2
|
|
_0800B3F4:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800B3A4
|
|
|
|
thumb_func_start HandleLinkConnection
|
|
HandleLinkConnection: @ 800B40C
|
|
push {r4,r5,lr}
|
|
ldr r0, =gSerialIsRFU
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0800B45C
|
|
ldr r0, =gShouldAdvanceLinkState
|
|
ldr r1, =gSendCmd
|
|
ldr r2, =gRecvCmds
|
|
bl sub_800B638
|
|
ldr r4, =gLinkStatus
|
|
str r0, [r4]
|
|
ldr r0, =gMain+0x2c
|
|
bl LinkMain2
|
|
ldr r0, [r4]
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800B480
|
|
bl sub_808766C
|
|
cmp r0, 0x1
|
|
bne _0800B480
|
|
_0800B43E:
|
|
movs r0, 0x1
|
|
b _0800B482
|
|
.pool
|
|
_0800B45C:
|
|
bl sub_8010EC0
|
|
adds r4, r0, 0
|
|
bl sub_8010F1C
|
|
adds r5, r0, 0
|
|
bl sub_808766C
|
|
cmp r0, 0x1
|
|
bne _0800B480
|
|
cmp r4, 0x1
|
|
beq _0800B43E
|
|
bl sub_800F0B8
|
|
cmp r0, 0
|
|
bne _0800B43E
|
|
cmp r5, 0
|
|
bne _0800B43E
|
|
_0800B480:
|
|
movs r0, 0
|
|
_0800B482:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end HandleLinkConnection
|
|
|
|
thumb_func_start sub_800B488
|
|
sub_800B488: @ 800B488
|
|
push {lr}
|
|
ldr r0, =gReceivedRemoteLinkPlayers
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0800B498
|
|
ldr r1, =gSerialIsRFU
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_0800B498:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800B488
|
|
|
|
thumb_func_start sub_800B4A4
|
|
sub_800B4A4: @ 800B4A4
|
|
push {lr}
|
|
ldr r0, =gReceivedRemoteLinkPlayers
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
bne _0800B4B2
|
|
ldr r0, =gSerialIsRFU
|
|
strb r1, [r0]
|
|
_0800B4B2:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800B4A4
|
|
|
|
thumb_func_start sub_800B4C0
|
|
sub_800B4C0: @ 800B4C0
|
|
push {lr}
|
|
ldr r0, =gReceivedRemoteLinkPlayers
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
bne _0800B4CE
|
|
ldr r0, =gSerialIsRFU
|
|
strb r1, [r0]
|
|
_0800B4CE:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800B4C0
|
|
|
|
thumb_func_start sub_800B4DC
|
|
sub_800B4DC: @ 800B4DC
|
|
push {lr}
|
|
ldr r0, =gSerialIsRFU
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0800B4FC
|
|
ldr r0, =gLink
|
|
ldr r1, =0x00000fbd
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
b _0800B500
|
|
.pool
|
|
_0800B4FC:
|
|
bl sub_80124D4
|
|
_0800B500:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800B4DC
|
|
|
|
thumb_func_start sub_800B504
|
|
sub_800B504: @ 800B504
|
|
push {lr}
|
|
bl sub_800B4DC
|
|
cmp r0, 0x2
|
|
bhi _0800B512
|
|
movs r0, 0
|
|
b _0800B514
|
|
_0800B512:
|
|
movs r0, 0x1
|
|
_0800B514:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800B504
|
|
|
|
thumb_func_start sub_800B518
|
|
sub_800B518: @ 800B518
|
|
ldr r0, =gSerialIsRFU
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_800B518
|
|
|
|
thumb_func_start sub_800B524
|
|
sub_800B524: @ 800B524
|
|
push {lr}
|
|
ldrb r1, [r0, 0x10]
|
|
strb r1, [r0, 0x12]
|
|
adds r2, r0, 0
|
|
adds r2, 0x8
|
|
ldrb r1, [r0, 0x1A]
|
|
adds r0, r2, 0
|
|
bl ConvertInternationalString
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800B524
|
|
|
|
thumb_func_start DisableSerial
|
|
DisableSerial: @ 800B53C
|
|
push {lr}
|
|
sub sp, 0x4
|
|
movs r0, 0xC0
|
|
bl DisableInterrupts
|
|
ldr r1, =0x04000128
|
|
movs r2, 0x80
|
|
lsls r2, 6
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, =0x0400010e
|
|
movs r2, 0
|
|
strh r2, [r0]
|
|
adds r1, 0xDA
|
|
movs r0, 0xC0
|
|
strh r0, [r1]
|
|
ldr r0, =0x0400012a
|
|
strh r2, [r0]
|
|
ldr r2, =0x04000120
|
|
movs r0, 0
|
|
movs r1, 0
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
str r0, [sp]
|
|
ldr r1, =gLink
|
|
ldr r2, =0x050003f0
|
|
mov r0, sp
|
|
bl CpuSet
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end DisableSerial
|
|
|
|
thumb_func_start EnableSerial
|
|
EnableSerial: @ 800B594
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
movs r0, 0xC0
|
|
bl DisableInterrupts
|
|
ldr r0, =0x04000134
|
|
movs r4, 0
|
|
strh r4, [r0]
|
|
ldr r2, =0x04000128
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
adds r0, r1, 0
|
|
strh r0, [r2]
|
|
ldrh r0, [r2]
|
|
ldr r3, =0x00004003
|
|
adds r1, r3, 0
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
movs r0, 0x80
|
|
bl EnableInterrupts
|
|
ldr r0, =0x0400012a
|
|
strh r4, [r0]
|
|
movs r5, 0
|
|
str r5, [sp]
|
|
ldr r1, =gLink
|
|
ldr r2, =0x050003f0
|
|
mov r0, sp
|
|
bl CpuSet
|
|
ldr r0, =gUnknown_03000D6C
|
|
strb r4, [r0]
|
|
ldr r0, =gUnknown_03000D6E
|
|
strh r5, [r0]
|
|
ldr r0, =gUnknown_03000D70
|
|
strh r5, [r0]
|
|
ldr r0, =gUnknown_03000D72
|
|
strb r4, [r0]
|
|
ldr r0, =gUnknown_03000D73
|
|
strb r4, [r0]
|
|
ldr r0, =gUnknown_03003160
|
|
strb r4, [r0]
|
|
ldr r0, =gUnknown_03004130
|
|
strb r4, [r0]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end EnableSerial
|
|
|
|
thumb_func_start ResetSerial
|
|
ResetSerial: @ 800B628
|
|
push {lr}
|
|
bl EnableSerial
|
|
bl DisableSerial
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end ResetSerial
|
|
|
|
thumb_func_start sub_800B638
|
|
sub_800B638: @ 800B638
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
ldr r0, =gLink
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x4
|
|
bhi _0800B6EA
|
|
lsls r0, 2
|
|
ldr r1, =_0800B65C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0800B65C:
|
|
.4byte _0800B670
|
|
.4byte _0800B680
|
|
.4byte _0800B698
|
|
.4byte _0800B6D4
|
|
.4byte _0800B6DE
|
|
_0800B670:
|
|
bl DisableSerial
|
|
ldr r1, =gLink
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
b _0800B6EA
|
|
.pool
|
|
_0800B680:
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x1
|
|
bne _0800B6EA
|
|
bl EnableSerial
|
|
ldr r1, =gLink
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x1]
|
|
b _0800B6EA
|
|
.pool
|
|
_0800B698:
|
|
ldrb r1, [r4]
|
|
cmp r1, 0x1
|
|
beq _0800B6A8
|
|
cmp r1, 0x2
|
|
beq _0800B6C0
|
|
bl sub_800B764
|
|
b _0800B6EA
|
|
_0800B6A8:
|
|
ldr r2, =gLink
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x8
|
|
bne _0800B6EA
|
|
ldrb r0, [r2, 0x3]
|
|
cmp r0, 0x1
|
|
bls _0800B6EA
|
|
strb r1, [r2, 0xE]
|
|
b _0800B6EA
|
|
.pool
|
|
_0800B6C0:
|
|
ldr r0, =gLink
|
|
movs r1, 0
|
|
strb r1, [r0, 0x1]
|
|
ldr r0, =0x0400012a
|
|
strh r1, [r0]
|
|
b _0800B6EA
|
|
.pool
|
|
_0800B6D4:
|
|
bl sub_800B790
|
|
ldr r1, =gLink
|
|
movs r0, 0x4
|
|
strb r0, [r1, 0x1]
|
|
_0800B6DE:
|
|
adds r0, r5, 0
|
|
bl sub_800B7C0
|
|
adds r0, r6, 0
|
|
bl sub_800B8A8
|
|
_0800B6EA:
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
ldr r1, =gLink
|
|
ldrb r2, [r1, 0x2]
|
|
ldrb r0, [r1, 0x3]
|
|
lsls r0, 2
|
|
orrs r2, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x8
|
|
bne _0800B702
|
|
movs r0, 0x20
|
|
orrs r2, r0
|
|
_0800B702:
|
|
ldrb r0, [r1, 0xC]
|
|
lsls r3, r0, 8
|
|
ldrb r0, [r1, 0xF]
|
|
lsls r4, r0, 9
|
|
ldrb r0, [r1, 0x10]
|
|
lsls r5, r0, 12
|
|
ldrb r0, [r1, 0x11]
|
|
lsls r6, r0, 13
|
|
ldrb r0, [r1, 0x12]
|
|
lsls r7, r0, 14
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0x4
|
|
bne _0800B728
|
|
movs r0, 0x40
|
|
orrs r0, r3
|
|
orrs r0, r2
|
|
b _0800B72C
|
|
.pool
|
|
_0800B728:
|
|
adds r0, r2, 0
|
|
orrs r0, r3
|
|
_0800B72C:
|
|
orrs r0, r4
|
|
orrs r0, r5
|
|
orrs r0, r6
|
|
orrs r0, r7
|
|
adds r2, r0, 0
|
|
ldrb r3, [r1, 0x13]
|
|
cmp r3, 0x1
|
|
bne _0800B742
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
orrs r2, r0
|
|
_0800B742:
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0x3
|
|
bls _0800B74E
|
|
movs r0, 0x80
|
|
lsls r0, 10
|
|
orrs r2, r0
|
|
_0800B74E:
|
|
adds r1, r2, 0
|
|
cmp r3, 0x2
|
|
bne _0800B75A
|
|
movs r0, 0x80
|
|
lsls r0, 11
|
|
orrs r1, r0
|
|
_0800B75A:
|
|
adds r0, r1, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800B638
|
|
|
|
thumb_func_start sub_800B764
|
|
sub_800B764: @ 800B764
|
|
push {lr}
|
|
ldr r0, =0x04000128
|
|
ldr r1, [r0]
|
|
movs r0, 0xC
|
|
ands r1, r0
|
|
ldr r2, =gLink
|
|
cmp r1, 0x8
|
|
bne _0800B788
|
|
ldrb r0, [r2, 0x2]
|
|
cmp r0, 0
|
|
bne _0800B788
|
|
strb r1, [r2]
|
|
b _0800B78C
|
|
.pool
|
|
_0800B788:
|
|
movs r0, 0
|
|
strb r0, [r2]
|
|
_0800B78C:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800B764
|
|
|
|
thumb_func_start sub_800B790
|
|
sub_800B790: @ 800B790
|
|
push {lr}
|
|
ldr r0, =gLink
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0800B7AE
|
|
ldr r1, =0x0400010c
|
|
ldr r2, =0x0000ff3b
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
movs r0, 0x41
|
|
strh r0, [r1]
|
|
movs r0, 0x40
|
|
bl EnableInterrupts
|
|
_0800B7AE:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800B790
|
|
|
|
thumb_func_start sub_800B7C0
|
|
sub_800B7C0: @ 800B7C0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r3, r0, 0
|
|
ldr r2, =gUnknown_03004134
|
|
ldr r1, =0x04000208
|
|
ldrh r0, [r1]
|
|
strh r0, [r2]
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r1, =gLink
|
|
ldr r4, =0x00000339
|
|
adds r0, r1, r4
|
|
ldrb r4, [r0]
|
|
adds r6, r1, 0
|
|
cmp r4, 0x31
|
|
bhi _0800B850
|
|
movs r1, 0xCE
|
|
lsls r1, 2
|
|
adds r0, r6, r1
|
|
ldrb r0, [r0]
|
|
adds r0, r4, r0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x31
|
|
bls _0800B7FE
|
|
subs r0, 0x32
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_0800B7FE:
|
|
movs r2, 0
|
|
ldr r4, =gUnknown_03000D6E
|
|
mov r9, r4
|
|
ldr r1, =gUnknown_03003160
|
|
mov r10, r1
|
|
lsls r5, r0, 1
|
|
movs r0, 0x18
|
|
adds r0, r6
|
|
mov r8, r0
|
|
mov r12, r2
|
|
movs r7, 0x64
|
|
_0800B814:
|
|
ldrh r0, [r4]
|
|
ldrh r1, [r3]
|
|
orrs r0, r1
|
|
strh r0, [r4]
|
|
adds r0, r2, 0
|
|
muls r0, r7
|
|
adds r0, r5, r0
|
|
add r0, r8
|
|
strh r1, [r0]
|
|
mov r1, r12
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x7
|
|
bls _0800B814
|
|
b _0800B85C
|
|
.pool
|
|
_0800B850:
|
|
movs r0, 0x1
|
|
strb r0, [r6, 0x12]
|
|
ldr r2, =gUnknown_03000D6E
|
|
mov r9, r2
|
|
ldr r4, =gUnknown_03003160
|
|
mov r10, r4
|
|
_0800B85C:
|
|
mov r1, r9
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
beq _0800B874
|
|
ldr r2, =0x00000339
|
|
adds r0, r6, r2
|
|
ldrb r1, [r0]
|
|
adds r1, 0x1
|
|
movs r2, 0
|
|
strb r1, [r0]
|
|
mov r4, r9
|
|
strh r2, [r4]
|
|
_0800B874:
|
|
ldr r1, =0x04000208
|
|
ldr r2, =gUnknown_03004134
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
ldr r4, =0x00000339
|
|
adds r0, r6, r4
|
|
ldrb r0, [r0]
|
|
mov r1, r10
|
|
strb r0, [r1]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800B7C0
|
|
|
|
thumb_func_start sub_800B8A8
|
|
sub_800B8A8: @ 800B8A8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
mov r9, r0
|
|
ldr r2, =gUnknown_03004134
|
|
ldr r1, =0x04000208
|
|
ldrh r0, [r1]
|
|
strh r0, [r2]
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r1, =gLink
|
|
ldr r3, =0x00000fbd
|
|
adds r0, r1, r3
|
|
ldrb r0, [r0]
|
|
mov r12, r1
|
|
cmp r0, 0
|
|
bne _0800B914
|
|
movs r3, 0
|
|
ldrb r0, [r1, 0x3]
|
|
cmp r3, r0
|
|
bcs _0800B8FA
|
|
movs r5, 0
|
|
adds r6, r0, 0
|
|
_0800B8DA:
|
|
movs r2, 0
|
|
lsls r1, r3, 4
|
|
adds r4, r3, 0x1
|
|
add r1, r9
|
|
_0800B8E2:
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
strh r5, [r0]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x7
|
|
bls _0800B8E2
|
|
lsls r0, r4, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, r6
|
|
bcc _0800B8DA
|
|
_0800B8FA:
|
|
movs r0, 0x1
|
|
mov r7, r12
|
|
strb r0, [r7, 0xC]
|
|
b _0800B990
|
|
.pool
|
|
_0800B914:
|
|
movs r3, 0
|
|
mov r0, r12
|
|
ldrb r1, [r0, 0x3]
|
|
cmp r3, r1
|
|
bcs _0800B96A
|
|
ldr r0, =0x00000fbc
|
|
add r0, r12
|
|
ldrb r0, [r0]
|
|
lsls r6, r0, 1
|
|
movs r2, 0xCF
|
|
lsls r2, 2
|
|
add r2, r12
|
|
mov r8, r2
|
|
mov r10, r1
|
|
_0800B930:
|
|
movs r2, 0
|
|
lsls r1, r3, 4
|
|
adds r4, r3, 0x1
|
|
lsls r0, r3, 1
|
|
mov r7, r9
|
|
adds r5, r1, r7
|
|
adds r0, r3
|
|
lsls r0, 3
|
|
adds r0, r3
|
|
lsls r3, r0, 5
|
|
_0800B944:
|
|
lsls r1, r2, 1
|
|
adds r1, r5
|
|
movs r7, 0x64
|
|
adds r0, r2, 0
|
|
muls r0, r7
|
|
adds r0, r6, r0
|
|
adds r0, r3
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x7
|
|
bls _0800B944
|
|
lsls r0, r4, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, r10
|
|
bcc _0800B930
|
|
_0800B96A:
|
|
mov r2, r12
|
|
ldr r0, =0x00000fbd
|
|
adds r1, r2, r0
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
movs r3, 0
|
|
strb r0, [r1]
|
|
ldr r1, =0x00000fbc
|
|
adds r2, r1
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x31
|
|
bls _0800B98C
|
|
strb r3, [r2]
|
|
_0800B98C:
|
|
mov r2, r12
|
|
strb r3, [r2, 0xC]
|
|
_0800B990:
|
|
ldr r1, =0x04000208
|
|
ldr r3, =gUnknown_03004134
|
|
ldrh r0, [r3]
|
|
strh r0, [r1]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800B8A8
|
|
|
|
thumb_func_start sub_800B9B8
|
|
sub_800B9B8: @ 800B9B8
|
|
push {r4,lr}
|
|
ldr r3, =gLink
|
|
ldrb r4, [r3]
|
|
cmp r4, 0
|
|
beq _0800B9F4
|
|
ldrb r0, [r3, 0x1]
|
|
cmp r0, 0x2
|
|
beq _0800B9EE
|
|
cmp r0, 0x4
|
|
bne _0800BA1E
|
|
movs r0, 0xD
|
|
ldrsb r0, [r3, r0]
|
|
cmp r0, 0x8
|
|
bgt _0800B9E4
|
|
ldrb r0, [r3, 0x10]
|
|
cmp r0, 0x1
|
|
beq _0800B9EE
|
|
movs r0, 0x1
|
|
strb r0, [r3, 0x13]
|
|
b _0800BA1E
|
|
.pool
|
|
_0800B9E4:
|
|
ldrb r0, [r3, 0x13]
|
|
cmp r0, 0x1
|
|
beq _0800BA1E
|
|
movs r0, 0
|
|
strb r0, [r3, 0xD]
|
|
_0800B9EE:
|
|
bl sub_800BAC0
|
|
b _0800BA1E
|
|
_0800B9F4:
|
|
ldrb r2, [r3, 0x1]
|
|
cmp r2, 0x4
|
|
beq _0800B9FE
|
|
cmp r2, 0x2
|
|
bne _0800BA1E
|
|
_0800B9FE:
|
|
ldr r1, =gUnknown_03000D6C
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xA
|
|
bls _0800BA1E
|
|
cmp r2, 0x4
|
|
bne _0800BA16
|
|
movs r0, 0x2
|
|
strb r0, [r3, 0x13]
|
|
_0800BA16:
|
|
cmp r2, 0x2
|
|
bne _0800BA1E
|
|
strb r4, [r3, 0x3]
|
|
strb r4, [r3, 0xF]
|
|
_0800BA1E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800B9B8
|
|
|
|
thumb_func_start Timer3Intr
|
|
Timer3Intr: @ 800BA28
|
|
push {lr}
|
|
bl sub_800BD98
|
|
bl sub_800BAC0
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end Timer3Intr
|
|
|
|
thumb_func_start sub_800BA38
|
|
sub_800BA38: @ 800BA38
|
|
push {r4,lr}
|
|
ldr r4, =gLink
|
|
ldr r0, =0x04000128
|
|
ldr r1, [r0]
|
|
lsls r0, r1, 26
|
|
lsrs r0, 30
|
|
strb r0, [r4, 0x2]
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0x2
|
|
beq _0800BA6C
|
|
cmp r0, 0x4
|
|
bne _0800BA8A
|
|
lsls r0, r1, 25
|
|
lsrs r0, 31
|
|
strb r0, [r4, 0x10]
|
|
bl sub_800BBCC
|
|
bl sub_800BCE4
|
|
bl sub_800BDCC
|
|
b _0800BA8A
|
|
.pool
|
|
_0800BA6C:
|
|
bl sub_800BAD0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0800BA8A
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0800BA86
|
|
movs r0, 0x3
|
|
strb r0, [r4, 0x1]
|
|
movs r0, 0x8
|
|
strb r0, [r4, 0xD]
|
|
b _0800BA8A
|
|
_0800BA86:
|
|
movs r0, 0x4
|
|
strb r0, [r4, 0x1]
|
|
_0800BA8A:
|
|
ldr r3, =gLink
|
|
ldrb r0, [r3, 0xD]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r3, 0xD]
|
|
ldr r1, =gUnknown_03000D6C
|
|
strb r2, [r1]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x8
|
|
bne _0800BAAA
|
|
ldr r0, =gUnknown_03004130
|
|
ldr r2, =0x00000fbd
|
|
adds r1, r3, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
_0800BAAA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800BA38
|
|
|
|
thumb_func_start sub_800BAC0
|
|
sub_800BAC0: @ 800BAC0
|
|
ldr r0, =0x04000128
|
|
ldrh r1, [r0]
|
|
movs r2, 0x80
|
|
orrs r1, r2
|
|
strh r1, [r0]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_800BAC0
|
|
|
|
thumb_func_start sub_800BAD0
|
|
sub_800BAD0: @ 800BAD0
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
movs r5, 0
|
|
ldr r6, =0x0000ffff
|
|
ldr r0, =gLink
|
|
ldrb r1, [r0, 0xE]
|
|
adds r7, r0, 0
|
|
cmp r1, 0x1
|
|
bne _0800BAFC
|
|
ldr r1, =0x0400012a
|
|
ldr r2, =0x00008fff
|
|
b _0800BB00
|
|
.pool
|
|
_0800BAFC:
|
|
ldr r1, =0x0400012a
|
|
ldr r2, =0x0000b9a0
|
|
_0800BB00:
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r2, =gLink+0x4
|
|
ldr r3, =0x04000120
|
|
ldr r0, [r3]
|
|
ldr r1, [r3, 0x4]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
str r0, [r3]
|
|
str r1, [r3, 0x4]
|
|
strb r0, [r2, 0xA]
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_03000D73
|
|
mov r9, r0
|
|
mov r8, r2
|
|
ldr r2, =0x00008fff
|
|
ldr r1, =0x0000ffff
|
|
mov r12, r1
|
|
_0800BB28:
|
|
lsls r0, r4, 1
|
|
add r0, r8
|
|
ldrh r3, [r0]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r0, r3
|
|
ldr r1, =0x0000b9a0
|
|
cmp r0, r1
|
|
beq _0800BB40
|
|
adds r0, r3, 0
|
|
cmp r0, r2
|
|
bne _0800BB70
|
|
_0800BB40:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r3, 0
|
|
cmp r6, r0
|
|
bls _0800BB78
|
|
cmp r0, 0
|
|
beq _0800BB78
|
|
adds r6, r3, 0
|
|
b _0800BB78
|
|
.pool
|
|
_0800BB70:
|
|
cmp r0, r12
|
|
beq _0800BB82
|
|
movs r5, 0
|
|
b _0800BB82
|
|
_0800BB78:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x3
|
|
bls _0800BB28
|
|
_0800BB82:
|
|
strb r5, [r7, 0x3]
|
|
adds r0, r5, 0
|
|
cmp r0, 0x1
|
|
bls _0800BBB2
|
|
mov r2, r9
|
|
ldrb r2, [r2]
|
|
cmp r0, r2
|
|
bne _0800BBA4
|
|
ldrh r1, [r7, 0x4]
|
|
ldr r0, =0x00008fff
|
|
cmp r1, r0
|
|
bne _0800BBA4
|
|
movs r0, 0x1
|
|
b _0800BBBE
|
|
.pool
|
|
_0800BBA4:
|
|
ldrb r0, [r7, 0x3]
|
|
cmp r0, 0x1
|
|
bls _0800BBB2
|
|
movs r0, 0x3
|
|
ands r6, r0
|
|
adds r0, r6, 0x1
|
|
b _0800BBB4
|
|
_0800BBB2:
|
|
movs r0, 0
|
|
_0800BBB4:
|
|
strb r0, [r7, 0xF]
|
|
ldrb r0, [r7, 0x3]
|
|
mov r1, r9
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
_0800BBBE:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800BAD0
|
|
|
|
thumb_func_start sub_800BBCC
|
|
sub_800BBCC: @ 800BBCC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
ldr r0, =0x04000120
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
str r1, [sp, 0x4]
|
|
ldr r0, =gLink
|
|
ldrb r1, [r0, 0x16]
|
|
adds r6, r0, 0
|
|
cmp r1, 0
|
|
bne _0800BC30
|
|
movs r4, 0
|
|
ldr r7, =gUnknown_03000D72
|
|
ldrb r0, [r6, 0x3]
|
|
cmp r4, r0
|
|
bcs _0800BC1A
|
|
adds r5, r6, 0
|
|
ldrh r1, [r6, 0x14]
|
|
adds r3, r7, 0
|
|
adds r2, r6, 0
|
|
_0800BBFA:
|
|
lsls r0, r4, 1
|
|
add r0, sp
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
beq _0800BC0E
|
|
ldrb r0, [r3]
|
|
cmp r0, 0
|
|
beq _0800BC0E
|
|
movs r0, 0x1
|
|
strb r0, [r5, 0x11]
|
|
_0800BC0E:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldrb r0, [r2, 0x3]
|
|
cmp r4, r0
|
|
bcc _0800BBFA
|
|
_0800BC1A:
|
|
movs r0, 0
|
|
strh r0, [r6, 0x14]
|
|
movs r0, 0x1
|
|
strb r0, [r7]
|
|
b _0800BCD0
|
|
.pool
|
|
_0800BC30:
|
|
ldr r2, =0x00000fbc
|
|
adds r1, r6, r2
|
|
adds r2, 0x1
|
|
adds r0, r6, r2
|
|
ldrb r2, [r0]
|
|
ldrb r1, [r1]
|
|
adds r0, r2, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x31
|
|
bls _0800BC4C
|
|
subs r0, 0x32
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_0800BC4C:
|
|
cmp r2, 0x31
|
|
bhi _0800BCA8
|
|
movs r4, 0
|
|
ldrb r1, [r6, 0x3]
|
|
cmp r4, r1
|
|
bcs _0800BCAC
|
|
adds r5, r6, 0
|
|
ldr r7, =gUnknown_03000D70
|
|
lsls r0, 1
|
|
mov r12, r0
|
|
movs r2, 0xCF
|
|
lsls r2, 2
|
|
adds r2, r6
|
|
mov r8, r2
|
|
_0800BC68:
|
|
lsls r1, r4, 1
|
|
mov r2, sp
|
|
adds r0, r2, r1
|
|
ldrh r3, [r0]
|
|
ldrh r2, [r5, 0x14]
|
|
adds r0, r3, r2
|
|
strh r0, [r5, 0x14]
|
|
ldrh r0, [r7]
|
|
orrs r0, r3
|
|
strh r0, [r7]
|
|
ldrb r2, [r5, 0x17]
|
|
movs r0, 0x64
|
|
muls r0, r2
|
|
add r0, r12
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r4
|
|
lsls r1, 5
|
|
adds r0, r1
|
|
add r0, r8
|
|
strh r3, [r0]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldrb r0, [r5, 0x3]
|
|
cmp r4, r0
|
|
bcc _0800BC68
|
|
b _0800BCAC
|
|
.pool
|
|
_0800BCA8:
|
|
movs r0, 0x2
|
|
strb r0, [r6, 0x12]
|
|
_0800BCAC:
|
|
ldrb r0, [r6, 0x17]
|
|
adds r0, 0x1
|
|
strb r0, [r6, 0x17]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x8
|
|
bne _0800BCD0
|
|
ldr r2, =gUnknown_03000D70
|
|
ldrh r0, [r2]
|
|
cmp r0, 0
|
|
beq _0800BCD0
|
|
ldr r1, =0x00000fbd
|
|
adds r0, r6, r1
|
|
ldrb r1, [r0]
|
|
adds r1, 0x1
|
|
strb r1, [r0]
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
_0800BCD0:
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800BBCC
|
|
|
|
thumb_func_start sub_800BCE4
|
|
sub_800BCE4: @ 800BCE4
|
|
push {r4,lr}
|
|
ldr r0, =gLink
|
|
ldrb r1, [r0, 0x16]
|
|
adds r4, r0, 0
|
|
cmp r1, 0x8
|
|
bne _0800BD36
|
|
ldr r1, =0x0400012a
|
|
ldrh r0, [r4, 0x14]
|
|
strh r0, [r1]
|
|
ldr r1, =gUnknown_03000D6D
|
|
ldrb r2, [r1]
|
|
cmp r2, 0
|
|
bne _0800BD30
|
|
ldr r0, =0x00000339
|
|
adds r1, r4, r0
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0xCE
|
|
lsls r0, 2
|
|
adds r1, r4, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x31
|
|
bls _0800BD8C
|
|
strb r2, [r1]
|
|
b _0800BD8C
|
|
.pool
|
|
_0800BD30:
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
b _0800BD8C
|
|
_0800BD36:
|
|
ldr r1, =gUnknown_03000D6D
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0800BD52
|
|
ldr r2, =0x00000339
|
|
adds r0, r4, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0800BD4C
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_0800BD4C:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0800BD68
|
|
_0800BD52:
|
|
ldr r1, =0x0400012a
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
b _0800BD86
|
|
.pool
|
|
_0800BD68:
|
|
ldr r3, =0x0400012a
|
|
movs r1, 0xCE
|
|
lsls r1, 2
|
|
adds r0, r4, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
ldrb r2, [r4, 0x16]
|
|
movs r1, 0x64
|
|
muls r1, r2
|
|
adds r0, r1
|
|
adds r1, r4, 0
|
|
adds r1, 0x18
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
strh r0, [r3]
|
|
_0800BD86:
|
|
ldrb r0, [r4, 0x16]
|
|
adds r0, 0x1
|
|
strb r0, [r4, 0x16]
|
|
_0800BD8C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800BCE4
|
|
|
|
thumb_func_start sub_800BD98
|
|
sub_800BD98: @ 800BD98
|
|
push {lr}
|
|
ldr r0, =gLink
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0800BDB4
|
|
ldr r2, =0x0400010e
|
|
ldrh r1, [r2]
|
|
ldr r0, =0x0000ff7f
|
|
ands r0, r1
|
|
strh r0, [r2]
|
|
ldr r1, =0x0400010c
|
|
ldr r2, =0x0000ff3b
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
_0800BDB4:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800BD98
|
|
|
|
thumb_func_start sub_800BDCC
|
|
sub_800BDCC: @ 800BDCC
|
|
push {lr}
|
|
ldr r1, =gLink
|
|
ldrb r0, [r1, 0x17]
|
|
cmp r0, 0x8
|
|
bne _0800BDE4
|
|
movs r0, 0
|
|
strb r0, [r1, 0x16]
|
|
strb r0, [r1, 0x17]
|
|
b _0800BDF4
|
|
.pool
|
|
_0800BDE4:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0800BDF4
|
|
ldr r0, =0x0400010e
|
|
ldrh r1, [r0]
|
|
movs r2, 0x80
|
|
orrs r1, r2
|
|
strh r1, [r0]
|
|
_0800BDF4:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800BDCC
|
|
|
|
thumb_func_start sub_800BDFC
|
|
sub_800BDFC: @ 800BDFC
|
|
push {r4-r6,lr}
|
|
ldr r1, =gLink
|
|
ldr r2, =0x00000339
|
|
adds r0, r1, r2
|
|
movs r2, 0
|
|
strb r2, [r0]
|
|
movs r3, 0xCE
|
|
lsls r3, 2
|
|
adds r0, r1, r3
|
|
strb r2, [r0]
|
|
movs r0, 0
|
|
movs r6, 0x64
|
|
adds r5, r1, 0
|
|
adds r5, 0x18
|
|
ldr r4, =0x0000efff
|
|
_0800BE1A:
|
|
movs r2, 0
|
|
adds r1, r0, 0x1
|
|
adds r3, r0, 0
|
|
muls r3, r6
|
|
_0800BE22:
|
|
lsls r0, r2, 1
|
|
adds r0, r3
|
|
adds r0, r5
|
|
strh r4, [r0]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x31
|
|
bls _0800BE22
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x7
|
|
bls _0800BE1A
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800BDFC
|
|
|
|
thumb_func_start sub_800BE50
|
|
sub_800BE50: @ 800BE50
|
|
push {r4-r7,lr}
|
|
ldr r1, =gLink
|
|
ldr r2, =0x00000fbd
|
|
adds r0, r1, r2
|
|
movs r2, 0
|
|
strb r2, [r0]
|
|
ldr r3, =0x00000fbc
|
|
adds r0, r1, r3
|
|
strb r2, [r0]
|
|
movs r0, 0x64
|
|
mov r12, r0
|
|
movs r3, 0xCF
|
|
lsls r3, 2
|
|
adds r7, r1, r3
|
|
ldr r6, =0x0000efff
|
|
_0800BE6E:
|
|
movs r3, 0
|
|
lsls r0, r2, 1
|
|
adds r5, r2, 0x1
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
lsls r4, r0, 5
|
|
_0800BE7C:
|
|
movs r2, 0
|
|
adds r1, r3, 0x1
|
|
mov r0, r12
|
|
muls r0, r3
|
|
adds r3, r0, 0
|
|
_0800BE86:
|
|
lsls r0, r2, 1
|
|
adds r0, r3
|
|
adds r0, r4
|
|
adds r0, r7
|
|
strh r6, [r0]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x31
|
|
bls _0800BE86
|
|
lsls r0, r1, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x7
|
|
bls _0800BE7C
|
|
lsls r0, r5, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x3
|
|
bls _0800BE6E
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800BE50
|
|
|
|
// RFU; bss indicates that no file boundary exists here
|
|
|
|
thumb_func_start sub_800BEC0
|
|
sub_800BEC0: @ 800BEC0
|
|
push {r4,lr}
|
|
bl rfu_REQBN_softReset_and_checkID
|
|
adds r4, r0, 0
|
|
ldr r0, =0x00008001
|
|
cmp r4, r0
|
|
bne _0800BED4
|
|
ldr r1, =gUnknown_03004140
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x8]
|
|
_0800BED4:
|
|
ldr r0, =gUnknown_03004140
|
|
ldrb r2, [r0, 0x4]
|
|
adds r1, r0, 0
|
|
cmp r2, 0x17
|
|
beq _0800BEE8
|
|
cmp r2, 0x1
|
|
beq _0800BEE8
|
|
movs r0, 0
|
|
strb r0, [r1, 0x5]
|
|
strb r0, [r1, 0x4]
|
|
_0800BEE8:
|
|
movs r0, 0
|
|
strb r0, [r1, 0x7]
|
|
strb r0, [r1, 0xD]
|
|
strb r0, [r1, 0x1]
|
|
strb r0, [r1]
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x6]
|
|
bl sub_800D610
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_800BEC0
|
|
|
|
thumb_func_start rfu_REQ_sendData_wrapper
|
|
rfu_REQ_sendData_wrapper: @ 800BF0C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, =gUnknown_03007890
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0800BF34
|
|
ldr r0, =gUnknown_03004140
|
|
ldrb r0, [r0, 0x2]
|
|
movs r2, 0
|
|
cmp r0, 0x1
|
|
bne _0800BF3C
|
|
movs r2, 0x1
|
|
b _0800BF3C
|
|
.pool
|
|
_0800BF34:
|
|
ldr r0, =gUnknown_03004140
|
|
ldrb r1, [r0, 0x3]
|
|
movs r1, 0
|
|
strb r1, [r0, 0x3]
|
|
_0800BF3C:
|
|
adds r0, r2, 0
|
|
bl rfu_REQ_sendData
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end rfu_REQ_sendData_wrapper
|
|
|
|
thumb_func_start sub_800BF4C
|
|
sub_800BF4C: @ 800BF4C
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
cmp r5, 0
|
|
beq _0800BF94
|
|
mov r1, sp
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r4, =gUnknown_03004140
|
|
ldr r2, =0x01000024
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl CpuSet
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0x6]
|
|
str r5, [r4, 0x40]
|
|
str r6, [r4, 0x44]
|
|
ldr r0, =sub_800CEB0
|
|
bl rfu_setMSCCallback
|
|
ldr r0, =sub_800C7B4
|
|
bl rfu_setREQCallback
|
|
movs r0, 0
|
|
b _0800BF96
|
|
.pool
|
|
_0800BF94:
|
|
movs r0, 0x4
|
|
_0800BF96:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800BF4C
|
|
|
|
thumb_func_start sub_800BFA0
|
|
sub_800BFA0: @ 800BFA0
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
mov r1, sp
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r4, =gUnknown_03004140
|
|
ldr r2, =0x01000020
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl CpuSet
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0x6]
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800BFA0
|
|
|
|
thumb_func_start sub_800BFCC
|
|
sub_800BFCC: @ 800BFCC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_800C000
|
|
ldr r1, =gUnknown_03004140
|
|
movs r2, 0x1
|
|
strb r2, [r1, 0x4]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x5]
|
|
str r4, [r1, 0x3C]
|
|
ldrb r0, [r4, 0x11]
|
|
strb r0, [r1, 0x9]
|
|
ldrh r0, [r4, 0x12]
|
|
strh r0, [r1, 0x32]
|
|
ldrh r0, [r4, 0x14]
|
|
strh r0, [r1, 0x18]
|
|
ldrb r0, [r4, 0x10]
|
|
cmp r0, 0
|
|
beq _0800BFF4
|
|
strb r2, [r1, 0xB]
|
|
_0800BFF4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800BFCC
|
|
|
|
thumb_func_start sub_800C000
|
|
sub_800C000: @ 800C000
|
|
push {r4,r5,lr}
|
|
ldr r2, =gUnknown_03004140
|
|
movs r0, 0
|
|
strb r0, [r2, 0x5]
|
|
strb r0, [r2, 0x4]
|
|
movs r1, 0xFF
|
|
strb r1, [r2, 0x6]
|
|
strb r0, [r2, 0x7]
|
|
strb r0, [r2, 0x10]
|
|
strb r0, [r2, 0xC]
|
|
adds r1, r2, 0
|
|
adds r1, 0x24
|
|
strb r0, [r1]
|
|
adds r1, 0xC
|
|
strb r0, [r1]
|
|
movs r3, 0
|
|
adds r5, r2, 0
|
|
adds r5, 0x28
|
|
movs r4, 0
|
|
adds r2, 0x34
|
|
_0800C028:
|
|
lsls r1, r3, 1
|
|
adds r0, r1, r5
|
|
strh r4, [r0]
|
|
adds r1, r2
|
|
strh r4, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x3
|
|
bls _0800C028
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800C000
|
|
|
|
thumb_func_start sub_800C048
|
|
sub_800C048: @ 800C048
|
|
ldr r1, =gUnknown_03004140
|
|
movs r0, 0x15
|
|
strb r0, [r1, 0x4]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_800C048
|
|
|
|
thumb_func_start sub_800C054
|
|
sub_800C054: @ 800C054
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r3, 0
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r1, 16
|
|
lsrs r7, r1, 16
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
mov r8, r2
|
|
ldr r1, =gUnknown_03004140
|
|
ldrb r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
beq _0800C090
|
|
cmp r0, 0x8
|
|
bne _0800C07A
|
|
cmp r5, 0x1
|
|
beq _0800C090
|
|
_0800C07A:
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x14]
|
|
movs r0, 0xF3
|
|
movs r1, 0x1
|
|
bl sub_800D30C
|
|
movs r0, 0x1
|
|
b _0800C122
|
|
.pool
|
|
_0800C090:
|
|
bl rfu_getMasterSlave
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0800C0B0
|
|
ldr r1, =gUnknown_03004140
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x14]
|
|
movs r0, 0xF3
|
|
movs r1, 0x1
|
|
bl sub_800D30C
|
|
movs r0, 0x2
|
|
b _0800C122
|
|
.pool
|
|
_0800C0B0:
|
|
movs r2, 0
|
|
ldrh r0, [r6]
|
|
ldr r4, =0x0000ffff
|
|
adds r1, r6, 0x2
|
|
ldr r3, =gUnknown_03004140
|
|
cmp r0, r4
|
|
beq _0800C0D0
|
|
_0800C0BE:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0xF
|
|
bhi _0800C0D0
|
|
ldrh r0, [r1]
|
|
adds r1, 0x2
|
|
cmp r0, r4
|
|
bne _0800C0BE
|
|
_0800C0D0:
|
|
cmp r2, 0x10
|
|
bne _0800C0EC
|
|
movs r0, 0x4
|
|
strh r0, [r3, 0x14]
|
|
movs r0, 0xF3
|
|
movs r1, 0x1
|
|
bl sub_800D30C
|
|
movs r0, 0x4
|
|
b _0800C122
|
|
.pool
|
|
_0800C0EC:
|
|
cmp r5, 0x1
|
|
bls _0800C0FA
|
|
movs r0, 0x1
|
|
strb r0, [r3, 0x7]
|
|
movs r5, 0x1
|
|
movs r7, 0
|
|
b _0800C0FE
|
|
_0800C0FA:
|
|
movs r0, 0
|
|
strb r0, [r3, 0x7]
|
|
_0800C0FE:
|
|
cmp r5, 0
|
|
beq _0800C108
|
|
movs r0, 0x5
|
|
strb r0, [r3, 0x4]
|
|
b _0800C116
|
|
_0800C108:
|
|
movs r0, 0x9
|
|
strb r0, [r3, 0x4]
|
|
ldrb r0, [r3, 0xB]
|
|
cmp r0, 0
|
|
beq _0800C116
|
|
movs r0, 0x2
|
|
strb r0, [r3, 0xB]
|
|
_0800C116:
|
|
strb r5, [r3, 0x6]
|
|
strh r7, [r3, 0x1A]
|
|
mov r0, r8
|
|
strh r0, [r3, 0x26]
|
|
str r6, [r3, 0x20]
|
|
movs r0, 0
|
|
_0800C122:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800C054
|
|
|
|
thumb_func_start sub_800C12C
|
|
sub_800C12C: @ 800C12C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r8, r1
|
|
ldr r1, =gUnknown_03004140
|
|
ldrb r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
beq _0800C164
|
|
subs r0, 0x9
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bls _0800C164
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x14]
|
|
movs r0, 0xF3
|
|
movs r1, 0x1
|
|
bl sub_800D30C
|
|
movs r0, 0x1
|
|
b _0800C204
|
|
.pool
|
|
_0800C164:
|
|
bl rfu_getMasterSlave
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0800C184
|
|
ldr r1, =gUnknown_03004140
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x14]
|
|
movs r0, 0xF3
|
|
movs r1, 0x1
|
|
bl sub_800D30C
|
|
movs r0, 0x2
|
|
b _0800C204
|
|
.pool
|
|
_0800C184:
|
|
movs r2, 0
|
|
ldr r0, =gUnknown_03007890
|
|
ldr r1, [r0]
|
|
ldrb r3, [r1, 0x8]
|
|
ldr r5, =gUnknown_03004140
|
|
adds r7, r0, 0
|
|
cmp r2, r3
|
|
bcs _0800C1B2
|
|
ldrh r0, [r1, 0x14]
|
|
cmp r0, r6
|
|
beq _0800C1B2
|
|
adds r4, r1, 0
|
|
adds r1, r3, 0
|
|
_0800C19E:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, r1
|
|
bcs _0800C1B2
|
|
lsls r0, r2, 5
|
|
adds r0, r4, r0
|
|
ldrh r0, [r0, 0x14]
|
|
cmp r0, r6
|
|
bne _0800C19E
|
|
_0800C1B2:
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r0, 0
|
|
beq _0800C1BE
|
|
cmp r2, r0
|
|
bne _0800C1D8
|
|
_0800C1BE:
|
|
movs r0, 0x3
|
|
strh r0, [r5, 0x14]
|
|
movs r0, 0xF3
|
|
movs r1, 0x1
|
|
bl sub_800D30C
|
|
movs r0, 0x3
|
|
b _0800C204
|
|
.pool
|
|
_0800C1D8:
|
|
ldrb r0, [r5, 0x4]
|
|
cmp r0, 0
|
|
beq _0800C1E2
|
|
cmp r0, 0x9
|
|
bne _0800C1EA
|
|
_0800C1E2:
|
|
movs r0, 0xC
|
|
strb r0, [r5, 0x4]
|
|
movs r0, 0xD
|
|
b _0800C1F0
|
|
_0800C1EA:
|
|
movs r0, 0xB
|
|
strb r0, [r5, 0x4]
|
|
movs r0, 0xC
|
|
_0800C1F0:
|
|
strb r0, [r5, 0x5]
|
|
strh r6, [r5, 0x1E]
|
|
mov r0, r8
|
|
strh r0, [r5, 0x1A]
|
|
ldrb r0, [r5, 0x7]
|
|
cmp r0, 0
|
|
beq _0800C202
|
|
movs r0, 0x7
|
|
strb r0, [r5, 0x7]
|
|
_0800C202:
|
|
movs r0, 0
|
|
_0800C204:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800C12C
|
|
|
|
thumb_func_start sub_800C210
|
|
sub_800C210: @ 800C210
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
ldr r6, =gUnknown_03004140
|
|
adds r3, r6, 0
|
|
adds r3, 0x30
|
|
ldrb r2, [r3]
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0800C26C
|
|
adds r0, r2, 0
|
|
bics r0, r1
|
|
strb r0, [r3]
|
|
movs r4, 0
|
|
ldr r7, =gUnknown_03007890
|
|
movs r5, 0x1
|
|
adds r3, 0x4
|
|
movs r2, 0
|
|
_0800C236:
|
|
adds r0, r1, 0
|
|
asrs r0, r4
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0800C246
|
|
lsls r0, r4, 1
|
|
adds r0, r3
|
|
strh r2, [r0]
|
|
_0800C246:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x3
|
|
bls _0800C236
|
|
ldr r0, [r7]
|
|
ldrb r4, [r0, 0x3]
|
|
ands r4, r1
|
|
cmp r4, 0
|
|
beq _0800C260
|
|
adds r0, r4, 0
|
|
bl sub_800D334
|
|
_0800C260:
|
|
ldr r0, =gUnknown_03004140
|
|
strh r4, [r0, 0x14]
|
|
movs r0, 0x33
|
|
adds r1, r4, 0
|
|
bl sub_800D30C
|
|
_0800C26C:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800C210
|
|
|
|
thumb_func_start sub_800C27C
|
|
sub_800C27C: @ 800C27C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
movs r2, 0
|
|
ldr r1, =gUnknown_03004140
|
|
strb r2, [r1, 0x7]
|
|
adds r5, r1, 0
|
|
cmp r0, 0
|
|
beq _0800C29C
|
|
bl sub_800C000
|
|
movs r0, 0x17
|
|
strb r0, [r5, 0x4]
|
|
b _0800C366
|
|
.pool
|
|
_0800C29C:
|
|
ldrb r0, [r5, 0x4]
|
|
subs r0, 0x5
|
|
cmp r0, 0xD
|
|
bhi _0800C352
|
|
lsls r0, 2
|
|
ldr r1, =_0800C2B4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0800C2B4:
|
|
.4byte _0800C2EC
|
|
.4byte _0800C2F8
|
|
.4byte _0800C2F8
|
|
.4byte _0800C358
|
|
.4byte _0800C302
|
|
.4byte _0800C30C
|
|
.4byte _0800C30C
|
|
.4byte _0800C316
|
|
.4byte _0800C320
|
|
.4byte _0800C320
|
|
.4byte _0800C358
|
|
.4byte _0800C326
|
|
.4byte _0800C34C
|
|
.4byte _0800C34C
|
|
_0800C2EC:
|
|
movs r1, 0
|
|
movs r0, 0x8
|
|
strb r0, [r5, 0x4]
|
|
strb r1, [r5, 0x5]
|
|
movs r2, 0x13
|
|
b _0800C358
|
|
_0800C2F8:
|
|
movs r0, 0x7
|
|
strb r0, [r5, 0x4]
|
|
movs r0, 0x8
|
|
strb r0, [r5, 0x5]
|
|
b _0800C358
|
|
_0800C302:
|
|
movs r0, 0
|
|
strb r0, [r5, 0x5]
|
|
strb r0, [r5, 0x4]
|
|
movs r2, 0x21
|
|
b _0800C358
|
|
_0800C30C:
|
|
movs r1, 0
|
|
movs r0, 0xB
|
|
strb r0, [r5, 0x4]
|
|
strb r1, [r5, 0x5]
|
|
b _0800C358
|
|
_0800C316:
|
|
movs r0, 0
|
|
strb r0, [r5, 0x5]
|
|
strb r0, [r5, 0x4]
|
|
movs r2, 0x23
|
|
b _0800C358
|
|
_0800C320:
|
|
movs r0, 0xE
|
|
strb r0, [r5, 0x4]
|
|
b _0800C358
|
|
_0800C326:
|
|
ldrb r0, [r5, 0x11]
|
|
strb r0, [r5, 0x4]
|
|
ldrb r0, [r5, 0x12]
|
|
strb r0, [r5, 0x5]
|
|
ldr r4, =gUnknown_03007890
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x3]
|
|
bl sub_800D334
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x3]
|
|
strh r0, [r5, 0x14]
|
|
movs r0, 0x33
|
|
movs r1, 0x1
|
|
bl sub_800D30C
|
|
b _0800C366
|
|
.pool
|
|
_0800C34C:
|
|
movs r0, 0x12
|
|
strb r0, [r5, 0x4]
|
|
b _0800C358
|
|
_0800C352:
|
|
strb r2, [r5, 0x5]
|
|
strb r2, [r5, 0x4]
|
|
movs r2, 0x43
|
|
_0800C358:
|
|
ldrb r0, [r5, 0x4]
|
|
cmp r0, 0
|
|
bne _0800C366
|
|
adds r0, r2, 0
|
|
movs r1, 0
|
|
bl sub_800D30C
|
|
_0800C366:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800C27C
|
|
|
|
thumb_func_start sub_800C36C
|
|
sub_800C36C: @ 800C36C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0
|
|
mov r8, r1
|
|
mov r5, sp
|
|
adds r5, 0x1
|
|
mov r4, sp
|
|
adds r4, 0x2
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl rfu_REQBN_watchLink
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
adds r7, r4, 0
|
|
cmp r0, 0
|
|
beq _0800C43E
|
|
ldr r1, =gUnknown_03004140
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
strh r0, [r1, 0x14]
|
|
ldrb r0, [r5]
|
|
strh r0, [r1, 0x16]
|
|
ldrb r0, [r1, 0x9]
|
|
adds r6, r1, 0
|
|
cmp r0, 0
|
|
beq _0800C426
|
|
movs r0, 0x1
|
|
strb r0, [r6, 0xA]
|
|
ldrb r0, [r6, 0x6]
|
|
cmp r0, 0
|
|
bne _0800C3C2
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
bne _0800C3C2
|
|
movs r0, 0x4
|
|
strb r0, [r6, 0xA]
|
|
_0800C3C2:
|
|
ldrb r0, [r6, 0xA]
|
|
cmp r0, 0x1
|
|
bne _0800C40C
|
|
movs r2, 0
|
|
mov r4, sp
|
|
movs r5, 0x1
|
|
mov r12, r6
|
|
mov r3, r12
|
|
adds r3, 0x30
|
|
movs r6, 0x34
|
|
add r6, r12
|
|
mov r9, r6
|
|
_0800C3DA:
|
|
ldrb r0, [r4]
|
|
asrs r0, r2
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0800C3F8
|
|
adds r0, r5, 0
|
|
lsls r0, r2
|
|
ldrb r1, [r3]
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
lsls r0, r2, 1
|
|
add r0, r9
|
|
mov r6, r12
|
|
ldrh r1, [r6, 0x32]
|
|
strh r1, [r0]
|
|
_0800C3F8:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x3
|
|
bls _0800C3DA
|
|
movs r0, 0x31
|
|
b _0800C41E
|
|
.pool
|
|
_0800C40C:
|
|
movs r0, 0
|
|
strb r0, [r6, 0xA]
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
bl sub_800D334
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
movs r0, 0x33
|
|
_0800C41E:
|
|
movs r1, 0x1
|
|
bl sub_800D30C
|
|
b _0800C43A
|
|
_0800C426:
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
bl sub_800D334
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
movs r0, 0x30
|
|
movs r1, 0x2
|
|
bl sub_800D30C
|
|
_0800C43A:
|
|
bl sub_800D610
|
|
_0800C43E:
|
|
ldr r0, =gUnknown_03007890
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0800C518
|
|
ldrb r0, [r7]
|
|
cmp r0, 0
|
|
beq _0800C49C
|
|
movs r2, 0
|
|
ldr r6, =gUnknown_03004140
|
|
movs r3, 0x1
|
|
adds r4, r6, 0
|
|
adds r4, 0x34
|
|
adds r6, 0x30
|
|
adds r5, r7, 0
|
|
_0800C45C:
|
|
ldrb r0, [r6]
|
|
asrs r0, r2
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _0800C478
|
|
ldrb r0, [r5]
|
|
asrs r0, r2
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _0800C478
|
|
lsls r0, r2, 1
|
|
adds r0, r4
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
_0800C478:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x3
|
|
bls _0800C45C
|
|
ldr r3, =gUnknown_03004140
|
|
adds r2, r3, 0
|
|
adds r2, 0x30
|
|
ldrb r1, [r7]
|
|
ldrb r0, [r2]
|
|
bics r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r7]
|
|
strh r0, [r3, 0x14]
|
|
movs r0, 0x32
|
|
movs r1, 0x1
|
|
bl sub_800D30C
|
|
_0800C49C:
|
|
ldr r0, =gUnknown_03004140
|
|
adds r3, r0, 0
|
|
adds r3, 0x30
|
|
ldrb r1, [r3]
|
|
adds r6, r0, 0
|
|
cmp r1, 0
|
|
beq _0800C514
|
|
movs r4, 0
|
|
movs r2, 0
|
|
movs r5, 0x1
|
|
_0800C4B0:
|
|
ldrb r0, [r3]
|
|
asrs r0, r2
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0800C4E2
|
|
lsls r1, r2, 1
|
|
adds r0, r6, 0
|
|
adds r0, 0x34
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
beq _0800C4E2
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _0800C4E2
|
|
adds r0, r5, 0
|
|
lsls r0, r2
|
|
ldrb r1, [r3]
|
|
bics r1, r0
|
|
strb r1, [r3]
|
|
orrs r4, r0
|
|
lsls r0, r4, 24
|
|
lsrs r4, r0, 24
|
|
_0800C4E2:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x3
|
|
bls _0800C4B0
|
|
cmp r4, 0
|
|
beq _0800C506
|
|
adds r0, r4, 0
|
|
bl sub_800D334
|
|
movs r6, 0x1
|
|
mov r8, r6
|
|
ldr r0, =gUnknown_03004140
|
|
strh r4, [r0, 0x14]
|
|
movs r0, 0x33
|
|
movs r1, 0x1
|
|
bl sub_800D30C
|
|
_0800C506:
|
|
ldr r0, =gUnknown_03004140
|
|
adds r1, r0, 0
|
|
adds r1, 0x30
|
|
ldrb r1, [r1]
|
|
adds r6, r0, 0
|
|
cmp r1, 0
|
|
bne _0800C518
|
|
_0800C514:
|
|
movs r0, 0
|
|
strb r0, [r6, 0xA]
|
|
_0800C518:
|
|
mov r0, r8
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_800C36C
|
|
|
|
thumb_func_start rfu_syncVBlank_
|
|
rfu_syncVBlank_: @ 800C530
|
|
push {lr}
|
|
bl rfu_syncVBlank
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _0800C548
|
|
movs r0, 0xF1
|
|
movs r1, 0
|
|
bl sub_800D30C
|
|
bl sub_800D610
|
|
_0800C548:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end rfu_syncVBlank_
|
|
|
|
thumb_func_start sub_800C54C
|
|
sub_800C54C: @ 800C54C
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
ldr r1, =gUnknown_03004140
|
|
ldr r2, [r1, 0x40]
|
|
cmp r2, 0
|
|
bne _0800C568
|
|
ldrb r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
beq _0800C568
|
|
strb r2, [r1, 0x4]
|
|
b _0800C736
|
|
.pool
|
|
_0800C568:
|
|
ldr r0, =gUnknown_03004140
|
|
ldrb r0, [r0, 0x7]
|
|
cmp r0, 0
|
|
beq _0800C576
|
|
adds r0, r3, 0
|
|
bl sub_800C744
|
|
_0800C576:
|
|
ldr r4, =gUnknown_03004140
|
|
ldrb r0, [r4, 0x4]
|
|
cmp r0, 0
|
|
bne _0800C580
|
|
b _0800C700
|
|
_0800C580:
|
|
bl rfu_waitREQComplete
|
|
movs r0, 0x1
|
|
strb r0, [r4, 0xE]
|
|
ldrb r0, [r4, 0x4]
|
|
subs r0, 0x1
|
|
cmp r0, 0x16
|
|
bls _0800C592
|
|
b _0800C6F6
|
|
_0800C592:
|
|
lsls r0, 2
|
|
ldr r1, =_0800C5A4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0800C5A4:
|
|
.4byte _0800C624
|
|
.4byte _0800C65C
|
|
.4byte _0800C662
|
|
.4byte _0800C678
|
|
.4byte _0800C690
|
|
.4byte _0800C696
|
|
.4byte _0800C69C
|
|
.4byte _0800C6F6
|
|
.4byte _0800C6A2
|
|
.4byte _0800C6A8
|
|
.4byte _0800C6AE
|
|
.4byte _0800C6B4
|
|
.4byte _0800C6C4
|
|
.4byte _0800C6CA
|
|
.4byte _0800C6F6
|
|
.4byte _0800C6D0
|
|
.4byte _0800C6E0
|
|
.4byte _0800C6E6
|
|
.4byte _0800C6EC
|
|
.4byte _0800C6F6
|
|
.4byte _0800C6F2
|
|
.4byte _0800C6F6
|
|
.4byte _0800C600
|
|
_0800C600:
|
|
bl sub_800BEC0
|
|
ldr r1, =0x00008001
|
|
movs r2, 0xFF
|
|
cmp r0, r1
|
|
bne _0800C60E
|
|
movs r2, 0x44
|
|
_0800C60E:
|
|
ldr r1, =gUnknown_03004140
|
|
movs r0, 0
|
|
strb r0, [r1, 0x5]
|
|
strb r0, [r1, 0x4]
|
|
adds r0, r2, 0
|
|
b _0800C64E
|
|
.pool
|
|
_0800C624:
|
|
bl sub_800BEC0
|
|
ldr r1, =0x00008001
|
|
cmp r0, r1
|
|
bne _0800C644
|
|
ldr r0, =gUnknown_03004140
|
|
ldrb r1, [r0, 0x5]
|
|
strb r1, [r0, 0x4]
|
|
movs r1, 0x3
|
|
strb r1, [r0, 0x5]
|
|
b _0800C6F6
|
|
.pool
|
|
_0800C644:
|
|
ldr r1, =gUnknown_03004140
|
|
movs r0, 0
|
|
strb r0, [r1, 0x5]
|
|
strb r0, [r1, 0x4]
|
|
movs r0, 0xFF
|
|
_0800C64E:
|
|
movs r1, 0
|
|
bl sub_800D30C
|
|
b _0800C6F6
|
|
.pool
|
|
_0800C65C:
|
|
bl rfu_REQ_reset
|
|
b _0800C6F6
|
|
_0800C662:
|
|
ldr r0, =gUnknown_03004140
|
|
ldr r2, [r0, 0x3C]
|
|
ldrh r0, [r2, 0x2]
|
|
ldrb r1, [r2]
|
|
ldrb r2, [r2, 0x1]
|
|
bl rfu_REQ_configSystem
|
|
b _0800C6F6
|
|
.pool
|
|
_0800C678:
|
|
ldr r0, =gUnknown_03004140
|
|
ldr r3, [r0, 0x3C]
|
|
ldrb r0, [r3, 0x4]
|
|
ldrh r1, [r3, 0x6]
|
|
ldr r2, [r3, 0x8]
|
|
ldr r3, [r3, 0xC]
|
|
bl rfu_REQ_configGameData
|
|
b _0800C6F6
|
|
.pool
|
|
_0800C690:
|
|
bl rfu_REQ_startSearchChild
|
|
b _0800C6F6
|
|
_0800C696:
|
|
bl rfu_REQ_pollSearchChild
|
|
b _0800C6F6
|
|
_0800C69C:
|
|
bl rfu_REQ_endSearchChild
|
|
b _0800C6F6
|
|
_0800C6A2:
|
|
bl rfu_REQ_startSearchParent
|
|
b _0800C6F6
|
|
_0800C6A8:
|
|
bl rfu_REQ_pollSearchParent
|
|
b _0800C6F6
|
|
_0800C6AE:
|
|
bl rfu_REQ_endSearchParent
|
|
b _0800C6F6
|
|
_0800C6B4:
|
|
ldr r0, =gUnknown_03004140
|
|
ldrh r0, [r0, 0x1E]
|
|
bl rfu_REQ_startConnectParent
|
|
b _0800C6F6
|
|
.pool
|
|
_0800C6C4:
|
|
bl rfu_REQ_pollConnectParent
|
|
b _0800C6F6
|
|
_0800C6CA:
|
|
bl rfu_REQ_endConnectParent
|
|
b _0800C6F6
|
|
_0800C6D0:
|
|
ldr r0, =gUnknown_03007890
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x3]
|
|
bl rfu_REQ_CHILD_startConnectRecovery
|
|
b _0800C6F6
|
|
.pool
|
|
_0800C6E0:
|
|
bl rfu_REQ_CHILD_pollConnectRecovery
|
|
b _0800C6F6
|
|
_0800C6E6:
|
|
bl rfu_REQ_CHILD_endConnectRecovery
|
|
b _0800C6F6
|
|
_0800C6EC:
|
|
bl rfu_REQ_changeMasterSlave
|
|
b _0800C6F6
|
|
_0800C6F2:
|
|
bl rfu_REQ_stopMode
|
|
_0800C6F6:
|
|
bl rfu_waitREQComplete
|
|
ldr r1, =gUnknown_03004140
|
|
movs r0, 0
|
|
strb r0, [r1, 0xE]
|
|
_0800C700:
|
|
ldr r0, =gUnknown_03004140
|
|
ldrb r0, [r0, 0x4]
|
|
subs r0, 0x12
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _0800C710
|
|
b _0800C576
|
|
_0800C710:
|
|
ldr r0, =gUnknown_03007890
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0800C726
|
|
movs r0, 0
|
|
bl sub_800C36C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0800C736
|
|
_0800C726:
|
|
bl sub_800CF34
|
|
bl sub_800D158
|
|
bl sub_800D268
|
|
bl sub_800D434
|
|
_0800C736:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800C54C
|
|
|
|
thumb_func_start sub_800C744
|
|
sub_800C744: @ 800C744
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
ldr r0, =gUnknown_03004140
|
|
ldrb r1, [r0, 0x7]
|
|
adds r4, r0, 0
|
|
cmp r1, 0x5
|
|
bne _0800C76E
|
|
movs r2, 0x1
|
|
strb r2, [r4, 0x6]
|
|
strb r1, [r4, 0x4]
|
|
ldrh r0, [r4, 0x1C]
|
|
strh r0, [r4, 0x1A]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _0800C76C
|
|
movs r0, 0x6
|
|
strb r0, [r4, 0x7]
|
|
b _0800C76E
|
|
.pool
|
|
_0800C76C:
|
|
strb r2, [r4, 0x7]
|
|
_0800C76E:
|
|
ldrb r0, [r4, 0x7]
|
|
cmp r0, 0x1
|
|
bne _0800C798
|
|
strb r0, [r4, 0x6]
|
|
movs r0, 0x5
|
|
strb r0, [r4, 0x4]
|
|
adds r0, r3, 0
|
|
movs r1, 0x8C
|
|
bl __umodsi3
|
|
strh r0, [r4, 0x1A]
|
|
movs r1, 0x8C
|
|
subs r1, r0
|
|
strh r1, [r4, 0x1C]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _0800C794
|
|
movs r0, 0x2
|
|
b _0800C796
|
|
_0800C794:
|
|
movs r0, 0x3
|
|
_0800C796:
|
|
strb r0, [r4, 0x7]
|
|
_0800C798:
|
|
ldrb r0, [r4, 0x7]
|
|
cmp r0, 0x3
|
|
bne _0800C7AE
|
|
movs r0, 0
|
|
strb r0, [r4, 0x6]
|
|
movs r0, 0x28
|
|
strh r0, [r4, 0x1A]
|
|
movs r0, 0x4
|
|
strb r0, [r4, 0x7]
|
|
movs r0, 0x9
|
|
strb r0, [r4, 0x4]
|
|
_0800C7AE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800C744
|
|
|
|
thumb_func_start sub_800C7B4
|
|
sub_800C7B4: @ 800C7B4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
ldr r0, =gUnknown_03004140
|
|
ldrb r1, [r0, 0xE]
|
|
adds r7, r0, 0
|
|
cmp r1, 0
|
|
bne _0800C7D2
|
|
b _0800CC98
|
|
_0800C7D2:
|
|
movs r0, 0
|
|
strb r0, [r7, 0xE]
|
|
mov r0, r8
|
|
subs r0, 0x10
|
|
cmp r0, 0x2D
|
|
bls _0800C7E0
|
|
b _0800CC8A
|
|
_0800C7E0:
|
|
lsls r0, 2
|
|
ldr r1, =_0800C7F4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0800C7F4:
|
|
.4byte _0800C8AC
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800C8D8
|
|
.4byte _0800C8C4
|
|
.4byte _0800CC8A
|
|
.4byte _0800C8EC
|
|
.4byte _0800C8FC
|
|
.4byte _0800C920
|
|
.4byte _0800C940
|
|
.4byte _0800C960
|
|
.4byte _0800C9D0
|
|
.4byte _0800CA02
|
|
.4byte _0800CA18
|
|
.4byte _0800CA60
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CBD8
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CAD0
|
|
.4byte _0800CB1C
|
|
.4byte _0800CB64
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC8A
|
|
.4byte _0800CC78
|
|
_0800C8AC:
|
|
cmp r6, 0
|
|
beq _0800C8B2
|
|
b _0800CC8A
|
|
_0800C8B2:
|
|
ldr r0, =gUnknown_03004140
|
|
ldrb r1, [r0, 0x5]
|
|
strb r1, [r0, 0x4]
|
|
movs r1, 0x4
|
|
strb r1, [r0, 0x5]
|
|
b _0800CC8A
|
|
.pool
|
|
_0800C8C4:
|
|
cmp r6, 0
|
|
beq _0800C8CA
|
|
b _0800CC8A
|
|
_0800C8CA:
|
|
ldr r0, =gUnknown_03004140
|
|
ldrb r1, [r0, 0x5]
|
|
strb r1, [r0, 0x4]
|
|
strb r6, [r0, 0x5]
|
|
b _0800CC8A
|
|
.pool
|
|
_0800C8D8:
|
|
cmp r6, 0
|
|
beq _0800C8DE
|
|
b _0800CC8A
|
|
_0800C8DE:
|
|
ldr r0, =gUnknown_03004140
|
|
strb r6, [r0, 0x5]
|
|
strb r6, [r0, 0x4]
|
|
movs r0, 0
|
|
b _0800CBF6
|
|
.pool
|
|
_0800C8EC:
|
|
cmp r6, 0
|
|
beq _0800C8F2
|
|
b _0800CC8A
|
|
_0800C8F2:
|
|
ldr r1, =gUnknown_03004140
|
|
movs r0, 0x6
|
|
b _0800CA0C
|
|
.pool
|
|
_0800C8FC:
|
|
ldr r1, =gUnknown_03004140
|
|
ldrh r0, [r1, 0x1A]
|
|
cmp r0, 0
|
|
bne _0800C906
|
|
b _0800CC8A
|
|
_0800C906:
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x1A]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _0800C912
|
|
b _0800CC8A
|
|
_0800C912:
|
|
movs r0, 0x7
|
|
strb r0, [r1, 0x4]
|
|
movs r0, 0x8
|
|
strb r0, [r1, 0x5]
|
|
b _0800CC8A
|
|
.pool
|
|
_0800C920:
|
|
cmp r6, 0
|
|
beq _0800C926
|
|
b _0800CC8A
|
|
_0800C926:
|
|
ldr r0, =gUnknown_03004140
|
|
ldrb r1, [r0, 0x5]
|
|
strb r1, [r0, 0x4]
|
|
strb r6, [r0, 0x5]
|
|
ldrb r0, [r0, 0x7]
|
|
cmp r0, 0
|
|
beq _0800C936
|
|
b _0800CC8A
|
|
_0800C936:
|
|
movs r0, 0x13
|
|
b _0800CBF6
|
|
.pool
|
|
_0800C940:
|
|
cmp r6, 0
|
|
beq _0800C946
|
|
b _0800CC8A
|
|
_0800C946:
|
|
ldrb r0, [r7, 0xB]
|
|
cmp r0, 0x1
|
|
bne _0800C956
|
|
ldrh r0, [r7, 0x1A]
|
|
cmp r0, 0x1
|
|
bls _0800C956
|
|
subs r0, 0x1
|
|
strh r0, [r7, 0x1A]
|
|
_0800C956:
|
|
ldr r1, =gUnknown_03004140
|
|
movs r0, 0xA
|
|
b _0800CA0C
|
|
.pool
|
|
_0800C960:
|
|
cmp r6, 0
|
|
bne _0800C9A6
|
|
bl sub_800D294
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
ldr r4, =gUnknown_03004140
|
|
strh r0, [r4, 0x14]
|
|
cmp r0, 0
|
|
beq _0800C980
|
|
movs r0, 0x20
|
|
movs r1, 0x1
|
|
bl sub_800D30C
|
|
_0800C980:
|
|
ldrb r0, [r4, 0xB]
|
|
cmp r0, 0
|
|
beq _0800C9A6
|
|
ldrh r0, [r4, 0x1A]
|
|
cmp r0, 0x1
|
|
beq _0800C9A6
|
|
ldr r0, =gUnknown_03007890
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r0, 0x4
|
|
bne _0800C9A6
|
|
bl rfu_REQ_endSearchParent
|
|
bl rfu_waitREQComplete
|
|
movs r0, 0x9
|
|
strb r0, [r4, 0x4]
|
|
movs r0, 0x1
|
|
strb r0, [r4, 0xB]
|
|
_0800C9A6:
|
|
ldr r1, =gUnknown_03004140
|
|
ldrh r0, [r1, 0x1A]
|
|
cmp r0, 0
|
|
bne _0800C9B0
|
|
b _0800CC8A
|
|
_0800C9B0:
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x1A]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _0800C9BC
|
|
b _0800CC8A
|
|
_0800C9BC:
|
|
movs r0, 0xB
|
|
strb r0, [r1, 0x4]
|
|
movs r0, 0
|
|
strb r0, [r1, 0x5]
|
|
b _0800CC8A
|
|
.pool
|
|
_0800C9D0:
|
|
cmp r6, 0
|
|
beq _0800C9D6
|
|
b _0800CC8A
|
|
_0800C9D6:
|
|
ldr r2, =gUnknown_03004140
|
|
ldrb r0, [r2, 0x5]
|
|
strb r0, [r2, 0x4]
|
|
ldrb r1, [r2, 0x7]
|
|
cmp r1, 0
|
|
bne _0800C9F4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0800C9EA
|
|
b _0800CC8A
|
|
_0800C9EA:
|
|
movs r0, 0x21
|
|
b _0800CBF6
|
|
.pool
|
|
_0800C9F4:
|
|
cmp r1, 0x7
|
|
bne _0800C9FA
|
|
b _0800CC8A
|
|
_0800C9FA:
|
|
movs r0, 0x5
|
|
strb r0, [r2, 0x4]
|
|
strb r0, [r2, 0x7]
|
|
b _0800CC8A
|
|
_0800CA02:
|
|
cmp r6, 0
|
|
beq _0800CA08
|
|
b _0800CC8A
|
|
_0800CA08:
|
|
ldr r1, =gUnknown_03004140
|
|
movs r0, 0xD
|
|
_0800CA0C:
|
|
strb r0, [r1, 0x5]
|
|
strb r0, [r1, 0x4]
|
|
b _0800CC8A
|
|
.pool
|
|
_0800CA18:
|
|
cmp r6, 0
|
|
bne _0800CA3C
|
|
ldr r4, =gUnknown_03004150
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl rfu_getConnectParentStatus
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _0800CA3C
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0800CA3C
|
|
adds r1, r4, 0
|
|
subs r1, 0x10
|
|
movs r0, 0xE
|
|
strb r0, [r1, 0x4]
|
|
_0800CA3C:
|
|
ldr r1, =gUnknown_03004140
|
|
ldrh r0, [r1, 0x1A]
|
|
cmp r0, 0
|
|
bne _0800CA46
|
|
b _0800CC8A
|
|
_0800CA46:
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x1A]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _0800CA52
|
|
b _0800CC8A
|
|
_0800CA52:
|
|
movs r0, 0xE
|
|
strb r0, [r1, 0x4]
|
|
b _0800CC8A
|
|
.pool
|
|
_0800CA60:
|
|
cmp r6, 0
|
|
beq _0800CA66
|
|
b _0800CC8A
|
|
_0800CA66:
|
|
ldr r4, =gUnknown_03004150
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl rfu_getConnectParentStatus
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _0800CA78
|
|
b _0800CC8A
|
|
_0800CA78:
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0800CA9C
|
|
adds r1, r4, 0
|
|
subs r1, 0x10
|
|
movs r0, 0x13
|
|
strb r0, [r1, 0x4]
|
|
movs r0, 0xF
|
|
strb r0, [r1, 0x5]
|
|
movs r0, 0x22
|
|
strh r0, [r1, 0x1E]
|
|
ldrb r0, [r1, 0x10]
|
|
strh r0, [r1, 0x14]
|
|
b _0800CABC
|
|
.pool
|
|
_0800CA9C:
|
|
adds r1, r4, 0
|
|
subs r1, 0x10
|
|
strb r6, [r1, 0x5]
|
|
strb r6, [r1, 0x4]
|
|
movs r0, 0x23
|
|
strh r0, [r1, 0x1E]
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
strh r0, [r1, 0x14]
|
|
ldrb r0, [r1, 0x7]
|
|
cmp r0, 0
|
|
beq _0800CABC
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x7]
|
|
movs r0, 0x9
|
|
strb r0, [r1, 0x4]
|
|
_0800CABC:
|
|
ldr r4, =gUnknown_03004140
|
|
ldrb r0, [r4, 0x1E]
|
|
movs r1, 0x1
|
|
bl sub_800D30C
|
|
movs r0, 0
|
|
strh r0, [r4, 0x1E]
|
|
b _0800CC8A
|
|
.pool
|
|
_0800CAD0:
|
|
cmp r6, 0
|
|
beq _0800CAD6
|
|
b _0800CC8A
|
|
_0800CAD6:
|
|
ldr r2, =gUnknown_03007890
|
|
ldr r3, [r2]
|
|
ldrb r0, [r3, 0x3]
|
|
movs r1, 0
|
|
strh r0, [r7, 0x14]
|
|
movs r0, 0x11
|
|
strb r0, [r7, 0x5]
|
|
strb r0, [r7, 0x4]
|
|
strb r1, [r7, 0x10]
|
|
ldrb r0, [r3, 0x3]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800CAF4
|
|
b _0800CC8A
|
|
_0800CAF4:
|
|
adds r1, r7, 0
|
|
movs r3, 0x1
|
|
_0800CAF8:
|
|
ldrb r0, [r1, 0x10]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x10]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bls _0800CB08
|
|
b _0800CC8A
|
|
_0800CB08:
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0, 0x3]
|
|
ldrb r4, [r7, 0x10]
|
|
asrs r0, r4
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _0800CAF8
|
|
b _0800CC8A
|
|
.pool
|
|
_0800CB1C:
|
|
cmp r6, 0
|
|
bne _0800CB3A
|
|
mov r0, sp
|
|
bl rfu_CHILD_getConnectRecoveryStatus
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _0800CB3A
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bhi _0800CB3A
|
|
ldr r1, =gUnknown_03004140
|
|
movs r0, 0x12
|
|
strb r0, [r1, 0x4]
|
|
_0800CB3A:
|
|
ldr r2, =gUnknown_03004140
|
|
ldrb r0, [r2, 0x10]
|
|
lsls r0, 1
|
|
adds r1, r2, 0
|
|
adds r1, 0x34
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
bne _0800CB4E
|
|
b _0800CC8A
|
|
_0800CB4E:
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _0800CB5A
|
|
b _0800CC8A
|
|
_0800CB5A:
|
|
movs r0, 0x12
|
|
strb r0, [r2, 0x4]
|
|
b _0800CC8A
|
|
.pool
|
|
_0800CB64:
|
|
cmp r6, 0
|
|
beq _0800CB6A
|
|
b _0800CC8A
|
|
_0800CB6A:
|
|
mov r0, sp
|
|
bl rfu_CHILD_getConnectRecoveryStatus
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _0800CB78
|
|
b _0800CC8A
|
|
_0800CB78:
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0800CB94
|
|
ldr r1, =gUnknown_03004140
|
|
movs r0, 0x13
|
|
strb r0, [r1, 0x4]
|
|
movs r0, 0x16
|
|
strb r0, [r1, 0x5]
|
|
movs r0, 0x32
|
|
strh r0, [r1, 0x1E]
|
|
b _0800CBA8
|
|
.pool
|
|
_0800CB94:
|
|
ldr r4, =gUnknown_03004140
|
|
strb r6, [r4, 0x5]
|
|
strb r6, [r4, 0x4]
|
|
ldr r0, =gUnknown_03007890
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x3]
|
|
bl sub_800D334
|
|
movs r0, 0x33
|
|
strh r0, [r4, 0x1E]
|
|
_0800CBA8:
|
|
ldr r5, =gUnknown_03004140
|
|
ldrb r0, [r5, 0x10]
|
|
lsls r0, 1
|
|
adds r1, r5, 0
|
|
adds r1, 0x34
|
|
adds r0, r1
|
|
movs r1, 0
|
|
movs r4, 0
|
|
strh r4, [r0]
|
|
adds r0, r5, 0
|
|
adds r0, 0x30
|
|
strb r1, [r0]
|
|
strb r1, [r5, 0xA]
|
|
ldrb r0, [r5, 0x1E]
|
|
movs r1, 0x1
|
|
bl sub_800D30C
|
|
strh r4, [r5, 0x1E]
|
|
b _0800CC8A
|
|
.pool
|
|
_0800CBD8:
|
|
cmp r6, 0
|
|
bne _0800CC8A
|
|
ldr r5, =gUnknown_03004140
|
|
ldrb r1, [r5, 0x5]
|
|
adds r0, r1, 0
|
|
cmp r0, 0x16
|
|
bne _0800CC04
|
|
ldrb r0, [r5, 0x11]
|
|
strb r0, [r5, 0x4]
|
|
ldrb r0, [r5, 0x12]
|
|
strb r0, [r5, 0x5]
|
|
ldrb r0, [r5, 0x2]
|
|
movs r0, 0x1
|
|
strb r0, [r5, 0x2]
|
|
movs r0, 0x41
|
|
_0800CBF6:
|
|
movs r1, 0
|
|
bl sub_800D30C
|
|
b _0800CC8A
|
|
.pool
|
|
_0800CC04:
|
|
cmp r0, 0xF
|
|
bne _0800CC8A
|
|
strb r1, [r5, 0x4]
|
|
ldrb r0, [r5, 0x2]
|
|
movs r4, 0x1
|
|
strb r4, [r5, 0x2]
|
|
movs r0, 0x41
|
|
movs r1, 0
|
|
bl sub_800D30C
|
|
adds r1, r5, 0
|
|
adds r1, 0x24
|
|
ldrb r0, [r5, 0x10]
|
|
lsls r4, r0
|
|
ldrb r0, [r1]
|
|
orrs r4, r0
|
|
strb r4, [r1]
|
|
ldrb r0, [r5, 0x10]
|
|
lsls r0, 1
|
|
adds r1, 0x4
|
|
adds r0, r1
|
|
ldrh r1, [r5, 0x26]
|
|
movs r7, 0
|
|
strh r1, [r0]
|
|
ldrb r1, [r5, 0x10]
|
|
movs r0, 0x4
|
|
bl rfu_clearSlot
|
|
mov r4, sp
|
|
ldrb r0, [r5, 0x10]
|
|
movs r1, 0xE
|
|
bl rfu_NI_CHILD_setSendGameName
|
|
strb r0, [r4]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0800CC8A
|
|
strb r7, [r5, 0x5]
|
|
strb r7, [r5, 0x4]
|
|
bl sub_800D610
|
|
ldr r0, =gUnknown_03007890
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x2]
|
|
ldrb r0, [r0, 0x3]
|
|
orrs r0, r1
|
|
bl sub_800D334
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
strh r0, [r5, 0x14]
|
|
movs r0, 0x25
|
|
movs r1, 0x1
|
|
bl sub_800D30C
|
|
b _0800CC8A
|
|
.pool
|
|
_0800CC78:
|
|
cmp r6, 0
|
|
bne _0800CC8A
|
|
ldr r0, =gUnknown_03004140
|
|
strb r6, [r0, 0x5]
|
|
strb r6, [r0, 0x4]
|
|
movs r0, 0x42
|
|
movs r1, 0
|
|
bl sub_800D30C
|
|
_0800CC8A:
|
|
ldr r1, =gUnknown_03004140
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0xE]
|
|
b _0800CCE6
|
|
.pool
|
|
_0800CC98:
|
|
cmp r6, 0x3
|
|
bne _0800CCE6
|
|
ldrb r0, [r7, 0xF]
|
|
cmp r0, 0
|
|
beq _0800CCE6
|
|
mov r3, r8
|
|
cmp r3, 0x24
|
|
beq _0800CCB0
|
|
cmp r3, 0x26
|
|
beq _0800CCB0
|
|
cmp r3, 0x27
|
|
bne _0800CCE6
|
|
_0800CCB0:
|
|
bl rfu_REQ_RFUStatus
|
|
bl rfu_waitREQComplete
|
|
mov r0, sp
|
|
bl rfu_getRFUStatus
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0800CCE6
|
|
ldr r4, =gUnknown_03007890
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0800CCE6
|
|
bl rfu_getSTWIRecvBuffer
|
|
ldr r1, [r4]
|
|
ldrb r1, [r1, 0x2]
|
|
strb r1, [r0, 0x4]
|
|
movs r1, 0x1
|
|
strb r1, [r0, 0x5]
|
|
movs r0, 0x29
|
|
bl sub_800C36C
|
|
movs r6, 0
|
|
_0800CCE6:
|
|
mov r4, r8
|
|
cmp r4, 0x26
|
|
bne _0800CCEE
|
|
b _0800CE02
|
|
_0800CCEE:
|
|
cmp r4, 0x26
|
|
bgt _0800CD00
|
|
cmp r4, 0x10
|
|
bne _0800CCF8
|
|
b _0800CE20
|
|
_0800CCF8:
|
|
b _0800CE3E
|
|
.pool
|
|
_0800CD00:
|
|
mov r0, r8
|
|
cmp r0, 0x30
|
|
beq _0800CD0E
|
|
cmp r0, 0x3D
|
|
bne _0800CD0C
|
|
b _0800CE20
|
|
_0800CD0C:
|
|
b _0800CE3E
|
|
_0800CD0E:
|
|
cmp r6, 0
|
|
beq _0800CD14
|
|
b _0800CE42
|
|
_0800CD14:
|
|
bl rfu_getSTWIRecvBuffer
|
|
ldr r4, =gUnknown_03004140
|
|
ldrb r0, [r0, 0x8]
|
|
strh r0, [r4, 0x14]
|
|
bl sub_800D358
|
|
adds r2, r4, 0
|
|
adds r2, 0x30
|
|
ldrb r1, [r2]
|
|
cmp r1, 0
|
|
beq _0800CD6A
|
|
ldrb r0, [r4, 0x14]
|
|
adds r3, r1, 0
|
|
bics r3, r0
|
|
adds r0, r3, 0
|
|
strb r0, [r2]
|
|
movs r3, 0
|
|
adds r7, r4, 0
|
|
adds r1, r7, 0
|
|
movs r5, 0x1
|
|
adds r4, r1, 0
|
|
adds r4, 0x34
|
|
movs r2, 0
|
|
_0800CD44:
|
|
ldrh r0, [r1, 0x14]
|
|
asrs r0, r3
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0800CD54
|
|
lsls r0, r3, 1
|
|
adds r0, r4
|
|
strh r2, [r0]
|
|
_0800CD54:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x3
|
|
bls _0800CD44
|
|
ldr r1, =gUnknown_03004140
|
|
ldrb r0, [r1, 0x6]
|
|
cmp r0, 0
|
|
bne _0800CD6A
|
|
strb r0, [r1, 0x5]
|
|
strb r0, [r1, 0x4]
|
|
_0800CD6A:
|
|
mov r3, sp
|
|
ldr r1, =gUnknown_03004140
|
|
ldrb r2, [r1]
|
|
ldrb r0, [r1, 0x14]
|
|
ands r0, r2
|
|
strb r0, [r3]
|
|
movs r3, 0
|
|
adds r7, r1, 0
|
|
ldr r2, =gUnknown_03007890
|
|
mov r1, sp
|
|
movs r5, 0x1
|
|
adds r4, r7, 0
|
|
_0800CD82:
|
|
ldrb r0, [r1]
|
|
asrs r0, r3
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0800CD96
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
beq _0800CD96
|
|
subs r0, 0x1
|
|
strb r0, [r7, 0x1]
|
|
_0800CD96:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x3
|
|
bls _0800CD82
|
|
ldrb r1, [r7, 0x14]
|
|
ldrb r0, [r7]
|
|
bics r0, r1
|
|
strb r0, [r7]
|
|
ldrb r1, [r7, 0x7]
|
|
cmp r1, 0
|
|
beq _0800CDE0
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _0800CDF2
|
|
cmp r1, 0x8
|
|
bne _0800CDCC
|
|
ldrh r0, [r7, 0x1C]
|
|
strh r0, [r7, 0x1A]
|
|
movs r0, 0x6
|
|
strb r0, [r7, 0x7]
|
|
b _0800CDDE
|
|
.pool
|
|
_0800CDCC:
|
|
ldrb r0, [r7, 0x4]
|
|
subs r0, 0x6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bls _0800CDE0
|
|
movs r0, 0x1
|
|
strb r0, [r7, 0x7]
|
|
movs r0, 0x5
|
|
_0800CDDE:
|
|
strb r0, [r7, 0x4]
|
|
_0800CDE0:
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _0800CDF2
|
|
ldrb r0, [r7, 0x4]
|
|
cmp r0, 0
|
|
bne _0800CDF2
|
|
movs r0, 0xFF
|
|
strb r0, [r7, 0x6]
|
|
_0800CDF2:
|
|
ldrb r0, [r7, 0xE]
|
|
cmp r0, 0
|
|
bne _0800CE3E
|
|
movs r0, 0x40
|
|
movs r1, 0x1
|
|
bl sub_800D30C
|
|
b _0800CE3E
|
|
_0800CE02:
|
|
bl sub_800D20C
|
|
ldr r0, =gUnknown_03007890
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
beq _0800CE3E
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl sub_800D30C
|
|
b _0800CE3E
|
|
.pool
|
|
_0800CE20:
|
|
cmp r6, 0
|
|
bne _0800CE42
|
|
ldr r0, =gUnknown_03004140
|
|
strb r6, [r0, 0xD]
|
|
strb r6, [r0, 0x1]
|
|
strb r6, [r0]
|
|
movs r1, 0xFF
|
|
strb r1, [r0, 0x6]
|
|
bl sub_800D610
|
|
mov r4, r8
|
|
cmp r4, 0x3D
|
|
bne _0800CE3E
|
|
bl sub_800BFA0
|
|
_0800CE3E:
|
|
cmp r6, 0
|
|
beq _0800CE92
|
|
_0800CE42:
|
|
ldr r7, =gUnknown_03004140
|
|
mov r0, r8
|
|
cmp r0, 0x1C
|
|
bne _0800CE74
|
|
cmp r6, 0
|
|
beq _0800CE74
|
|
ldrb r0, [r7, 0x7]
|
|
cmp r0, 0x4
|
|
bne _0800CE74
|
|
ldr r2, =gUnknown_03007890
|
|
ldr r1, [r2]
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, [r2]
|
|
movs r0, 0xF
|
|
strb r0, [r1, 0x2]
|
|
bl sub_800D334
|
|
bl rfu_waitREQComplete
|
|
b _0800CEA4
|
|
.pool
|
|
_0800CE74:
|
|
movs r1, 0
|
|
mov r3, r8
|
|
strh r3, [r7, 0x14]
|
|
strh r6, [r7, 0x16]
|
|
ldrb r0, [r7, 0xE]
|
|
cmp r0, 0
|
|
beq _0800CE86
|
|
strb r1, [r7, 0x5]
|
|
strb r1, [r7, 0x4]
|
|
_0800CE86:
|
|
movs r0, 0xF0
|
|
movs r1, 0x2
|
|
bl sub_800D30C
|
|
bl sub_800D610
|
|
_0800CE92:
|
|
mov r4, r8
|
|
cmp r4, 0xFF
|
|
bne _0800CEA4
|
|
movs r0, 0xF2
|
|
movs r1, 0
|
|
bl sub_800D30C
|
|
bl sub_800D610
|
|
_0800CEA4:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800C7B4
|
|
|
|
thumb_func_start sub_800CEB0
|
|
sub_800CEB0: @ 800CEB0
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r4, =gUnknown_03004140
|
|
ldrb r7, [r4, 0xE]
|
|
movs r0, 0
|
|
strb r0, [r4, 0xE]
|
|
movs r0, 0x1
|
|
strb r0, [r4, 0xF]
|
|
ldr r0, =gUnknown_03007890
|
|
ldr r0, [r0]
|
|
ldrb r5, [r0]
|
|
cmp r5, 0
|
|
bne _0800CEEC
|
|
adds r0, r6, 0
|
|
bl sub_800C36C
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0x1
|
|
beq _0800CF04
|
|
bl sub_800D610
|
|
strb r5, [r4, 0xF]
|
|
strb r7, [r4, 0xE]
|
|
b _0800CF28
|
|
.pool
|
|
_0800CEEC:
|
|
mov r0, sp
|
|
bl rfu_UNI_PARENT_getDRAC_ACK
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _0800CF04
|
|
mov r1, sp
|
|
ldrb r0, [r4, 0x3]
|
|
ldrb r1, [r1]
|
|
orrs r0, r1
|
|
ldrb r1, [r4, 0x3]
|
|
strb r0, [r4, 0x3]
|
|
_0800CF04:
|
|
ldr r4, =gUnknown_03004140
|
|
ldr r1, [r4, 0x44]
|
|
cmp r1, 0
|
|
beq _0800CF20
|
|
adds r0, r6, 0
|
|
bl _call_via_r1
|
|
bl rfu_waitREQComplete
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0x2
|
|
bne _0800CF20
|
|
bl sub_800D610
|
|
_0800CF20:
|
|
ldr r1, =gUnknown_03004140
|
|
movs r0, 0
|
|
strb r0, [r1, 0xF]
|
|
strb r7, [r1, 0xE]
|
|
_0800CF28:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800CEB0
|
|
|
|
thumb_func_start sub_800CF34
|
|
sub_800CF34: @ 800CF34
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
ldr r1, =gUnknown_03004140
|
|
ldrb r0, [r1, 0x4]
|
|
subs r0, 0x5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r3, r1, 0
|
|
cmp r0, 0x3
|
|
bls _0800CF52
|
|
b _0800D146
|
|
_0800CF52:
|
|
ldr r0, =gUnknown_03007890
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x2]
|
|
ldrb r0, [r3, 0xC]
|
|
adds r4, r1, 0
|
|
eors r4, r0
|
|
ands r4, r1
|
|
ldrb r0, [r2, 0x7]
|
|
bics r4, r0
|
|
mov r8, r4
|
|
strb r1, [r3, 0xC]
|
|
cmp r4, 0
|
|
beq _0800CF7A
|
|
strh r4, [r3, 0x14]
|
|
movs r0, 0x10
|
|
movs r1, 0x1
|
|
str r3, [sp, 0x4]
|
|
bl sub_800D30C
|
|
ldr r3, [sp, 0x4]
|
|
_0800CF7A:
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r6, 0
|
|
adds r7, r3, 0
|
|
movs r1, 0x24
|
|
adds r1, r3
|
|
mov r9, r1
|
|
_0800CF88:
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
lsls r0, r6
|
|
lsrs r4, r0, 24
|
|
movs r5, 0
|
|
mov r0, r8
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0800CFDA
|
|
lsls r1, r6, 1
|
|
adds r0, r7, 0
|
|
adds r0, 0x28
|
|
adds r1, r0
|
|
ldrh r0, [r7, 0x26]
|
|
strh r0, [r1]
|
|
mov r2, r9
|
|
ldrb r1, [r2]
|
|
adds r0, r4, 0
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
adds r6, 0x1
|
|
mov r10, r6
|
|
b _0800D090
|
|
.pool
|
|
_0800CFC0:
|
|
ldrb r1, [r7]
|
|
adds r0, r4, 0
|
|
orrs r0, r1
|
|
strb r0, [r7]
|
|
ldrb r0, [r7, 0x1]
|
|
adds r0, 0x1
|
|
strb r0, [r7, 0x1]
|
|
ldr r0, [sp]
|
|
orrs r0, r4
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
orrs r5, r0
|
|
b _0800D024
|
|
_0800CFDA:
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
ands r0, r4
|
|
adds r2, r6, 0x1
|
|
mov r10, r2
|
|
cmp r0, 0
|
|
beq _0800D090
|
|
ldr r0, =gUnknown_03007880
|
|
lsls r1, r6, 2
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
ldrh r0, [r1, 0x34]
|
|
cmp r0, 0x46
|
|
bne _0800D040
|
|
adds r0, r1, 0
|
|
adds r0, 0x61
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0800D058
|
|
movs r5, 0x2
|
|
ldr r3, [r3, 0x20]
|
|
ldrh r2, [r3]
|
|
ldr r0, =0x0000ffff
|
|
cmp r2, r0
|
|
beq _0800D024
|
|
ldr r0, =gUnknown_03007890
|
|
ldr r0, [r0]
|
|
lsls r1, r6, 5
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x18]
|
|
ldr r1, =0x0000ffff
|
|
_0800D018:
|
|
cmp r0, r2
|
|
beq _0800CFC0
|
|
adds r3, 0x2
|
|
ldrh r2, [r3]
|
|
cmp r2, r1
|
|
bne _0800D018
|
|
_0800D024:
|
|
movs r0, 0x1
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _0800D058
|
|
movs r0, 0x4
|
|
orrs r5, r0
|
|
b _0800D058
|
|
.pool
|
|
_0800D040:
|
|
lsls r1, r6, 1
|
|
adds r0, r3, 0
|
|
adds r0, 0x28
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
ldr r1, =0x0000ffff
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0800D058
|
|
movs r5, 0x6
|
|
_0800D058:
|
|
movs r0, 0x2
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0800D07E
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
bics r0, r4
|
|
movs r2, 0
|
|
mov r1, r9
|
|
strb r0, [r1]
|
|
lsls r0, r6, 1
|
|
adds r1, r7, 0
|
|
adds r1, 0x28
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
movs r0, 0x8
|
|
adds r1, r6, 0
|
|
bl rfu_clearSlot
|
|
_0800D07E:
|
|
movs r0, 0x4
|
|
ands r5, r0
|
|
ldr r3, =gUnknown_03004140
|
|
cmp r5, 0
|
|
beq _0800D090
|
|
ldrb r1, [r7, 0xD]
|
|
adds r0, r4, 0
|
|
orrs r0, r1
|
|
strb r0, [r7, 0xD]
|
|
_0800D090:
|
|
mov r2, r10
|
|
lsls r0, r2, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x3
|
|
bhi _0800D09C
|
|
b _0800CF88
|
|
_0800D09C:
|
|
ldr r4, [sp]
|
|
cmp r4, 0
|
|
beq _0800D0AE
|
|
ldr r0, =gUnknown_03004140
|
|
strh r4, [r0, 0x14]
|
|
movs r0, 0x11
|
|
movs r1, 0x1
|
|
bl sub_800D30C
|
|
_0800D0AE:
|
|
ldr r1, =gUnknown_03004140
|
|
ldrb r0, [r1, 0xD]
|
|
cmp r0, 0
|
|
beq _0800D0EA
|
|
movs r5, 0x1
|
|
ldr r0, =gUnknown_03007890
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x6]
|
|
cmp r0, 0
|
|
beq _0800D0CE
|
|
ldrb r0, [r1, 0x3]
|
|
ldrb r1, [r1]
|
|
ands r0, r1
|
|
cmp r0, r1
|
|
beq _0800D0CE
|
|
movs r5, 0
|
|
_0800D0CE:
|
|
cmp r5, 0
|
|
beq _0800D0EA
|
|
ldr r4, =gUnknown_03004140
|
|
ldrb r0, [r4, 0xD]
|
|
bl sub_800D334
|
|
ldrb r0, [r4, 0xD]
|
|
movs r1, 0
|
|
strh r0, [r4, 0x14]
|
|
strb r1, [r4, 0xD]
|
|
movs r0, 0x12
|
|
movs r1, 0x1
|
|
bl sub_800D30C
|
|
_0800D0EA:
|
|
ldr r0, =gUnknown_03004140
|
|
adds r1, r0, 0
|
|
adds r1, 0x24
|
|
ldrb r1, [r1]
|
|
adds r3, r0, 0
|
|
cmp r1, 0
|
|
bne _0800D146
|
|
ldrb r0, [r3, 0x4]
|
|
cmp r0, 0x8
|
|
bne _0800D146
|
|
ldrb r0, [r3, 0x7]
|
|
cmp r0, 0
|
|
bne _0800D120
|
|
strb r0, [r3, 0x5]
|
|
strb r0, [r3, 0x4]
|
|
movs r0, 0x14
|
|
movs r1, 0
|
|
bl sub_800D30C
|
|
b _0800D146
|
|
.pool
|
|
_0800D120:
|
|
cmp r0, 0x2
|
|
bne _0800D12C
|
|
movs r0, 0x3
|
|
strb r0, [r3, 0x7]
|
|
movs r0, 0x9
|
|
b _0800D132
|
|
_0800D12C:
|
|
movs r0, 0x1
|
|
strb r0, [r3, 0x7]
|
|
movs r0, 0x5
|
|
_0800D132:
|
|
strb r0, [r3, 0x4]
|
|
ldrb r0, [r3]
|
|
cmp r0, 0
|
|
beq _0800D146
|
|
movs r0, 0
|
|
strh r0, [r3, 0x1A]
|
|
movs r0, 0x8
|
|
strb r0, [r3, 0x7]
|
|
movs r0, 0x5
|
|
strb r0, [r3, 0x4]
|
|
_0800D146:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800CF34
|
|
|
|
thumb_func_start sub_800D158
|
|
sub_800D158: @ 800D158
|
|
push {r4-r6,lr}
|
|
ldr r1, =0x04000208
|
|
ldrh r0, [r1]
|
|
adds r6, r0, 0
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r4, =gUnknown_03004140
|
|
ldrb r0, [r4, 0x4]
|
|
cmp r0, 0xF
|
|
bne _0800D1BC
|
|
ldrb r1, [r4, 0x10]
|
|
lsls r1, 1
|
|
adds r5, r4, 0
|
|
adds r5, 0x28
|
|
adds r1, r5
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _0800D192
|
|
ldr r1, =gUnknown_03007880
|
|
ldrb r0, [r4, 0x10]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x27
|
|
bne _0800D1BC
|
|
_0800D192:
|
|
bl sub_800D630
|
|
movs r0, 0x18
|
|
strb r0, [r4, 0x4]
|
|
ldrb r1, [r4, 0x10]
|
|
movs r0, 0x4
|
|
bl rfu_clearSlot
|
|
adds r2, r4, 0
|
|
adds r2, 0x24
|
|
movs r1, 0x1
|
|
ldrb r0, [r4, 0x10]
|
|
lsls r1, r0
|
|
ldrb r0, [r2]
|
|
bics r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r4, 0x10]
|
|
lsls r0, 1
|
|
adds r0, r5
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
_0800D1BC:
|
|
ldr r0, =0x04000208
|
|
strh r6, [r0]
|
|
ldr r5, =gUnknown_03004140
|
|
ldrb r0, [r5, 0x4]
|
|
cmp r0, 0x18
|
|
bne _0800D1F6
|
|
ldrb r0, [r5, 0x2]
|
|
cmp r0, 0x1
|
|
bne _0800D1D2
|
|
bl sub_800D630
|
|
_0800D1D2:
|
|
ldrb r0, [r5, 0x2]
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
bne _0800D1F6
|
|
strb r4, [r5, 0x5]
|
|
strb r4, [r5, 0x4]
|
|
ldr r0, =gUnknown_03007890
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x2]
|
|
ldrb r0, [r0, 0x3]
|
|
orrs r0, r1
|
|
bl sub_800D334
|
|
strh r4, [r5, 0x14]
|
|
movs r0, 0x25
|
|
movs r1, 0x1
|
|
bl sub_800D30C
|
|
_0800D1F6:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800D158
|
|
|
|
thumb_func_start sub_800D20C
|
|
sub_800D20C: @ 800D20C
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_03004140
|
|
ldrb r0, [r5, 0x4]
|
|
cmp r0, 0xF
|
|
bne _0800D258
|
|
ldr r1, =gUnknown_03007880
|
|
ldrb r2, [r5, 0x10]
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x26
|
|
bne _0800D258
|
|
movs r4, 0
|
|
strb r4, [r5, 0x5]
|
|
strb r4, [r5, 0x4]
|
|
movs r0, 0x4
|
|
adds r1, r2, 0
|
|
bl rfu_clearSlot
|
|
adds r2, r5, 0
|
|
adds r2, 0x24
|
|
movs r1, 0x1
|
|
ldrb r0, [r5, 0x10]
|
|
lsls r1, r0
|
|
ldrb r0, [r2]
|
|
bics r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r5, 0x10]
|
|
lsls r0, 1
|
|
adds r1, r5, 0
|
|
adds r1, 0x28
|
|
adds r0, r1
|
|
strh r4, [r0]
|
|
movs r0, 0x24
|
|
movs r1, 0
|
|
bl sub_800D30C
|
|
_0800D258:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800D20C
|
|
|
|
thumb_func_start sub_800D268
|
|
sub_800D268: @ 800D268
|
|
push {lr}
|
|
ldr r1, =gUnknown_03004140
|
|
ldrb r0, [r1, 0x6]
|
|
cmp r0, 0
|
|
bne _0800D28C
|
|
ldrb r0, [r1, 0xA]
|
|
cmp r0, 0x1
|
|
bne _0800D28C
|
|
ldrb r0, [r1, 0x4]
|
|
strb r0, [r1, 0x11]
|
|
ldrb r0, [r1, 0x5]
|
|
strb r0, [r1, 0x12]
|
|
movs r0, 0x10
|
|
strb r0, [r1, 0x4]
|
|
movs r0, 0x11
|
|
strb r0, [r1, 0x5]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0xA]
|
|
_0800D28C:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800D268
|
|
|
|
thumb_func_start sub_800D294
|
|
sub_800D294: @ 800D294
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r6, 0
|
|
movs r5, 0
|
|
ldr r1, =gUnknown_03007890
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r6, r0
|
|
bcs _0800D2F0
|
|
mov r8, r0
|
|
ldr r0, =gUnknown_03004140
|
|
mov r10, r0
|
|
mov r9, r1
|
|
_0800D2B4:
|
|
mov r1, r10
|
|
ldr r3, [r1, 0x20]
|
|
ldrh r2, [r3]
|
|
adds r0, r5, 0x1
|
|
mov r12, r0
|
|
ldr r1, =0x0000ffff
|
|
cmp r2, r1
|
|
beq _0800D2E6
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
lsls r1, r5, 5
|
|
adds r0, r1
|
|
ldrh r4, [r0, 0x18]
|
|
ldr r7, =0x0000ffff
|
|
movs r1, 0x1
|
|
lsls r1, r5
|
|
_0800D2D4:
|
|
cmp r4, r2
|
|
bne _0800D2DE
|
|
orrs r6, r1
|
|
lsls r0, r6, 24
|
|
lsrs r6, r0, 24
|
|
_0800D2DE:
|
|
adds r3, 0x2
|
|
ldrh r2, [r3]
|
|
cmp r2, r7
|
|
bne _0800D2D4
|
|
_0800D2E6:
|
|
mov r1, r12
|
|
lsls r0, r1, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, r8
|
|
bcc _0800D2B4
|
|
_0800D2F0:
|
|
adds r0, r6, 0
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_800D294
|
|
|
|
thumb_func_start sub_800D30C
|
|
sub_800D30C: @ 800D30C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r4, =gUnknown_03004140
|
|
ldr r2, [r4, 0x40]
|
|
cmp r2, 0
|
|
beq _0800D322
|
|
bl _call_via_r2
|
|
_0800D322:
|
|
movs r0, 0
|
|
strh r0, [r4, 0x16]
|
|
strh r0, [r4, 0x14]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800D30C
|
|
|
|
thumb_func_start sub_800D334
|
|
sub_800D334: @ 800D334
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, =gUnknown_03004140
|
|
ldrb r5, [r4, 0xE]
|
|
movs r1, 0x1
|
|
strb r1, [r4, 0xE]
|
|
bl rfu_REQ_disconnect
|
|
bl rfu_waitREQComplete
|
|
strb r5, [r4, 0xE]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800D334
|
|
|
|
thumb_func_start sub_800D358
|
|
sub_800D358: @ 800D358
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, =gUnknown_03007890
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
beq _0800D3A0
|
|
movs r4, 0
|
|
_0800D36A:
|
|
ldr r1, =gUnknown_03007880
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
ldrh r0, [r2]
|
|
movs r3, 0x80
|
|
lsls r3, 8
|
|
adds r1, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800D396
|
|
ldrb r1, [r2, 0x1A]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800D396
|
|
adds r2, r1, 0
|
|
bics r2, r5
|
|
movs r0, 0x20
|
|
adds r1, r4, 0
|
|
bl rfu_changeSendTarget
|
|
_0800D396:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x3
|
|
bls _0800D36A
|
|
_0800D3A0:
|
|
ldr r0, =gUnknown_03007890
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x5]
|
|
cmp r0, 0
|
|
beq _0800D3DE
|
|
movs r4, 0
|
|
_0800D3AC:
|
|
ldr r1, =gUnknown_03007880
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
ldrh r0, [r2, 0x34]
|
|
movs r3, 0x80
|
|
lsls r3, 8
|
|
adds r1, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800D3D4
|
|
adds r0, r2, 0
|
|
adds r0, 0x4E
|
|
ldrb r0, [r0]
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0800D3D4
|
|
adds r0, r4, 0
|
|
bl rfu_NI_stopReceivingData
|
|
_0800D3D4:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x3
|
|
bls _0800D3AC
|
|
_0800D3DE:
|
|
ldr r0, =gUnknown_03007890
|
|
ldr r3, [r0]
|
|
ldrb r2, [r3, 0x6]
|
|
cmp r2, 0
|
|
beq _0800D41C
|
|
mvns r1, r5
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
strb r0, [r3, 0x6]
|
|
movs r4, 0
|
|
ldr r7, =gUnknown_03007870
|
|
ldr r6, =0x00008024
|
|
_0800D3F6:
|
|
lsls r0, r4, 2
|
|
adds r0, r7
|
|
ldr r2, [r0]
|
|
ldrh r0, [r2]
|
|
cmp r0, r6
|
|
bne _0800D412
|
|
ldrb r3, [r2, 0x3]
|
|
adds r0, r5, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _0800D412
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
strb r0, [r2, 0x3]
|
|
_0800D412:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x3
|
|
bls _0800D3F6
|
|
_0800D41C:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800D358
|
|
|
|
thumb_func_start sub_800D434
|
|
sub_800D434: @ 800D434
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
ldr r0, =gUnknown_03004140
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0
|
|
beq _0800D510
|
|
ldr r0, =gUnknown_03007890
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
beq _0800D4D4
|
|
movs r6, 0
|
|
_0800D454:
|
|
ldr r3, =gUnknown_03007880
|
|
lsls r2, r6, 2
|
|
adds r0, r2, r3
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0]
|
|
movs r4, 0x80
|
|
lsls r4, 8
|
|
adds r0, r4, 0
|
|
ands r1, r0
|
|
adds r7, r2, 0
|
|
adds r0, r6, 0x1
|
|
mov r9, r0
|
|
cmp r1, 0
|
|
beq _0800D4CA
|
|
movs r5, 0
|
|
movs r4, 0
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
mov r10, r3
|
|
_0800D47A:
|
|
adds r0, r7, r3
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1A]
|
|
asrs r0, r4
|
|
mov r1, r8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800D4A4
|
|
lsls r0, r4, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
ldr r1, =gUnknown_03004140
|
|
ldrh r0, [r0, 0x2]
|
|
ldrh r1, [r1, 0x18]
|
|
cmp r0, r1
|
|
bls _0800D4A4
|
|
mov r0, r8
|
|
lsls r0, r4
|
|
orrs r5, r0
|
|
lsls r0, r5, 24
|
|
lsrs r5, r0, 24
|
|
_0800D4A4:
|
|
cmp r5, 0
|
|
beq _0800D4C0
|
|
mov r1, r10
|
|
adds r0, r7, r1
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1A]
|
|
adds r2, r5, 0
|
|
eors r2, r0
|
|
movs r0, 0x20
|
|
adds r1, r6, 0
|
|
str r3, [sp]
|
|
bl rfu_changeSendTarget
|
|
ldr r3, [sp]
|
|
_0800D4C0:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x3
|
|
bls _0800D47A
|
|
_0800D4CA:
|
|
mov r3, r9
|
|
lsls r0, r3, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x3
|
|
bls _0800D454
|
|
_0800D4D4:
|
|
ldr r0, =gUnknown_03007890
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x5]
|
|
cmp r0, 0
|
|
beq _0800D510
|
|
movs r6, 0
|
|
_0800D4E0:
|
|
ldr r1, =gUnknown_03007880
|
|
lsls r0, r6, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
ldrh r0, [r2, 0x34]
|
|
movs r4, 0x80
|
|
lsls r4, 8
|
|
adds r1, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800D506
|
|
ldr r1, =gUnknown_03004140
|
|
ldrh r0, [r2, 0x36]
|
|
ldrh r1, [r1, 0x18]
|
|
cmp r0, r1
|
|
bls _0800D506
|
|
adds r0, r6, 0
|
|
bl rfu_NI_stopReceivingData
|
|
_0800D506:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x3
|
|
bls _0800D4E0
|
|
_0800D510:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800D434
|
|
|
|
thumb_func_start sub_800D52C
|
|
sub_800D52C: @ 800D52C
|
|
push {lr}
|
|
ldr r1, =gUnknown_03004140
|
|
str r0, [r1, 0x44]
|
|
ldr r0, =sub_800CEB0
|
|
bl rfu_setMSCCallback
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800D52C
|
|
|
|
thumb_func_start sub_800D544
|
|
sub_800D544: @ 800D544
|
|
ldr r1, =gUnknown_03004140
|
|
str r0, [r1, 0x40]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_800D544
|
|
|
|
thumb_func_start sub_800D550
|
|
sub_800D550: @ 800D550
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 16
|
|
lsrs r5, r1, 16
|
|
ldr r0, =gUnknown_03004140
|
|
ldrb r1, [r0, 0x9]
|
|
adds r3, r0, 0
|
|
cmp r1, 0
|
|
beq _0800D578
|
|
cmp r4, 0
|
|
bne _0800D578
|
|
adds r0, 0x30
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0800D578
|
|
movs r0, 0x5
|
|
b _0800D588
|
|
.pool
|
|
_0800D578:
|
|
ldr r2, =0x04000208
|
|
ldrh r1, [r2]
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
strb r4, [r3, 0x9]
|
|
strh r5, [r3, 0x32]
|
|
strh r1, [r2]
|
|
movs r0, 0
|
|
_0800D588:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_800D550
|
|
|
|
thumb_func_start sub_800D594
|
|
sub_800D594: @ 800D594
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
ldr r0, =gUnknown_03007890
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x4]
|
|
ldrb r0, [r0, 0x5]
|
|
orrs r0, r1
|
|
cmp r0, 0
|
|
bne _0800D5B8
|
|
ldr r0, =gUnknown_03004140
|
|
strh r2, [r0, 0x18]
|
|
movs r0, 0
|
|
b _0800D5C8
|
|
.pool
|
|
_0800D5B8:
|
|
ldr r1, =gUnknown_03004140
|
|
movs r0, 0x6
|
|
strh r0, [r1, 0x14]
|
|
movs r0, 0xF3
|
|
movs r1, 0x1
|
|
bl sub_800D30C
|
|
movs r0, 0x6
|
|
_0800D5C8:
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_800D594
|
|
|
|
thumb_func_start sub_800D5D0
|
|
sub_800D5D0: @ 800D5D0
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
adds r3, r2, 0
|
|
ldr r1, =gUnknown_03004140
|
|
ldrb r0, [r1, 0x4]
|
|
subs r0, 0x9
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bhi _0800D5FC
|
|
movs r0, 0x7
|
|
strh r0, [r1, 0x14]
|
|
movs r0, 0xF3
|
|
movs r1, 0x1
|
|
bl sub_800D30C
|
|
movs r0, 0x7
|
|
b _0800D60A
|
|
.pool
|
|
_0800D5FC:
|
|
cmp r2, 0
|
|
beq _0800D606
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0xB]
|
|
b _0800D608
|
|
_0800D606:
|
|
strb r3, [r1, 0xB]
|
|
_0800D608:
|
|
movs r0, 0
|
|
_0800D60A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800D5D0
|
|
|
|
thumb_func_start sub_800D610
|
|
sub_800D610: @ 800D610
|
|
push {lr}
|
|
ldr r1, =gUnknown_03004140
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0
|
|
beq _0800D628
|
|
ldrb r0, [r1, 0x2]
|
|
movs r0, 0
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0x45
|
|
movs r1, 0
|
|
bl sub_800D30C
|
|
_0800D628:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800D610
|
|
|
|
thumb_func_start sub_800D630
|
|
sub_800D630: @ 800D630
|
|
push {lr}
|
|
ldr r1, =gUnknown_03004140
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0
|
|
bne _0800D648
|
|
movs r0, 0x45
|
|
movs r1, 0
|
|
bl sub_800D30C
|
|
b _0800D654
|
|
.pool
|
|
_0800D648:
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0x1
|
|
bne _0800D654
|
|
ldrb r0, [r1, 0x2]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x2]
|
|
_0800D654:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800D630
|
|
|
|
thumb_func_start sub_800D658
|
|
sub_800D658: @ 800D658
|
|
push {lr}
|
|
ldr r0, =gUnknown_03004140
|
|
ldrb r1, [r0, 0x7]
|
|
adds r2, r0, 0
|
|
cmp r1, 0
|
|
beq _0800D6C2
|
|
ldrb r0, [r2, 0x4]
|
|
subs r0, 0x5
|
|
cmp r0, 0x6
|
|
bhi _0800D6C2
|
|
lsls r0, 2
|
|
ldr r1, =_0800D680
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0800D680:
|
|
.4byte _0800D69C
|
|
.4byte _0800D6A4
|
|
.4byte _0800D6AE
|
|
.4byte _0800D6AE
|
|
.4byte _0800D6B4
|
|
.4byte _0800D6B4
|
|
.4byte _0800D6BA
|
|
_0800D69C:
|
|
movs r0, 0x3
|
|
strb r0, [r2, 0x7]
|
|
movs r0, 0x9
|
|
b _0800D6C0
|
|
_0800D6A4:
|
|
movs r0, 0x2
|
|
strb r0, [r2, 0x7]
|
|
movs r0, 0x1
|
|
strh r0, [r2, 0x1A]
|
|
b _0800D6C2
|
|
_0800D6AE:
|
|
movs r0, 0x2
|
|
strb r0, [r2, 0x7]
|
|
b _0800D6C2
|
|
_0800D6B4:
|
|
movs r0, 0x28
|
|
strh r0, [r2, 0x1A]
|
|
b _0800D6C2
|
|
_0800D6BA:
|
|
movs r0, 0x28
|
|
strh r0, [r2, 0x1A]
|
|
movs r0, 0xA
|
|
_0800D6C0:
|
|
strb r0, [r2, 0x4]
|
|
_0800D6C2:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800D658
|
|
|
|
thumb_func_start sub_800D6C8
|
|
sub_800D6C8: @ 800D6C8
|
|
push {r4,r5,lr}
|
|
adds r3, r0, 0
|
|
movs r0, 0
|
|
movs r4, 0
|
|
movs r5, 0x46
|
|
_0800D6D2:
|
|
adds r2, r0, 0x1
|
|
movs r1, 0x45
|
|
muls r0, r5
|
|
adds r0, r3
|
|
adds r0, 0x45
|
|
_0800D6DC:
|
|
strb r4, [r0]
|
|
subs r0, 0x1
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _0800D6DC
|
|
adds r0, r2, 0
|
|
cmp r0, 0x1F
|
|
ble _0800D6D2
|
|
movs r1, 0
|
|
ldr r2, =0x000008c1
|
|
adds r0, r3, r2
|
|
ldrb r2, [r0]
|
|
strb r1, [r0]
|
|
movs r2, 0x8C
|
|
lsls r2, 4
|
|
adds r0, r3, r2
|
|
ldrb r2, [r0]
|
|
strb r1, [r0]
|
|
ldr r2, =0x000008c2
|
|
adds r0, r3, r2
|
|
ldrb r2, [r0]
|
|
strb r1, [r0]
|
|
ldr r2, =0x000008c3
|
|
adds r0, r3, r2
|
|
ldrb r2, [r0]
|
|
strb r1, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800D6C8
|
|
|
|
thumb_func_start sub_800D724
|
|
sub_800D724: @ 800D724
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
movs r1, 0
|
|
movs r4, 0
|
|
_0800D72C:
|
|
lsls r0, r1, 3
|
|
adds r2, r1, 0x1
|
|
subs r0, r1
|
|
movs r1, 0xD
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
adds r0, 0xD
|
|
_0800D73A:
|
|
strb r4, [r0]
|
|
subs r0, 0x1
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _0800D73A
|
|
adds r1, r2, 0
|
|
cmp r1, 0x27
|
|
ble _0800D72C
|
|
movs r1, 0
|
|
ldr r2, =0x00000231
|
|
adds r0, r3, r2
|
|
ldrb r2, [r0]
|
|
strb r1, [r0]
|
|
movs r2, 0x8C
|
|
lsls r2, 2
|
|
adds r0, r3, r2
|
|
ldrb r2, [r0]
|
|
strb r1, [r0]
|
|
ldr r2, =0x00000232
|
|
adds r0, r3, r2
|
|
ldrb r2, [r0]
|
|
strb r1, [r0]
|
|
ldr r2, =0x00000233
|
|
adds r0, r3, r2
|
|
ldrb r2, [r0]
|
|
strb r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800D724
|
|
|
|
thumb_func_start sub_800D780
|
|
sub_800D780: @ 800D780
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
movs r1, 0
|
|
movs r4, 0
|
|
_0800D788:
|
|
lsls r0, r1, 8
|
|
adds r2, r1, 0x1
|
|
movs r1, 0xFF
|
|
adds r0, r3
|
|
adds r0, 0xFF
|
|
_0800D792:
|
|
strb r4, [r0]
|
|
subs r0, 0x1
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _0800D792
|
|
adds r1, r2, 0
|
|
cmp r1, 0x1
|
|
ble _0800D788
|
|
movs r1, 0
|
|
ldr r2, =0x00000201
|
|
adds r0, r3, r2
|
|
ldrb r2, [r0]
|
|
strb r1, [r0]
|
|
movs r2, 0x80
|
|
lsls r2, 2
|
|
adds r0, r3, r2
|
|
ldrb r2, [r0]
|
|
strb r1, [r0]
|
|
ldr r2, =0x00000202
|
|
adds r0, r3, r2
|
|
ldrb r2, [r0]
|
|
strb r1, [r0]
|
|
ldr r2, =0x00000203
|
|
adds r0, r3, r2
|
|
ldrb r2, [r0]
|
|
strb r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800D780
|
|
|
|
thumb_func_start sub_800D7D8
|
|
sub_800D7D8: @ 800D7D8
|
|
push {r4-r7,lr}
|
|
adds r3, r0, 0
|
|
adds r4, r1, 0
|
|
ldr r1, =0x000008c2
|
|
adds r0, r3, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1F
|
|
bhi _0800D874
|
|
ldr r0, =0x04000208
|
|
ldrh r1, [r0]
|
|
adds r7, r1, 0
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
movs r5, 0
|
|
movs r2, 0
|
|
_0800D7F6:
|
|
adds r1, r4, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0800D80A
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0
|
|
bne _0800D80A
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_0800D80A:
|
|
adds r2, 0xE
|
|
cmp r2, 0x45
|
|
ble _0800D7F6
|
|
cmp r5, 0x5
|
|
beq _0800D866
|
|
movs r2, 0
|
|
movs r0, 0x8C
|
|
lsls r0, 4
|
|
adds r5, r3, r0
|
|
movs r6, 0x46
|
|
_0800D81E:
|
|
ldrb r0, [r5]
|
|
adds r1, r0, 0
|
|
muls r1, r6
|
|
adds r1, r2, r1
|
|
adds r1, r3, r1
|
|
adds r0, r4, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r2, 0x1
|
|
cmp r2, 0x45
|
|
ble _0800D81E
|
|
movs r0, 0x8C
|
|
lsls r0, 4
|
|
adds r1, r3, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
ldrb r2, [r1]
|
|
strb r0, [r1]
|
|
ldrb r2, [r1]
|
|
movs r0, 0x1F
|
|
ands r0, r2
|
|
ldrb r2, [r1]
|
|
strb r0, [r1]
|
|
ldr r0, =0x000008c2
|
|
adds r1, r3, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
ldrb r2, [r1]
|
|
strb r0, [r1]
|
|
movs r1, 0
|
|
adds r0, r4, 0
|
|
adds r0, 0x45
|
|
_0800D85E:
|
|
strb r1, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r4
|
|
bge _0800D85E
|
|
_0800D866:
|
|
ldr r0, =0x04000208
|
|
strh r7, [r0]
|
|
b _0800D87E
|
|
.pool
|
|
_0800D874:
|
|
ldr r1, =0x000008c3
|
|
adds r0, r3, r1
|
|
ldrb r1, [r0]
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
_0800D87E:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800D7D8
|
|
|
|
thumb_func_start sub_800D888
|
|
sub_800D888: @ 800D888
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, =0x00000232
|
|
adds r0, r6, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x27
|
|
bhi _0800D920
|
|
ldr r1, =0x04000208
|
|
ldrh r0, [r1]
|
|
adds r7, r0, 0
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
movs r2, 0
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
bne _0800D8B8
|
|
_0800D8AA:
|
|
adds r2, 0x1
|
|
cmp r2, 0xD
|
|
bgt _0800D8B8
|
|
adds r0, r5, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0800D8AA
|
|
_0800D8B8:
|
|
cmp r2, 0xE
|
|
beq _0800D910
|
|
movs r2, 0
|
|
movs r0, 0x8C
|
|
lsls r0, 2
|
|
adds r3, r6, r0
|
|
_0800D8C4:
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 1
|
|
adds r0, r2, r0
|
|
adds r0, r6, r0
|
|
adds r1, r5, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0xD
|
|
ble _0800D8C4
|
|
movs r1, 0x8C
|
|
lsls r1, 2
|
|
adds r4, r6, r1
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
ldrb r1, [r4]
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x28
|
|
bl __umodsi3
|
|
ldrb r1, [r4]
|
|
strb r0, [r4]
|
|
ldr r0, =0x00000232
|
|
adds r1, r6, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
ldrb r2, [r1]
|
|
strb r0, [r1]
|
|
movs r1, 0
|
|
adds r0, r5, 0
|
|
adds r0, 0xD
|
|
_0800D908:
|
|
strb r1, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r5
|
|
bge _0800D908
|
|
_0800D910:
|
|
ldr r0, =0x04000208
|
|
strh r7, [r0]
|
|
b _0800D92A
|
|
.pool
|
|
_0800D920:
|
|
ldr r1, =0x00000233
|
|
adds r0, r6, r1
|
|
ldrb r1, [r0]
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
_0800D92A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800D888
|
|
|
|
thumb_func_start sub_800D934
|
|
sub_800D934: @ 800D934
|
|
push {r4-r7,lr}
|
|
adds r3, r0, 0
|
|
adds r4, r1, 0
|
|
ldr r1, =0x04000208
|
|
ldrh r0, [r1]
|
|
mov r12, r0
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
movs r1, 0x8C
|
|
lsls r1, 4
|
|
adds r0, r3, r1
|
|
ldr r7, =0x000008c1
|
|
adds r5, r3, r7
|
|
ldrb r1, [r0]
|
|
ldrb r0, [r5]
|
|
cmp r1, r0
|
|
beq _0800D960
|
|
ldr r1, =0x000008c3
|
|
adds r0, r3, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0800D984
|
|
_0800D960:
|
|
movs r1, 0
|
|
adds r0, r4, 0
|
|
adds r0, 0x45
|
|
_0800D966:
|
|
strb r1, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r4
|
|
bge _0800D966
|
|
ldr r0, =0x04000208
|
|
mov r7, r12
|
|
strh r7, [r0]
|
|
movs r0, 0
|
|
b _0800D9CA
|
|
.pool
|
|
_0800D984:
|
|
movs r2, 0
|
|
movs r6, 0x46
|
|
_0800D988:
|
|
adds r1, r4, r2
|
|
ldrb r0, [r5]
|
|
adds r7, r0, 0
|
|
muls r7, r6
|
|
adds r0, r7, 0
|
|
adds r0, r2, r0
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r2, 0x1
|
|
cmp r2, 0x45
|
|
ble _0800D988
|
|
ldr r0, =0x000008c1
|
|
adds r1, r3, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
ldrb r2, [r1]
|
|
strb r0, [r1]
|
|
ldrb r2, [r1]
|
|
movs r0, 0x1F
|
|
ands r0, r2
|
|
ldrb r2, [r1]
|
|
strb r0, [r1]
|
|
ldr r7, =0x000008c2
|
|
adds r1, r3, r7
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
ldrb r2, [r1]
|
|
strb r0, [r1]
|
|
ldr r0, =0x04000208
|
|
mov r1, r12
|
|
strh r1, [r0]
|
|
movs r0, 0x1
|
|
_0800D9CA:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_800D934
|
|
|
|
thumb_func_start sub_800D9DC
|
|
sub_800D9DC: @ 800D9DC
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r1, 0x8C
|
|
lsls r1, 2
|
|
adds r0, r5, r1
|
|
adds r1, 0x1
|
|
adds r4, r5, r1
|
|
ldrb r1, [r0]
|
|
ldrb r0, [r4]
|
|
cmp r1, r0
|
|
beq _0800DA00
|
|
ldr r1, =0x00000233
|
|
adds r0, r5, r1
|
|
ldrb r0, [r0]
|
|
adds r2, r0, 0
|
|
cmp r2, 0
|
|
beq _0800DA08
|
|
_0800DA00:
|
|
movs r0, 0
|
|
b _0800DA54
|
|
.pool
|
|
_0800DA08:
|
|
ldr r1, =0x04000208
|
|
ldrh r0, [r1]
|
|
adds r7, r0, 0
|
|
strh r2, [r1]
|
|
movs r3, 0
|
|
_0800DA12:
|
|
adds r2, r6, r3
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 1
|
|
adds r0, r3, r0
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0xD
|
|
ble _0800DA12
|
|
ldr r0, =0x00000231
|
|
adds r4, r5, r0
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
ldrb r1, [r4]
|
|
strb r0, [r4]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x28
|
|
bl __umodsi3
|
|
ldrb r1, [r4]
|
|
strb r0, [r4]
|
|
ldr r0, =0x00000232
|
|
adds r1, r5, r0
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
ldrb r2, [r1]
|
|
strb r0, [r1]
|
|
ldr r0, =0x04000208
|
|
strh r7, [r0]
|
|
movs r0, 0x1
|
|
_0800DA54:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_800D9DC
|
|
|
|
thumb_func_start sub_800DA68
|
|
sub_800DA68: @ 800DA68
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
adds r4, r1, 0
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
bne _0800DA7E
|
|
adds r0, r2, 0
|
|
movs r1, 0
|
|
bl sub_800DAC8
|
|
b _0800DAC0
|
|
_0800DA7E:
|
|
movs r3, 0
|
|
_0800DA80:
|
|
ldrb r1, [r2, 0x1C]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 1
|
|
adds r0, r3, r0
|
|
adds r0, r2, r0
|
|
adds r1, r4, r3
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r3, 0x1
|
|
cmp r3, 0xD
|
|
ble _0800DA80
|
|
ldrb r0, [r2, 0x1C]
|
|
adds r0, 0x1
|
|
ldrb r1, [r2, 0x1C]
|
|
strb r0, [r2, 0x1C]
|
|
ldrb r1, [r2, 0x1C]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
ldrb r1, [r2, 0x1C]
|
|
strb r0, [r2, 0x1C]
|
|
ldrb r0, [r2, 0x1E]
|
|
cmp r0, 0x1
|
|
bhi _0800DABA
|
|
ldrb r0, [r2, 0x1E]
|
|
adds r0, 0x1
|
|
ldrb r1, [r2, 0x1E]
|
|
strb r0, [r2, 0x1E]
|
|
b _0800DAC0
|
|
_0800DABA:
|
|
ldrb r0, [r2, 0x1C]
|
|
ldrb r1, [r2, 0x1D]
|
|
strb r0, [r2, 0x1D]
|
|
_0800DAC0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800DA68
|
|
|
|
thumb_func_start sub_800DAC8
|
|
sub_800DAC8: @ 800DAC8
|
|
push {r4,r5,lr}
|
|
adds r3, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r0, [r3, 0x1E]
|
|
cmp r0, 0
|
|
bne _0800DAD8
|
|
movs r0, 0
|
|
b _0800DB12
|
|
_0800DAD8:
|
|
cmp r5, 0
|
|
beq _0800DAF6
|
|
movs r4, 0
|
|
_0800DADE:
|
|
adds r2, r5, r4
|
|
ldrb r1, [r3, 0x1D]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 1
|
|
adds r0, r4, r0
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
adds r4, 0x1
|
|
cmp r4, 0xD
|
|
ble _0800DADE
|
|
_0800DAF6:
|
|
ldrb r0, [r3, 0x1D]
|
|
adds r0, 0x1
|
|
ldrb r1, [r3, 0x1D]
|
|
strb r0, [r3, 0x1D]
|
|
ldrb r1, [r3, 0x1D]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
ldrb r1, [r3, 0x1D]
|
|
strb r0, [r3, 0x1D]
|
|
ldrb r0, [r3, 0x1E]
|
|
subs r0, 0x1
|
|
ldrb r1, [r3, 0x1E]
|
|
strb r0, [r3, 0x1E]
|
|
movs r0, 0x1
|
|
_0800DB12:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800DAC8
|
|
|
|
thumb_func_start sub_800DB18
|
|
sub_800DB18: @ 800DB18
|
|
push {r4,r5,lr}
|
|
adds r3, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, =0x00000202
|
|
adds r0, r3, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bhi _0800DB70
|
|
movs r2, 0
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
adds r4, r3, r0
|
|
_0800DB30:
|
|
ldrb r0, [r4]
|
|
lsls r0, 8
|
|
adds r0, r2, r0
|
|
adds r0, r3, r0
|
|
adds r1, r5, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0xFF
|
|
ble _0800DB30
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
adds r1, r3, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
ldrb r2, [r1]
|
|
strb r0, [r1]
|
|
ldrb r2, [r1]
|
|
movs r0, 0x1
|
|
ands r0, r2
|
|
ldrb r2, [r1]
|
|
strb r0, [r1]
|
|
ldr r0, =0x00000202
|
|
adds r1, r3, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
ldrb r2, [r1]
|
|
strb r0, [r1]
|
|
b _0800DB7A
|
|
.pool
|
|
_0800DB70:
|
|
ldr r1, =0x00000203
|
|
adds r0, r3, r1
|
|
ldrb r1, [r0]
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
_0800DB7A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800DB18
|
|
|
|
thumb_func_start sub_800DB84
|
|
sub_800DB84: @ 800DB84
|
|
push {r4,r5,lr}
|
|
adds r3, r0, 0
|
|
adds r5, r1, 0
|
|
movs r1, 0x80
|
|
lsls r1, 2
|
|
adds r0, r3, r1
|
|
adds r1, 0x1
|
|
adds r4, r3, r1
|
|
ldrb r1, [r0]
|
|
ldrb r0, [r4]
|
|
cmp r1, r0
|
|
beq _0800DBA6
|
|
ldr r1, =0x00000203
|
|
adds r0, r3, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0800DBB0
|
|
_0800DBA6:
|
|
movs r0, 0
|
|
b _0800DBEA
|
|
.pool
|
|
_0800DBB0:
|
|
movs r2, 0
|
|
_0800DBB2:
|
|
adds r0, r5, r2
|
|
ldrb r1, [r4]
|
|
lsls r1, 8
|
|
adds r1, r2, r1
|
|
adds r1, r3, r1
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0xFF
|
|
ble _0800DBB2
|
|
ldr r0, =0x00000201
|
|
adds r1, r3, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
ldrb r2, [r1]
|
|
strb r0, [r1]
|
|
ldrb r2, [r1]
|
|
movs r0, 0x1
|
|
ands r0, r2
|
|
ldrb r2, [r1]
|
|
strb r0, [r1]
|
|
ldr r0, =0x00000202
|
|
adds r1, r3, r0
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
ldrb r2, [r1]
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
_0800DBEA:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_800DB84
|
|
|
|
thumb_func_start sub_800DBF8
|
|
sub_800DBF8: @ 800DBF8
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r1, 0
|
|
movs r5, 0
|
|
cmp r1, 0x1
|
|
beq _0800DC36
|
|
cmp r1, 0x1
|
|
bgt _0800DC12
|
|
cmp r1, 0
|
|
beq _0800DC1C
|
|
b _0800DCAA
|
|
_0800DC12:
|
|
cmp r0, 0x2
|
|
beq _0800DC56
|
|
cmp r0, 0x3
|
|
beq _0800DC76
|
|
b _0800DCAA
|
|
_0800DC1C:
|
|
movs r4, 0
|
|
_0800DC1E:
|
|
adds r0, r6, r4
|
|
adds r1, r4, 0x1
|
|
strb r1, [r0]
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r4, r1, 0
|
|
cmp r4, 0xC7
|
|
ble _0800DC1E
|
|
b _0800DC70
|
|
_0800DC36:
|
|
movs r4, 0
|
|
adds r2, r6, 0
|
|
adds r2, 0xC8
|
|
_0800DC3C:
|
|
adds r0, r6, r4
|
|
adds r1, r4, 0x1
|
|
strb r1, [r0]
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r4, r1, 0
|
|
cmp r4, 0x63
|
|
ble _0800DC3C
|
|
strh r5, [r2]
|
|
b _0800DCAA
|
|
_0800DC56:
|
|
movs r4, 0
|
|
_0800DC58:
|
|
bl Random
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r6, r4
|
|
strb r0, [r1]
|
|
adds r0, r5, r0
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r4, 0x1
|
|
cmp r4, 0xC7
|
|
ble _0800DC58
|
|
_0800DC70:
|
|
adds r0, r6, r4
|
|
strh r5, [r0]
|
|
b _0800DCAA
|
|
_0800DC76:
|
|
movs r4, 0
|
|
ldr r3, =gUnknown_03000D74
|
|
ldrb r1, [r3]
|
|
ldrb r0, [r3]
|
|
adds r7, r0, 0x1
|
|
adds r2, r1, 0x1
|
|
movs r0, 0xFF
|
|
mov r12, r0
|
|
_0800DC86:
|
|
adds r0, r6, r4
|
|
adds r1, r4, 0x1
|
|
strb r2, [r0]
|
|
adds r0, r4, r7
|
|
mov r4, r12
|
|
ands r0, r4
|
|
adds r0, r5, r0
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r2, 0x1
|
|
adds r4, r1, 0
|
|
cmp r1, 0xC7
|
|
ble _0800DC86
|
|
adds r0, r6, r1
|
|
strh r5, [r0]
|
|
ldrb r0, [r3]
|
|
adds r0, 0x1
|
|
strb r0, [r3]
|
|
_0800DCAA:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_800DBF8
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|