mirror of
https://github.com/pret/pokediamond.git
synced 2026-03-21 17:54:29 -05:00
6084 lines
111 KiB
ArmAsm
6084 lines
111 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
|
|
.extern FX_SinCosTable_
|
|
|
|
.section .rodata
|
|
|
|
.global UNK_020ECF9C
|
|
UNK_020ECF9C: ; 0x020ECF9C
|
|
.byte 0x00, 0xC0, 0x00
|
|
|
|
.global UNK_020ECF9F
|
|
UNK_020ECF9F: ; 0x020ECF9F
|
|
.byte 0x00, 0xC0, 0x01
|
|
|
|
.global UNK_020ECFA2
|
|
UNK_020ECFA2: ; 0x020ECFA2
|
|
.byte 0xC0, 0x00, 0x00
|
|
|
|
.global UNK_020ECFA5
|
|
UNK_020ECFA5: ; 0x020ECFA5
|
|
.byte 0xC0, 0x00, 0x01
|
|
|
|
.global UNK_020ECFA8
|
|
UNK_020ECFA8: ; 0x020ECFA8
|
|
.byte 0x60, 0x00, 0x01, 0x60, 0xC0, 0x01
|
|
|
|
.global UNK_020ECFAE
|
|
UNK_020ECFAE: ; 0x020ECFAE
|
|
.byte 0x00, 0x5E, 0x01, 0xC0, 0x62, 0x01
|
|
|
|
.global UNK_020ECFB4
|
|
UNK_020ECFB4: ; 0x020ECFB4
|
|
.byte 0x00, 0x60, 0x00, 0xC0, 0x60, 0x00
|
|
|
|
.global UNK_020ECFBA
|
|
UNK_020ECFBA: ; 0x020ECFBA
|
|
.byte 0x5E, 0x00, 0x00, 0x62, 0xC0, 0x00
|
|
|
|
.global UNK_020ECFC0
|
|
UNK_020ECFC0: ; 0x020ECFC0
|
|
.byte 0x00, 0x60, 0x01, 0xC0, 0x60, 0x01
|
|
|
|
.global UNK_020ECFC6
|
|
UNK_020ECFC6: ; 0x020ECFC6
|
|
.byte 0x60, 0x00, 0x00, 0x60, 0xC0, 0x00
|
|
|
|
.global UNK_020ECFCC
|
|
UNK_020ECFCC: ; 0x020ECFCC
|
|
.byte 0x40, 0x00, 0x00, 0x80, 0x40, 0x00, 0xC0, 0x80, 0x00
|
|
|
|
.global UNK_020ECFD5
|
|
UNK_020ECFD5: ; 0x020ECFD5
|
|
.byte 0x00, 0x40, 0x01, 0x40, 0x80, 0x01, 0x80, 0xC0, 0x01, 0x00, 0x00
|
|
|
|
.global UNK_020ECFE0
|
|
UNK_020ECFE0: ; 0x020ECFE0
|
|
.byte 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x20, 0x01
|
|
|
|
.global UNK_020ECFEC
|
|
UNK_020ECFEC: ; 0x020ECFEC
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x20, 0x00
|
|
|
|
.global UNK_020ECFF8
|
|
UNK_020ECFF8: ; 0x020ECFF8
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x49, 0x7F, 0x00, 0x00, 0x20, 0x3F, 0x01, 0x00
|
|
|
|
.global UNK_020ED004
|
|
UNK_020ED004: ; 0x020ED004
|
|
.byte 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x20, 0x01
|
|
|
|
.global UNK_020ED010
|
|
UNK_020ED010: ; 0x020ED010
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x20, 0x00
|
|
|
|
.global UNK_020ED01C
|
|
UNK_020ED01C: ; 0x020ED01C
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0x1F, 0x00, 0x00, 0x3F, 0x20, 0x01, 0x00
|
|
|
|
.global UNK_020ED028
|
|
UNK_020ED028: ; 0x020ED028
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0x1F, 0x00, 0x00, 0x20, 0x3F, 0x00, 0x00
|
|
|
|
.global UNK_020ED034
|
|
UNK_020ED034: ; 0x020ED034
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x49, 0x7F, 0x00, 0x00, 0x3F, 0x20, 0x00, 0x00
|
|
|
|
.global UNK_020ED040
|
|
UNK_020ED040: ; 0x020ED040
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x60, 0x00, 0x00, 0x3F, 0x20, 0x00
|
|
|
|
.global UNK_020ED050
|
|
UNK_020ED050: ; 0x020ED050
|
|
.byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x20, 0x01, 0x00, 0x3F, 0x20, 0x01
|
|
|
|
.global UNK_020ED060
|
|
UNK_020ED060: ; 0x020ED060
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x20, 0x01, 0x00, 0x3F, 0x20, 0x00
|
|
|
|
.global UNK_020ED070
|
|
UNK_020ED070: ; 0x020ED070
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0xB0, 0xFF, 0x00, 0x3F, 0x20, 0x00
|
|
|
|
.global UNK_020ED080
|
|
UNK_020ED080: ; 0x020ED080
|
|
.byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xB0, 0xFF, 0x00, 0x3F, 0x20, 0x01
|
|
|
|
.global UNK_020ED090
|
|
UNK_020ED090: ; 0x020ED090
|
|
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x60, 0x00, 0x00, 0x3F, 0x20, 0x01
|
|
|
|
.global UNK_020ED0A0
|
|
UNK_020ED0A0: ; 0x020ED0A0
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x3F, 0x20, 0x01
|
|
|
|
.global UNK_020ED0C4
|
|
UNK_020ED0C4: ; 0x020ED0C4
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x3F, 0x20, 0x00
|
|
|
|
.global UNK_020ED0E8
|
|
UNK_020ED0E8: ; 0x020ED0E8
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x3F, 0x20, 0x01
|
|
|
|
.global UNK_020ED10C
|
|
UNK_020ED10C: ; 0x020ED10C
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x20, 0x3F, 0x01
|
|
|
|
.global UNK_020ED130
|
|
UNK_020ED130: ; 0x020ED130
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x20, 0x3F, 0x01
|
|
|
|
.global UNK_020ED154
|
|
UNK_020ED154: ; 0x020ED154
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x3F, 0x20, 0x00
|
|
|
|
.global UNK_020ED178
|
|
UNK_020ED178: ; 0x020ED178
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x20, 0x3F, 0x00
|
|
|
|
.global UNK_020ED19C
|
|
UNK_020ED19C: ; 0x020ED19C
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x20, 0x3F, 0x00
|
|
|
|
.global UNK_020ED1C0
|
|
UNK_020ED1C0: ; 0x020ED1C0
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x3F, 0x20, 0x01
|
|
|
|
.global UNK_020ED1E4
|
|
UNK_020ED1E4: ; 0x020ED1E4
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x3F, 0x20, 0x00
|
|
|
|
.global UNK_020ED208
|
|
UNK_020ED208: ; 0x020ED208
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x20, 0x3F, 0x01
|
|
|
|
.global UNK_020ED22C
|
|
UNK_020ED22C: ; 0x020ED22C
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x20, 0x3F, 0x01
|
|
|
|
.global UNK_020ED250
|
|
UNK_020ED250: ; 0x020ED250
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x20, 0x3F, 0x00
|
|
|
|
.global UNK_020ED274
|
|
UNK_020ED274: ; 0x020ED274
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x20, 0x3F, 0x00
|
|
|
|
.global UNK_020ED298
|
|
UNK_020ED298: ; 0x020ED298
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020ED2D8
|
|
UNK_020ED2D8: ; 0x020ED2D8
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00
|
|
.byte 0xFF, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00
|
|
.byte 0xFF, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020ED318
|
|
UNK_020ED318: ; 0x020ED318
|
|
.byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
|
|
.byte 0xFF, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_020ED358
|
|
UNK_020ED358: ; 0x020ED358
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00
|
|
|
|
.section .data
|
|
|
|
.global UNK_02105AF8
|
|
UNK_02105AF8: ; 0x02105AF8
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00
|
|
|
|
.global UNK_02105B00
|
|
UNK_02105B00: ; 0x02105B00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_02105B08
|
|
UNK_02105B08: ; 0x02105B08
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00
|
|
|
|
.global UNK_02105B10
|
|
UNK_02105B10: ; 0x02105B10
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_02105B18
|
|
UNK_02105B18: ; 0x02105B18
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00
|
|
|
|
.global UNK_02105B20
|
|
UNK_02105B20: ; 0x02105B20
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_02105B28
|
|
UNK_02105B28: ; 0x02105B28
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00
|
|
|
|
.global UNK_02105B30
|
|
UNK_02105B30: ; 0x02105B30
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_02105B38
|
|
UNK_02105B38: ; 0x02105B38
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
|
|
.global UNK_02105B40
|
|
UNK_02105B40: ; 0x02105B40
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00
|
|
|
|
.global UNK_02105B48
|
|
UNK_02105B48: ; 0x02105B48
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x3F, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x33, 0x0B, 0x00, 0x00
|
|
|
|
.global UNK_02105B78
|
|
UNK_02105B78: ; 0x02105B78
|
|
.byte 0x80, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x3F, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x33, 0x0B, 0x00, 0x00
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_0200E850
|
|
sub_0200E850: ; 0x0200E850
|
|
push {r3, lr}
|
|
ldr r1, [r0, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200E866
|
|
mov r1, #0x1
|
|
str r1, [r0, #0x28]
|
|
str r1, [r0, #0x2c]
|
|
bl sub_0200F20C
|
|
mov r0, #0x0
|
|
pop {r3, pc}
|
|
_0200E866:
|
|
bl sub_0200F2AC
|
|
pop {r3, pc}
|
|
|
|
thumb_func_start sub_0200E86C
|
|
sub_0200E86C: ; 0x0200E86C
|
|
push {r3, lr}
|
|
ldr r1, [r0, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200E884
|
|
mov r1, #0x0
|
|
str r1, [r0, #0x28]
|
|
mov r2, #0x1
|
|
str r2, [r0, #0x2c]
|
|
bl sub_0200F20C
|
|
mov r0, #0x0
|
|
pop {r3, pc}
|
|
_0200E884:
|
|
bl sub_0200F2AC
|
|
pop {r3, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0200E88C
|
|
sub_0200E88C: ; 0x0200E88C
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200E8B4
|
|
ldr r1, _0200E8BC ; =UNK_020ECF9F
|
|
ldr r0, _0200E8C0 ; =UNK_02105AF8
|
|
str r1, [r0, #0x30]
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200E8C4 ; =UNK_02105B28
|
|
add r0, r4, #0x0
|
|
bl sub_02010F2C
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200E8B4:
|
|
bl sub_02010F70
|
|
pop {r4, pc}
|
|
nop
|
|
_0200E8BC: .word UNK_020ECF9F
|
|
_0200E8C0: .word UNK_02105AF8
|
|
_0200E8C4: .word UNK_02105B28
|
|
|
|
thumb_func_start sub_0200E8C8
|
|
sub_0200E8C8: ; 0x0200E8C8
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200E8EE
|
|
ldr r1, _0200E8F4 ; =UNK_020ECF9C
|
|
ldr r0, _0200E8F8 ; =UNK_02105AF8
|
|
str r1, [r0, #0x40]
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200E8FC ; =UNK_02105B38
|
|
add r0, r4, #0x0
|
|
bl sub_02010F2C
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200E8EE:
|
|
bl sub_02010F70
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_0200E8F4: .word UNK_020ECF9C
|
|
_0200E8F8: .word UNK_02105AF8
|
|
_0200E8FC: .word UNK_02105B38
|
|
|
|
thumb_func_start sub_0200E900
|
|
sub_0200E900: ; 0x0200E900
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200E928
|
|
ldr r1, _0200E930 ; =UNK_020ECFA5
|
|
ldr r0, _0200E934 ; =UNK_02105AF8
|
|
str r1, [r0, #0x48]
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200E938 ; =UNK_02105B40
|
|
add r0, r4, #0x0
|
|
bl sub_02010F2C
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200E928:
|
|
bl sub_02010F70
|
|
pop {r4, pc}
|
|
nop
|
|
_0200E930: .word UNK_020ECFA5
|
|
_0200E934: .word UNK_02105AF8
|
|
_0200E938: .word UNK_02105B40
|
|
|
|
thumb_func_start sub_0200E93C
|
|
sub_0200E93C: ; 0x0200E93C
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200E962
|
|
ldr r1, _0200E968 ; =UNK_020ECFA2
|
|
ldr r0, _0200E96C ; =UNK_02105AF8
|
|
str r1, [r0, #0x38]
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200E970 ; =UNK_02105B30
|
|
add r0, r4, #0x0
|
|
bl sub_02010F2C
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200E962:
|
|
bl sub_02010F70
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_0200E968: .word UNK_020ECFA2
|
|
_0200E96C: .word UNK_02105AF8
|
|
_0200E970: .word UNK_02105B30
|
|
|
|
thumb_func_start sub_0200E974
|
|
sub_0200E974: ; 0x0200E974
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200E996
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200E99C ; =UNK_020ED0E8
|
|
add r0, r4, #0x0
|
|
bl sub_0200FCC8
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200E996:
|
|
bl sub_0200FD1C
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_0200E99C: .word UNK_020ED0E8
|
|
|
|
thumb_func_start sub_0200E9A0
|
|
sub_0200E9A0: ; 0x0200E9A0
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200E9C0
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200E9C8 ; =UNK_020ED154
|
|
add r0, r4, #0x0
|
|
bl sub_0200FCC8
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200E9C0:
|
|
bl sub_0200FD1C
|
|
pop {r4, pc}
|
|
nop
|
|
_0200E9C8: .word UNK_020ED154
|
|
|
|
thumb_func_start sub_0200E9CC
|
|
sub_0200E9CC: ; 0x0200E9CC
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200E9F4
|
|
ldr r1, _0200E9FC ; =UNK_020ECFC0
|
|
ldr r0, _0200EA00 ; =UNK_02105AF8
|
|
str r1, [r0, #0x20]
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200EA04 ; =UNK_02105B18
|
|
add r0, r4, #0x0
|
|
bl sub_02010F2C
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200E9F4:
|
|
bl sub_02010F70
|
|
pop {r4, pc}
|
|
nop
|
|
_0200E9FC: .word UNK_020ECFC0
|
|
_0200EA00: .word UNK_02105AF8
|
|
_0200EA04: .word UNK_02105B18
|
|
|
|
thumb_func_start sub_0200EA08
|
|
sub_0200EA08: ; 0x0200EA08
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EA2E
|
|
ldr r1, _0200EA34 ; =UNK_020ECFC6
|
|
ldr r0, _0200EA38 ; =UNK_02105AF8
|
|
str r1, [r0, #0x28]
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200EA3C ; =UNK_02105B20
|
|
add r0, r4, #0x0
|
|
bl sub_02010F2C
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200EA2E:
|
|
bl sub_02010F70
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_0200EA34: .word UNK_020ECFC6
|
|
_0200EA38: .word UNK_02105AF8
|
|
_0200EA3C: .word UNK_02105B20
|
|
|
|
thumb_func_start sub_0200EA40
|
|
sub_0200EA40: ; 0x0200EA40
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EA68
|
|
ldr r1, _0200EA70 ; =UNK_020ECFA8
|
|
ldr r0, _0200EA74 ; =UNK_02105AF8
|
|
str r1, [r0, #0x10]
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200EA78 ; =UNK_02105B08
|
|
add r0, r4, #0x0
|
|
bl sub_02010F2C
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200EA68:
|
|
bl sub_02010F70
|
|
pop {r4, pc}
|
|
nop
|
|
_0200EA70: .word UNK_020ECFA8
|
|
_0200EA74: .word UNK_02105AF8
|
|
_0200EA78: .word UNK_02105B08
|
|
|
|
thumb_func_start sub_0200EA7C
|
|
sub_0200EA7C: ; 0x0200EA7C
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EAA2
|
|
ldr r1, _0200EAA8 ; =UNK_020ECFB4
|
|
ldr r0, _0200EAAC ; =UNK_02105AF8
|
|
str r1, [r0, #0x18]
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200EAB0 ; =UNK_02105B10
|
|
add r0, r4, #0x0
|
|
bl sub_02010F2C
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200EAA2:
|
|
bl sub_02010F70
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_0200EAA8: .word UNK_020ECFB4
|
|
_0200EAAC: .word UNK_02105AF8
|
|
_0200EAB0: .word UNK_02105B10
|
|
|
|
thumb_func_start sub_0200EAB4
|
|
sub_0200EAB4: ; 0x0200EAB4
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EAD6
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200EADC ; =UNK_020ED1C0
|
|
add r0, r4, #0x0
|
|
bl sub_0200FCC8
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200EAD6:
|
|
bl sub_0200FD1C
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_0200EADC: .word UNK_020ED1C0
|
|
|
|
thumb_func_start sub_0200EAE0
|
|
sub_0200EAE0: ; 0x0200EAE0
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EB00
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200EB08 ; =UNK_020ED1E4
|
|
add r0, r4, #0x0
|
|
bl sub_0200FCC8
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200EB00:
|
|
bl sub_0200FD1C
|
|
pop {r4, pc}
|
|
nop
|
|
_0200EB08: .word UNK_020ED1E4
|
|
|
|
thumb_func_start sub_0200EB0C
|
|
sub_0200EB0C: ; 0x0200EB0C
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EB30
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200EB38 ; =UNK_020ED208
|
|
ldr r2, _0200EB3C ; =UNK_020ED22C
|
|
add r0, r4, #0x0
|
|
bl sub_0200FD6C
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200EB30:
|
|
bl sub_0200FDC4
|
|
pop {r4, pc}
|
|
nop
|
|
_0200EB38: .word UNK_020ED208
|
|
_0200EB3C: .word UNK_020ED22C
|
|
|
|
thumb_func_start sub_0200EB40
|
|
sub_0200EB40: ; 0x0200EB40
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EB62
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200EB68 ; =UNK_020ED250
|
|
ldr r2, _0200EB6C ; =UNK_020ED274
|
|
add r0, r4, #0x0
|
|
bl sub_0200FD6C
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200EB62:
|
|
bl sub_0200FDC4
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_0200EB68: .word UNK_020ED250
|
|
_0200EB6C: .word UNK_020ED274
|
|
|
|
thumb_func_start sub_0200EB70
|
|
sub_0200EB70: ; 0x0200EB70
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EB92
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200EB98 ; =UNK_020ED090
|
|
add r0, r4, #0x0
|
|
bl sub_0200FF18
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200EB92:
|
|
bl sub_0200FF50
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_0200EB98: .word UNK_020ED090
|
|
|
|
thumb_func_start sub_0200EB9C
|
|
sub_0200EB9C: ; 0x0200EB9C
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EBBC
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200EBC4 ; =UNK_020ED040
|
|
add r0, r4, #0x0
|
|
bl sub_0200FF18
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200EBBC:
|
|
bl sub_0200FF50
|
|
pop {r4, pc}
|
|
nop
|
|
_0200EBC4: .word UNK_020ED040
|
|
|
|
thumb_func_start sub_0200EBC8
|
|
sub_0200EBC8: ; 0x0200EBC8
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EBEA
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200EBF0 ; =UNK_020ED050
|
|
add r0, r4, #0x0
|
|
bl sub_0200FF18
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200EBEA:
|
|
bl sub_0200FF50
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_0200EBF0: .word UNK_020ED050
|
|
|
|
thumb_func_start sub_0200EBF4
|
|
sub_0200EBF4: ; 0x0200EBF4
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EC14
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200EC1C ; =UNK_020ED060
|
|
add r0, r4, #0x0
|
|
bl sub_0200FF18
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200EC14:
|
|
bl sub_0200FF50
|
|
pop {r4, pc}
|
|
nop
|
|
_0200EC1C: .word UNK_020ED060
|
|
|
|
thumb_func_start sub_0200EC20
|
|
sub_0200EC20: ; 0x0200EC20
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EC42
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200EC48 ; =UNK_020ECFE0
|
|
add r0, r4, #0x0
|
|
bl sub_020101EC
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200EC42:
|
|
bl sub_02010224
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_0200EC48: .word UNK_020ECFE0
|
|
|
|
thumb_func_start sub_0200EC4C
|
|
sub_0200EC4C: ; 0x0200EC4C
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EC6C
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200EC74 ; =UNK_020ECFEC
|
|
add r0, r4, #0x0
|
|
bl sub_020101EC
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200EC6C:
|
|
bl sub_02010224
|
|
pop {r4, pc}
|
|
nop
|
|
_0200EC74: .word UNK_020ECFEC
|
|
|
|
thumb_func_start sub_0200EC78
|
|
sub_0200EC78: ; 0x0200EC78
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EC9A
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200ECA0 ; =UNK_020ED0A0
|
|
add r0, r4, #0x0
|
|
bl sub_0200FCC8
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200EC9A:
|
|
bl sub_0200FD1C
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_0200ECA0: .word UNK_020ED0A0
|
|
|
|
thumb_func_start sub_0200ECA4
|
|
sub_0200ECA4: ; 0x0200ECA4
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200ECC4
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200ECCC ; =UNK_020ED0C4
|
|
add r0, r4, #0x0
|
|
bl sub_0200FCC8
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200ECC4:
|
|
bl sub_0200FD1C
|
|
pop {r4, pc}
|
|
nop
|
|
_0200ECCC: .word UNK_020ED0C4
|
|
|
|
thumb_func_start sub_0200ECD0
|
|
sub_0200ECD0: ; 0x0200ECD0
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200ECF2
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200ECF8 ; =UNK_020ED10C
|
|
add r0, r4, #0x0
|
|
bl sub_0200FCC8
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200ECF2:
|
|
bl sub_0200FD1C
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_0200ECF8: .word UNK_020ED10C
|
|
|
|
thumb_func_start sub_0200ECFC
|
|
sub_0200ECFC: ; 0x0200ECFC
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200ED1C
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200ED24 ; =UNK_020ED178
|
|
add r0, r4, #0x0
|
|
bl sub_0200FCC8
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200ED1C:
|
|
bl sub_0200FD1C
|
|
pop {r4, pc}
|
|
nop
|
|
_0200ED24: .word UNK_020ED178
|
|
|
|
thumb_func_start sub_0200ED28
|
|
sub_0200ED28: ; 0x0200ED28
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200ED4A
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200ED50 ; =UNK_020ED004
|
|
add r0, r4, #0x0
|
|
bl sub_020103F0
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200ED4A:
|
|
bl sub_02010428
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_0200ED50: .word UNK_020ED004
|
|
|
|
thumb_func_start sub_0200ED54
|
|
sub_0200ED54: ; 0x0200ED54
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200ED74
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200ED7C ; =UNK_020ED010
|
|
add r0, r4, #0x0
|
|
bl sub_020103F0
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200ED74:
|
|
bl sub_02010428
|
|
pop {r4, pc}
|
|
nop
|
|
_0200ED7C: .word UNK_020ED010
|
|
|
|
thumb_func_start sub_0200ED80
|
|
sub_0200ED80: ; 0x0200ED80
|
|
push {r4, lr}
|
|
sub sp, #0x10
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EDC4
|
|
ldr r0, _0200EDCC ; =UNK_020ED298
|
|
mov r1, #0x4
|
|
str r0, [sp, #0x0]
|
|
ldr r0, _0200EDD0 ; =UNK_020ED2D8
|
|
str r0, [sp, #0x4]
|
|
add r0, sp, #0x0
|
|
strb r1, [r0, #0x8]
|
|
mov r1, #0x0
|
|
strb r1, [r0, #0x9]
|
|
mov r1, #0x3f
|
|
strb r1, [r0, #0xa]
|
|
mov r1, #0x20
|
|
strb r1, [r0, #0xb]
|
|
mov r1, #0x1
|
|
strb r1, [r0, #0xc]
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
add r0, r4, #0x0
|
|
add r1, sp, #0x0
|
|
bl sub_02010688
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x0
|
|
add sp, #0x10
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200EDC4:
|
|
bl sub_020106C0
|
|
add sp, #0x10
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_0200EDCC: .word UNK_020ED298
|
|
_0200EDD0: .word UNK_020ED2D8
|
|
|
|
thumb_func_start sub_0200EDD4
|
|
sub_0200EDD4: ; 0x0200EDD4
|
|
push {r4, lr}
|
|
sub sp, #0x10
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EE14
|
|
ldr r0, _0200EE1C ; =UNK_020ED318
|
|
mov r1, #0x4
|
|
str r0, [sp, #0x0]
|
|
ldr r0, _0200EE20 ; =UNK_020ED358
|
|
mov r2, #0x0
|
|
str r0, [sp, #0x4]
|
|
add r0, sp, #0x0
|
|
strb r1, [r0, #0x8]
|
|
strb r2, [r0, #0x9]
|
|
mov r1, #0x3f
|
|
strb r1, [r0, #0xa]
|
|
mov r1, #0x20
|
|
strb r1, [r0, #0xb]
|
|
strb r2, [r0, #0xc]
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
add r0, r4, #0x0
|
|
add r1, sp, #0x0
|
|
bl sub_02010688
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x28]
|
|
add sp, #0x10
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200EE14:
|
|
bl sub_020106C0
|
|
add sp, #0x10
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_0200EE1C: .word UNK_020ED318
|
|
_0200EE20: .word UNK_020ED358
|
|
|
|
thumb_func_start sub_0200EE24
|
|
sub_0200EE24: ; 0x0200EE24
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EE4C
|
|
ldr r1, _0200EE54 ; =UNK_020ECFD5
|
|
ldr r0, _0200EE58 ; =UNK_02105AF8
|
|
str r1, [r0, #0x0]
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200EE5C ; =UNK_02105AF8
|
|
add r0, r4, #0x0
|
|
bl sub_02010F2C
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200EE4C:
|
|
bl sub_02010F70
|
|
pop {r4, pc}
|
|
nop
|
|
_0200EE54: .word UNK_020ECFD5
|
|
_0200EE58: .word UNK_02105AF8
|
|
_0200EE5C: .word UNK_02105AF8
|
|
|
|
thumb_func_start sub_0200EE60
|
|
sub_0200EE60: ; 0x0200EE60
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EE86
|
|
ldr r1, _0200EE8C ; =UNK_020ECFCC
|
|
ldr r0, _0200EE90 ; =UNK_02105AF8
|
|
str r1, [r0, #0x8]
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200EE94 ; =UNK_02105B00
|
|
add r0, r4, #0x0
|
|
bl sub_02010F2C
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200EE86:
|
|
bl sub_02010F70
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_0200EE8C: .word UNK_020ECFCC
|
|
_0200EE90: .word UNK_02105AF8
|
|
_0200EE94: .word UNK_02105B00
|
|
|
|
thumb_func_start sub_0200EE98
|
|
sub_0200EE98: ; 0x0200EE98
|
|
push {r3-r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EECA
|
|
ldr r3, _0200EED4 ; =UNK_020ECFF8
|
|
add r2, sp, #0x0
|
|
ldmia r3!, {r0-r1}
|
|
stmia r2!, {r0-r1}
|
|
ldr r0, [r3, #0x0]
|
|
str r0, [r2, #0x0]
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
add r0, r4, #0x0
|
|
add r1, sp, #0x0
|
|
bl sub_02010948
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x0
|
|
add sp, #0xc
|
|
str r0, [r4, #0x2c]
|
|
pop {r3-r4, pc}
|
|
_0200EECA:
|
|
bl sub_02010988
|
|
add sp, #0xc
|
|
pop {r3-r4, pc}
|
|
nop
|
|
_0200EED4: .word UNK_020ECFF8
|
|
|
|
thumb_func_start sub_0200EED8
|
|
sub_0200EED8: ; 0x0200EED8
|
|
push {r3-r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EF08
|
|
ldr r3, _0200EF10 ; =UNK_020ED034
|
|
add r2, sp, #0x0
|
|
ldmia r3!, {r0-r1}
|
|
stmia r2!, {r0-r1}
|
|
ldr r0, [r3, #0x0]
|
|
str r0, [r2, #0x0]
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
add r0, r4, #0x0
|
|
add r1, sp, #0x0
|
|
bl sub_02010948
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x28]
|
|
add sp, #0xc
|
|
str r0, [r4, #0x2c]
|
|
pop {r3-r4, pc}
|
|
_0200EF08:
|
|
bl sub_02010988
|
|
add sp, #0xc
|
|
pop {r3-r4, pc}
|
|
.balign 4
|
|
_0200EF10: .word UNK_020ED034
|
|
|
|
thumb_func_start sub_0200EF14
|
|
sub_0200EF14: ; 0x0200EF14
|
|
push {r3-r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EF46
|
|
ldr r3, _0200EF50 ; =UNK_020ED01C
|
|
add r2, sp, #0x0
|
|
ldmia r3!, {r0-r1}
|
|
stmia r2!, {r0-r1}
|
|
ldr r0, [r3, #0x0]
|
|
str r0, [r2, #0x0]
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
add r0, r4, #0x0
|
|
add r1, sp, #0x0
|
|
bl sub_02010C7C
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x0
|
|
add sp, #0xc
|
|
str r0, [r4, #0x2c]
|
|
pop {r3-r4, pc}
|
|
_0200EF46:
|
|
bl sub_02010CBC
|
|
add sp, #0xc
|
|
pop {r3-r4, pc}
|
|
nop
|
|
_0200EF50: .word UNK_020ED01C
|
|
|
|
thumb_func_start sub_0200EF54
|
|
sub_0200EF54: ; 0x0200EF54
|
|
push {r3-r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EF84
|
|
ldr r3, _0200EF8C ; =UNK_020ED028
|
|
add r2, sp, #0x0
|
|
ldmia r3!, {r0-r1}
|
|
stmia r2!, {r0-r1}
|
|
ldr r0, [r3, #0x0]
|
|
str r0, [r2, #0x0]
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
add r0, r4, #0x0
|
|
add r1, sp, #0x0
|
|
bl sub_02010C7C
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x28]
|
|
add sp, #0xc
|
|
str r0, [r4, #0x2c]
|
|
pop {r3-r4, pc}
|
|
_0200EF84:
|
|
bl sub_02010CBC
|
|
add sp, #0xc
|
|
pop {r3-r4, pc}
|
|
.balign 4
|
|
_0200EF8C: .word UNK_020ED028
|
|
|
|
thumb_func_start sub_0200EF90
|
|
sub_0200EF90: ; 0x0200EF90
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EFB2
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200EFB8 ; =UNK_020ED080
|
|
add r0, r4, #0x0
|
|
bl sub_0200FF18
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200EFB2:
|
|
bl sub_0200FF50
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_0200EFB8: .word UNK_020ED080
|
|
|
|
thumb_func_start sub_0200EFBC
|
|
sub_0200EFBC: ; 0x0200EFBC
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200EFDC
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200EFE4 ; =UNK_020ED070
|
|
add r0, r4, #0x0
|
|
bl sub_0200FF18
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200EFDC:
|
|
bl sub_0200FF50
|
|
pop {r4, pc}
|
|
nop
|
|
_0200EFE4: .word UNK_020ED070
|
|
|
|
thumb_func_start sub_0200EFE8
|
|
sub_0200EFE8: ; 0x0200EFE8
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200F00A
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200F010 ; =UNK_020ED130
|
|
add r0, r4, #0x0
|
|
bl sub_0200FCC8
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200F00A:
|
|
bl sub_0200FD1C
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_0200F010: .word UNK_020ED130
|
|
|
|
thumb_func_start sub_0200F014
|
|
sub_0200F014: ; 0x0200F014
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200F034
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200F03C ; =UNK_020ED19C
|
|
add r0, r4, #0x0
|
|
bl sub_0200FCC8
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200F034:
|
|
bl sub_0200FD1C
|
|
pop {r4, pc}
|
|
nop
|
|
_0200F03C: .word UNK_020ED19C
|
|
|
|
thumb_func_start sub_0200F040
|
|
sub_0200F040: ; 0x0200F040
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200F068
|
|
ldr r1, _0200F070 ; =UNK_020ECFAE
|
|
ldr r0, _0200F074 ; =UNK_02105AF8
|
|
str r1, [r0, #0x74]
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200F078 ; =UNK_02105B48
|
|
add r0, r4, #0x0
|
|
bl sub_020111AC
|
|
mov r0, #0x1
|
|
str r0, [r4, #0x28]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200F068:
|
|
bl sub_02011214
|
|
pop {r4, pc}
|
|
nop
|
|
_0200F070: .word UNK_020ECFAE
|
|
_0200F074: .word UNK_02105AF8
|
|
_0200F078: .word UNK_02105B48
|
|
|
|
thumb_func_start sub_0200F07C
|
|
sub_0200F07C: ; 0x0200F07C
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
cmp r1, #0x0
|
|
bne _0200F0A2
|
|
ldr r1, _0200F0A8 ; =UNK_020ECFBA
|
|
ldr r0, _0200F0AC ; =UNK_02105B78
|
|
str r1, [r0, #0x24]
|
|
ldrh r0, [r4, #0x24]
|
|
bl sub_0200E420
|
|
ldr r1, _0200F0B0 ; =UNK_02105B78
|
|
add r0, r4, #0x0
|
|
bl sub_020111AC
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x28]
|
|
str r0, [r4, #0x2c]
|
|
pop {r4, pc}
|
|
_0200F0A2:
|
|
bl sub_02011214
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_0200F0A8: .word UNK_020ECFBA
|
|
_0200F0AC: .word UNK_02105B78
|
|
_0200F0B0: .word UNK_02105B78
|
|
|
|
thumb_func_start sub_0200F0B4
|
|
sub_0200F0B4: ; 0x0200F0B4
|
|
asr r0, r0, #0x4
|
|
lsl r1, r0, #0x1
|
|
lsl r0, r1, #0x1
|
|
ldr r2, _0200F0C8 ; =FX_SinCosTable_
|
|
add r1, r1, #0x1
|
|
lsl r1, r1, #0x1
|
|
ldr r3, _0200F0CC ; =FX_Div
|
|
ldrsh r0, [r2, r0]
|
|
ldrsh r1, [r2, r1]
|
|
bx r3
|
|
.balign 4
|
|
_0200F0C8: .word FX_SinCosTable_
|
|
_0200F0CC: .word FX_Div
|
|
|
|
thumb_func_start sub_0200F0D0
|
|
sub_0200F0D0: ; 0x0200F0D0
|
|
push {r4, lr}
|
|
add r4, r1, #0x0
|
|
bl sub_0200F0B4
|
|
lsl r2, r4, #0xc
|
|
asr r1, r0, #0x1f
|
|
asr r3, r2, #0x1f
|
|
bl _ll_mul
|
|
mov r2, #0x2
|
|
mov r3, #0x0
|
|
lsl r2, r2, #0xa
|
|
add r2, r0, r2
|
|
adc r1, r3
|
|
lsl r0, r1, #0x14
|
|
lsr r1, r2, #0xc
|
|
orr r1, r0
|
|
asr r0, r1, #0xc
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0200F0F8
|
|
sub_0200F0F8: ; 0x0200F0F8
|
|
push {r3-r7, lr}
|
|
sub sp, #0x8
|
|
add r5, r1, #0x0
|
|
add r7, r2, #0x0
|
|
add r6, r3, #0x0
|
|
bl sub_0200F0B4
|
|
cmp r6, r7
|
|
bge _0200F142
|
|
lsl r1, r6, #0x2
|
|
str r0, [sp, #0x0]
|
|
asr r0, r0, #0x1f
|
|
lsl r4, r6, #0xc
|
|
add r5, r5, r1
|
|
str r0, [sp, #0x4]
|
|
_0200F116:
|
|
ldr r0, [sp, #0x0]
|
|
ldr r1, [sp, #0x4]
|
|
asr r3, r4, #0x1f
|
|
add r2, r4, #0x0
|
|
bl _ll_mul
|
|
mov r2, #0x2
|
|
lsl r2, r2, #0xa
|
|
add r0, r0, r2
|
|
ldr r2, _0200F148 ; =0x00000000
|
|
adc r1, r2
|
|
lsl r1, r1, #0x14
|
|
lsr r0, r0, #0xc
|
|
orr r0, r1
|
|
asr r0, r0, #0xc
|
|
stmia r5!, {r0}
|
|
mov r0, #0x1
|
|
lsl r0, r0, #0xc
|
|
add r6, r6, #0x1
|
|
add r4, r4, r0
|
|
cmp r6, r7
|
|
blt _0200F116
|
|
_0200F142:
|
|
add sp, #0x8
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_0200F148: .word 0x00000000
|
|
|
|
thumb_func_start sub_0200F14C
|
|
sub_0200F14C: ; 0x0200F14C
|
|
push {r4, lr}
|
|
add r4, r1, #0x0
|
|
bl sub_0200F0B4
|
|
add r1, r0, #0x0
|
|
lsr r0, r4, #0x1f
|
|
add r0, r4, r0
|
|
asr r0, r0, #0x1
|
|
lsl r0, r0, #0xc
|
|
bl FX_Div
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0200F164
|
|
sub_0200F164: ; 0x0200F164
|
|
ldr r3, _0200F170 ; =_s32_div_f
|
|
sub r0, r1, r0
|
|
lsl r0, r0, #0x7
|
|
add r1, r2, #0x0
|
|
bx r3
|
|
nop
|
|
_0200F170: .word _s32_div_f
|
|
|
|
thumb_func_start sub_0200F174
|
|
sub_0200F174: ; 0x0200F174
|
|
add r0, r0, r1
|
|
bpl _0200F17A
|
|
mov r0, #0x0
|
|
_0200F17A:
|
|
cmp r0, #0xff
|
|
ble _0200F180
|
|
mov r0, #0xff
|
|
_0200F180:
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0200F184
|
|
sub_0200F184: ; 0x0200F184
|
|
ldr r3, [r0, #0x0]
|
|
ldr r2, [r1, #0x0]
|
|
add r2, r3, r2
|
|
str r2, [r0, #0x0]
|
|
ldr r3, [r0, #0x4]
|
|
ldr r2, [r1, #0x4]
|
|
add r2, r3, r2
|
|
str r2, [r0, #0x4]
|
|
ldr r3, [r0, #0x8]
|
|
ldr r2, [r1, #0x8]
|
|
add r2, r3, r2
|
|
str r2, [r0, #0x8]
|
|
ldr r2, [r0, #0xc]
|
|
ldr r1, [r1, #0xc]
|
|
add r1, r2, r1
|
|
str r1, [r0, #0xc]
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0200F1A8
|
|
sub_0200F1A8: ; 0x0200F1A8
|
|
push {r3-r7, lr}
|
|
add r7, r1, #0x0
|
|
ldr r1, [sp, #0x1c]
|
|
add r5, r3, #0x0
|
|
str r1, [sp, #0x1c]
|
|
ldr r1, [r5, #0x0]
|
|
ldr r4, [sp, #0x18]
|
|
lsl r1, r1, #0x7
|
|
str r1, [r0, #0x0]
|
|
ldr r1, [r5, #0x4]
|
|
add r6, r2, #0x0
|
|
lsl r1, r1, #0x7
|
|
str r1, [r0, #0x4]
|
|
ldr r1, [r5, #0x8]
|
|
add r2, r4, #0x0
|
|
lsl r1, r1, #0x7
|
|
str r1, [r0, #0x8]
|
|
ldr r1, [r5, #0xc]
|
|
lsl r1, r1, #0x7
|
|
str r1, [r0, #0xc]
|
|
ldmia r2!, {r0-r1}
|
|
stmia r7!, {r0-r1}
|
|
ldmia r2!, {r0-r1}
|
|
stmia r7!, {r0-r1}
|
|
ldr r0, [r5, #0x0]
|
|
ldr r1, [r4, #0x0]
|
|
ldr r2, [sp, #0x1c]
|
|
bl sub_0200F164
|
|
str r0, [r6, #0x0]
|
|
ldr r0, [r5, #0x4]
|
|
ldr r1, [r4, #0x4]
|
|
ldr r2, [sp, #0x1c]
|
|
bl sub_0200F164
|
|
str r0, [r6, #0x4]
|
|
ldr r0, [r5, #0x8]
|
|
ldr r1, [r4, #0x8]
|
|
ldr r2, [sp, #0x1c]
|
|
bl sub_0200F164
|
|
str r0, [r6, #0x8]
|
|
ldr r0, [r5, #0xc]
|
|
ldr r1, [r4, #0xc]
|
|
ldr r2, [sp, #0x1c]
|
|
bl sub_0200F164
|
|
str r0, [r6, #0xc]
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0200F20C
|
|
sub_0200F20C: ; 0x0200F20C
|
|
push {r3-r7, lr}
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0x20]
|
|
add r6, r1, #0x0
|
|
mov r1, #0x1c
|
|
bl Heap_Alloc
|
|
str r0, [r5, #0x14]
|
|
mov r2, #0x1c
|
|
mov r1, #0x0
|
|
_0200F220:
|
|
strb r1, [r0, #0x0]
|
|
add r0, r0, #0x1
|
|
sub r2, r2, #0x1
|
|
bne _0200F220
|
|
ldr r4, [r5, #0x14]
|
|
cmp r6, #0x0
|
|
ldrh r1, [r5, #0x24]
|
|
ldr r0, _0200F2A8 ; =0x00007FFF
|
|
bne _0200F254
|
|
cmp r1, r0
|
|
bne _0200F23C
|
|
mov r7, #0x10
|
|
mov r6, #0x0
|
|
b _0200F274
|
|
_0200F23C:
|
|
cmp r1, #0x0
|
|
bne _0200F248
|
|
mov r7, #0xf
|
|
mvn r7, r7
|
|
mov r6, #0x0
|
|
b _0200F274
|
|
_0200F248:
|
|
mov r7, #0xf
|
|
mvn r7, r7
|
|
mov r6, #0x0
|
|
bl GF_AssertFail
|
|
b _0200F274
|
|
_0200F254:
|
|
cmp r1, r0
|
|
bne _0200F25E
|
|
mov r7, #0x0
|
|
mov r6, #0x10
|
|
b _0200F274
|
|
_0200F25E:
|
|
cmp r1, #0x0
|
|
bne _0200F26A
|
|
mov r7, #0x0
|
|
add r6, r7, #0x0
|
|
sub r6, #0x10
|
|
b _0200F274
|
|
_0200F26A:
|
|
mov r7, #0x0
|
|
add r6, r7, #0x0
|
|
sub r6, #0x10
|
|
bl GF_AssertFail
|
|
_0200F274:
|
|
ldr r0, [r5, #0x10]
|
|
add r1, r7, #0x0
|
|
bl sub_0200E440
|
|
ldr r0, [r5, #0x4]
|
|
add r1, r6, #0x0
|
|
str r0, [r4, #0x0]
|
|
ldr r0, [r5, #0x8]
|
|
str r0, [r4, #0x4]
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x8]
|
|
lsl r0, r7, #0x7
|
|
str r0, [r4, #0xc]
|
|
lsl r0, r6, #0x7
|
|
str r0, [r4, #0x10]
|
|
ldr r2, [r5, #0x4]
|
|
add r0, r7, #0x0
|
|
bl sub_0200F164
|
|
str r0, [r4, #0x14]
|
|
ldr r0, [r5, #0x10]
|
|
str r0, [r4, #0x18]
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
_0200F2A8: .word 0x00007FFF
|
|
|
|
thumb_func_start sub_0200F2AC
|
|
sub_0200F2AC: ; 0x0200F2AC
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
ldr r1, [r5, #0xc]
|
|
mov r4, #0x0
|
|
ldr r0, [r5, #0x14]
|
|
cmp r1, #0x1
|
|
beq _0200F2C4
|
|
cmp r1, #0x2
|
|
beq _0200F2D4
|
|
cmp r1, #0x3
|
|
beq _0200F2E6
|
|
b _0200F2E8
|
|
_0200F2C4:
|
|
bl sub_0200F2EC
|
|
cmp r0, #0x1
|
|
bne _0200F2E8
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _0200F2E8
|
|
_0200F2D4:
|
|
bl Heap_Free
|
|
add r0, r4, #0x0
|
|
str r0, [r5, #0x14]
|
|
ldr r0, [r5, #0xc]
|
|
mov r4, #0x1
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _0200F2E8
|
|
_0200F2E6:
|
|
mov r4, #0x1
|
|
_0200F2E8:
|
|
add r0, r4, #0x0
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_0200F2EC
|
|
sub_0200F2EC: ; 0x0200F2EC
|
|
push {r4, lr}
|
|
add r1, r0, #0x0
|
|
ldr r0, [r1, #0x8]
|
|
mov r4, #0x0
|
|
add r2, r0, #0x1
|
|
str r2, [r1, #0x8]
|
|
ldr r0, [r1, #0x4]
|
|
cmp r2, r0
|
|
blt _0200F32A
|
|
str r4, [r1, #0x8]
|
|
ldr r0, [r1, #0x0]
|
|
sub r0, r0, #0x1
|
|
cmp r0, #0x0
|
|
ble _0200F314
|
|
str r0, [r1, #0x0]
|
|
ldr r2, [r1, #0xc]
|
|
ldr r0, [r1, #0x14]
|
|
add r0, r2, r0
|
|
str r0, [r1, #0xc]
|
|
b _0200F31A
|
|
_0200F314:
|
|
ldr r0, [r1, #0x10]
|
|
mov r4, #0x1
|
|
str r0, [r1, #0xc]
|
|
_0200F31A:
|
|
ldr r2, [r1, #0xc]
|
|
ldr r0, [r1, #0x18]
|
|
asr r1, r2, #0x6
|
|
lsr r1, r1, #0x19
|
|
add r1, r2, r1
|
|
asr r1, r1, #0x7
|
|
bl sub_0200E440
|
|
_0200F32A:
|
|
add r0, r4, #0x0
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0200F330
|
|
sub_0200F330: ; 0x0200F330
|
|
push {r4-r6, lr}
|
|
add r4, r0, #0x0
|
|
bne _0200F33A
|
|
bl GF_AssertFail
|
|
_0200F33A:
|
|
ldr r0, _0200F54C ; =0x04000006
|
|
ldrh r0, [r0, #0x0]
|
|
cmp r0, #0xc0
|
|
bge _0200F3E0
|
|
add r5, r0, #0x1
|
|
cmp r5, #0xbf
|
|
ble _0200F34A
|
|
sub r5, #0xc0
|
|
_0200F34A:
|
|
ldr r0, [r4, #0x4]
|
|
cmp r0, #0x1
|
|
bne _0200F3FA
|
|
add r0, r4, #0x0
|
|
mov r1, #0x0
|
|
bl sub_0200F5D8
|
|
ldr r3, [r4, #0x8]
|
|
lsl r5, r5, #0x1
|
|
mov r4, #0x6
|
|
add r1, r0, r5
|
|
lsl r4, r4, #0x6
|
|
ldrsh r2, [r1, r4]
|
|
lsl r4, r4, #0x2
|
|
ldrsh r1, [r0, r5]
|
|
ldr r0, [r0, r4]
|
|
cmp r0, #0x0
|
|
ldr r0, _0200F550 ; =0x04000004
|
|
bne _0200F3B4
|
|
cmp r3, #0x0
|
|
bne _0200F394
|
|
ldrh r4, [r0, #0x0]
|
|
mov r3, #0x2
|
|
tst r3, r4
|
|
beq _0200F3E0
|
|
lsl r3, r1, #0x8
|
|
mov r1, #0xff
|
|
lsl r1, r1, #0x8
|
|
and r3, r1
|
|
lsl r1, r2, #0x18
|
|
lsr r1, r1, #0x18
|
|
orr r1, r3
|
|
strh r1, [r0, #0x3c]
|
|
mov r1, #0xc0
|
|
add r0, #0x40
|
|
strh r1, [r0, #0x0]
|
|
pop {r4-r6, pc}
|
|
_0200F394:
|
|
ldrh r3, [r0, #0x0]
|
|
mov r0, #0x2
|
|
tst r0, r3
|
|
beq _0200F3E0
|
|
mov r0, #0xff
|
|
lsl r1, r1, #0x8
|
|
lsl r0, r0, #0x8
|
|
and r1, r0
|
|
lsl r0, r2, #0x18
|
|
lsr r0, r0, #0x18
|
|
orr r0, r1
|
|
ldr r1, _0200F554 ; =0x04001040
|
|
strh r0, [r1, #0x0]
|
|
mov r0, #0xc0
|
|
strh r0, [r1, #0x4]
|
|
pop {r4-r6, pc}
|
|
_0200F3B4:
|
|
cmp r3, #0x0
|
|
bne _0200F3D8
|
|
ldrh r4, [r0, #0x0]
|
|
mov r3, #0x2
|
|
tst r3, r4
|
|
beq _0200F3E0
|
|
lsl r3, r1, #0x8
|
|
mov r1, #0xff
|
|
lsl r1, r1, #0x8
|
|
and r3, r1
|
|
lsl r1, r2, #0x18
|
|
lsr r1, r1, #0x18
|
|
orr r1, r3
|
|
strh r1, [r0, #0x3e]
|
|
mov r1, #0xc0
|
|
add r0, #0x42
|
|
strh r1, [r0, #0x0]
|
|
pop {r4-r6, pc}
|
|
_0200F3D8:
|
|
ldrh r3, [r0, #0x0]
|
|
mov r0, #0x2
|
|
tst r0, r3
|
|
bne _0200F3E2
|
|
_0200F3E0:
|
|
b _0200F548
|
|
_0200F3E2:
|
|
mov r0, #0xff
|
|
lsl r1, r1, #0x8
|
|
lsl r0, r0, #0x8
|
|
and r1, r0
|
|
lsl r0, r2, #0x18
|
|
lsr r0, r0, #0x18
|
|
orr r0, r1
|
|
ldr r1, _0200F558 ; =0x04001042
|
|
strh r0, [r1, #0x0]
|
|
mov r0, #0xc0
|
|
strh r0, [r1, #0x4]
|
|
pop {r4-r6, pc}
|
|
_0200F3FA:
|
|
add r0, r4, #0x0
|
|
mov r1, #0x0
|
|
bl sub_0200F5D8
|
|
add r3, r0, #0x0
|
|
lsl r5, r5, #0x1
|
|
mov r6, #0x6
|
|
add r1, r3, r5
|
|
lsl r6, r6, #0x6
|
|
ldrsh r2, [r1, r6]
|
|
lsl r6, r6, #0x2
|
|
ldrsh r1, [r3, r5]
|
|
ldr r3, [r3, r6]
|
|
ldr r0, [r4, #0x8]
|
|
cmp r3, #0x0
|
|
bne _0200F460
|
|
cmp r0, #0x0
|
|
ldr r0, _0200F550 ; =0x04000004
|
|
bne _0200F440
|
|
ldrh r6, [r0, #0x0]
|
|
mov r3, #0x2
|
|
tst r3, r6
|
|
beq _0200F4A4
|
|
lsl r3, r1, #0x8
|
|
mov r1, #0xff
|
|
lsl r1, r1, #0x8
|
|
and r3, r1
|
|
lsl r1, r2, #0x18
|
|
lsr r1, r1, #0x18
|
|
orr r1, r3
|
|
strh r1, [r0, #0x3c]
|
|
mov r1, #0xc0
|
|
add r0, #0x40
|
|
strh r1, [r0, #0x0]
|
|
b _0200F4A4
|
|
_0200F440:
|
|
ldrh r3, [r0, #0x0]
|
|
mov r0, #0x2
|
|
tst r0, r3
|
|
beq _0200F4A4
|
|
mov r0, #0xff
|
|
lsl r1, r1, #0x8
|
|
lsl r0, r0, #0x8
|
|
and r1, r0
|
|
lsl r0, r2, #0x18
|
|
lsr r0, r0, #0x18
|
|
orr r0, r1
|
|
ldr r1, _0200F554 ; =0x04001040
|
|
strh r0, [r1, #0x0]
|
|
mov r0, #0xc0
|
|
strh r0, [r1, #0x4]
|
|
b _0200F4A4
|
|
_0200F460:
|
|
cmp r0, #0x0
|
|
ldr r0, _0200F550 ; =0x04000004
|
|
bne _0200F486
|
|
ldrh r6, [r0, #0x0]
|
|
mov r3, #0x2
|
|
tst r3, r6
|
|
beq _0200F4A4
|
|
lsl r3, r1, #0x8
|
|
mov r1, #0xff
|
|
lsl r1, r1, #0x8
|
|
and r3, r1
|
|
lsl r1, r2, #0x18
|
|
lsr r1, r1, #0x18
|
|
orr r1, r3
|
|
strh r1, [r0, #0x3e]
|
|
mov r1, #0xc0
|
|
add r0, #0x42
|
|
strh r1, [r0, #0x0]
|
|
b _0200F4A4
|
|
_0200F486:
|
|
ldrh r3, [r0, #0x0]
|
|
mov r0, #0x2
|
|
tst r0, r3
|
|
beq _0200F4A4
|
|
mov r0, #0xff
|
|
lsl r1, r1, #0x8
|
|
lsl r0, r0, #0x8
|
|
and r1, r0
|
|
lsl r0, r2, #0x18
|
|
lsr r0, r0, #0x18
|
|
orr r0, r1
|
|
ldr r1, _0200F558 ; =0x04001042
|
|
strh r0, [r1, #0x0]
|
|
mov r0, #0xc0
|
|
strh r0, [r1, #0x4]
|
|
_0200F4A4:
|
|
add r0, r4, #0x0
|
|
mov r1, #0x1
|
|
bl sub_0200F5D8
|
|
ldr r3, [r4, #0x8]
|
|
mov r4, #0x6
|
|
add r1, r0, r5
|
|
lsl r4, r4, #0x6
|
|
ldrsh r2, [r1, r4]
|
|
lsl r4, r4, #0x2
|
|
ldrsh r1, [r0, r5]
|
|
ldr r0, [r0, r4]
|
|
cmp r0, #0x0
|
|
ldr r0, _0200F550 ; =0x04000004
|
|
bne _0200F506
|
|
cmp r3, #0x0
|
|
bne _0200F4E6
|
|
ldrh r4, [r0, #0x0]
|
|
mov r3, #0x2
|
|
tst r3, r4
|
|
beq _0200F548
|
|
lsl r3, r1, #0x8
|
|
mov r1, #0xff
|
|
lsl r1, r1, #0x8
|
|
and r3, r1
|
|
lsl r1, r2, #0x18
|
|
lsr r1, r1, #0x18
|
|
orr r1, r3
|
|
strh r1, [r0, #0x3c]
|
|
mov r1, #0xc0
|
|
add r0, #0x40
|
|
strh r1, [r0, #0x0]
|
|
pop {r4-r6, pc}
|
|
_0200F4E6:
|
|
ldrh r3, [r0, #0x0]
|
|
mov r0, #0x2
|
|
tst r0, r3
|
|
beq _0200F548
|
|
mov r0, #0xff
|
|
lsl r1, r1, #0x8
|
|
lsl r0, r0, #0x8
|
|
and r1, r0
|
|
lsl r0, r2, #0x18
|
|
lsr r0, r0, #0x18
|
|
orr r0, r1
|
|
ldr r1, _0200F554 ; =0x04001040
|
|
strh r0, [r1, #0x0]
|
|
mov r0, #0xc0
|
|
strh r0, [r1, #0x4]
|
|
pop {r4-r6, pc}
|
|
_0200F506:
|
|
cmp r3, #0x0
|
|
bne _0200F52A
|
|
ldrh r4, [r0, #0x0]
|
|
mov r3, #0x2
|
|
tst r3, r4
|
|
beq _0200F548
|
|
lsl r3, r1, #0x8
|
|
mov r1, #0xff
|
|
lsl r1, r1, #0x8
|
|
and r3, r1
|
|
lsl r1, r2, #0x18
|
|
lsr r1, r1, #0x18
|
|
orr r1, r3
|
|
strh r1, [r0, #0x3e]
|
|
mov r1, #0xc0
|
|
add r0, #0x42
|
|
strh r1, [r0, #0x0]
|
|
pop {r4-r6, pc}
|
|
_0200F52A:
|
|
ldrh r3, [r0, #0x0]
|
|
mov r0, #0x2
|
|
tst r0, r3
|
|
beq _0200F548
|
|
mov r0, #0xff
|
|
lsl r1, r1, #0x8
|
|
lsl r0, r0, #0x8
|
|
and r1, r0
|
|
lsl r0, r2, #0x18
|
|
lsr r0, r0, #0x18
|
|
orr r0, r1
|
|
ldr r1, _0200F558 ; =0x04001042
|
|
strh r0, [r1, #0x0]
|
|
mov r0, #0xc0
|
|
strh r0, [r1, #0x4]
|
|
_0200F548:
|
|
pop {r4-r6, pc}
|
|
nop
|
|
_0200F54C: .word 0x04000006
|
|
_0200F550: .word 0x04000004
|
|
_0200F554: .word 0x04001040
|
|
_0200F558: .word 0x04001042
|
|
|
|
thumb_func_start sub_0200F55C
|
|
sub_0200F55C: ; 0x0200F55C
|
|
push {r4-r6, lr}
|
|
add r4, r1, #0x0
|
|
add r5, r0, #0x0
|
|
add r6, r2, #0x0
|
|
cmp r4, #0x0
|
|
beq _0200F572
|
|
cmp r4, #0x1
|
|
beq _0200F572
|
|
cmp r4, #0x2
|
|
beq _0200F58C
|
|
pop {r4-r6, pc}
|
|
_0200F572:
|
|
ldr r1, _0200F5B8 ; =0x00000604
|
|
add r0, r3, #0x0
|
|
bl Heap_Alloc
|
|
str r0, [r5, #0x0]
|
|
mov r0, #0x1
|
|
str r0, [r5, #0x4]
|
|
str r6, [r5, #0x8]
|
|
mov r0, #0x6
|
|
ldr r1, [r5, #0x0]
|
|
lsl r0, r0, #0x8
|
|
str r4, [r1, r0]
|
|
pop {r4-r6, pc}
|
|
_0200F58C:
|
|
ldr r1, _0200F5BC ; =0x00000C08
|
|
add r0, r3, #0x0
|
|
bl Heap_Alloc
|
|
str r0, [r5, #0x0]
|
|
mov r0, #0x2
|
|
str r0, [r5, #0x4]
|
|
mov r0, #0x6
|
|
mov r3, #0x0
|
|
lsl r0, r0, #0x8
|
|
str r6, [r5, #0x8]
|
|
add r4, r3, #0x0
|
|
add r1, r0, #0x4
|
|
_0200F5A6:
|
|
ldr r2, [r5, #0x0]
|
|
add r2, r2, r4
|
|
str r3, [r2, r0]
|
|
add r3, r3, #0x1
|
|
add r4, r4, r1
|
|
cmp r3, #0x2
|
|
blt _0200F5A6
|
|
pop {r4-r6, pc}
|
|
nop
|
|
_0200F5B8: .word 0x00000604
|
|
_0200F5BC: .word 0x00000C08
|
|
|
|
thumb_func_start sub_0200F5C0
|
|
sub_0200F5C0: ; 0x0200F5C0
|
|
ldr r3, _0200F5C4 ; =sub_0200F5C8
|
|
bx r3
|
|
.balign 4
|
|
_0200F5C4: .word sub_0200F5C8
|
|
|
|
thumb_func_start sub_0200F5C8
|
|
sub_0200F5C8: ; 0x0200F5C8
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r0, [r4, #0x0]
|
|
bl Heap_Free
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x0]
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0200F5D8
|
|
sub_0200F5D8: ; 0x0200F5D8
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0x4]
|
|
add r4, r1, #0x0
|
|
cmp r0, r4
|
|
bgt _0200F5E8
|
|
bl GF_AssertFail
|
|
_0200F5E8:
|
|
ldr r0, _0200F5F4 ; =0x00000604
|
|
ldr r1, [r5, #0x0]
|
|
mul r0, r4
|
|
add r0, r1, r0
|
|
pop {r3-r5, pc}
|
|
nop
|
|
_0200F5F4: .word 0x00000604
|
|
|
|
thumb_func_start sub_0200F5F8
|
|
sub_0200F5F8: ; 0x0200F5F8
|
|
push {r3-r7, lr}
|
|
add r5, r1, #0x0
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r5, #0x4]
|
|
mov r4, #0x0
|
|
cmp r0, #0x0
|
|
ble _0200F624
|
|
mov r7, #0x3
|
|
lsl r7, r7, #0x8
|
|
add r6, r7, #0x0
|
|
_0200F60C:
|
|
add r0, r5, #0x0
|
|
add r1, r4, #0x0
|
|
bl sub_0200F5D8
|
|
add r1, r0, r6
|
|
add r2, r7, #0x0
|
|
bl memcpy
|
|
ldr r0, [r5, #0x4]
|
|
add r4, r4, #0x1
|
|
cmp r4, r0
|
|
blt _0200F60C
|
|
_0200F624:
|
|
ldr r0, [sp, #0x0]
|
|
bl SysTask_Destroy
|
|
pop {r3-r7, pc}
|
|
|
|
thumb_func_start sub_0200F62C
|
|
sub_0200F62C: ; 0x0200F62C
|
|
push {r4-r5, lr}
|
|
sub sp, #0xc
|
|
add r5, r1, #0x0
|
|
add r4, r2, #0x0
|
|
cmp r0, #0x0
|
|
bne _0200F644
|
|
add r0, r5, #0x0
|
|
mov r1, #0x0
|
|
bl sub_02011634
|
|
add sp, #0xc
|
|
pop {r4-r5, pc}
|
|
_0200F644:
|
|
add r0, r5, #0x0
|
|
mov r1, #0x1
|
|
bl sub_02011634
|
|
mov r2, #0x0
|
|
add r0, r5, #0x0
|
|
mov r1, #0x3f
|
|
add r3, r2, #0x0
|
|
str r4, [sp, #0x0]
|
|
bl sub_02011650
|
|
mov r1, #0x0
|
|
str r1, [sp, #0x0]
|
|
str r1, [sp, #0x4]
|
|
add r0, r5, #0x0
|
|
add r2, r1, #0x0
|
|
add r3, r1, #0x0
|
|
str r4, [sp, #0x8]
|
|
bl sub_02011698
|
|
add r0, r5, #0x0
|
|
mov r1, #0x20
|
|
mov r2, #0x0
|
|
add r3, r4, #0x0
|
|
bl sub_02011678
|
|
add sp, #0xc
|
|
pop {r4-r5, pc}
|
|
|
|
thumb_func_start sub_0200F67C
|
|
sub_0200F67C: ; 0x0200F67C
|
|
push {r4-r7, lr}
|
|
sub sp, #0xc
|
|
add r7, r2, #0x0
|
|
ldr r2, [sp, #0x34]
|
|
add r6, r0, #0x0
|
|
add r5, r3, #0x0
|
|
ldr r4, [sp, #0x20]
|
|
cmp r2, #0x0
|
|
bne _0200F6B8
|
|
add r0, r1, #0x0
|
|
mov r1, #0x0
|
|
add r2, r5, #0x0
|
|
add r3, r4, #0x0
|
|
bl sub_020114AC
|
|
add r0, r7, #0x0
|
|
mov r1, #0x0
|
|
add r2, r4, #0x0
|
|
bl sub_02011534
|
|
str r5, [sp, #0x0]
|
|
ldr r0, [sp, #0x24]
|
|
ldr r1, [sp, #0x28]
|
|
ldr r2, [sp, #0x2c]
|
|
ldr r3, [sp, #0x30]
|
|
str r4, [sp, #0x4]
|
|
bl sub_02011574
|
|
add sp, #0xc
|
|
pop {r4-r7, pc}
|
|
_0200F6B8:
|
|
mov r2, #0x0
|
|
str r4, [sp, #0x0]
|
|
bl sub_02011650
|
|
add r0, r6, #0x0
|
|
add r1, r7, #0x0
|
|
mov r2, #0x0
|
|
add r3, r4, #0x0
|
|
bl sub_02011678
|
|
ldr r0, [sp, #0x30]
|
|
ldr r1, [sp, #0x24]
|
|
str r0, [sp, #0x0]
|
|
str r5, [sp, #0x4]
|
|
ldr r2, [sp, #0x28]
|
|
ldr r3, [sp, #0x2c]
|
|
add r0, r6, #0x0
|
|
str r4, [sp, #0x8]
|
|
bl sub_02011698
|
|
add sp, #0xc
|
|
pop {r4-r7, pc}
|
|
|
|
thumb_func_start sub_0200F6E4
|
|
sub_0200F6E4: ; 0x0200F6E4
|
|
push {r3, lr}
|
|
cmp r3, #0x0
|
|
bne _0200F6F4
|
|
add r0, r1, #0x0
|
|
add r1, r2, #0x0
|
|
bl sub_02011480
|
|
pop {r3, pc}
|
|
_0200F6F4:
|
|
bl sub_02011634
|
|
pop {r3, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0200F6FC
|
|
sub_0200F6FC: ; 0x0200F6FC
|
|
push {r3-r7, lr}
|
|
add r4, r2, #0x0
|
|
mov r2, #0xc3
|
|
add r6, r1, #0x0
|
|
mov r1, #0x0
|
|
lsl r2, r2, #0x2
|
|
add r5, r0, #0x0
|
|
add r7, r3, #0x0
|
|
bl memset
|
|
cmp r4, #0x1
|
|
bne _0200F726
|
|
mov r0, #0x6
|
|
lsl r0, r0, #0x6
|
|
str r7, [r5, r0]
|
|
mov r0, #0xc2
|
|
lsl r0, r0, #0x2
|
|
strb r4, [r5, r0]
|
|
add r0, r0, #0x1
|
|
strb r6, [r5, r0]
|
|
pop {r3-r7, pc}
|
|
_0200F726:
|
|
mov r0, #0x6
|
|
lsl r0, r0, #0x6
|
|
str r7, [r5, r0]
|
|
mov r0, #0xc1
|
|
ldr r1, [sp, #0x18]
|
|
lsl r0, r0, #0x2
|
|
str r1, [r5, r0]
|
|
add r1, r0, #0x4
|
|
strb r4, [r5, r1]
|
|
add r0, r0, #0x5
|
|
strb r6, [r5, r0]
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0200F740
|
|
sub_0200F740: ; 0x0200F740
|
|
ldr r3, _0200F74C ; =sub_0200CA98
|
|
add r1, r0, #0x0
|
|
ldr r0, _0200F750 ; =sub_0200F780
|
|
ldr r2, _0200F754 ; =0x000003FF
|
|
bx r3
|
|
nop
|
|
_0200F74C: .word sub_0200CA98
|
|
_0200F750: .word sub_0200F780
|
|
_0200F754: .word 0x000003FF
|
|
|
|
thumb_func_start sub_0200F758
|
|
sub_0200F758: ; 0x0200F758
|
|
push {r3, lr}
|
|
ldr r3, _0200F768 ; =0x00000309
|
|
str r2, [sp, #0x0]
|
|
ldrb r3, [r1, r3]
|
|
ldr r2, _0200F76C ; =sub_0200F7AC
|
|
bl sub_0200E6CC
|
|
pop {r3, pc}
|
|
.balign 4
|
|
_0200F768: .word 0x00000309
|
|
_0200F76C: .word sub_0200F7AC
|
|
|
|
thumb_func_start sub_0200F770
|
|
sub_0200F770: ; 0x0200F770
|
|
ldr r3, _0200F778 ; =0x00000309
|
|
ldrb r1, [r1, r3]
|
|
ldr r3, _0200F77C ; =sub_0200E6F8
|
|
bx r3
|
|
.balign 4
|
|
_0200F778: .word 0x00000309
|
|
_0200F77C: .word sub_0200E6F8
|
|
|
|
thumb_func_start sub_0200F780
|
|
sub_0200F780: ; 0x0200F780
|
|
push {r3-r7, lr}
|
|
mov r7, #0xc0
|
|
add r6, r7, #0x0
|
|
str r0, [sp, #0x0]
|
|
add r5, r1, #0x0
|
|
mov r4, #0x0
|
|
add r6, #0xc4
|
|
_0200F78E:
|
|
add r0, r5, #0x0
|
|
add r0, #0xc0
|
|
add r1, r5, #0x0
|
|
add r2, r7, #0x0
|
|
bl memcpy
|
|
add r4, r4, #0x1
|
|
add r5, r5, r6
|
|
cmp r4, #0x2
|
|
blt _0200F78E
|
|
ldr r0, [sp, #0x0]
|
|
bl SysTask_Destroy
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0200F7AC
|
|
sub_0200F7AC: ; 0x0200F7AC
|
|
push {r3-r5, lr}
|
|
add r4, r0, #0x0
|
|
bne _0200F7B6
|
|
bl GF_AssertFail
|
|
_0200F7B6:
|
|
ldr r0, _0200FAC0 ; =0x04000006
|
|
ldrh r0, [r0, #0x0]
|
|
cmp r0, #0xc0
|
|
bge _0200F838
|
|
add r0, r0, #0x1
|
|
cmp r0, #0xbf
|
|
ble _0200F7C6
|
|
sub r0, #0xc0
|
|
_0200F7C6:
|
|
mov r2, #0xc2
|
|
lsl r2, r2, #0x2
|
|
ldrb r1, [r4, r2]
|
|
cmp r1, #0x1
|
|
beq _0200F7D2
|
|
b _0200F96C
|
|
_0200F7D2:
|
|
add r0, r4, r0
|
|
add r0, #0xc0
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
bne _0200F8A2
|
|
add r0, r2, #0x1
|
|
ldrb r0, [r4, r0]
|
|
cmp r0, #0x0
|
|
ldr r0, _0200FAC4 ; =0x04000004
|
|
bne _0200F802
|
|
ldrh r2, [r0, #0x0]
|
|
mov r1, #0x2
|
|
tst r1, r2
|
|
beq _0200F81C
|
|
add r0, #0x46
|
|
ldrh r2, [r0, #0x0]
|
|
mov r1, #0x3f
|
|
bic r2, r1
|
|
mov r1, #0x3f
|
|
orr r2, r1
|
|
mov r1, #0x20
|
|
orr r1, r2
|
|
strh r1, [r0, #0x0]
|
|
b _0200F81C
|
|
_0200F802:
|
|
ldrh r1, [r0, #0x0]
|
|
mov r0, #0x2
|
|
tst r0, r1
|
|
beq _0200F81C
|
|
ldr r1, _0200FAC8 ; =0x0400104A
|
|
mov r0, #0x3f
|
|
ldrh r2, [r1, #0x0]
|
|
bic r2, r0
|
|
mov r0, #0x3f
|
|
orr r2, r0
|
|
mov r0, #0x20
|
|
orr r0, r2
|
|
strh r0, [r1, #0x0]
|
|
_0200F81C:
|
|
ldr r0, _0200FACC ; =0x00000309
|
|
ldrb r1, [r4, r0]
|
|
mov r0, #0x6
|
|
lsl r0, r0, #0x6
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0x0
|
|
bne _0200F868
|
|
cmp r1, #0x0
|
|
bne _0200F84C
|
|
ldr r2, _0200FAC4 ; =0x04000004
|
|
mov r0, #0x2
|
|
ldrh r1, [r2, #0x0]
|
|
tst r0, r1
|
|
bne _0200F83A
|
|
_0200F838:
|
|
b _0200FCB0
|
|
_0200F83A:
|
|
add r2, #0x44
|
|
ldrh r1, [r2, #0x0]
|
|
mov r0, #0x3f
|
|
bic r1, r0
|
|
mov r0, #0x20
|
|
orr r1, r0
|
|
orr r0, r1
|
|
strh r0, [r2, #0x0]
|
|
pop {r3-r5, pc}
|
|
_0200F84C:
|
|
ldr r0, _0200FAC4 ; =0x04000004
|
|
ldrh r1, [r0, #0x0]
|
|
mov r0, #0x2
|
|
tst r0, r1
|
|
beq _0200F954
|
|
ldr r1, _0200FAD0 ; =0x04001048
|
|
mov r0, #0x3f
|
|
ldrh r2, [r1, #0x0]
|
|
bic r2, r0
|
|
mov r0, #0x20
|
|
orr r2, r0
|
|
orr r0, r2
|
|
strh r0, [r1, #0x0]
|
|
pop {r3-r5, pc}
|
|
_0200F868:
|
|
cmp r1, #0x0
|
|
ldr r0, _0200FAC4 ; =0x04000004
|
|
bne _0200F888
|
|
ldrh r1, [r0, #0x0]
|
|
mov r2, #0x2
|
|
tst r1, r2
|
|
beq _0200F954
|
|
add r0, #0x44
|
|
ldrh r3, [r0, #0x0]
|
|
ldr r1, _0200FAD4 ; =0xFFFFC0FF
|
|
and r3, r1
|
|
lsl r1, r2, #0xc
|
|
orr r3, r1
|
|
orr r1, r3
|
|
strh r1, [r0, #0x0]
|
|
pop {r3-r5, pc}
|
|
_0200F888:
|
|
ldrh r1, [r0, #0x0]
|
|
mov r0, #0x2
|
|
tst r0, r1
|
|
beq _0200F954
|
|
ldr r2, _0200FAD0 ; =0x04001048
|
|
ldr r0, _0200FAD4 ; =0xFFFFC0FF
|
|
ldrh r1, [r2, #0x0]
|
|
and r1, r0
|
|
lsr r0, r2, #0xd
|
|
orr r1, r0
|
|
orr r0, r1
|
|
strh r0, [r2, #0x0]
|
|
pop {r3-r5, pc}
|
|
_0200F8A2:
|
|
add r0, r2, #0x1
|
|
ldrb r0, [r4, r0]
|
|
cmp r0, #0x0
|
|
ldr r0, _0200FAC4 ; =0x04000004
|
|
bne _0200F8C6
|
|
ldrh r2, [r0, #0x0]
|
|
mov r1, #0x2
|
|
tst r1, r2
|
|
beq _0200F8DE
|
|
add r0, #0x46
|
|
ldrh r2, [r0, #0x0]
|
|
mov r1, #0x3f
|
|
bic r2, r1
|
|
mov r1, #0x20
|
|
orr r2, r1
|
|
orr r1, r2
|
|
strh r1, [r0, #0x0]
|
|
b _0200F8DE
|
|
_0200F8C6:
|
|
ldrh r1, [r0, #0x0]
|
|
mov r0, #0x2
|
|
tst r0, r1
|
|
beq _0200F8DE
|
|
ldr r1, _0200FAC8 ; =0x0400104A
|
|
mov r0, #0x3f
|
|
ldrh r2, [r1, #0x0]
|
|
bic r2, r0
|
|
mov r0, #0x20
|
|
orr r2, r0
|
|
orr r0, r2
|
|
strh r0, [r1, #0x0]
|
|
_0200F8DE:
|
|
ldr r0, _0200FACC ; =0x00000309
|
|
ldrb r1, [r4, r0]
|
|
mov r0, #0x6
|
|
lsl r0, r0, #0x6
|
|
ldr r0, [r4, r0]
|
|
cmp r0, #0x0
|
|
ldr r0, _0200FAC4 ; =0x04000004
|
|
bne _0200F92A
|
|
cmp r1, #0x0
|
|
bne _0200F90E
|
|
ldrh r2, [r0, #0x0]
|
|
mov r1, #0x2
|
|
tst r1, r2
|
|
beq _0200F954
|
|
add r0, #0x44
|
|
ldrh r2, [r0, #0x0]
|
|
mov r1, #0x3f
|
|
bic r2, r1
|
|
mov r1, #0x3f
|
|
orr r2, r1
|
|
mov r1, #0x20
|
|
orr r1, r2
|
|
strh r1, [r0, #0x0]
|
|
pop {r3-r5, pc}
|
|
_0200F90E:
|
|
ldrh r1, [r0, #0x0]
|
|
mov r0, #0x2
|
|
tst r0, r1
|
|
beq _0200F954
|
|
ldr r1, _0200FAD0 ; =0x04001048
|
|
mov r0, #0x3f
|
|
ldrh r2, [r1, #0x0]
|
|
bic r2, r0
|
|
mov r0, #0x3f
|
|
orr r2, r0
|
|
mov r0, #0x20
|
|
orr r0, r2
|
|
strh r0, [r1, #0x0]
|
|
pop {r3-r5, pc}
|
|
_0200F92A:
|
|
cmp r1, #0x0
|
|
bne _0200F94C
|
|
ldrh r1, [r0, #0x0]
|
|
mov r2, #0x2
|
|
tst r1, r2
|
|
beq _0200F954
|
|
add r0, #0x44
|
|
ldrh r3, [r0, #0x0]
|
|
ldr r1, _0200FAD4 ; =0xFFFFC0FF
|
|
and r3, r1
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x8
|
|
orr r3, r1
|
|
lsl r1, r2, #0xc
|
|
orr r1, r3
|
|
strh r1, [r0, #0x0]
|
|
pop {r3-r5, pc}
|
|
_0200F94C:
|
|
ldrh r1, [r0, #0x0]
|
|
mov r0, #0x2
|
|
tst r0, r1
|
|
bne _0200F956
|
|
_0200F954:
|
|
b _0200FCB0
|
|
_0200F956:
|
|
ldr r2, _0200FAD0 ; =0x04001048
|
|
ldr r0, _0200FAD4 ; =0xFFFFC0FF
|
|
ldrh r1, [r2, #0x0]
|
|
and r1, r0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x8
|
|
orr r1, r0
|
|
lsr r0, r2, #0xd
|
|
orr r0, r1
|
|
strh r0, [r2, #0x0]
|
|
pop {r3-r5, pc}
|
|
_0200F96C:
|
|
add r1, r4, r0
|
|
add r1, #0xc0
|
|
ldrb r1, [r1, #0x0]
|
|
cmp r1, #0x0
|
|
bne _0200FA38
|
|
add r1, r2, #0x1
|
|
ldrb r1, [r4, r1]
|
|
cmp r1, #0x0
|
|
ldr r1, _0200FAC4 ; =0x04000004
|
|
bne _0200F99C
|
|
ldrh r3, [r1, #0x0]
|
|
mov r2, #0x2
|
|
tst r2, r3
|
|
beq _0200F9B6
|
|
add r1, #0x46
|
|
ldrh r3, [r1, #0x0]
|
|
mov r2, #0x3f
|
|
bic r3, r2
|
|
mov r2, #0x3f
|
|
orr r3, r2
|
|
mov r2, #0x20
|
|
orr r2, r3
|
|
strh r2, [r1, #0x0]
|
|
b _0200F9B6
|
|
_0200F99C:
|
|
ldrh r2, [r1, #0x0]
|
|
mov r1, #0x2
|
|
tst r1, r2
|
|
beq _0200F9B6
|
|
ldr r2, _0200FAC8 ; =0x0400104A
|
|
mov r1, #0x3f
|
|
ldrh r3, [r2, #0x0]
|
|
bic r3, r1
|
|
mov r1, #0x3f
|
|
orr r3, r1
|
|
mov r1, #0x20
|
|
orr r1, r3
|
|
strh r1, [r2, #0x0]
|
|
_0200F9B6:
|
|
ldr r1, _0200FACC ; =0x00000309
|
|
ldrb r2, [r4, r1]
|
|
mov r1, #0x6
|
|
lsl r1, r1, #0x6
|
|
ldr r1, [r4, r1]
|
|
cmp r1, #0x0
|
|
ldr r1, _0200FAC4 ; =0x04000004
|
|
bne _0200F9FE
|
|
cmp r2, #0x0
|
|
bne _0200F9E4
|
|
ldrh r3, [r1, #0x0]
|
|
mov r2, #0x2
|
|
tst r2, r3
|
|
beq _0200FA0A
|
|
add r1, #0x44
|
|
ldrh r3, [r1, #0x0]
|
|
mov r2, #0x3f
|
|
bic r3, r2
|
|
mov r2, #0x20
|
|
orr r3, r2
|
|
orr r2, r3
|
|
strh r2, [r1, #0x0]
|
|
b _0200FB16
|
|
_0200F9E4:
|
|
ldrh r2, [r1, #0x0]
|
|
mov r1, #0x2
|
|
tst r1, r2
|
|
beq _0200FA0A
|
|
ldr r2, _0200FAD0 ; =0x04001048
|
|
mov r1, #0x3f
|
|
ldrh r3, [r2, #0x0]
|
|
bic r3, r1
|
|
mov r1, #0x20
|
|
orr r3, r1
|
|
orr r1, r3
|
|
strh r1, [r2, #0x0]
|
|
b _0200FB16
|
|
_0200F9FE:
|
|
cmp r2, #0x0
|
|
bne _0200FA1E
|
|
ldrh r2, [r1, #0x0]
|
|
mov r3, #0x2
|
|
tst r2, r3
|
|
bne _0200FA0C
|
|
_0200FA0A:
|
|
b _0200FB16
|
|
_0200FA0C:
|
|
add r1, #0x44
|
|
ldrh r5, [r1, #0x0]
|
|
ldr r2, _0200FAD4 ; =0xFFFFC0FF
|
|
and r5, r2
|
|
lsl r2, r3, #0xc
|
|
orr r5, r2
|
|
orr r2, r5
|
|
strh r2, [r1, #0x0]
|
|
b _0200FB16
|
|
_0200FA1E:
|
|
ldrh r2, [r1, #0x0]
|
|
mov r1, #0x2
|
|
tst r1, r2
|
|
beq _0200FB16
|
|
ldr r3, _0200FAD0 ; =0x04001048
|
|
ldr r1, _0200FAD4 ; =0xFFFFC0FF
|
|
ldrh r2, [r3, #0x0]
|
|
and r2, r1
|
|
lsr r1, r3, #0xd
|
|
orr r2, r1
|
|
orr r1, r2
|
|
strh r1, [r3, #0x0]
|
|
b _0200FB16
|
|
_0200FA38:
|
|
add r1, r2, #0x1
|
|
ldrb r1, [r4, r1]
|
|
cmp r1, #0x0
|
|
ldr r1, _0200FAC4 ; =0x04000004
|
|
bne _0200FA5C
|
|
ldrh r3, [r1, #0x0]
|
|
mov r2, #0x2
|
|
tst r2, r3
|
|
beq _0200FA74
|
|
add r1, #0x46
|
|
ldrh r3, [r1, #0x0]
|
|
mov r2, #0x3f
|
|
bic r3, r2
|
|
mov r2, #0x20
|
|
orr r3, r2
|
|
orr r2, r3
|
|
strh r2, [r1, #0x0]
|
|
b _0200FA74
|
|
_0200FA5C:
|
|
ldrh r2, [r1, #0x0]
|
|
mov r1, #0x2
|
|
tst r1, r2
|
|
beq _0200FA74
|
|
ldr r2, _0200FAC8 ; =0x0400104A
|
|
mov r1, #0x3f
|
|
ldrh r3, [r2, #0x0]
|
|
bic r3, r1
|
|
mov r1, #0x20
|
|
orr r3, r1
|
|
orr r1, r3
|
|
strh r1, [r2, #0x0]
|
|
_0200FA74:
|
|
ldr r1, _0200FACC ; =0x00000309
|
|
ldrb r2, [r4, r1]
|
|
mov r1, #0x6
|
|
lsl r1, r1, #0x6
|
|
ldr r1, [r4, r1]
|
|
cmp r1, #0x0
|
|
ldr r1, _0200FAC4 ; =0x04000004
|
|
bne _0200FAD8
|
|
cmp r2, #0x0
|
|
bne _0200FAA4
|
|
ldrh r3, [r1, #0x0]
|
|
mov r2, #0x2
|
|
tst r2, r3
|
|
beq _0200FB16
|
|
add r1, #0x44
|
|
ldrh r3, [r1, #0x0]
|
|
mov r2, #0x3f
|
|
bic r3, r2
|
|
mov r2, #0x3f
|
|
orr r3, r2
|
|
mov r2, #0x20
|
|
orr r2, r3
|
|
strh r2, [r1, #0x0]
|
|
b _0200FB16
|
|
_0200FAA4:
|
|
ldrh r2, [r1, #0x0]
|
|
mov r1, #0x2
|
|
tst r1, r2
|
|
beq _0200FB16
|
|
ldr r2, _0200FAD0 ; =0x04001048
|
|
mov r1, #0x3f
|
|
ldrh r3, [r2, #0x0]
|
|
bic r3, r1
|
|
mov r1, #0x3f
|
|
orr r3, r1
|
|
mov r1, #0x20
|
|
orr r1, r3
|
|
strh r1, [r2, #0x0]
|
|
b _0200FB16
|
|
.balign 4
|
|
_0200FAC0: .word 0x04000006
|
|
_0200FAC4: .word 0x04000004
|
|
_0200FAC8: .word 0x0400104A
|
|
_0200FACC: .word 0x00000309
|
|
_0200FAD0: .word 0x04001048
|
|
_0200FAD4: .word 0xFFFFC0FF
|
|
_0200FAD8:
|
|
cmp r2, #0x0
|
|
bne _0200FAFA
|
|
ldrh r2, [r1, #0x0]
|
|
mov r3, #0x2
|
|
tst r2, r3
|
|
beq _0200FB16
|
|
add r1, #0x44
|
|
ldrh r5, [r1, #0x0]
|
|
ldr r2, _0200FCB4 ; =0xFFFFC0FF
|
|
and r5, r2
|
|
mov r2, #0x3f
|
|
lsl r2, r2, #0x8
|
|
orr r5, r2
|
|
lsl r2, r3, #0xc
|
|
orr r2, r5
|
|
strh r2, [r1, #0x0]
|
|
b _0200FB16
|
|
_0200FAFA:
|
|
ldrh r2, [r1, #0x0]
|
|
mov r1, #0x2
|
|
tst r1, r2
|
|
beq _0200FB16
|
|
ldr r3, _0200FCB8 ; =0x04001048
|
|
ldr r1, _0200FCB4 ; =0xFFFFC0FF
|
|
ldrh r2, [r3, #0x0]
|
|
and r2, r1
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x8
|
|
orr r2, r1
|
|
lsr r1, r3, #0xd
|
|
orr r1, r2
|
|
strh r1, [r3, #0x0]
|
|
_0200FB16:
|
|
mov r1, #0x61
|
|
lsl r1, r1, #0x2
|
|
add r1, r4, r1
|
|
add r0, r1, r0
|
|
add r0, #0xc0
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
ldr r0, _0200FCBC ; =0x00000309
|
|
bne _0200FBEC
|
|
ldrb r0, [r4, r0]
|
|
cmp r0, #0x0
|
|
ldr r0, _0200FCC0 ; =0x04000004
|
|
bne _0200FB4C
|
|
ldrh r3, [r0, #0x0]
|
|
mov r2, #0x2
|
|
tst r2, r3
|
|
beq _0200FB66
|
|
add r0, #0x46
|
|
ldrh r3, [r0, #0x0]
|
|
mov r2, #0x3f
|
|
bic r3, r2
|
|
mov r2, #0x3f
|
|
orr r3, r2
|
|
mov r2, #0x20
|
|
orr r2, r3
|
|
strh r2, [r0, #0x0]
|
|
b _0200FB66
|
|
_0200FB4C:
|
|
ldrh r2, [r0, #0x0]
|
|
mov r0, #0x2
|
|
tst r0, r2
|
|
beq _0200FB66
|
|
ldr r2, _0200FCC4 ; =0x0400104A
|
|
mov r0, #0x3f
|
|
ldrh r3, [r2, #0x0]
|
|
bic r3, r0
|
|
mov r0, #0x3f
|
|
orr r3, r0
|
|
mov r0, #0x20
|
|
orr r0, r3
|
|
strh r0, [r2, #0x0]
|
|
_0200FB66:
|
|
ldr r0, _0200FCBC ; =0x00000309
|
|
ldrb r2, [r4, r0]
|
|
mov r0, #0x6
|
|
lsl r0, r0, #0x6
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0x0
|
|
bne _0200FBB2
|
|
cmp r2, #0x0
|
|
bne _0200FB94
|
|
ldr r2, _0200FCC0 ; =0x04000004
|
|
mov r0, #0x2
|
|
ldrh r1, [r2, #0x0]
|
|
tst r0, r1
|
|
beq _0200FB9E
|
|
add r2, #0x44
|
|
ldrh r1, [r2, #0x0]
|
|
mov r0, #0x3f
|
|
bic r1, r0
|
|
mov r0, #0x20
|
|
orr r1, r0
|
|
orr r0, r1
|
|
strh r0, [r2, #0x0]
|
|
pop {r3-r5, pc}
|
|
_0200FB94:
|
|
ldr r0, _0200FCC0 ; =0x04000004
|
|
ldrh r1, [r0, #0x0]
|
|
mov r0, #0x2
|
|
tst r0, r1
|
|
bne _0200FBA0
|
|
_0200FB9E:
|
|
b _0200FCB0
|
|
_0200FBA0:
|
|
ldr r1, _0200FCB8 ; =0x04001048
|
|
mov r0, #0x3f
|
|
ldrh r2, [r1, #0x0]
|
|
bic r2, r0
|
|
mov r0, #0x20
|
|
orr r2, r0
|
|
orr r0, r2
|
|
strh r0, [r1, #0x0]
|
|
pop {r3-r5, pc}
|
|
_0200FBB2:
|
|
cmp r2, #0x0
|
|
ldr r0, _0200FCC0 ; =0x04000004
|
|
bne _0200FBD2
|
|
ldrh r1, [r0, #0x0]
|
|
mov r2, #0x2
|
|
tst r1, r2
|
|
beq _0200FCB0
|
|
add r0, #0x44
|
|
ldrh r3, [r0, #0x0]
|
|
ldr r1, _0200FCB4 ; =0xFFFFC0FF
|
|
and r3, r1
|
|
lsl r1, r2, #0xc
|
|
orr r3, r1
|
|
orr r1, r3
|
|
strh r1, [r0, #0x0]
|
|
pop {r3-r5, pc}
|
|
_0200FBD2:
|
|
ldrh r1, [r0, #0x0]
|
|
mov r0, #0x2
|
|
tst r0, r1
|
|
beq _0200FCB0
|
|
ldr r2, _0200FCB8 ; =0x04001048
|
|
ldr r0, _0200FCB4 ; =0xFFFFC0FF
|
|
ldrh r1, [r2, #0x0]
|
|
and r1, r0
|
|
lsr r0, r2, #0xd
|
|
orr r1, r0
|
|
orr r0, r1
|
|
strh r0, [r2, #0x0]
|
|
pop {r3-r5, pc}
|
|
_0200FBEC:
|
|
ldrb r0, [r4, r0]
|
|
cmp r0, #0x0
|
|
ldr r0, _0200FCC0 ; =0x04000004
|
|
bne _0200FC0E
|
|
ldrh r3, [r0, #0x0]
|
|
mov r2, #0x2
|
|
tst r2, r3
|
|
beq _0200FC26
|
|
add r0, #0x46
|
|
ldrh r3, [r0, #0x0]
|
|
mov r2, #0x3f
|
|
bic r3, r2
|
|
mov r2, #0x20
|
|
orr r3, r2
|
|
orr r2, r3
|
|
strh r2, [r0, #0x0]
|
|
b _0200FC26
|
|
_0200FC0E:
|
|
ldrh r2, [r0, #0x0]
|
|
mov r0, #0x2
|
|
tst r0, r2
|
|
beq _0200FC26
|
|
ldr r2, _0200FCC4 ; =0x0400104A
|
|
mov r0, #0x3f
|
|
ldrh r3, [r2, #0x0]
|
|
bic r3, r0
|
|
mov r0, #0x20
|
|
orr r3, r0
|
|
orr r0, r3
|
|
strh r0, [r2, #0x0]
|
|
_0200FC26:
|
|
ldr r0, _0200FCBC ; =0x00000309
|
|
ldrb r2, [r4, r0]
|
|
mov r0, #0x6
|
|
lsl r0, r0, #0x6
|
|
ldr r0, [r1, r0]
|
|
cmp r0, #0x0
|
|
ldr r0, _0200FCC0 ; =0x04000004
|
|
bne _0200FC72
|
|
cmp r2, #0x0
|
|
bne _0200FC56
|
|
ldrh r2, [r0, #0x0]
|
|
mov r1, #0x2
|
|
tst r1, r2
|
|
beq _0200FCB0
|
|
add r0, #0x44
|
|
ldrh r2, [r0, #0x0]
|
|
mov r1, #0x3f
|
|
bic r2, r1
|
|
mov r1, #0x3f
|
|
orr r2, r1
|
|
mov r1, #0x20
|
|
orr r1, r2
|
|
strh r1, [r0, #0x0]
|
|
pop {r3-r5, pc}
|
|
_0200FC56:
|
|
ldrh r1, [r0, #0x0]
|
|
mov r0, #0x2
|
|
tst r0, r1
|
|
beq _0200FCB0
|
|
ldr r1, _0200FCB8 ; =0x04001048
|
|
mov r0, #0x3f
|
|
ldrh r2, [r1, #0x0]
|
|
bic r2, r0
|
|
mov r0, #0x3f
|
|
orr r2, r0
|
|
mov r0, #0x20
|
|
orr r0, r2
|
|
strh r0, [r1, #0x0]
|
|
pop {r3-r5, pc}
|
|
_0200FC72:
|
|
cmp r2, #0x0
|
|
bne _0200FC94
|
|
ldrh r1, [r0, #0x0]
|
|
mov r2, #0x2
|
|
tst r1, r2
|
|
beq _0200FCB0
|
|
add r0, #0x44
|
|
ldrh r3, [r0, #0x0]
|
|
ldr r1, _0200FCB4 ; =0xFFFFC0FF
|
|
and r3, r1
|
|
mov r1, #0x3f
|
|
lsl r1, r1, #0x8
|
|
orr r3, r1
|
|
lsl r1, r2, #0xc
|
|
orr r1, r3
|
|
strh r1, [r0, #0x0]
|
|
pop {r3-r5, pc}
|
|
_0200FC94:
|
|
ldrh r1, [r0, #0x0]
|
|
mov r0, #0x2
|
|
tst r0, r1
|
|
beq _0200FCB0
|
|
ldr r2, _0200FCB8 ; =0x04001048
|
|
ldr r0, _0200FCB4 ; =0xFFFFC0FF
|
|
ldrh r1, [r2, #0x0]
|
|
and r1, r0
|
|
mov r0, #0x3f
|
|
lsl r0, r0, #0x8
|
|
orr r1, r0
|
|
lsr r0, r2, #0xd
|
|
orr r0, r1
|
|
strh r0, [r2, #0x0]
|
|
_0200FCB0:
|
|
pop {r3-r5, pc}
|
|
nop
|
|
_0200FCB4: .word 0xFFFFC0FF
|
|
_0200FCB8: .word 0x04001048
|
|
_0200FCBC: .word 0x00000309
|
|
_0200FCC0: .word 0x04000004
|
|
_0200FCC4: .word 0x0400104A
|
|
|
|
thumb_func_start sub_0200FCC8
|
|
sub_0200FCC8: ; 0x0200FCC8
|
|
push {r4-r6, lr}
|
|
sub sp, #0x8
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0x20]
|
|
add r6, r1, #0x0
|
|
mov r1, #0x4c
|
|
bl Heap_Alloc
|
|
str r0, [r5, #0x14]
|
|
add r4, r0, #0x0
|
|
ldr r0, [r5, #0x10]
|
|
add r1, r6, #0x0
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r5, #0x18]
|
|
str r0, [sp, #0x4]
|
|
ldr r2, [r5, #0x4]
|
|
ldr r3, [r5, #0x8]
|
|
add r0, r4, #0x0
|
|
bl sub_0200FE20
|
|
add r6, #0x20
|
|
ldrb r0, [r6, #0x0]
|
|
cmp r0, #0x0
|
|
ldr r0, [r5, #0x18]
|
|
bne _0200FD06
|
|
ldr r2, [r4, #0x30]
|
|
ldr r3, [r4, #0x44]
|
|
mov r1, #0x1
|
|
bl sub_0200F6E4
|
|
b _0200FD10
|
|
_0200FD06:
|
|
ldr r2, [r4, #0x30]
|
|
ldr r3, [r4, #0x44]
|
|
mov r1, #0x2
|
|
bl sub_0200F6E4
|
|
_0200FD10:
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
add sp, #0x8
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0200FD1C
|
|
sub_0200FD1C: ; 0x0200FD1C
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0xc]
|
|
mov r6, #0x0
|
|
ldr r4, [r5, #0x14]
|
|
cmp r0, #0x1
|
|
beq _0200FD34
|
|
cmp r0, #0x2
|
|
beq _0200FD50
|
|
cmp r0, #0x3
|
|
beq _0200FD64
|
|
b _0200FD66
|
|
_0200FD34:
|
|
add r0, r4, #0x0
|
|
bl sub_0200FE90
|
|
cmp r0, #0x1
|
|
bne _0200FD66
|
|
ldr r0, [r4, #0x44]
|
|
ldr r1, [r5, #0x18]
|
|
ldr r2, [r5, #0x10]
|
|
bl sub_0200F62C
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _0200FD66
|
|
_0200FD50:
|
|
add r0, r4, #0x0
|
|
bl Heap_Free
|
|
add r0, r6, #0x0
|
|
str r0, [r5, #0x14]
|
|
ldr r0, [r5, #0xc]
|
|
mov r6, #0x1
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _0200FD66
|
|
_0200FD64:
|
|
mov r6, #0x1
|
|
_0200FD66:
|
|
add r0, r6, #0x0
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0200FD6C
|
|
sub_0200FD6C: ; 0x0200FD6C
|
|
push {r3-r7, lr}
|
|
sub sp, #0x8
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0x20]
|
|
add r6, r1, #0x0
|
|
mov r1, #0x98
|
|
add r7, r2, #0x0
|
|
bl Heap_Alloc
|
|
str r0, [r5, #0x14]
|
|
add r4, r0, #0x0
|
|
ldr r0, [r5, #0x10]
|
|
add r1, r6, #0x0
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r5, #0x18]
|
|
str r0, [sp, #0x4]
|
|
ldr r2, [r5, #0x4]
|
|
ldr r3, [r5, #0x8]
|
|
add r0, r4, #0x0
|
|
bl sub_0200FE20
|
|
ldr r0, [r5, #0x10]
|
|
add r1, r7, #0x0
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r5, #0x18]
|
|
str r0, [sp, #0x4]
|
|
add r0, r4, #0x0
|
|
ldr r2, [r5, #0x4]
|
|
ldr r3, [r5, #0x8]
|
|
add r0, #0x4c
|
|
bl sub_0200FE20
|
|
ldr r0, [r5, #0x18]
|
|
ldr r2, [r5, #0x10]
|
|
ldr r3, [r4, #0x44]
|
|
mov r1, #0x3
|
|
bl sub_0200F6E4
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
add sp, #0x8
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0200FDC4
|
|
sub_0200FDC4: ; 0x0200FDC4
|
|
push {r3-r7, lr}
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0xc]
|
|
mov r6, #0x0
|
|
ldr r4, [r5, #0x14]
|
|
cmp r0, #0x1
|
|
beq _0200FDDC
|
|
cmp r0, #0x2
|
|
beq _0200FE04
|
|
cmp r0, #0x3
|
|
beq _0200FE18
|
|
b _0200FE1A
|
|
_0200FDDC:
|
|
add r0, r4, #0x0
|
|
bl sub_0200FE90
|
|
add r7, r0, #0x0
|
|
add r0, r4, #0x0
|
|
add r0, #0x4c
|
|
bl sub_0200FE90
|
|
add r0, r7, r0
|
|
cmp r0, #0x2
|
|
bne _0200FE1A
|
|
ldr r0, [r4, #0x44]
|
|
ldr r1, [r5, #0x18]
|
|
ldr r2, [r5, #0x10]
|
|
bl sub_0200F62C
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _0200FE1A
|
|
_0200FE04:
|
|
add r0, r4, #0x0
|
|
bl Heap_Free
|
|
add r0, r6, #0x0
|
|
str r0, [r5, #0x14]
|
|
ldr r0, [r5, #0xc]
|
|
mov r6, #0x1
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _0200FE1A
|
|
_0200FE18:
|
|
mov r6, #0x1
|
|
_0200FE1A:
|
|
add r0, r6, #0x0
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0200FE20
|
|
sub_0200FE20: ; 0x0200FE20
|
|
push {r3-r7, lr}
|
|
sub sp, #0x18
|
|
add r4, r1, #0x0
|
|
add r1, #0x10
|
|
add r7, r3, #0x0
|
|
add r5, r0, #0x0
|
|
add r6, r2, #0x0
|
|
str r1, [sp, #0x0]
|
|
add r1, r5, #0x0
|
|
add r2, r5, #0x0
|
|
add r1, #0x20
|
|
add r2, #0x10
|
|
add r3, r4, #0x0
|
|
str r6, [sp, #0x4]
|
|
bl sub_0200F1A8
|
|
ldr r1, [sp, #0x30]
|
|
add r0, r4, #0x0
|
|
add r2, r4, #0x0
|
|
str r1, [r5, #0x30]
|
|
add r0, #0x20
|
|
ldrb r0, [r0, #0x0]
|
|
add r2, #0x23
|
|
str r0, [r5, #0x34]
|
|
str r6, [r5, #0x38]
|
|
str r7, [r5, #0x3c]
|
|
mov r0, #0x0
|
|
str r0, [r5, #0x40]
|
|
ldr r0, [sp, #0x34]
|
|
str r0, [r5, #0x48]
|
|
ldrb r2, [r2, #0x0]
|
|
str r2, [r5, #0x44]
|
|
str r1, [sp, #0x0]
|
|
ldr r1, [r4, #0x0]
|
|
add r2, r4, #0x0
|
|
str r1, [sp, #0x4]
|
|
ldr r1, [r4, #0x4]
|
|
add r2, #0x22
|
|
str r1, [sp, #0x8]
|
|
ldr r1, [r4, #0x8]
|
|
str r1, [sp, #0xc]
|
|
ldr r1, [r4, #0xc]
|
|
str r1, [sp, #0x10]
|
|
ldr r1, [r5, #0x44]
|
|
str r1, [sp, #0x14]
|
|
add r1, r4, #0x0
|
|
add r1, #0x21
|
|
add r4, #0x20
|
|
ldrb r1, [r1, #0x0]
|
|
ldrb r2, [r2, #0x0]
|
|
ldrb r3, [r4, #0x0]
|
|
bl sub_0200F67C
|
|
add sp, #0x18
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0200FE90
|
|
sub_0200FE90: ; 0x0200FE90
|
|
push {r3-r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0x40]
|
|
add r2, r1, #0x1
|
|
str r2, [r4, #0x40]
|
|
ldr r1, [r4, #0x3c]
|
|
cmp r2, r1
|
|
blt _0200FF10
|
|
mov r1, #0x0
|
|
str r1, [r4, #0x40]
|
|
ldr r1, [r4, #0x38]
|
|
sub r1, r1, #0x1
|
|
cmp r1, #0x0
|
|
ble _0200FEBA
|
|
str r1, [r4, #0x38]
|
|
add r1, r4, #0x0
|
|
add r1, #0x10
|
|
bl sub_0200F184
|
|
b _0200FED8
|
|
_0200FEBA:
|
|
ldr r0, [r4, #0x2c]
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r4, #0x34]
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [r4, #0x30]
|
|
str r0, [sp, #0x8]
|
|
ldr r0, [r4, #0x48]
|
|
ldr r1, [r4, #0x20]
|
|
ldr r2, [r4, #0x24]
|
|
ldr r3, [r4, #0x28]
|
|
bl sub_02011698
|
|
add sp, #0xc
|
|
mov r0, #0x1
|
|
pop {r3-r4, pc}
|
|
_0200FED8:
|
|
ldr r1, [r4, #0xc]
|
|
asr r0, r1, #0x6
|
|
lsr r0, r0, #0x19
|
|
add r0, r1, r0
|
|
asr r0, r0, #0x7
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r4, #0x34]
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [r4, #0x30]
|
|
str r0, [sp, #0x8]
|
|
ldr r2, [r4, #0x0]
|
|
ldr r3, [r4, #0x4]
|
|
asr r1, r2, #0x6
|
|
lsr r1, r1, #0x19
|
|
add r1, r2, r1
|
|
ldr r0, [r4, #0x48]
|
|
asr r2, r3, #0x6
|
|
lsr r2, r2, #0x19
|
|
add r2, r3, r2
|
|
ldr r4, [r4, #0x8]
|
|
asr r1, r1, #0x7
|
|
asr r3, r4, #0x6
|
|
lsr r3, r3, #0x19
|
|
add r3, r4, r3
|
|
asr r2, r2, #0x7
|
|
asr r3, r3, #0x7
|
|
bl sub_02011698
|
|
_0200FF10:
|
|
mov r0, #0x0
|
|
add sp, #0xc
|
|
pop {r3-r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0200FF18
|
|
sub_0200FF18: ; 0x0200FF18
|
|
push {r3-r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0x20]
|
|
add r4, r1, #0x0
|
|
mov r1, #0x38
|
|
bl Heap_Alloc
|
|
str r0, [r5, #0x14]
|
|
ldr r0, [r5, #0x10]
|
|
add r1, r4, #0x0
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r5, #0x18]
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [r5, #0x1c]
|
|
str r0, [sp, #0x8]
|
|
ldr r0, [r5, #0x20]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r5, #0x14]
|
|
ldr r2, [r5, #0x4]
|
|
ldr r3, [r5, #0x8]
|
|
bl sub_0200FFAC
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
add sp, #0x10
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_0200FF50
|
|
sub_0200FF50: ; 0x0200FF50
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0xc]
|
|
mov r6, #0x0
|
|
ldr r4, [r5, #0x14]
|
|
cmp r0, #0x1
|
|
beq _0200FF68
|
|
cmp r0, #0x2
|
|
beq _0200FF84
|
|
cmp r0, #0x3
|
|
beq _0200FF9E
|
|
b _0200FFA2
|
|
_0200FF68:
|
|
add r0, r4, #0x0
|
|
bl sub_02010084
|
|
cmp r0, #0x1
|
|
bne _0200FFA6
|
|
ldr r0, [r4, #0x2c]
|
|
ldr r1, [r4, #0x30]
|
|
ldr r2, [r5, #0x10]
|
|
bl sub_0200F62C
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _0200FFA6
|
|
_0200FF84:
|
|
add r0, r4, #0x0
|
|
bl sub_0200F5C0
|
|
ldr r0, [r5, #0x14]
|
|
bl Heap_Free
|
|
add r0, r6, #0x0
|
|
str r0, [r5, #0x14]
|
|
ldr r0, [r5, #0xc]
|
|
mov r6, #0x1
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _0200FFA6
|
|
_0200FF9E:
|
|
mov r6, #0x1
|
|
b _0200FFA6
|
|
_0200FFA2:
|
|
bl GF_AssertFail
|
|
_0200FFA6:
|
|
add r0, r6, #0x0
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0200FFAC
|
|
sub_0200FFAC: ; 0x0200FFAC
|
|
push {r4-r7, lr}
|
|
sub sp, #0x24
|
|
add r4, r1, #0x0
|
|
add r5, r0, #0x0
|
|
ldr r0, [r4, #0x0]
|
|
ldr r1, [r4, #0x4]
|
|
str r2, [sp, #0x18]
|
|
str r3, [sp, #0x1c]
|
|
ldr r6, [sp, #0x38]
|
|
ldr r7, [sp, #0x3c]
|
|
bl sub_0200F164
|
|
str r0, [sp, #0x20]
|
|
ldrb r1, [r4, #0xc]
|
|
ldr r3, [sp, #0x44]
|
|
add r0, r5, #0x0
|
|
add r2, r6, #0x0
|
|
bl sub_0200F55C
|
|
ldr r0, [r4, #0x0]
|
|
lsl r0, r0, #0x7
|
|
str r0, [r5, #0xc]
|
|
mov r0, #0x8
|
|
ldrsh r0, [r4, r0]
|
|
str r0, [r5, #0x10]
|
|
mov r0, #0xa
|
|
ldrsh r0, [r4, r0]
|
|
str r0, [r5, #0x14]
|
|
ldr r0, [sp, #0x20]
|
|
str r0, [r5, #0x18]
|
|
ldr r0, [sp, #0x18]
|
|
str r0, [r5, #0x1c]
|
|
ldr r0, [sp, #0x1c]
|
|
str r0, [r5, #0x20]
|
|
mov r0, #0x0
|
|
str r0, [r5, #0x24]
|
|
ldr r0, [sp, #0x40]
|
|
str r7, [r5, #0x30]
|
|
str r0, [r5, #0x34]
|
|
ldr r0, [sp, #0x44]
|
|
str r0, [r5, #0x28]
|
|
ldrb r0, [r4, #0xf]
|
|
str r0, [r5, #0x2c]
|
|
add r0, r5, #0x0
|
|
bl sub_02010168
|
|
ldr r0, _02010078 ; =sub_0200F5F8
|
|
ldr r2, _0201007C ; =0x000003FF
|
|
add r1, r5, #0x0
|
|
bl sub_0200CA98
|
|
add r0, r5, #0x0
|
|
mov r1, #0x0
|
|
bl sub_0200F5D8
|
|
mov r1, #0x3
|
|
str r6, [sp, #0x0]
|
|
lsl r1, r1, #0x8
|
|
ldrsh r1, [r0, r1]
|
|
str r1, [sp, #0x4]
|
|
mov r1, #0x0
|
|
str r1, [sp, #0x8]
|
|
mov r1, #0x12
|
|
lsl r1, r1, #0x6
|
|
ldrsh r0, [r0, r1]
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xc0
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r5, #0x2c]
|
|
str r0, [sp, #0x14]
|
|
ldrb r1, [r4, #0xd]
|
|
ldrb r2, [r4, #0xe]
|
|
ldrb r3, [r4, #0xc]
|
|
add r0, r7, #0x0
|
|
bl sub_0200F67C
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0x0
|
|
bne _02010058
|
|
ldr r3, [r5, #0x2c]
|
|
add r0, r7, #0x0
|
|
mov r1, #0x1
|
|
add r2, r6, #0x0
|
|
bl sub_0200F6E4
|
|
b _02010064
|
|
_02010058:
|
|
ldr r3, [r5, #0x2c]
|
|
add r0, r7, #0x0
|
|
mov r1, #0x2
|
|
add r2, r6, #0x0
|
|
bl sub_0200F6E4
|
|
_02010064:
|
|
ldr r0, [sp, #0x44]
|
|
ldr r2, _02010080 ; =sub_0200F330
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r5, #0x34]
|
|
add r1, r5, #0x0
|
|
add r3, r6, #0x0
|
|
bl sub_0200E6CC
|
|
add sp, #0x24
|
|
pop {r4-r7, pc}
|
|
.balign 4
|
|
_02010078: .word sub_0200F5F8
|
|
_0201007C: .word 0x000003FF
|
|
_02010080: .word sub_0200F330
|
|
|
|
thumb_func_start sub_02010084
|
|
sub_02010084: ; 0x02010084
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0x24]
|
|
add r2, r1, #0x1
|
|
str r2, [r4, #0x24]
|
|
ldr r1, [r4, #0x20]
|
|
cmp r2, r1
|
|
blt _020100C8
|
|
mov r1, #0x0
|
|
str r1, [r4, #0x24]
|
|
ldr r1, [r4, #0x1c]
|
|
sub r1, r1, #0x1
|
|
cmp r1, #0x0
|
|
ble _020100BA
|
|
str r1, [r4, #0x1c]
|
|
ldr r2, [r4, #0xc]
|
|
ldr r1, [r4, #0x18]
|
|
add r1, r2, r1
|
|
str r1, [r4, #0xc]
|
|
bl sub_02010168
|
|
ldr r0, _020100CC ; =sub_0200F5F8
|
|
ldr r2, _020100D0 ; =0x000003FF
|
|
add r1, r4, #0x0
|
|
bl sub_0200CA98
|
|
b _020100C8
|
|
_020100BA:
|
|
ldr r0, [r4, #0x34]
|
|
ldr r1, [r4, #0x8]
|
|
ldr r2, [r4, #0x28]
|
|
bl sub_0200E6F8
|
|
mov r0, #0x1
|
|
pop {r4, pc}
|
|
_020100C8:
|
|
mov r0, #0x0
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_020100CC: .word sub_0200F5F8
|
|
_020100D0: .word 0x000003FF
|
|
|
|
thumb_func_start sub_020100D4
|
|
sub_020100D4: ; 0x020100D4
|
|
push {r4-r7, lr}
|
|
sub sp, #0xc
|
|
str r1, [sp, #0x0]
|
|
asr r1, r0, #0x6
|
|
lsr r1, r1, #0x19
|
|
add r1, r0, r1
|
|
asr r1, r1, #0x7
|
|
ldr r5, [sp, #0x20]
|
|
ldr r4, [sp, #0x24]
|
|
sub r0, r3, r2
|
|
bpl _020100EC
|
|
neg r0, r0
|
|
_020100EC:
|
|
cmp r0, r1
|
|
blt _020100FA
|
|
mov r0, #0x0
|
|
str r0, [r5, #0x0]
|
|
add sp, #0xc
|
|
str r0, [r4, #0x0]
|
|
pop {r4-r7, pc}
|
|
_020100FA:
|
|
lsl r0, r0, #0xc
|
|
str r0, [sp, #0x4]
|
|
asr r7, r0, #0x1f
|
|
lsl r0, r1, #0xc
|
|
asr r1, r0, #0x1f
|
|
add r2, r0, #0x0
|
|
add r3, r1, #0x0
|
|
bl _ll_mul
|
|
str r0, [sp, #0x8]
|
|
ldr r0, [sp, #0x4]
|
|
add r6, r1, #0x0
|
|
add r1, r7, #0x0
|
|
add r2, r0, #0x0
|
|
add r3, r7, #0x0
|
|
bl _ll_mul
|
|
add r2, r0, #0x0
|
|
add r3, r1, #0x0
|
|
mov r0, #0x2
|
|
ldr r1, [sp, #0x8]
|
|
mov r7, #0x0
|
|
lsl r0, r0, #0xa
|
|
add r0, r1, r0
|
|
adc r6, r7
|
|
lsl r1, r6, #0x14
|
|
lsr r0, r0, #0xc
|
|
orr r0, r1
|
|
mov r1, #0x2
|
|
lsl r1, r1, #0xa
|
|
add r2, r2, r1
|
|
adc r3, r7
|
|
lsl r1, r3, #0x14
|
|
lsr r2, r2, #0xc
|
|
orr r2, r1
|
|
sub r0, r0, r2
|
|
bl FX_Sqrt
|
|
asr r2, r0, #0xc
|
|
ldr r0, [sp, #0x0]
|
|
sub r0, r0, r2
|
|
str r0, [r5, #0x0]
|
|
bpl _02010154
|
|
add r0, r7, #0x0
|
|
str r0, [r5, #0x0]
|
|
_02010154:
|
|
ldr r1, [r5, #0x0]
|
|
lsl r0, r2, #0x1
|
|
add r0, r1, r0
|
|
str r0, [r4, #0x0]
|
|
cmp r0, #0xff
|
|
ble _02010164
|
|
mov r0, #0xff
|
|
str r0, [r4, #0x0]
|
|
_02010164:
|
|
add sp, #0xc
|
|
pop {r4-r7, pc}
|
|
|
|
thumb_func_start sub_02010168
|
|
sub_02010168: ; 0x02010168
|
|
push {r3-r7, lr}
|
|
sub sp, #0x10
|
|
mov r1, #0x0
|
|
add r5, r0, #0x0
|
|
bl sub_0200F5D8
|
|
add r7, r0, #0x0
|
|
mov r4, #0x0
|
|
add r6, r7, #0x0
|
|
_0201017A:
|
|
ldr r2, [r5, #0x14]
|
|
cmp r4, r2
|
|
bgt _02010194
|
|
add r0, sp, #0xc
|
|
str r0, [sp, #0x0]
|
|
add r0, sp, #0x8
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [r5, #0xc]
|
|
ldr r1, [r5, #0x10]
|
|
add r3, r4, #0x0
|
|
bl sub_020100D4
|
|
b _020101CE
|
|
_02010194:
|
|
lsl r0, r2, #0x1
|
|
cmp r4, r0
|
|
bgt _020101BC
|
|
sub r0, r0, r4
|
|
lsl r0, r0, #0x1
|
|
add r1, r7, r0
|
|
mov r0, #0x3
|
|
lsl r0, r0, #0x8
|
|
ldrsh r0, [r1, r0]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r5, #0x14]
|
|
lsl r0, r0, #0x1
|
|
sub r0, r0, r4
|
|
lsl r0, r0, #0x1
|
|
add r1, r7, r0
|
|
mov r0, #0x12
|
|
lsl r0, r0, #0x6
|
|
ldrsh r0, [r1, r0]
|
|
str r0, [sp, #0x8]
|
|
b _020101CE
|
|
_020101BC:
|
|
add r0, sp, #0xc
|
|
str r0, [sp, #0x0]
|
|
add r0, sp, #0x8
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [r5, #0xc]
|
|
ldr r1, [r5, #0x10]
|
|
add r3, r4, #0x0
|
|
bl sub_020100D4
|
|
_020101CE:
|
|
mov r0, #0x3
|
|
ldr r1, [sp, #0xc]
|
|
lsl r0, r0, #0x8
|
|
strh r1, [r6, r0]
|
|
mov r0, #0x12
|
|
ldr r1, [sp, #0x8]
|
|
lsl r0, r0, #0x6
|
|
strh r1, [r6, r0]
|
|
add r4, r4, #0x1
|
|
add r6, r6, #0x2
|
|
cmp r4, #0xc0
|
|
blt _0201017A
|
|
add sp, #0x10
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020101EC
|
|
sub_020101EC: ; 0x020101EC
|
|
push {r3-r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0x20]
|
|
add r4, r1, #0x0
|
|
mov r1, #0x30
|
|
bl Heap_Alloc
|
|
str r0, [r5, #0x14]
|
|
ldr r0, [r5, #0x10]
|
|
add r1, r4, #0x0
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r5, #0x18]
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [r5, #0x1c]
|
|
str r0, [sp, #0x8]
|
|
ldr r0, [r5, #0x20]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r5, #0x14]
|
|
ldr r2, [r5, #0x4]
|
|
ldr r3, [r5, #0x8]
|
|
bl sub_02010280
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
add sp, #0x10
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_02010224
|
|
sub_02010224: ; 0x02010224
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0xc]
|
|
mov r6, #0x0
|
|
ldr r4, [r5, #0x14]
|
|
cmp r0, #0x1
|
|
beq _0201023C
|
|
cmp r0, #0x2
|
|
beq _02010258
|
|
cmp r0, #0x3
|
|
beq _02010272
|
|
b _02010276
|
|
_0201023C:
|
|
add r0, r4, #0x0
|
|
bl sub_02010348
|
|
cmp r0, #0x1
|
|
bne _0201027A
|
|
ldr r0, [r4, #0x20]
|
|
ldr r1, [r4, #0x24]
|
|
ldr r2, [r5, #0x10]
|
|
bl sub_0200F62C
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _0201027A
|
|
_02010258:
|
|
add r0, r4, #0x0
|
|
bl sub_0200F5C0
|
|
ldr r0, [r5, #0x14]
|
|
bl Heap_Free
|
|
add r0, r6, #0x0
|
|
str r0, [r5, #0x14]
|
|
ldr r0, [r5, #0xc]
|
|
mov r6, #0x1
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _0201027A
|
|
_02010272:
|
|
mov r6, #0x1
|
|
b _0201027A
|
|
_02010276:
|
|
bl GF_AssertFail
|
|
_0201027A:
|
|
add r0, r6, #0x0
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02010280
|
|
sub_02010280: ; 0x02010280
|
|
push {r3-r7, lr}
|
|
sub sp, #0x20
|
|
add r4, r1, #0x0
|
|
add r5, r0, #0x0
|
|
ldr r0, [r4, #0x0]
|
|
ldr r1, [r4, #0x4]
|
|
str r2, [sp, #0x18]
|
|
str r3, [sp, #0x1c]
|
|
ldr r6, [sp, #0x38]
|
|
ldr r7, [sp, #0x3c]
|
|
bl sub_0200F164
|
|
str r0, [r5, #0x10]
|
|
ldrb r1, [r4, #0x8]
|
|
ldr r3, [sp, #0x44]
|
|
add r0, r5, #0x0
|
|
add r2, r6, #0x0
|
|
bl sub_0200F55C
|
|
ldr r0, [r4, #0x0]
|
|
lsl r0, r0, #0x7
|
|
str r0, [r5, #0xc]
|
|
ldr r0, [sp, #0x18]
|
|
str r0, [r5, #0x14]
|
|
ldr r0, [sp, #0x1c]
|
|
str r0, [r5, #0x18]
|
|
mov r0, #0x0
|
|
str r0, [r5, #0x1c]
|
|
ldr r0, [sp, #0x40]
|
|
str r7, [r5, #0x24]
|
|
str r0, [r5, #0x28]
|
|
ldr r0, [sp, #0x44]
|
|
str r0, [r5, #0x2c]
|
|
ldrb r0, [r4, #0xb]
|
|
str r0, [r5, #0x20]
|
|
add r0, r5, #0x0
|
|
bl sub_02010398
|
|
ldr r0, _0201033C ; =sub_0200F5F8
|
|
ldr r2, _02010340 ; =0x000003FF
|
|
add r1, r5, #0x0
|
|
bl sub_0200CA98
|
|
add r0, r5, #0x0
|
|
mov r1, #0x0
|
|
bl sub_0200F5D8
|
|
mov r1, #0x3
|
|
str r6, [sp, #0x0]
|
|
lsl r1, r1, #0x8
|
|
ldrsh r1, [r0, r1]
|
|
str r1, [sp, #0x4]
|
|
mov r1, #0x0
|
|
str r1, [sp, #0x8]
|
|
mov r1, #0x12
|
|
lsl r1, r1, #0x6
|
|
ldrsh r0, [r0, r1]
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xc0
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r5, #0x20]
|
|
str r0, [sp, #0x14]
|
|
ldrb r1, [r4, #0x9]
|
|
ldrb r2, [r4, #0xa]
|
|
ldrb r3, [r4, #0x8]
|
|
add r0, r7, #0x0
|
|
bl sub_0200F67C
|
|
ldrb r0, [r4, #0x8]
|
|
cmp r0, #0x0
|
|
bne _0201031C
|
|
ldr r3, [r5, #0x20]
|
|
add r0, r7, #0x0
|
|
mov r1, #0x1
|
|
add r2, r6, #0x0
|
|
bl sub_0200F6E4
|
|
b _02010328
|
|
_0201031C:
|
|
ldr r3, [r5, #0x20]
|
|
add r0, r7, #0x0
|
|
mov r1, #0x2
|
|
add r2, r6, #0x0
|
|
bl sub_0200F6E4
|
|
_02010328:
|
|
ldr r0, [sp, #0x44]
|
|
ldr r2, _02010344 ; =sub_0200F330
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r5, #0x28]
|
|
add r1, r5, #0x0
|
|
add r3, r6, #0x0
|
|
bl sub_0200E6CC
|
|
add sp, #0x20
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
_0201033C: .word sub_0200F5F8
|
|
_02010340: .word 0x000003FF
|
|
_02010344: .word sub_0200F330
|
|
|
|
thumb_func_start sub_02010348
|
|
sub_02010348: ; 0x02010348
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0x1c]
|
|
add r2, r1, #0x1
|
|
str r2, [r4, #0x1c]
|
|
ldr r1, [r4, #0x18]
|
|
cmp r2, r1
|
|
blt _0201038C
|
|
mov r1, #0x0
|
|
str r1, [r4, #0x1c]
|
|
ldr r1, [r4, #0x14]
|
|
sub r1, r1, #0x1
|
|
cmp r1, #0x0
|
|
ble _0201037E
|
|
str r1, [r4, #0x14]
|
|
ldr r2, [r4, #0xc]
|
|
ldr r1, [r4, #0x10]
|
|
add r1, r2, r1
|
|
str r1, [r4, #0xc]
|
|
bl sub_02010398
|
|
ldr r0, _02010390 ; =sub_0200F5F8
|
|
ldr r2, _02010394 ; =0x000003FF
|
|
add r1, r4, #0x0
|
|
bl sub_0200CA98
|
|
b _0201038C
|
|
_0201037E:
|
|
ldr r0, [r4, #0x28]
|
|
ldr r1, [r4, #0x8]
|
|
ldr r2, [r4, #0x2c]
|
|
bl sub_0200E6F8
|
|
mov r0, #0x1
|
|
pop {r4, pc}
|
|
_0201038C:
|
|
mov r0, #0x0
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_02010390: .word sub_0200F5F8
|
|
_02010394: .word 0x000003FF
|
|
|
|
thumb_func_start sub_02010398
|
|
sub_02010398: ; 0x02010398
|
|
push {r3-r7, lr}
|
|
sub sp, #0x1fc
|
|
sub sp, #0x104
|
|
add r4, r0, #0x0
|
|
mov r1, #0x0
|
|
bl sub_0200F5D8
|
|
ldr r1, [r4, #0xc]
|
|
add r5, r0, #0x0
|
|
asr r0, r1, #0x6
|
|
lsr r0, r0, #0x19
|
|
add r0, r1, r0
|
|
asr r0, r0, #0x7
|
|
add r1, sp, #0x0
|
|
mov r2, #0xc0
|
|
mov r3, #0x0
|
|
bl sub_0200F0F8
|
|
mov r7, #0x12
|
|
mov r6, #0x0
|
|
add r4, sp, #0x0
|
|
lsl r7, r7, #0x6
|
|
_020103C4:
|
|
ldr r1, [r4, #0x0]
|
|
mov r0, #0x80
|
|
neg r1, r1
|
|
bl sub_0200F174
|
|
mov r1, #0x3
|
|
lsl r1, r1, #0x8
|
|
strh r0, [r5, r1]
|
|
ldr r1, [r4, #0x0]
|
|
mov r0, #0x80
|
|
bl sub_0200F174
|
|
strh r0, [r5, r7]
|
|
add r6, r6, #0x1
|
|
add r4, r4, #0x4
|
|
add r5, r5, #0x2
|
|
cmp r6, #0xc0
|
|
blt _020103C4
|
|
add sp, #0x1fc
|
|
add sp, #0x104
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020103F0
|
|
sub_020103F0: ; 0x020103F0
|
|
push {r3-r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0x20]
|
|
add r4, r1, #0x0
|
|
mov r1, #0x34
|
|
bl Heap_Alloc
|
|
str r0, [r5, #0x14]
|
|
ldr r0, [r5, #0x10]
|
|
add r1, r4, #0x0
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r5, #0x18]
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [r5, #0x1c]
|
|
str r0, [sp, #0x8]
|
|
ldr r0, [r5, #0x20]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r5, #0x14]
|
|
ldr r2, [r5, #0x4]
|
|
ldr r3, [r5, #0x8]
|
|
bl sub_0201047C
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
add sp, #0x10
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_02010428
|
|
sub_02010428: ; 0x02010428
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0xc]
|
|
mov r6, #0x0
|
|
ldr r4, [r5, #0x14]
|
|
cmp r0, #0x1
|
|
beq _02010440
|
|
cmp r0, #0x2
|
|
beq _0201045C
|
|
cmp r0, #0x3
|
|
beq _02010476
|
|
b _02010478
|
|
_02010440:
|
|
add r0, r4, #0x0
|
|
bl sub_02010550
|
|
cmp r0, #0x1
|
|
bne _02010478
|
|
ldr r0, [r4, #0x24]
|
|
ldr r1, [r4, #0x28]
|
|
ldr r2, [r5, #0x10]
|
|
bl sub_0200F62C
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _02010478
|
|
_0201045C:
|
|
add r0, r4, #0x0
|
|
bl sub_0200F5C0
|
|
ldr r0, [r5, #0x14]
|
|
bl Heap_Free
|
|
add r0, r6, #0x0
|
|
str r0, [r5, #0x14]
|
|
ldr r0, [r5, #0xc]
|
|
mov r6, #0x1
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _02010478
|
|
_02010476:
|
|
mov r6, #0x1
|
|
_02010478:
|
|
add r0, r6, #0x0
|
|
pop {r4-r6, pc}
|
|
|
|
thumb_func_start sub_0201047C
|
|
sub_0201047C: ; 0x0201047C
|
|
push {r4-r7, lr}
|
|
sub sp, #0x24
|
|
add r4, r1, #0x0
|
|
add r5, r0, #0x0
|
|
ldr r1, [r4, #0x4]
|
|
ldr r0, [r4, #0x0]
|
|
str r2, [sp, #0x18]
|
|
sub r0, r1, r0
|
|
add r1, r2, #0x0
|
|
str r3, [sp, #0x1c]
|
|
ldr r6, [sp, #0x38]
|
|
ldr r7, [sp, #0x3c]
|
|
bl _s32_div_f
|
|
str r0, [sp, #0x20]
|
|
ldrb r1, [r4, #0x8]
|
|
ldr r3, [sp, #0x44]
|
|
add r0, r5, #0x0
|
|
add r2, r6, #0x0
|
|
bl sub_0200F55C
|
|
mov r0, #0x2
|
|
lsl r0, r0, #0x12
|
|
str r0, [r5, #0xc]
|
|
ldr r0, [r4, #0x0]
|
|
str r0, [r5, #0x10]
|
|
ldr r0, [sp, #0x20]
|
|
str r0, [r5, #0x14]
|
|
ldr r0, [sp, #0x18]
|
|
str r0, [r5, #0x18]
|
|
ldr r0, [sp, #0x1c]
|
|
str r0, [r5, #0x1c]
|
|
mov r0, #0x0
|
|
str r0, [r5, #0x20]
|
|
ldr r0, [sp, #0x40]
|
|
str r7, [r5, #0x28]
|
|
str r0, [r5, #0x2c]
|
|
ldr r0, [sp, #0x44]
|
|
str r0, [r5, #0x30]
|
|
ldrb r0, [r4, #0xb]
|
|
str r0, [r5, #0x24]
|
|
add r0, r5, #0x0
|
|
bl sub_020105A0
|
|
ldr r0, _02010544 ; =sub_0200F5F8
|
|
ldr r2, _02010548 ; =0x000003FF
|
|
add r1, r5, #0x0
|
|
bl sub_0200CA98
|
|
add r0, r5, #0x0
|
|
mov r1, #0x0
|
|
bl sub_0200F5D8
|
|
mov r1, #0xf
|
|
str r6, [sp, #0x0]
|
|
lsl r1, r1, #0x6
|
|
ldrsh r1, [r0, r1]
|
|
str r1, [sp, #0x4]
|
|
mov r1, #0x0
|
|
str r1, [sp, #0x8]
|
|
mov r1, #0x15
|
|
lsl r1, r1, #0x6
|
|
ldrsh r0, [r0, r1]
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xc0
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r5, #0x24]
|
|
str r0, [sp, #0x14]
|
|
ldrb r1, [r4, #0x9]
|
|
ldrb r2, [r4, #0xa]
|
|
ldrb r3, [r4, #0x8]
|
|
add r0, r7, #0x0
|
|
bl sub_0200F67C
|
|
ldrb r0, [r4, #0x8]
|
|
cmp r0, #0x0
|
|
bne _02010524
|
|
ldr r3, [r5, #0x24]
|
|
add r0, r7, #0x0
|
|
mov r1, #0x1
|
|
add r2, r6, #0x0
|
|
bl sub_0200F6E4
|
|
b _02010530
|
|
_02010524:
|
|
ldr r3, [r5, #0x24]
|
|
add r0, r7, #0x0
|
|
mov r1, #0x2
|
|
add r2, r6, #0x0
|
|
bl sub_0200F6E4
|
|
_02010530:
|
|
ldr r0, [sp, #0x44]
|
|
ldr r2, _0201054C ; =sub_0200F330
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r5, #0x2c]
|
|
add r1, r5, #0x0
|
|
add r3, r6, #0x0
|
|
bl sub_0200E6CC
|
|
add sp, #0x24
|
|
pop {r4-r7, pc}
|
|
.balign 4
|
|
_02010544: .word sub_0200F5F8
|
|
_02010548: .word 0x000003FF
|
|
_0201054C: .word sub_0200F330
|
|
|
|
thumb_func_start sub_02010550
|
|
sub_02010550: ; 0x02010550
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0x20]
|
|
add r2, r1, #0x1
|
|
str r2, [r4, #0x20]
|
|
ldr r1, [r4, #0x1c]
|
|
cmp r2, r1
|
|
blt _02010594
|
|
mov r1, #0x0
|
|
str r1, [r4, #0x20]
|
|
ldr r1, [r4, #0x18]
|
|
sub r1, r1, #0x1
|
|
cmp r1, #0x0
|
|
ble _02010586
|
|
str r1, [r4, #0x18]
|
|
ldr r2, [r4, #0x10]
|
|
ldr r1, [r4, #0x14]
|
|
add r1, r2, r1
|
|
str r1, [r4, #0x10]
|
|
bl sub_020105A0
|
|
ldr r0, _02010598 ; =sub_0200F5F8
|
|
ldr r2, _0201059C ; =0x000003FF
|
|
add r1, r4, #0x0
|
|
bl sub_0200CA98
|
|
b _02010594
|
|
_02010586:
|
|
ldr r0, [r4, #0x2c]
|
|
ldr r1, [r4, #0x8]
|
|
ldr r2, [r4, #0x30]
|
|
bl sub_0200E6F8
|
|
mov r0, #0x1
|
|
pop {r4, pc}
|
|
_02010594:
|
|
mov r0, #0x0
|
|
pop {r4, pc}
|
|
.balign 4
|
|
_02010598: .word sub_0200F5F8
|
|
_0201059C: .word 0x000003FF
|
|
|
|
thumb_func_start sub_020105A0
|
|
sub_020105A0: ; 0x020105A0
|
|
push {r4-r7, lr}
|
|
sub sp, #0x1fc
|
|
sub sp, #0x110
|
|
add r4, r0, #0x0
|
|
mov r1, #0x0
|
|
bl sub_0200F5D8
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r4, #0x10]
|
|
ldr r2, [r4, #0xc]
|
|
asr r0, r0, #0x4
|
|
lsl r1, r0, #0x2
|
|
ldr r0, _02010680 ; =FX_SinCosTable_
|
|
asr r3, r2, #0x1f
|
|
ldrsh r0, [r0, r1]
|
|
asr r1, r0, #0x1f
|
|
bl _ll_mul
|
|
mov r2, #0x2
|
|
mov r3, #0x0
|
|
lsl r2, r2, #0xa
|
|
add r2, r0, r2
|
|
adc r1, r3
|
|
lsl r0, r1, #0x14
|
|
lsr r1, r2, #0xc
|
|
orr r1, r0
|
|
asr r7, r1, #0xc
|
|
lsl r0, r7, #0x1
|
|
mov r1, #0x15
|
|
bl _s32_div_f
|
|
add r0, r0, #0x1
|
|
lsl r0, r0, #0x1
|
|
mov r1, #0xb4
|
|
sub r2, r1, r0
|
|
ldr r0, _02010684 ; =0x0000FFFF
|
|
add r1, #0xb4
|
|
mul r0, r2
|
|
bl _s32_div_f
|
|
lsr r1, r0, #0x1f
|
|
add r1, r0, r1
|
|
asr r4, r1, #0x1
|
|
mov r1, #0x1
|
|
add r0, r4, #0x0
|
|
lsl r1, r1, #0x8
|
|
bl sub_0200F14C
|
|
asr r0, r0, #0xc
|
|
str r0, [sp, #0x4]
|
|
cmp r0, #0xc0
|
|
blt _0201060C
|
|
bl GF_AssertFail
|
|
_0201060C:
|
|
ldr r2, [sp, #0x4]
|
|
add r0, r4, #0x0
|
|
add r1, sp, #0xc
|
|
mov r3, #0x0
|
|
bl sub_0200F0F8
|
|
ldr r5, [sp, #0x0]
|
|
mov r4, #0x0
|
|
_0201061C:
|
|
ldr r0, [sp, #0x4]
|
|
add r1, r4, #0x1
|
|
sub r0, r0, r1
|
|
add r6, r7, #0x0
|
|
cmp r0, #0x0
|
|
ble _02010634
|
|
lsl r1, r0, #0x2
|
|
add r0, sp, #0xc
|
|
ldr r0, [r0, r1]
|
|
cmp r0, r7
|
|
ble _02010634
|
|
add r6, r0, #0x0
|
|
_02010634:
|
|
mov r0, #0x80
|
|
neg r1, r6
|
|
bl sub_0200F174
|
|
str r0, [sp, #0x8]
|
|
mov r0, #0x80
|
|
add r1, r6, #0x0
|
|
bl sub_0200F174
|
|
ldr r1, [sp, #0x8]
|
|
lsl r0, r0, #0x10
|
|
lsl r1, r1, #0x10
|
|
asr r2, r1, #0x10
|
|
mov r1, #0x3
|
|
lsl r1, r1, #0x8
|
|
strh r2, [r5, r1]
|
|
asr r1, r0, #0x10
|
|
mov r0, #0x12
|
|
lsl r0, r0, #0x6
|
|
strh r1, [r5, r0]
|
|
mov r0, #0xbf
|
|
sub r0, r0, r4
|
|
lsl r3, r0, #0x1
|
|
ldr r0, [sp, #0x0]
|
|
add r4, r4, #0x1
|
|
add r0, r0, r3
|
|
mov r3, #0x3
|
|
lsl r3, r3, #0x8
|
|
strh r2, [r0, r3]
|
|
mov r2, #0x12
|
|
lsl r2, r2, #0x6
|
|
add r5, r5, #0x2
|
|
strh r1, [r0, r2]
|
|
cmp r4, #0x60
|
|
blt _0201061C
|
|
add sp, #0x1fc
|
|
add sp, #0x110
|
|
pop {r4-r7, pc}
|
|
.balign 4
|
|
_02010680: .word FX_SinCosTable_
|
|
_02010684: .word 0x0000FFFF
|
|
|
|
thumb_func_start sub_02010688
|
|
sub_02010688: ; 0x02010688
|
|
push {r3-r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0x20]
|
|
add r4, r1, #0x0
|
|
mov r1, #0x30
|
|
bl Heap_Alloc
|
|
str r0, [r5, #0x14]
|
|
ldr r0, [r5, #0x10]
|
|
add r1, r4, #0x0
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r5, #0x18]
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [r5, #0x1c]
|
|
str r0, [sp, #0x8]
|
|
ldr r0, [r5, #0x20]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r5, #0x14]
|
|
ldr r2, [r5, #0x4]
|
|
ldr r3, [r5, #0x8]
|
|
bl sub_02010720
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
add sp, #0x10
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_020106C0
|
|
sub_020106C0: ; 0x020106C0
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0xc]
|
|
mov r6, #0x0
|
|
ldr r4, [r5, #0x14]
|
|
cmp r0, #0x1
|
|
beq _020106D8
|
|
cmp r0, #0x2
|
|
beq _020106F4
|
|
cmp r0, #0x3
|
|
beq _02010714
|
|
b _02010718
|
|
_020106D8:
|
|
add r0, r4, #0x0
|
|
bl sub_02010834
|
|
cmp r0, #0x1
|
|
bne _0201071C
|
|
ldr r0, [r4, #0x20]
|
|
ldr r1, [r4, #0x24]
|
|
ldr r2, [r5, #0x10]
|
|
bl sub_0200F62C
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _0201071C
|
|
_020106F4:
|
|
add r0, r4, #0x0
|
|
bl sub_02010884
|
|
add r0, r4, #0x0
|
|
bl sub_0200F5C0
|
|
ldr r0, [r5, #0x14]
|
|
bl Heap_Free
|
|
add r0, r6, #0x0
|
|
str r0, [r5, #0x14]
|
|
ldr r0, [r5, #0xc]
|
|
mov r6, #0x1
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _0201071C
|
|
_02010714:
|
|
mov r6, #0x1
|
|
b _0201071C
|
|
_02010718:
|
|
bl GF_AssertFail
|
|
_0201071C:
|
|
add r0, r6, #0x0
|
|
pop {r4-r6, pc}
|
|
|
|
thumb_func_start sub_02010720
|
|
sub_02010720: ; 0x02010720
|
|
push {r4-r7, lr}
|
|
sub sp, #0x24
|
|
add r5, r1, #0x0
|
|
add r7, r0, #0x0
|
|
str r2, [sp, #0x18]
|
|
ldr r0, [sp, #0x38]
|
|
ldrb r2, [r5, #0x8]
|
|
str r0, [sp, #0x38]
|
|
ldr r0, [sp, #0x44]
|
|
mov r1, #0x30
|
|
mul r1, r2
|
|
str r3, [sp, #0x1c]
|
|
str r0, [sp, #0x44]
|
|
bl Heap_Alloc
|
|
str r0, [r7, #0xc]
|
|
cmp r0, #0x0
|
|
bne _02010748
|
|
bl GF_AssertFail
|
|
_02010748:
|
|
ldrb r0, [r5, #0x8]
|
|
str r0, [r7, #0x10]
|
|
mov r0, #0x0
|
|
str r0, [sp, #0x20]
|
|
ldrb r0, [r5, #0x8]
|
|
cmp r0, #0x0
|
|
ble _02010788
|
|
ldr r6, [sp, #0x20]
|
|
add r4, r6, #0x0
|
|
_0201075A:
|
|
ldr r0, [r5, #0x4]
|
|
ldr r2, [r7, #0xc]
|
|
add r0, r0, r6
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [sp, #0x18]
|
|
str r0, [sp, #0x4]
|
|
add r0, r2, r4
|
|
ldr r3, [r5, #0x0]
|
|
add r1, r0, #0x0
|
|
add r2, r2, r4
|
|
add r1, #0x20
|
|
add r2, #0x10
|
|
add r3, r3, r6
|
|
bl sub_0200F1A8
|
|
ldr r0, [sp, #0x20]
|
|
ldrb r1, [r5, #0x8]
|
|
add r0, r0, #0x1
|
|
add r6, #0x10
|
|
add r4, #0x30
|
|
str r0, [sp, #0x20]
|
|
cmp r0, r1
|
|
blt _0201075A
|
|
_02010788:
|
|
ldrb r1, [r5, #0x9]
|
|
ldr r2, [sp, #0x38]
|
|
ldr r3, [sp, #0x44]
|
|
add r0, r7, #0x0
|
|
bl sub_0200F55C
|
|
ldr r0, [sp, #0x18]
|
|
str r0, [r7, #0x14]
|
|
ldr r0, [sp, #0x1c]
|
|
str r0, [r7, #0x18]
|
|
mov r0, #0x0
|
|
str r0, [r7, #0x1c]
|
|
ldr r0, [sp, #0x3c]
|
|
str r0, [r7, #0x24]
|
|
ldr r0, [sp, #0x40]
|
|
str r0, [r7, #0x28]
|
|
ldr r0, [sp, #0x44]
|
|
str r0, [r7, #0x2c]
|
|
ldrb r0, [r5, #0xc]
|
|
str r0, [r7, #0x20]
|
|
add r0, r7, #0x0
|
|
bl sub_02010894
|
|
ldr r0, _02010828 ; =sub_0200F5F8
|
|
ldr r2, _0201082C ; =0x000003FF
|
|
add r1, r7, #0x0
|
|
bl sub_0200CA98
|
|
add r0, r7, #0x0
|
|
mov r1, #0x0
|
|
bl sub_0200F5D8
|
|
ldr r1, [sp, #0x38]
|
|
str r1, [sp, #0x0]
|
|
mov r1, #0x3
|
|
lsl r1, r1, #0x8
|
|
ldrsh r1, [r0, r1]
|
|
str r1, [sp, #0x4]
|
|
mov r1, #0x0
|
|
str r1, [sp, #0x8]
|
|
mov r1, #0x12
|
|
lsl r1, r1, #0x6
|
|
ldrsh r0, [r0, r1]
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xc0
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r7, #0x20]
|
|
str r0, [sp, #0x14]
|
|
ldrb r1, [r5, #0xa]
|
|
ldrb r2, [r5, #0xb]
|
|
ldrb r3, [r5, #0x9]
|
|
ldr r0, [sp, #0x3c]
|
|
bl sub_0200F67C
|
|
ldrb r0, [r5, #0x9]
|
|
cmp r0, #0x0
|
|
ldr r0, [r7, #0x24]
|
|
bne _02010808
|
|
ldr r2, [sp, #0x38]
|
|
ldr r3, [r7, #0x20]
|
|
mov r1, #0x1
|
|
bl sub_0200F6E4
|
|
b _02010812
|
|
_02010808:
|
|
ldr r2, [sp, #0x38]
|
|
ldr r3, [r7, #0x20]
|
|
mov r1, #0x2
|
|
bl sub_0200F6E4
|
|
_02010812:
|
|
ldr r0, [sp, #0x44]
|
|
ldr r2, _02010830 ; =sub_0200F330
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r7, #0x28]
|
|
ldr r3, [sp, #0x38]
|
|
add r1, r7, #0x0
|
|
bl sub_0200E6CC
|
|
add sp, #0x24
|
|
pop {r4-r7, pc}
|
|
nop
|
|
_02010828: .word sub_0200F5F8
|
|
_0201082C: .word 0x000003FF
|
|
_02010830: .word sub_0200F330
|
|
|
|
thumb_func_start sub_02010834
|
|
sub_02010834: ; 0x02010834
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0x1c]
|
|
add r2, r1, #0x1
|
|
str r2, [r4, #0x1c]
|
|
ldr r1, [r4, #0x18]
|
|
cmp r2, r1
|
|
blt _02010876
|
|
mov r1, #0x0
|
|
str r1, [r4, #0x1c]
|
|
ldr r1, [r4, #0x14]
|
|
sub r1, r1, #0x1
|
|
cmp r1, #0x0
|
|
ble _02010868
|
|
str r1, [r4, #0x14]
|
|
bl sub_02010920
|
|
add r0, r4, #0x0
|
|
bl sub_02010894
|
|
ldr r0, _0201087C ; =sub_0200F5F8
|
|
ldr r2, _02010880 ; =0x000003FF
|
|
add r1, r4, #0x0
|
|
bl sub_0200CA98
|
|
b _02010876
|
|
_02010868:
|
|
ldr r0, [r4, #0x28]
|
|
ldr r1, [r4, #0x8]
|
|
ldr r2, [r4, #0x2c]
|
|
bl sub_0200E6F8
|
|
mov r0, #0x1
|
|
pop {r4, pc}
|
|
_02010876:
|
|
mov r0, #0x0
|
|
pop {r4, pc}
|
|
nop
|
|
_0201087C: .word sub_0200F5F8
|
|
_02010880: .word 0x000003FF
|
|
|
|
thumb_func_start sub_02010884
|
|
sub_02010884: ; 0x02010884
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r0, [r4, #0xc]
|
|
bl Heap_Free
|
|
mov r0, #0x0
|
|
str r0, [r4, #0xc]
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_02010894
|
|
sub_02010894: ; 0x02010894
|
|
push {r4-r6, lr}
|
|
mov r1, #0x0
|
|
add r6, r0, #0x0
|
|
bl sub_0200F5D8
|
|
mov r2, #0x3
|
|
lsl r2, r2, #0x8
|
|
add r0, r0, r2
|
|
mov r1, #0x0
|
|
bl memset
|
|
ldr r0, [r6, #0x10]
|
|
sub r4, r0, #0x1
|
|
bmi _020108C6
|
|
mov r0, #0x30
|
|
add r5, r4, #0x0
|
|
mul r5, r0
|
|
_020108B6:
|
|
ldr r1, [r6, #0xc]
|
|
add r0, r6, #0x0
|
|
add r1, r1, r5
|
|
bl sub_020108C8
|
|
sub r5, #0x30
|
|
sub r4, r4, #0x1
|
|
bpl _020108B6
|
|
_020108C6:
|
|
pop {r4-r6, pc}
|
|
|
|
thumb_func_start sub_020108C8
|
|
sub_020108C8: ; 0x020108C8
|
|
push {r4-r6, lr}
|
|
add r4, r1, #0x0
|
|
mov r1, #0x0
|
|
bl sub_0200F5D8
|
|
ldr r2, [r4, #0x0]
|
|
ldr r3, [r4, #0x8]
|
|
asr r1, r2, #0x6
|
|
lsr r1, r1, #0x19
|
|
add r1, r2, r1
|
|
asr r2, r1, #0x7
|
|
asr r1, r3, #0x6
|
|
ldr r5, [r4, #0xc]
|
|
lsr r1, r1, #0x19
|
|
add r1, r3, r1
|
|
asr r3, r5, #0x6
|
|
lsr r3, r3, #0x19
|
|
add r3, r5, r3
|
|
ldr r4, [r4, #0x4]
|
|
asr r5, r3, #0x7
|
|
asr r3, r4, #0x6
|
|
lsr r3, r3, #0x19
|
|
add r3, r4, r3
|
|
asr r3, r3, #0x7
|
|
asr r1, r1, #0x7
|
|
cmp r3, r5
|
|
bge _0201091E
|
|
lsl r4, r3, #0x1
|
|
lsl r1, r1, #0x10
|
|
add r4, r0, r4
|
|
lsl r0, r2, #0x10
|
|
asr r6, r1, #0x10
|
|
mov r1, #0x3
|
|
mov r2, #0x12
|
|
asr r0, r0, #0x10
|
|
lsl r1, r1, #0x8
|
|
lsl r2, r2, #0x6
|
|
_02010912:
|
|
strh r0, [r4, r1]
|
|
strh r6, [r4, r2]
|
|
add r3, r3, #0x1
|
|
add r4, r4, #0x2
|
|
cmp r3, r5
|
|
blt _02010912
|
|
_0201091E:
|
|
pop {r4-r6, pc}
|
|
|
|
thumb_func_start sub_02010920
|
|
sub_02010920: ; 0x02010920
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0x10]
|
|
mov r6, #0x0
|
|
cmp r0, #0x0
|
|
ble _02010944
|
|
add r4, r6, #0x0
|
|
_0201092E:
|
|
ldr r1, [r5, #0xc]
|
|
add r0, r1, r4
|
|
add r1, r1, r4
|
|
add r1, #0x10
|
|
bl sub_0200F184
|
|
ldr r0, [r5, #0x10]
|
|
add r6, r6, #0x1
|
|
add r4, #0x30
|
|
cmp r6, r0
|
|
blt _0201092E
|
|
_02010944:
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02010948
|
|
sub_02010948: ; 0x02010948
|
|
push {r3-r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0x20]
|
|
add r4, r1, #0x0
|
|
mov r1, #0x38
|
|
bl Heap_Alloc
|
|
str r0, [r5, #0x14]
|
|
mov r1, #0x0
|
|
mov r2, #0x38
|
|
bl memset
|
|
ldr r0, [r5, #0x10]
|
|
add r1, r4, #0x0
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r5, #0x18]
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [r5, #0x1c]
|
|
str r0, [sp, #0x8]
|
|
ldr r0, [r5, #0x20]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r5, #0x14]
|
|
ldr r2, [r5, #0x4]
|
|
ldr r3, [r5, #0x8]
|
|
bl sub_020109E8
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
add sp, #0x10
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_02010988
|
|
sub_02010988: ; 0x02010988
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0xc]
|
|
mov r6, #0x0
|
|
ldr r4, [r5, #0x14]
|
|
cmp r0, #0x1
|
|
beq _020109A0
|
|
cmp r0, #0x2
|
|
beq _020109BC
|
|
cmp r0, #0x3
|
|
beq _020109DC
|
|
b _020109E0
|
|
_020109A0:
|
|
add r0, r4, #0x0
|
|
bl sub_02010AE4
|
|
cmp r0, #0x1
|
|
bne _020109E4
|
|
ldr r0, [r4, #0x28]
|
|
ldr r1, [r4, #0x30]
|
|
ldr r2, [r5, #0x10]
|
|
bl sub_0200F62C
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _020109E4
|
|
_020109BC:
|
|
add r0, r4, #0x0
|
|
bl sub_02010B3C
|
|
add r0, r4, #0x0
|
|
bl sub_0200F5C0
|
|
ldr r0, [r5, #0x14]
|
|
bl Heap_Free
|
|
add r0, r6, #0x0
|
|
str r0, [r5, #0x14]
|
|
ldr r0, [r5, #0xc]
|
|
mov r6, #0x1
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _020109E4
|
|
_020109DC:
|
|
mov r6, #0x1
|
|
b _020109E4
|
|
_020109E0:
|
|
bl GF_AssertFail
|
|
_020109E4:
|
|
add r0, r6, #0x0
|
|
pop {r4-r6, pc}
|
|
|
|
thumb_func_start sub_020109E8
|
|
sub_020109E8: ; 0x020109E8
|
|
push {r3-r7, lr}
|
|
sub sp, #0x28
|
|
add r4, r1, #0x0
|
|
add r5, r0, #0x0
|
|
mov r1, #0x0
|
|
str r1, [r5, #0xc]
|
|
ldr r1, [r4, #0x0]
|
|
str r2, [sp, #0x18]
|
|
str r1, [r5, #0x10]
|
|
str r3, [sp, #0x1c]
|
|
ldr r2, [r4, #0x4]
|
|
ldr r1, [r4, #0x0]
|
|
ldr r6, [sp, #0x40]
|
|
sub r1, r2, r1
|
|
str r1, [r5, #0x14]
|
|
ldr r3, [sp, #0x4c]
|
|
mov r1, #0x2
|
|
add r2, r6, #0x0
|
|
ldr r7, [sp, #0x44]
|
|
bl sub_0200F55C
|
|
ldr r0, [sp, #0x18]
|
|
mov r1, #0x0
|
|
str r0, [r5, #0x18]
|
|
ldr r0, [sp, #0x1c]
|
|
str r1, [r5, #0x1c]
|
|
str r0, [r5, #0x20]
|
|
str r1, [r5, #0x24]
|
|
ldr r0, [sp, #0x48]
|
|
str r7, [r5, #0x30]
|
|
str r0, [r5, #0x34]
|
|
ldr r0, [sp, #0x4c]
|
|
str r0, [r5, #0x2c]
|
|
ldrb r0, [r4, #0xa]
|
|
str r0, [r5, #0x28]
|
|
add r0, r5, #0x0
|
|
ldr r1, [r5, #0x1c]
|
|
ldr r2, [r5, #0x18]
|
|
add r0, #0xc
|
|
bl sub_02010C64
|
|
add r0, r5, #0x0
|
|
bl sub_02010B40
|
|
ldr r0, _02010AD8 ; =sub_0200F5F8
|
|
ldr r2, _02010ADC ; =0x000003FF
|
|
add r1, r5, #0x0
|
|
bl sub_0200CA98
|
|
add r0, r5, #0x0
|
|
mov r1, #0x0
|
|
bl sub_0200F5D8
|
|
str r0, [sp, #0x20]
|
|
add r0, r5, #0x0
|
|
mov r1, #0x1
|
|
bl sub_0200F5D8
|
|
str r0, [sp, #0x24]
|
|
mov r1, #0x3
|
|
ldr r0, [sp, #0x20]
|
|
str r6, [sp, #0x0]
|
|
lsl r1, r1, #0x8
|
|
ldrsh r0, [r0, r1]
|
|
mov r1, #0x12
|
|
mov r3, #0x0
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [sp, #0x20]
|
|
str r3, [sp, #0x8]
|
|
lsl r1, r1, #0x6
|
|
ldrsh r0, [r0, r1]
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xc0
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r5, #0x28]
|
|
str r0, [sp, #0x14]
|
|
ldrb r1, [r4, #0x8]
|
|
ldrb r2, [r4, #0x9]
|
|
add r0, r7, #0x0
|
|
bl sub_0200F67C
|
|
mov r1, #0x3
|
|
ldr r0, [sp, #0x24]
|
|
str r6, [sp, #0x0]
|
|
lsl r1, r1, #0x8
|
|
ldrsh r0, [r0, r1]
|
|
mov r1, #0x12
|
|
lsl r1, r1, #0x6
|
|
str r0, [sp, #0x4]
|
|
mov r0, #0x0
|
|
str r0, [sp, #0x8]
|
|
ldr r0, [sp, #0x24]
|
|
mov r3, #0x1
|
|
ldrsh r0, [r0, r1]
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xc0
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r5, #0x28]
|
|
str r0, [sp, #0x14]
|
|
ldrb r1, [r4, #0x8]
|
|
ldrb r2, [r4, #0x9]
|
|
add r0, r7, #0x0
|
|
bl sub_0200F67C
|
|
ldr r3, [r5, #0x28]
|
|
add r0, r7, #0x0
|
|
mov r1, #0x3
|
|
add r2, r6, #0x0
|
|
bl sub_0200F6E4
|
|
ldr r0, [sp, #0x4c]
|
|
ldr r2, _02010AE0 ; =sub_0200F330
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r5, #0x34]
|
|
add r1, r5, #0x0
|
|
add r3, r6, #0x0
|
|
bl sub_0200E6CC
|
|
add sp, #0x28
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
_02010AD8: .word sub_0200F5F8
|
|
_02010ADC: .word 0x000003FF
|
|
_02010AE0: .word sub_0200F330
|
|
|
|
thumb_func_start sub_02010AE4
|
|
sub_02010AE4: ; 0x02010AE4
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r0, [r4, #0x24]
|
|
add r1, r0, #0x1
|
|
str r1, [r4, #0x24]
|
|
ldr r0, [r4, #0x20]
|
|
cmp r1, r0
|
|
blt _02010B2E
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x24]
|
|
ldr r0, [r4, #0x1c]
|
|
add r1, r0, #0x1
|
|
ldr r0, [r4, #0x18]
|
|
cmp r1, r0
|
|
bgt _02010B20
|
|
str r1, [r4, #0x1c]
|
|
add r0, r4, #0x0
|
|
ldr r2, [r4, #0x18]
|
|
add r0, #0xc
|
|
bl sub_02010C64
|
|
add r0, r4, #0x0
|
|
bl sub_02010B40
|
|
ldr r0, _02010B34 ; =sub_0200F5F8
|
|
ldr r2, _02010B38 ; =0x000003FF
|
|
add r1, r4, #0x0
|
|
bl sub_0200CA98
|
|
b _02010B2E
|
|
_02010B20:
|
|
ldr r0, [r4, #0x34]
|
|
ldr r1, [r4, #0x8]
|
|
ldr r2, [r4, #0x2c]
|
|
bl sub_0200E6F8
|
|
mov r0, #0x1
|
|
pop {r4, pc}
|
|
_02010B2E:
|
|
mov r0, #0x0
|
|
pop {r4, pc}
|
|
nop
|
|
_02010B34: .word sub_0200F5F8
|
|
_02010B38: .word 0x000003FF
|
|
|
|
thumb_func_start sub_02010B3C
|
|
sub_02010B3C: ; 0x02010B3C
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02010B40
|
|
sub_02010B40: ; 0x02010B40
|
|
push {r3-r7, lr}
|
|
sub sp, #0x8
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r0, #0xc]
|
|
ldr r1, _02010C60 ; =0x00003FFF
|
|
bl _s32_div_f
|
|
lsl r0, r1, #0x10
|
|
lsr r0, r0, #0x10
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [sp, #0x0]
|
|
mov r1, #0x0
|
|
bl sub_0200F5D8
|
|
add r7, r0, #0x0
|
|
ldr r0, [sp, #0x0]
|
|
mov r1, #0x1
|
|
bl sub_0200F5D8
|
|
add r4, r0, #0x0
|
|
mov r6, #0x0
|
|
add r5, r4, #0x0
|
|
_02010B6C:
|
|
ldr r0, [sp, #0x0]
|
|
ldr r1, [r0, #0xc]
|
|
ldr r0, _02010C60 ; =0x00003FFF
|
|
cmp r1, r0
|
|
bge _02010BB0
|
|
mov r1, #0x60
|
|
ldr r0, [sp, #0x4]
|
|
sub r1, r1, r6
|
|
bl sub_0200F0D0
|
|
cmp r0, #0x7f
|
|
ble _02010B86
|
|
mov r0, #0x7f
|
|
_02010B86:
|
|
mov r1, #0xbf
|
|
sub r1, r1, r6
|
|
lsl r1, r1, #0x1
|
|
add r3, r7, r1
|
|
mov r1, #0x80
|
|
sub r2, r1, r0
|
|
mov r1, #0x3
|
|
lsl r1, r1, #0x8
|
|
strh r2, [r3, r1]
|
|
mov r1, #0x12
|
|
mov r2, #0x80
|
|
lsl r1, r1, #0x6
|
|
strh r2, [r3, r1]
|
|
mov r1, #0x3
|
|
lsl r1, r1, #0x8
|
|
strh r2, [r5, r1]
|
|
mov r1, #0x12
|
|
add r0, #0x80
|
|
lsl r1, r1, #0x6
|
|
strh r0, [r5, r1]
|
|
b _02010BD8
|
|
_02010BB0:
|
|
mov r0, #0xbf
|
|
sub r0, r0, r6
|
|
lsl r0, r0, #0x1
|
|
mov r1, #0x3
|
|
add r0, r7, r0
|
|
mov r2, #0x0
|
|
lsl r1, r1, #0x8
|
|
strh r2, [r0, r1]
|
|
mov r1, #0x12
|
|
mov r2, #0x80
|
|
lsl r1, r1, #0x6
|
|
strh r2, [r0, r1]
|
|
mov r0, #0x3
|
|
add r1, r2, #0x0
|
|
lsl r0, r0, #0x8
|
|
strh r1, [r5, r0]
|
|
mov r0, #0x12
|
|
mov r1, #0xff
|
|
lsl r0, r0, #0x6
|
|
strh r1, [r5, r0]
|
|
_02010BD8:
|
|
add r6, r6, #0x1
|
|
add r5, r5, #0x2
|
|
cmp r6, #0x60
|
|
blt _02010B6C
|
|
ldr r1, _02010C60 ; =0x00003FFF
|
|
ldr r0, [sp, #0x4]
|
|
mov r5, #0x60
|
|
add r4, #0xc0
|
|
sub r6, r1, r0
|
|
_02010BEA:
|
|
ldr r0, [sp, #0x0]
|
|
ldr r1, [r0, #0xc]
|
|
ldr r0, _02010C60 ; =0x00003FFF
|
|
cmp r1, r0
|
|
bge _02010C1A
|
|
mov r0, #0xbf
|
|
sub r0, r0, r5
|
|
lsl r0, r0, #0x1
|
|
mov r1, #0x3
|
|
add r0, r7, r0
|
|
mov r2, #0x80
|
|
lsl r1, r1, #0x8
|
|
strh r2, [r0, r1]
|
|
mov r1, #0x12
|
|
lsl r1, r1, #0x6
|
|
strh r2, [r0, r1]
|
|
mov r0, #0x3
|
|
add r1, r2, #0x0
|
|
lsl r0, r0, #0x8
|
|
strh r1, [r4, r0]
|
|
mov r0, #0x12
|
|
lsl r0, r0, #0x6
|
|
strh r1, [r4, r0]
|
|
b _02010C54
|
|
_02010C1A:
|
|
add r1, r5, #0x0
|
|
add r0, r6, #0x0
|
|
sub r1, #0x60
|
|
bl sub_0200F0D0
|
|
add r1, r0, #0x0
|
|
cmp r1, #0x7f
|
|
ble _02010C2C
|
|
mov r1, #0x7f
|
|
_02010C2C:
|
|
mov r0, #0xbf
|
|
sub r0, r0, r5
|
|
lsl r0, r0, #0x1
|
|
mov r2, #0x3
|
|
add r0, r7, r0
|
|
mov r3, #0x0
|
|
lsl r2, r2, #0x8
|
|
strh r3, [r0, r2]
|
|
mov r2, #0x80
|
|
sub r3, r2, r1
|
|
mov r2, #0x12
|
|
lsl r2, r2, #0x6
|
|
strh r3, [r0, r2]
|
|
mov r0, #0x3
|
|
add r1, #0x80
|
|
lsl r0, r0, #0x8
|
|
strh r1, [r4, r0]
|
|
mov r1, #0xff
|
|
add r0, r2, #0x0
|
|
strh r1, [r4, r0]
|
|
_02010C54:
|
|
add r5, r5, #0x1
|
|
add r4, r4, #0x2
|
|
cmp r5, #0xc0
|
|
blt _02010BEA
|
|
add sp, #0x8
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
_02010C60: .word 0x00003FFF
|
|
|
|
thumb_func_start sub_02010C64
|
|
sub_02010C64: ; 0x02010C64
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r3, [r4, #0x8]
|
|
add r0, r3, #0x0
|
|
mul r0, r1
|
|
add r1, r2, #0x0
|
|
bl _s32_div_f
|
|
ldr r1, [r4, #0x4]
|
|
add r0, r0, r1
|
|
str r0, [r4, #0x0]
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_02010C7C
|
|
sub_02010C7C: ; 0x02010C7C
|
|
push {r3-r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0x20]
|
|
add r4, r1, #0x0
|
|
mov r1, #0x38
|
|
bl Heap_Alloc
|
|
str r0, [r5, #0x14]
|
|
mov r1, #0x0
|
|
mov r2, #0x38
|
|
bl memset
|
|
ldr r0, [r5, #0x10]
|
|
add r1, r4, #0x0
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r5, #0x18]
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [r5, #0x1c]
|
|
str r0, [sp, #0x8]
|
|
ldr r0, [r5, #0x20]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r5, #0x14]
|
|
ldr r2, [r5, #0x4]
|
|
ldr r3, [r5, #0x8]
|
|
bl sub_02010D1C
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
add sp, #0x10
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_02010CBC
|
|
sub_02010CBC: ; 0x02010CBC
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0xc]
|
|
mov r6, #0x0
|
|
ldr r4, [r5, #0x14]
|
|
cmp r0, #0x1
|
|
beq _02010CD4
|
|
cmp r0, #0x2
|
|
beq _02010CF0
|
|
cmp r0, #0x3
|
|
beq _02010D10
|
|
b _02010D14
|
|
_02010CD4:
|
|
add r0, r4, #0x0
|
|
bl sub_02010DEC
|
|
cmp r0, #0x1
|
|
bne _02010D18
|
|
ldr r0, [r4, #0x28]
|
|
ldr r1, [r4, #0x30]
|
|
ldr r2, [r5, #0x10]
|
|
bl sub_0200F62C
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _02010D18
|
|
_02010CF0:
|
|
add r0, r4, #0x0
|
|
bl sub_02010E44
|
|
add r0, r4, #0x0
|
|
bl sub_0200F5C0
|
|
ldr r0, [r5, #0x14]
|
|
bl Heap_Free
|
|
add r0, r6, #0x0
|
|
str r0, [r5, #0x14]
|
|
ldr r0, [r5, #0xc]
|
|
mov r6, #0x1
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _02010D18
|
|
_02010D10:
|
|
mov r6, #0x1
|
|
b _02010D18
|
|
_02010D14:
|
|
bl GF_AssertFail
|
|
_02010D18:
|
|
add r0, r6, #0x0
|
|
pop {r4-r6, pc}
|
|
|
|
thumb_func_start sub_02010D1C
|
|
sub_02010D1C: ; 0x02010D1C
|
|
push {r3-r7, lr}
|
|
sub sp, #0x20
|
|
add r4, r1, #0x0
|
|
ldr r1, [r4, #0x0]
|
|
add r5, r0, #0x0
|
|
str r1, [r5, #0xc]
|
|
ldr r1, [r4, #0x0]
|
|
str r3, [sp, #0x1c]
|
|
str r1, [r5, #0x10]
|
|
str r2, [sp, #0x18]
|
|
ldr r2, [r4, #0x4]
|
|
ldr r1, [r4, #0x0]
|
|
ldr r6, [sp, #0x38]
|
|
sub r1, r2, r1
|
|
str r1, [r5, #0x14]
|
|
ldr r3, [sp, #0x44]
|
|
mov r1, #0x2
|
|
add r2, r6, #0x0
|
|
ldr r7, [sp, #0x3c]
|
|
bl sub_0200F55C
|
|
ldr r0, [sp, #0x18]
|
|
mov r1, #0x0
|
|
str r0, [r5, #0x18]
|
|
ldr r0, [sp, #0x1c]
|
|
str r1, [r5, #0x1c]
|
|
str r0, [r5, #0x20]
|
|
str r1, [r5, #0x24]
|
|
ldr r0, [sp, #0x40]
|
|
str r7, [r5, #0x30]
|
|
str r0, [r5, #0x34]
|
|
ldr r0, [sp, #0x44]
|
|
str r0, [r5, #0x2c]
|
|
ldrb r0, [r4, #0xa]
|
|
str r0, [r5, #0x28]
|
|
add r0, r5, #0x0
|
|
bl sub_02010E48
|
|
ldr r0, _02010DE0 ; =sub_0200F5F8
|
|
ldr r2, _02010DE4 ; =0x000003FF
|
|
add r1, r5, #0x0
|
|
bl sub_0200CA98
|
|
add r0, r5, #0x0
|
|
mov r1, #0x0
|
|
bl sub_0200F5D8
|
|
add r0, r5, #0x0
|
|
mov r1, #0x1
|
|
bl sub_0200F5D8
|
|
str r6, [sp, #0x0]
|
|
mov r3, #0x0
|
|
str r3, [sp, #0x4]
|
|
str r3, [sp, #0x8]
|
|
mov r0, #0xff
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xc0
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r5, #0x28]
|
|
str r0, [sp, #0x14]
|
|
ldrb r1, [r4, #0x8]
|
|
ldrb r2, [r4, #0x9]
|
|
add r0, r7, #0x0
|
|
bl sub_0200F67C
|
|
str r6, [sp, #0x0]
|
|
mov r0, #0x0
|
|
str r0, [sp, #0x4]
|
|
str r0, [sp, #0x8]
|
|
mov r0, #0xff
|
|
str r0, [sp, #0xc]
|
|
mov r0, #0xc0
|
|
str r0, [sp, #0x10]
|
|
ldr r0, [r5, #0x28]
|
|
mov r3, #0x1
|
|
str r0, [sp, #0x14]
|
|
ldrb r1, [r4, #0x8]
|
|
ldrb r2, [r4, #0x9]
|
|
add r0, r7, #0x0
|
|
bl sub_0200F67C
|
|
ldr r3, [r5, #0x28]
|
|
add r0, r7, #0x0
|
|
mov r1, #0x3
|
|
add r2, r6, #0x0
|
|
bl sub_0200F6E4
|
|
ldr r0, [sp, #0x44]
|
|
ldr r2, _02010DE8 ; =sub_0200F330
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r5, #0x34]
|
|
add r1, r5, #0x0
|
|
add r3, r6, #0x0
|
|
bl sub_0200E6CC
|
|
add sp, #0x20
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
_02010DE0: .word sub_0200F5F8
|
|
_02010DE4: .word 0x000003FF
|
|
_02010DE8: .word sub_0200F330
|
|
|
|
thumb_func_start sub_02010DEC
|
|
sub_02010DEC: ; 0x02010DEC
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r0, [r4, #0x24]
|
|
add r1, r0, #0x1
|
|
str r1, [r4, #0x24]
|
|
ldr r0, [r4, #0x20]
|
|
cmp r1, r0
|
|
blt _02010E36
|
|
mov r0, #0x0
|
|
str r0, [r4, #0x24]
|
|
ldr r0, [r4, #0x1c]
|
|
add r1, r0, #0x1
|
|
ldr r0, [r4, #0x18]
|
|
cmp r1, r0
|
|
bgt _02010E28
|
|
str r1, [r4, #0x1c]
|
|
add r0, r4, #0x0
|
|
ldr r2, [r4, #0x18]
|
|
add r0, #0xc
|
|
bl sub_02010F14
|
|
add r0, r4, #0x0
|
|
bl sub_02010E48
|
|
ldr r0, _02010E3C ; =sub_0200F5F8
|
|
ldr r2, _02010E40 ; =0x000003FF
|
|
add r1, r4, #0x0
|
|
bl sub_0200CA98
|
|
b _02010E36
|
|
_02010E28:
|
|
ldr r0, [r4, #0x34]
|
|
ldr r1, [r4, #0x8]
|
|
ldr r2, [r4, #0x2c]
|
|
bl sub_0200E6F8
|
|
mov r0, #0x1
|
|
pop {r4, pc}
|
|
_02010E36:
|
|
mov r0, #0x0
|
|
pop {r4, pc}
|
|
nop
|
|
_02010E3C: .word sub_0200F5F8
|
|
_02010E40: .word 0x000003FF
|
|
|
|
thumb_func_start sub_02010E44
|
|
sub_02010E44: ; 0x02010E44
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02010E48
|
|
sub_02010E48: ; 0x02010E48
|
|
push {r4-r7, lr}
|
|
sub sp, #0x1c
|
|
add r4, r0, #0x0
|
|
ldr r1, [r4, #0xc]
|
|
lsl r1, r1, #0x10
|
|
lsr r1, r1, #0x10
|
|
str r1, [sp, #0x8]
|
|
mov r1, #0x0
|
|
bl sub_0200F5D8
|
|
str r0, [sp, #0x10]
|
|
add r0, r4, #0x0
|
|
mov r1, #0x1
|
|
bl sub_0200F5D8
|
|
str r0, [sp, #0xc]
|
|
add r5, r0, #0x0
|
|
ldr r1, _02010F10 ; =0x00003FFF
|
|
ldr r0, [sp, #0x8]
|
|
ldr r6, [sp, #0x10]
|
|
sub r0, r1, r0
|
|
mov r7, #0x0
|
|
str r0, [sp, #0x4]
|
|
_02010E76:
|
|
mov r0, #0x60
|
|
sub r0, r0, r7
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [sp, #0x8]
|
|
ldr r1, [sp, #0x0]
|
|
bl sub_0200F0D0
|
|
add r4, r0, #0x0
|
|
ldr r0, [sp, #0x4]
|
|
ldr r1, [sp, #0x0]
|
|
bl sub_0200F0D0
|
|
cmp r4, #0x7f
|
|
ble _02010E94
|
|
mov r4, #0x7f
|
|
_02010E94:
|
|
cmp r0, #0x7f
|
|
ble _02010E9A
|
|
mov r0, #0x7f
|
|
_02010E9A:
|
|
mov r1, #0x80
|
|
sub r1, r1, r0
|
|
lsl r1, r1, #0x10
|
|
mov r2, #0x3
|
|
asr r1, r1, #0x10
|
|
lsl r2, r2, #0x8
|
|
str r1, [sp, #0x14]
|
|
strh r1, [r6, r2]
|
|
mov r1, #0x80
|
|
sub r1, r1, r4
|
|
lsl r1, r1, #0x10
|
|
asr r2, r1, #0x10
|
|
mov r1, #0x12
|
|
lsl r1, r1, #0x6
|
|
strh r2, [r6, r1]
|
|
mov r1, #0xbf
|
|
sub r1, r1, r7
|
|
mov r12, r2
|
|
lsl r1, r1, #0x1
|
|
ldr r2, [sp, #0x10]
|
|
add r0, #0x80
|
|
add r3, r2, r1
|
|
str r1, [sp, #0x18]
|
|
mov r2, #0x3
|
|
ldr r1, [sp, #0x14]
|
|
lsl r2, r2, #0x8
|
|
strh r1, [r3, r2]
|
|
mov r1, #0x12
|
|
mov r2, r12
|
|
lsl r1, r1, #0x6
|
|
strh r2, [r3, r1]
|
|
add r4, #0x80
|
|
lsl r1, r4, #0x10
|
|
asr r2, r1, #0x10
|
|
mov r1, #0x3
|
|
lsl r1, r1, #0x8
|
|
lsl r0, r0, #0x10
|
|
strh r2, [r5, r1]
|
|
asr r1, r0, #0x10
|
|
mov r0, #0x12
|
|
lsl r0, r0, #0x6
|
|
strh r1, [r5, r0]
|
|
ldr r3, [sp, #0xc]
|
|
ldr r0, [sp, #0x18]
|
|
add r7, r7, #0x1
|
|
add r0, r3, r0
|
|
mov r3, #0x3
|
|
lsl r3, r3, #0x8
|
|
strh r2, [r0, r3]
|
|
mov r2, #0x12
|
|
lsl r2, r2, #0x6
|
|
strh r1, [r0, r2]
|
|
add r6, r6, #0x2
|
|
add r5, r5, #0x2
|
|
cmp r7, #0x60
|
|
blt _02010E76
|
|
add sp, #0x1c
|
|
pop {r4-r7, pc}
|
|
nop
|
|
_02010F10: .word 0x00003FFF
|
|
|
|
thumb_func_start sub_02010F14
|
|
sub_02010F14: ; 0x02010F14
|
|
push {r4, lr}
|
|
add r4, r0, #0x0
|
|
ldr r3, [r4, #0x8]
|
|
add r0, r3, #0x0
|
|
mul r0, r1
|
|
add r1, r2, #0x0
|
|
bl _s32_div_f
|
|
ldr r1, [r4, #0x4]
|
|
add r0, r0, r1
|
|
str r0, [r4, #0x0]
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_02010F2C
|
|
sub_02010F2C: ; 0x02010F2C
|
|
push {r3-r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
mov r1, #0xcd
|
|
ldr r0, [r5, #0x20]
|
|
lsl r1, r1, #0x2
|
|
bl Heap_Alloc
|
|
mov r2, #0xcd
|
|
str r0, [r5, #0x14]
|
|
mov r1, #0x0
|
|
lsl r2, r2, #0x2
|
|
bl memset
|
|
ldr r0, [r5, #0x10]
|
|
add r1, r4, #0x0
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r5, #0x18]
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [r5, #0x1c]
|
|
str r0, [sp, #0x8]
|
|
ldr r0, [r5, #0x20]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r5, #0x14]
|
|
ldr r2, [r5, #0x4]
|
|
ldr r3, [r5, #0x8]
|
|
bl sub_02010FD0
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
add sp, #0x10
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_02010F70
|
|
sub_02010F70: ; 0x02010F70
|
|
push {r4-r6, lr}
|
|
add r5, r0, #0x0
|
|
ldr r0, [r5, #0xc]
|
|
mov r6, #0x0
|
|
ldr r4, [r5, #0x14]
|
|
cmp r0, #0x1
|
|
beq _02010F88
|
|
cmp r0, #0x2
|
|
beq _02010FAA
|
|
cmp r0, #0x3
|
|
beq _02010FC4
|
|
b _02010FC8
|
|
_02010F88:
|
|
add r0, r4, #0x0
|
|
bl sub_020110BC
|
|
cmp r0, #0x1
|
|
bne _02010FCC
|
|
mov r1, #0xc9
|
|
lsl r1, r1, #0x2
|
|
ldr r0, [r4, r1]
|
|
add r1, #0x8
|
|
ldr r1, [r4, r1]
|
|
ldr r2, [r5, #0x10]
|
|
bl sub_0200F62C
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _02010FCC
|
|
_02010FAA:
|
|
add r0, r4, #0x0
|
|
bl sub_0201111C
|
|
ldr r0, [r5, #0x14]
|
|
bl Heap_Free
|
|
add r0, r6, #0x0
|
|
str r0, [r5, #0x14]
|
|
ldr r0, [r5, #0xc]
|
|
mov r6, #0x1
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _02010FCC
|
|
_02010FC4:
|
|
mov r6, #0x1
|
|
b _02010FCC
|
|
_02010FC8:
|
|
bl GF_AssertFail
|
|
_02010FCC:
|
|
add r0, r6, #0x0
|
|
pop {r4-r6, pc}
|
|
|
|
thumb_func_start sub_02010FD0
|
|
sub_02010FD0: ; 0x02010FD0
|
|
push {r3-r7, lr}
|
|
sub sp, #0x20
|
|
ldr r7, [sp, #0x38]
|
|
str r3, [sp, #0x1c]
|
|
mov r3, #0x0
|
|
add r4, r1, #0x0
|
|
str r2, [sp, #0x18]
|
|
str r3, [sp, #0x0]
|
|
add r1, r7, #0x0
|
|
mov r2, #0x1
|
|
add r5, r0, #0x0
|
|
ldr r6, [sp, #0x3c]
|
|
bl sub_0200F6FC
|
|
ldrb r0, [r4, #0x5]
|
|
cmp r0, #0x0
|
|
bne _0201100A
|
|
add r0, r5, #0x0
|
|
mov r1, #0x1
|
|
mov r2, #0xc0
|
|
bl memset
|
|
add r0, r5, #0x0
|
|
add r0, #0xc0
|
|
mov r1, #0x1
|
|
mov r2, #0xc0
|
|
bl memset
|
|
b _02011020
|
|
_0201100A:
|
|
add r0, r5, #0x0
|
|
mov r1, #0x0
|
|
mov r2, #0xc0
|
|
bl memset
|
|
add r0, r5, #0x0
|
|
add r0, #0xc0
|
|
mov r1, #0x0
|
|
mov r2, #0xc0
|
|
bl memset
|
|
_02011020:
|
|
mov r1, #0xc3
|
|
lsl r1, r1, #0x2
|
|
ldr r0, [r4, #0x0]
|
|
add r3, r1, #0x0
|
|
str r0, [r5, r1]
|
|
ldrb r2, [r4, #0x4]
|
|
add r0, r1, #0x4
|
|
add r3, #0x8
|
|
str r2, [r5, r0]
|
|
add r0, r1, #0x0
|
|
ldrb r2, [r4, #0x5]
|
|
add r0, #0x18
|
|
str r2, [r5, r0]
|
|
add r0, r1, #0x0
|
|
ldr r2, [sp, #0x44]
|
|
add r0, #0x1c
|
|
str r2, [r5, r0]
|
|
ldr r0, [sp, #0x18]
|
|
str r0, [r5, r3]
|
|
add r3, r1, #0x0
|
|
add r3, #0xc
|
|
mov r0, #0x0
|
|
str r0, [r5, r3]
|
|
add r3, r1, #0x0
|
|
ldr r0, [sp, #0x1c]
|
|
add r3, #0x10
|
|
str r0, [r5, r3]
|
|
add r3, r1, #0x0
|
|
add r3, #0x14
|
|
mov r0, #0x0
|
|
str r0, [r5, r3]
|
|
add r0, r1, #0x0
|
|
add r0, #0x20
|
|
str r6, [r5, r0]
|
|
ldr r0, [sp, #0x40]
|
|
add r1, #0x24
|
|
str r0, [r5, r1]
|
|
add r1, r5, #0x0
|
|
bl sub_0200F758
|
|
ldrb r0, [r4, #0x5]
|
|
cmp r0, #0x1
|
|
str r7, [sp, #0x0]
|
|
bne _02011090
|
|
mov r3, #0x0
|
|
str r3, [sp, #0x4]
|
|
str r3, [sp, #0x8]
|
|
str r3, [sp, #0xc]
|
|
str r3, [sp, #0x10]
|
|
str r0, [sp, #0x14]
|
|
add r0, r6, #0x0
|
|
mov r1, #0x20
|
|
mov r2, #0x3f
|
|
bl sub_0200F67C
|
|
b _020110A6
|
|
_02011090:
|
|
mov r3, #0x0
|
|
str r3, [sp, #0x4]
|
|
str r3, [sp, #0x8]
|
|
str r3, [sp, #0xc]
|
|
str r3, [sp, #0x10]
|
|
str r0, [sp, #0x14]
|
|
add r0, r6, #0x0
|
|
mov r1, #0x3f
|
|
mov r2, #0x20
|
|
bl sub_0200F67C
|
|
_020110A6:
|
|
mov r3, #0xc9
|
|
lsl r3, r3, #0x2
|
|
ldr r3, [r5, r3]
|
|
add r0, r6, #0x0
|
|
mov r1, #0x1
|
|
add r2, r7, #0x0
|
|
bl sub_0200F6E4
|
|
add sp, #0x20
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_020110BC
|
|
sub_020110BC: ; 0x020110BC
|
|
push {r4, lr}
|
|
mov r2, #0x32
|
|
add r4, r0, #0x0
|
|
lsl r2, r2, #0x4
|
|
ldr r1, [r4, r2]
|
|
add r1, r1, #0x1
|
|
str r1, [r4, r2]
|
|
sub r1, r2, #0x4
|
|
ldr r3, [r4, r2]
|
|
ldr r1, [r4, r1]
|
|
cmp r3, r1
|
|
blt _02011116
|
|
mov r1, #0x0
|
|
str r1, [r4, r2]
|
|
add r1, r2, #0x0
|
|
sub r1, #0x8
|
|
ldr r1, [r4, r1]
|
|
add r3, r1, #0x1
|
|
add r1, r2, #0x0
|
|
sub r1, #0xc
|
|
ldr r1, [r4, r1]
|
|
cmp r3, r1
|
|
bgt _02011102
|
|
add r1, r2, #0x0
|
|
sub r1, #0x8
|
|
ldr r1, [r4, r1]
|
|
sub r2, #0x8
|
|
add r1, r1, #0x1
|
|
str r1, [r4, r2]
|
|
bl sub_02011120
|
|
add r0, r4, #0x0
|
|
bl sub_0200F740
|
|
b _02011116
|
|
_02011102:
|
|
add r0, r2, #0x0
|
|
add r0, #0x10
|
|
add r2, #0x8
|
|
ldr r0, [r4, r0]
|
|
ldr r2, [r4, r2]
|
|
add r1, r4, #0x0
|
|
bl sub_0200F770
|
|
mov r0, #0x1
|
|
pop {r4, pc}
|
|
_02011116:
|
|
mov r0, #0x0
|
|
pop {r4, pc}
|
|
.balign 4
|
|
|
|
thumb_func_start sub_0201111C
|
|
sub_0201111C: ; 0x0201111C
|
|
bx lr
|
|
.balign 4
|
|
|
|
thumb_func_start sub_02011120
|
|
sub_02011120: ; 0x02011120
|
|
push {r3-r7, lr}
|
|
add r5, r0, #0x0
|
|
mov r0, #0x31
|
|
lsl r0, r0, #0x4
|
|
ldr r0, [r5, r0]
|
|
mov r6, #0x0
|
|
cmp r0, #0x0
|
|
ble _0201115A
|
|
mov r7, #0x31
|
|
add r4, r6, #0x0
|
|
lsl r7, r7, #0x4
|
|
_02011136:
|
|
mov r0, #0xc3
|
|
lsl r0, r0, #0x2
|
|
mov r2, #0xc6
|
|
mov r3, #0xc5
|
|
ldr r0, [r5, r0]
|
|
lsl r2, r2, #0x2
|
|
lsl r3, r3, #0x2
|
|
ldr r2, [r5, r2]
|
|
ldr r3, [r5, r3]
|
|
add r0, r0, r4
|
|
add r1, r5, #0x0
|
|
bl sub_0201115C
|
|
ldr r0, [r5, r7]
|
|
add r6, r6, #0x1
|
|
add r4, r4, #0x3
|
|
cmp r6, r0
|
|
blt _02011136
|
|
_0201115A:
|
|
pop {r3-r7, pc}
|
|
|
|
thumb_func_start sub_0201115C
|
|
sub_0201115C: ; 0x0201115C
|
|
push {r3-r7, lr}
|
|
add r7, r0, #0x0
|
|
ldrb r6, [r7, #0x0]
|
|
ldrb r4, [r7, #0x1]
|
|
add r5, r1, #0x0
|
|
add r1, r3, #0x0
|
|
sub r0, r4, r6
|
|
mul r0, r2
|
|
bl _s32_div_f
|
|
add r0, r0, r6
|
|
cmp r6, r4
|
|
bhi _0201117C
|
|
add r1, r6, #0x0
|
|
ldrb r6, [r7, #0x2]
|
|
b _0201118C
|
|
_0201117C:
|
|
ldrb r2, [r7, #0x2]
|
|
add r1, r4, #0x0
|
|
add r4, r6, #0x0
|
|
cmp r2, #0x0
|
|
bne _0201118A
|
|
mov r6, #0x1
|
|
b _0201118C
|
|
_0201118A:
|
|
mov r6, #0x0
|
|
_0201118C:
|
|
cmp r1, r4
|
|
bge _020111AA
|
|
mov r2, #0x0
|
|
mov r3, #0x1
|
|
_02011194:
|
|
cmp r1, r0
|
|
bne _020111A2
|
|
cmp r6, #0x0
|
|
bne _020111A0
|
|
add r6, r3, #0x0
|
|
b _020111A2
|
|
_020111A0:
|
|
add r6, r2, #0x0
|
|
_020111A2:
|
|
strb r6, [r5, r1]
|
|
add r1, r1, #0x1
|
|
cmp r1, r4
|
|
blt _02011194
|
|
_020111AA:
|
|
pop {r3-r7, pc}
|
|
|
|
thumb_func_start sub_020111AC
|
|
sub_020111AC: ; 0x020111AC
|
|
push {r3-r5, lr}
|
|
sub sp, #0x10
|
|
add r5, r0, #0x0
|
|
add r4, r1, #0x0
|
|
mov r1, #0xe2
|
|
ldr r0, [r5, #0x20]
|
|
lsl r1, r1, #0x2
|
|
bl Heap_Alloc
|
|
mov r2, #0xe2
|
|
mov r1, #0x0
|
|
lsl r2, r2, #0x2
|
|
str r0, [r5, #0x14]
|
|
bl memset
|
|
add r1, r4, #0x0
|
|
add r1, #0x23
|
|
ldrb r1, [r1, #0x0]
|
|
ldr r0, [r5, #0x14]
|
|
cmp r1, #0x0
|
|
ldr r1, [r5, #0x10]
|
|
bne _020111F2
|
|
str r1, [sp, #0x0]
|
|
ldr r1, [r5, #0x18]
|
|
str r1, [sp, #0x4]
|
|
ldr r1, [r5, #0x1c]
|
|
str r1, [sp, #0x8]
|
|
ldr r1, [r5, #0x20]
|
|
str r1, [sp, #0xc]
|
|
ldr r2, [r5, #0x4]
|
|
ldr r3, [r5, #0x8]
|
|
add r1, r4, #0x0
|
|
bl sub_0201127C
|
|
b _0201120A
|
|
_020111F2:
|
|
str r1, [sp, #0x0]
|
|
ldr r1, [r5, #0x18]
|
|
str r1, [sp, #0x4]
|
|
ldr r1, [r5, #0x1c]
|
|
str r1, [sp, #0x8]
|
|
ldr r1, [r5, #0x20]
|
|
str r1, [sp, #0xc]
|
|
ldr r2, [r5, #0x4]
|
|
ldr r3, [r5, #0x8]
|
|
add r1, r4, #0x0
|
|
bl sub_0201137C
|
|
_0201120A:
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
add sp, #0x10
|
|
pop {r3-r5, pc}
|
|
|
|
thumb_func_start sub_02011214
|
|
sub_02011214: ; 0x02011214
|
|
push {r3-r5, lr}
|
|
add r5, r0, #0x0
|
|
ldr r1, [r5, #0xc]
|
|
mov r4, #0x0
|
|
ldr r0, [r5, #0x14]
|
|
cmp r1, #0x1
|
|
beq _0201122C
|
|
cmp r1, #0x2
|
|
beq _02011258
|
|
cmp r1, #0x3
|
|
beq _0201126A
|
|
b _0201126E
|
|
_0201122C:
|
|
ldr r1, _02011278 ; =0x00000386
|
|
ldrb r1, [r0, r1]
|
|
cmp r1, #0x0
|
|
bne _0201123C
|
|
add r1, r5, #0x0
|
|
bl sub_02011308
|
|
b _02011242
|
|
_0201123C:
|
|
add r1, r5, #0x0
|
|
bl sub_020113EC
|
|
_02011242:
|
|
cmp r0, #0x1
|
|
bne _02011272
|
|
ldr r0, [r5, #0x28]
|
|
ldr r1, [r5, #0x18]
|
|
ldr r2, [r5, #0x10]
|
|
bl sub_0200F62C
|
|
ldr r0, [r5, #0xc]
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _02011272
|
|
_02011258:
|
|
bl Heap_Free
|
|
add r0, r4, #0x0
|
|
str r0, [r5, #0x14]
|
|
ldr r0, [r5, #0xc]
|
|
mov r4, #0x1
|
|
add r0, r0, #0x1
|
|
str r0, [r5, #0xc]
|
|
b _02011272
|
|
_0201126A:
|
|
mov r4, #0x1
|
|
b _02011272
|
|
_0201126E:
|
|
bl GF_AssertFail
|
|
_02011272:
|
|
add r0, r4, #0x0
|
|
pop {r3-r5, pc}
|
|
nop
|
|
_02011278: .word 0x00000386
|
|
|
|
thumb_func_start sub_0201127C
|
|
sub_0201127C: ; 0x0201127C
|
|
push {r3-r7, lr}
|
|
sub sp, #0x8
|
|
add r4, r1, #0x0
|
|
add r6, r2, #0x0
|
|
add r5, r0, #0x0
|
|
lsl r0, r6, #0xc
|
|
ldr r2, [r4, #0x2c]
|
|
add r7, r3, #0x0
|
|
asr r1, r0, #0x1f
|
|
asr r3, r2, #0x1f
|
|
bl _ll_mul
|
|
add r2, r0, #0x0
|
|
mov r0, #0x2
|
|
mov r3, #0x0
|
|
lsl r0, r0, #0xa
|
|
add r0, r2, r0
|
|
adc r1, r3
|
|
lsl r1, r1, #0x14
|
|
lsr r0, r0, #0xc
|
|
orr r0, r1
|
|
asr r2, r0, #0xc
|
|
mov r0, #0xe1
|
|
sub r1, r6, r2
|
|
lsl r0, r0, #0x2
|
|
strb r1, [r5, r0]
|
|
sub r1, r0, #0x4
|
|
str r4, [r5, r1]
|
|
add r1, r4, #0x0
|
|
add r1, #0x23
|
|
ldrb r1, [r1, #0x0]
|
|
add r0, r0, #0x2
|
|
add r3, r7, #0x0
|
|
strb r1, [r5, r0]
|
|
ldr r0, [sp, #0x20]
|
|
add r1, r4, #0x0
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [sp, #0x24]
|
|
str r0, [sp, #0x4]
|
|
add r0, r5, #0x0
|
|
bl sub_0200FE20
|
|
add r0, r4, #0x0
|
|
add r0, #0x20
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
bne _020112EA
|
|
add r4, #0x23
|
|
ldrb r3, [r4, #0x0]
|
|
ldr r0, [sp, #0x24]
|
|
ldr r2, [sp, #0x20]
|
|
mov r1, #0x1
|
|
bl sub_0200F6E4
|
|
b _020112F8
|
|
_020112EA:
|
|
add r4, #0x23
|
|
ldrb r3, [r4, #0x0]
|
|
ldr r0, [sp, #0x24]
|
|
ldr r2, [sp, #0x20]
|
|
mov r1, #0x2
|
|
bl sub_0200F6E4
|
|
_020112F8:
|
|
ldr r0, _02011304 ; =0x00000385
|
|
mov r1, #0x0
|
|
strb r1, [r5, r0]
|
|
add sp, #0x8
|
|
pop {r3-r7, pc}
|
|
nop
|
|
_02011304: .word 0x00000385
|
|
|
|
thumb_func_start sub_02011308
|
|
sub_02011308: ; 0x02011308
|
|
push {r4-r6, lr}
|
|
sub sp, #0x10
|
|
add r4, r1, #0x0
|
|
ldr r1, _02011378 ; =0x00000385
|
|
add r5, r0, #0x0
|
|
ldrb r1, [r5, r1]
|
|
mov r6, #0x0
|
|
cmp r1, #0x0
|
|
beq _02011324
|
|
cmp r1, #0x1
|
|
beq _0201135A
|
|
cmp r1, #0x2
|
|
beq _02011370
|
|
b _02011372
|
|
_02011324:
|
|
bl sub_0200FE90
|
|
cmp r0, #0x1
|
|
bne _02011372
|
|
ldr r2, _02011378 ; =0x00000385
|
|
ldrb r0, [r5, r2]
|
|
sub r1, r2, #0x5
|
|
add r0, r0, #0x1
|
|
strb r0, [r5, r2]
|
|
ldr r0, [r4, #0x10]
|
|
sub r2, r2, #0x1
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r4, #0x18]
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [r4, #0x1c]
|
|
str r0, [sp, #0x8]
|
|
ldr r0, [r4, #0x20]
|
|
str r0, [sp, #0xc]
|
|
ldr r1, [r5, r1]
|
|
add r0, r5, #0x0
|
|
ldrb r2, [r5, r2]
|
|
ldr r3, [r4, #0x8]
|
|
add r0, #0x4c
|
|
add r1, #0x24
|
|
bl sub_02010FD0
|
|
b _02011372
|
|
_0201135A:
|
|
add r0, #0x4c
|
|
bl sub_020110BC
|
|
cmp r0, #0x1
|
|
bne _02011372
|
|
ldr r0, _02011378 ; =0x00000385
|
|
mov r6, #0x1
|
|
ldrb r1, [r5, r0]
|
|
add r1, r1, #0x1
|
|
strb r1, [r5, r0]
|
|
b _02011372
|
|
_02011370:
|
|
mov r6, #0x1
|
|
_02011372:
|
|
add r0, r6, #0x0
|
|
add sp, #0x10
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
_02011378: .word 0x00000385
|
|
|
|
thumb_func_start sub_0201137C
|
|
sub_0201137C: ; 0x0201137C
|
|
push {r3-r7, lr}
|
|
sub sp, #0x10
|
|
add r4, r1, #0x0
|
|
add r6, r2, #0x0
|
|
add r5, r0, #0x0
|
|
lsl r0, r6, #0xc
|
|
ldr r2, [r4, #0x2c]
|
|
add r7, r3, #0x0
|
|
asr r1, r0, #0x1f
|
|
asr r3, r2, #0x1f
|
|
bl _ll_mul
|
|
add r2, r0, #0x0
|
|
mov r0, #0x2
|
|
mov r3, #0x0
|
|
lsl r0, r0, #0xa
|
|
add r0, r2, r0
|
|
adc r1, r3
|
|
lsl r1, r1, #0x14
|
|
lsr r0, r0, #0xc
|
|
orr r0, r1
|
|
mov r1, #0xe1
|
|
asr r0, r0, #0xc
|
|
lsl r1, r1, #0x2
|
|
strb r0, [r5, r1]
|
|
ldrb r0, [r5, r1]
|
|
sub r2, r6, r0
|
|
sub r0, r1, #0x4
|
|
str r4, [r5, r0]
|
|
add r4, #0x23
|
|
add r0, r1, #0x2
|
|
ldrb r3, [r4, #0x0]
|
|
sub r1, r1, #0x4
|
|
strb r3, [r5, r0]
|
|
ldr r0, [sp, #0x28]
|
|
add r3, r7, #0x0
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [sp, #0x2c]
|
|
str r0, [sp, #0x4]
|
|
ldr r0, [sp, #0x30]
|
|
str r0, [sp, #0x8]
|
|
ldr r0, [sp, #0x34]
|
|
str r0, [sp, #0xc]
|
|
ldr r1, [r5, r1]
|
|
add r0, r5, #0x0
|
|
add r0, #0x4c
|
|
add r1, #0x24
|
|
bl sub_02010FD0
|
|
ldr r0, _020113E8 ; =0x00000385
|
|
mov r1, #0x0
|
|
strb r1, [r5, r0]
|
|
add sp, #0x10
|
|
pop {r3-r7, pc}
|
|
.balign 4
|
|
_020113E8: .word 0x00000385
|
|
|
|
thumb_func_start sub_020113EC
|
|
sub_020113EC: ; 0x020113EC
|
|
push {r4-r6, lr}
|
|
sub sp, #0x8
|
|
add r4, r1, #0x0
|
|
ldr r1, _0201147C ; =0x00000385
|
|
add r5, r0, #0x0
|
|
ldrb r1, [r5, r1]
|
|
mov r6, #0x0
|
|
cmp r1, #0x0
|
|
beq _02011408
|
|
cmp r1, #0x1
|
|
beq _02011460
|
|
cmp r1, #0x2
|
|
beq _02011474
|
|
b _02011476
|
|
_02011408:
|
|
add r0, #0x4c
|
|
bl sub_020110BC
|
|
cmp r0, #0x1
|
|
bne _02011476
|
|
ldr r2, _0201147C ; =0x00000385
|
|
ldrb r0, [r5, r2]
|
|
sub r1, r2, #0x5
|
|
add r0, r0, #0x1
|
|
strb r0, [r5, r2]
|
|
ldr r0, [r4, #0x10]
|
|
sub r2, r2, #0x1
|
|
str r0, [sp, #0x0]
|
|
ldr r0, [r4, #0x18]
|
|
str r0, [sp, #0x4]
|
|
ldrb r2, [r5, r2]
|
|
ldr r1, [r5, r1]
|
|
ldr r3, [r4, #0x8]
|
|
add r0, r5, #0x0
|
|
bl sub_0200FE20
|
|
mov r0, #0xe
|
|
lsl r0, r0, #0x6
|
|
ldr r3, [r5, r0]
|
|
add r0, r3, #0x0
|
|
add r0, #0x20
|
|
ldrb r0, [r0, #0x0]
|
|
cmp r0, #0x0
|
|
ldr r0, [r4, #0x18]
|
|
bne _02011452
|
|
add r3, #0x23
|
|
ldrb r3, [r3, #0x0]
|
|
ldr r2, [r4, #0x10]
|
|
mov r1, #0x1
|
|
bl sub_0200F6E4
|
|
b _02011476
|
|
_02011452:
|
|
add r3, #0x23
|
|
ldrb r3, [r3, #0x0]
|
|
ldr r2, [r4, #0x10]
|
|
mov r1, #0x2
|
|
bl sub_0200F6E4
|
|
b _02011476
|
|
_02011460:
|
|
bl sub_0200FE90
|
|
cmp r0, #0x1
|
|
bne _02011476
|
|
ldr r0, _0201147C ; =0x00000385
|
|
mov r6, #0x1
|
|
ldrb r1, [r5, r0]
|
|
add r1, r1, #0x1
|
|
strb r1, [r5, r0]
|
|
b _02011476
|
|
_02011474:
|
|
mov r6, #0x1
|
|
_02011476:
|
|
add r0, r6, #0x0
|
|
add sp, #0x8
|
|
pop {r4-r6, pc}
|
|
.balign 4
|
|
_0201147C: .word 0x00000385
|