summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/asm/unk_0200BB14.s2135
-rw-r--r--arm9/src/unk_0200BB14.c388
-rw-r--r--include/unk_0200BB14.h82
3 files changed, 243 insertions, 2362 deletions
diff --git a/arm9/asm/unk_0200BB14.s b/arm9/asm/unk_0200BB14.s
deleted file mode 100644
index b8a6eab5..00000000
--- a/arm9/asm/unk_0200BB14.s
+++ /dev/null
@@ -1,2135 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- thumb_func_start FUN_0200BB14
-FUN_0200BB14: ; 0x0200BB14
- push {r4, lr}
- mov r1, #0x4e
- lsl r1, r1, #0x2
- add r4, r0, #0x0
- bl AllocFromHeap
- cmp r0, #0x0
- bne _0200BB28
- mov r0, #0x0
- pop {r4, pc}
-_0200BB28:
- str r4, [r0, #0x0]
- mov r1, #0x0
- str r1, [r0, #0x4]
- mov r1, #0x1
- str r1, [r0, #0x8]
- pop {r4, pc}
-
- thumb_func_start FUN_0200BB34
-FUN_0200BB34: ; 0x0200BB34
- push {r4, lr}
- add r4, r0, #0x0
- bne _0200BB3E
- bl GF_AssertFail
-_0200BB3E:
- ldr r0, [r4, #0x0]
- mov r1, #0x58
- bl AllocFromHeap
- cmp r0, #0x0
- bne _0200BB4E
- mov r0, #0x0
- pop {r4, pc}
-_0200BB4E:
- ldr r1, [r4, #0x4]
- mov r2, #0x0
- add r1, r1, #0x1
- str r1, [r4, #0x4]
- add r3, r0, #0x0
- add r1, r2, #0x0
-_0200BB5A:
- add r2, r2, #0x1
- str r1, [r3, #0xc]
- add r3, r3, #0x4
- cmp r2, #0x6
- blt _0200BB5A
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0200BB68
-FUN_0200BB68: ; 0x0200BB68
- add r0, #0x10
- bx lr
-
- thumb_func_start FUN_0200BB6C
-FUN_0200BB6C: ; 0x0200BB6C
- push {r4-r7, lr}
- sub sp, #0x24
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- add r7, r3, #0x0
- cmp r5, #0x0
- bne _0200BB80
- bl GF_AssertFail
-_0200BB80:
- cmp r5, #0x0
- bne _0200BB8A
- add sp, #0x24
- mov r0, #0x0
- pop {r4-r7, pc}
-_0200BB8A:
- ldr r0, [r6, #0x0]
- str r0, [sp, #0x14]
- ldr r0, [r6, #0x4]
- str r0, [sp, #0x18]
- ldr r0, [r6, #0x8]
- str r0, [sp, #0x1c]
- ldr r0, [r5, #0x0]
- str r0, [sp, #0x20]
- ldr r1, [r6, #0xc]
- ldr r2, [r6, #0x10]
- add r0, sp, #0x14
- bl FUN_0201D060
- ldr r1, [r5, #0x0]
- add r0, r7, #0x0
- bl FUN_0201E00C
- bl NNS_G2dInitOamManagerModule
- ldr r0, [r5, #0x8]
- cmp r0, #0x1
- bne _0200BBD6
- ldr r0, [r4, #0x10]
- str r0, [sp, #0x0]
- ldr r0, [r4, #0x14]
- str r0, [sp, #0x4]
- ldr r0, [r4, #0x18]
- str r0, [sp, #0x8]
- ldr r0, [r4, #0x1c]
- str r0, [sp, #0xc]
- ldr r0, [r5, #0x0]
- str r0, [sp, #0x10]
- ldr r0, [r4, #0x0]
- ldr r1, [r4, #0x4]
- ldr r2, [r4, #0x8]
- ldr r3, [r4, #0xc]
- bl FUN_02009EAC
-_0200BBD6:
- ldr r1, [r5, #0x0]
- mov r0, #0x20
- bl FUN_0201C328
- str r0, [r5, #0xc]
- bl FUN_0201D168
- bl FUN_0201E0BC
- mov r0, #0x1
- add sp, #0x24
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0200BBF0
-FUN_0200BBF0: ; 0x0200BBF0
- push {r4, lr}
- add r3, r0, #0x0
- add r4, r1, #0x0
- cmp r3, #0x0
- beq _0200BBFE
- cmp r4, #0x0
- bne _0200BC02
-_0200BBFE:
- mov r0, #0x0
- pop {r4, pc}
-_0200BC02:
- add r0, r2, #0x0
- add r1, r3, #0x0
- ldr r2, [r3, #0x0]
- add r1, #0x10
- bl FUN_02008C9C
- str r0, [r4, #0x0]
- mov r0, #0x1
- pop {r4, pc}
-
- thumb_func_start FUN_0200BC14
-FUN_0200BC14: ; 0x0200BC14
- ldr r3, _0200BC18 ; =FUN_0201FFC8
- bx r3
- .balign 4
-_0200BC18: .word FUN_0201FFC8
-
- thumb_func_start FUN_0200BC1C
-FUN_0200BC1C: ; 0x0200BC1C
- push {r4, lr}
- add r4, r0, #0x0
- bne _0200BC26
- bl GF_AssertFail
-_0200BC26:
- ldr r0, [r4, #0x0]
- bl FUN_0201FDEC
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0200BC30
-FUN_0200BC30: ; 0x0200BC30
- ldr r3, _0200BC34 ; =FUN_02009F80
- bx r3
- .balign 4
-_0200BC34: .word FUN_02009F80
-
- thumb_func_start FUN_0200BC38
-FUN_0200BC38: ; 0x0200BC38
- ldr r3, _0200BC3C ; =FUN_0201C348
- bx r3
- .balign 4
-_0200BC3C: .word FUN_0201C348
-
- thumb_func_start FUN_0200BC40
-FUN_0200BC40: ; 0x0200BC40
- ldr r3, _0200BC48 ; =FUN_0201FD58
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200BC48: .word FUN_0201FD58
-
- thumb_func_start FUN_0200BC4C
-FUN_0200BC4C: ; 0x0200BC4C
- push {r3, lr}
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _0200BC58
- bl FUN_02008C80
-_0200BC58:
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0200BC5C
-FUN_0200BC5C: ; 0x0200BC5C
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0x54]
- mov r4, #0x0
- cmp r0, #0x0
- ble _0200BC7C
-_0200BC68:
- ldr r0, [r5, #0x8]
- add r1, r4, #0x0
- bl FUN_02009660
- bl FUN_020096B4
- ldr r0, [r5, #0x54]
- add r4, r4, #0x1
- cmp r4, r0
- blt _0200BC68
-_0200BC7C:
- ldr r0, [r5, #0x8]
- bl FreeToHeap
- ldr r0, [r5, #0x24]
- bl FUN_02009C30
- ldr r0, [r5, #0x28]
- bl FUN_02009E28
- ldr r0, [r5, #0x54]
- mov r6, #0x0
- cmp r0, #0x0
- ble _0200BCAE
- add r4, r5, #0x0
-_0200BC98:
- ldr r0, [r4, #0x24]
- bl FUN_02009448
- ldr r0, [r4, #0xc]
- bl FUN_02008E2C
- ldr r0, [r5, #0x54]
- add r6, r6, #0x1
- add r4, r4, #0x4
- cmp r6, r0
- blt _0200BC98
-_0200BCAE:
- pop {r4-r6, pc}
-
- thumb_func_start FUN_0200BCB0
-FUN_0200BCB0: ; 0x0200BCB0
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0xc]
- bl FUN_0201C350
- bl FUN_0201D12C
- bl FUN_0201E08C
- ldr r0, [r4, #0x8]
- cmp r0, #0x1
- bne _0200BCCC
- bl FUN_02009FA0
-_0200BCCC:
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0200BCD0
-FUN_0200BCD0: ; 0x0200BCD0
- ldr r2, [r0, #0x4]
- ldr r3, _0200BCDC ; =FreeToHeap
- sub r2, r2, #0x1
- str r2, [r0, #0x4]
- add r0, r1, #0x0
- bx r3
- .balign 4
-_0200BCDC: .word FreeToHeap
-
- thumb_func_start FUN_0200BCE0
-FUN_0200BCE0: ; 0x0200BCE0
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0200BC40
- add r0, r4, #0x0
- bl FUN_0200BC4C
- add r0, r4, #0x0
- bl FUN_0200BC5C
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0200BCD0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0200BD04
-FUN_0200BD04: ; 0x0200BD04
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x4]
- cmp r0, #0x0
- beq _0200BD12
- bl GF_AssertFail
-_0200BD12:
- add r0, r4, #0x0
- bl FUN_0200BCB0
- add r0, r4, #0x0
- bl FreeToHeap
- pop {r4, pc}
-
- thumb_func_start FUN_0200BD20
-FUN_0200BD20: ; 0x0200BD20
- push {r4-r7, lr}
- sub sp, #0x24
- add r5, r0, #0x0
- mov r0, #0x6
- add r4, r1, #0x0
- str r2, [sp, #0x10]
- str r0, [sp, #0x14]
- cmp r5, #0x0
- beq _0200BD36
- cmp r4, #0x0
- bne _0200BD3C
-_0200BD36:
- add sp, #0x24
- mov r0, #0x0
- pop {r4-r7, pc}
-_0200BD3C:
- add r0, r2, #0x0
- ldr r0, [r0, #0x10]
- cmp r0, #0x0
- bne _0200BD48
- mov r0, #0x4
- str r0, [sp, #0x14]
-_0200BD48:
- ldr r0, [sp, #0x14]
- str r0, [r4, #0x54]
- bl FUN_0200965C
- add r2, r0, #0x0
- ldr r1, [sp, #0x14]
- ldr r0, [r5, #0x0]
- mul r1, r2
- bl AllocFromHeap
- str r0, [r4, #0x8]
- ldr r0, [sp, #0x14]
- mov r7, #0x0
- cmp r0, #0x0
- ble _0200BD94
- ldr r6, [sp, #0x10]
-_0200BD68:
- ldr r0, [r4, #0x8]
- add r1, r7, #0x0
- bl FUN_02009660
- str r0, [sp, #0x18]
- ldr r0, [r5, #0x0]
- ldr r1, [r6, #0x0]
- bl FUN_020161A4
- ldr r1, [sp, #0x18]
- ldr r2, [r5, #0x0]
- str r0, [sp, #0x1c]
- bl FUN_02009668
- ldr r0, [sp, #0x1c]
- bl FreeToHeap
- ldr r0, [sp, #0x14]
- add r7, r7, #0x1
- add r6, r6, #0x4
- cmp r7, r0
- blt _0200BD68
-_0200BD94:
- ldr r0, [sp, #0x14]
- mov r6, #0x0
- cmp r0, #0x0
- ble _0200BDBE
- add r7, r4, #0x0
-_0200BD9E:
- ldr r0, [r4, #0x8]
- add r1, r6, #0x0
- bl FUN_02009660
- bl FUN_020096CC
- ldr r2, [r5, #0x0]
- add r1, r6, #0x0
- bl FUN_02008DEC
- str r0, [r7, #0xc]
- ldr r0, [sp, #0x14]
- add r6, r6, #0x1
- add r7, r7, #0x4
- cmp r6, r0
- blt _0200BD9E
-_0200BDBE:
- ldr r0, [sp, #0x14]
- mov r7, #0x0
- cmp r0, #0x0
- ble _0200BDF6
- add r6, r4, #0x0
-_0200BDC8:
- ldr r0, [r4, #0x8]
- add r1, r7, #0x0
- bl FUN_02009660
- str r0, [sp, #0x20]
- bl FUN_020096CC
- ldr r1, [r5, #0x0]
- bl FUN_02009424
- add r2, r0, #0x0
- str r2, [r6, #0x24]
- ldr r0, [r6, #0xc]
- ldr r1, [sp, #0x20]
- ldr r3, [r5, #0x0]
- bl FUN_020093A8
- str r0, [r6, #0x3c]
- ldr r0, [sp, #0x14]
- add r7, r7, #0x1
- add r6, r6, #0x4
- cmp r7, r0
- blt _0200BDC8
-_0200BDF6:
- ldr r0, [r4, #0x24]
- bl FUN_02009A90
- ldr r0, [r4, #0x28]
- bl FUN_02009D34
- ldr r1, [sp, #0x10]
- ldr r0, [r5, #0x0]
- ldr r1, [r1, #0x18]
- bl FUN_020161A4
- ldr r1, [r4, #0x14]
- add r6, r0, #0x0
- str r1, [sp, #0x0]
- ldr r1, [r4, #0x18]
- str r1, [sp, #0x4]
- ldr r1, [r4, #0x1c]
- str r1, [sp, #0x8]
- ldr r1, [r4, #0x20]
- str r1, [sp, #0xc]
- ldr r1, [r5, #0x0]
- ldr r2, [r4, #0xc]
- ldr r3, [r4, #0x10]
- bl FUN_02008BE0
- str r0, [r4, #0x4]
- add r0, r6, #0x0
- bl FreeToHeap
- mov r0, #0x1
- add sp, #0x24
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0200BE38
-FUN_0200BE38: ; 0x0200BE38
- push {r4, lr}
- sub sp, #0x28
- mov r3, #0x4
- mov r4, #0x6
- ldrsh r3, [r2, r3]
- ldrsh r4, [r2, r4]
- str r4, [sp, #0x0]
- str r3, [sp, #0x4]
- ldrh r4, [r2, #0xa]
- str r4, [sp, #0x8]
- ldr r4, [r2, #0xc]
- str r4, [sp, #0xc]
- ldr r4, [r2, #0x10]
- str r4, [sp, #0x10]
- ldr r4, [r2, #0x14]
- str r4, [sp, #0x14]
- ldr r4, [r2, #0x18]
- str r4, [sp, #0x18]
- ldr r4, [r2, #0x1c]
- str r4, [sp, #0x1c]
- ldr r4, [r2, #0x20]
- str r4, [sp, #0x20]
- ldr r4, [r2, #0x24]
- str r4, [sp, #0x24]
- ldr r2, [r2, #0x0]
- bl FUN_0200BE74
- add sp, #0x28
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0200BE74
-FUN_0200BE74: ; 0x0200BE74
- push {r4, lr}
- sub sp, #0x30
- add r4, r0, #0x0
- ldr r0, [r1, #0x0]
- str r0, [sp, #0x0]
- ldr r0, [r1, #0x4]
- ldr r1, [r0, #0x0]
- mov r0, #0x24
- mul r0, r2
- add r0, r1, r0
- str r0, [sp, #0x4]
- cmp r3, #0x0
- ble _0200BEA0
- lsl r0, r3, #0xc
- bl _fflt
- add r1, r0, #0x0
- mov r0, #0x3f
- lsl r0, r0, #0x18
- bl _fadd
- b _0200BEAE
-_0200BEA0:
- lsl r0, r3, #0xc
- bl _fflt
- mov r1, #0x3f
- lsl r1, r1, #0x18
- bl _fsub
-_0200BEAE:
- bl _ffix
- str r0, [sp, #0x8]
- add r1, sp, #0x28
- mov r0, #0x10
- ldrsh r0, [r1, r0]
- cmp r0, #0x0
- ble _0200BED0
- lsl r0, r0, #0xc
- bl _fflt
- add r1, r0, #0x0
- mov r0, #0x3f
- lsl r0, r0, #0x18
- bl _fadd
- b _0200BEDE
-_0200BED0:
- lsl r0, r0, #0xc
- bl _fflt
- mov r1, #0x3f
- lsl r1, r1, #0x18
- bl _fsub
-_0200BEDE:
- bl _ffix
- str r0, [sp, #0xc]
- add r1, sp, #0x28
- mov r0, #0x14
- ldrsh r0, [r1, r0]
- cmp r0, #0x0
- ble _0200BF00
- lsl r0, r0, #0xc
- bl _fflt
- add r1, r0, #0x0
- mov r0, #0x3f
- lsl r0, r0, #0x18
- bl _fadd
- b _0200BF0E
-_0200BF00:
- lsl r0, r0, #0xc
- bl _fflt
- mov r1, #0x3f
- lsl r1, r1, #0x18
- bl _fsub
-_0200BF0E:
- bl _ffix
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x4c]
- cmp r0, #0x2
- bne _0200BF24
- mov r0, #0x3
- ldr r1, [sp, #0xc]
- lsl r0, r0, #0x12
- add r0, r1, r0
- str r0, [sp, #0xc]
-_0200BF24:
- mov r0, #0x1
- lsl r0, r0, #0xc
- str r0, [sp, #0x14]
- str r0, [sp, #0x18]
- str r0, [sp, #0x1c]
- mov r1, #0x0
- add r0, sp, #0x0
- strh r1, [r0, #0x20]
- ldr r0, [sp, #0x44]
- str r0, [sp, #0x24]
- ldr r0, [sp, #0x4c]
- str r0, [sp, #0x28]
- ldr r0, [r4, #0x0]
- str r0, [sp, #0x2c]
- add r0, sp, #0x0
- bl FUN_0201FE94
- add r4, r0, #0x0
- beq _0200BF5A
- add r1, sp, #0x28
- ldrh r1, [r1, #0x18]
- bl FUN_02020130
- ldr r1, [sp, #0x48]
- add r0, r4, #0x0
- bl FUN_02020248
-_0200BF5A:
- add r0, r4, #0x0
- add sp, #0x30
- pop {r4, pc}
-
- thumb_func_start FUN_0200BF60
-FUN_0200BF60: ; 0x0200BF60
- push {r4-r7, lr}
- sub sp, #0xc
- str r0, [sp, #0x0]
- mov r0, #0x6
- str r0, [sp, #0x4]
- ldr r0, [sp, #0x0]
- add r5, r1, #0x0
- add r6, r2, #0x0
- cmp r0, #0x0
- beq _0200BF78
- cmp r5, #0x0
- bne _0200BF7E
-_0200BF78:
- add sp, #0xc
- mov r0, #0x0
- pop {r4-r7, pc}
-_0200BF7E:
- ldr r0, [r6, #0x10]
- cmp r0, #0x0
- beq _0200BF8A
- ldr r0, [r6, #0x14]
- cmp r0, #0x0
- bne _0200BF8E
-_0200BF8A:
- mov r0, #0x4
- str r0, [sp, #0x4]
-_0200BF8E:
- ldr r0, [sp, #0x4]
- str r0, [r5, #0x54]
- mov r0, #0x0
- str r0, [sp, #0x8]
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- ble _0200BFBE
- add r7, r6, #0x0
- add r4, r5, #0x0
-_0200BFA0:
- ldr r2, [sp, #0x0]
- ldr r0, [r7, #0x0]
- ldr r1, [sp, #0x8]
- ldr r2, [r2, #0x0]
- bl FUN_02008DEC
- str r0, [r4, #0xc]
- ldr r0, [sp, #0x8]
- add r7, r7, #0x4
- add r1, r0, #0x1
- ldr r0, [sp, #0x4]
- add r4, r4, #0x4
- str r1, [sp, #0x8]
- cmp r1, r0
- blt _0200BFA0
-_0200BFBE:
- ldr r0, [sp, #0x4]
- mov r7, #0x0
- cmp r0, #0x0
- ble _0200C004
- add r4, r7, #0x0
-_0200BFC8:
- ldr r0, [r6, #0x0]
- cmp r0, #0x0
- beq _0200BFF8
- ldr r1, [sp, #0x0]
- ldr r1, [r1, #0x0]
- bl FUN_02009424
- str r0, [r5, #0x24]
- mov r0, #0x0
- str r0, [r5, #0x3c]
- ldr r3, [r5, #0x24]
- add r1, r0, #0x0
- ldr r0, [r3, #0x4]
- cmp r0, #0x0
- ble _0200BFF8
- add r2, r1, #0x0
-_0200BFE8:
- ldr r0, [r3, #0x0]
- add r1, r1, #0x1
- str r4, [r0, r2]
- ldr r3, [r5, #0x24]
- add r2, r2, #0x4
- ldr r0, [r3, #0x4]
- cmp r1, r0
- blt _0200BFE8
-_0200BFF8:
- ldr r0, [sp, #0x4]
- add r7, r7, #0x1
- add r6, r6, #0x4
- add r5, r5, #0x4
- cmp r7, r0
- blt _0200BFC8
-_0200C004:
- mov r0, #0x1
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0200C00C
-FUN_0200C00C: ; 0x0200C00C
- push {r4-r7, lr}
- sub sp, #0xc
- add r4, r1, #0x0
- add r5, r0, #0x0
- ldr r0, [r4, #0xc]
- ldr r1, [sp, #0x28]
- add r6, r2, #0x0
- add r7, r3, #0x0
- bl FUN_0200945C
- cmp r0, #0x0
- bne _0200C02A
- add sp, #0xc
- mov r0, #0x0
- pop {r4-r7, pc}
-_0200C02A:
- ldr r0, [sp, #0x28]
- ldr r3, [sp, #0x20]
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x24]
- add r1, r6, #0x0
- str r0, [sp, #0x4]
- ldr r0, [r5, #0x0]
- add r2, r7, #0x0
- str r0, [sp, #0x8]
- ldr r0, [r4, #0xc]
- bl FUN_02008F34
- add r5, r0, #0x0
- beq _0200C058
- bl FUN_02009B04
- ldr r0, [r4, #0x24]
- add r1, r5, #0x0
- bl FUN_0200C474
- add sp, #0xc
- mov r0, #0x1
- pop {r4-r7, pc}
-_0200C058:
- bl GF_AssertFail
- cmp r5, #0x0
- beq _0200C066
- add sp, #0xc
- mov r0, #0x1
- pop {r4-r7, pc}
-_0200C066:
- mov r0, #0x0
- add sp, #0xc
- pop {r4-r7, pc}
-
- thumb_func_start FUN_0200C06C
-FUN_0200C06C: ; 0x0200C06C
- push {r3-r7, lr}
- sub sp, #0x10
- add r4, r1, #0x0
- add r5, r0, #0x0
- ldr r0, [r4, #0x10]
- ldr r1, [sp, #0x34]
- add r6, r2, #0x0
- add r7, r3, #0x0
- bl FUN_0200945C
- cmp r0, #0x0
- bne _0200C08C
- mov r0, #0x0
- add sp, #0x10
- mvn r0, r0
- pop {r3-r7, pc}
-_0200C08C:
- ldr r0, [sp, #0x34]
- ldr r3, [sp, #0x28]
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x30]
- add r1, r6, #0x0
- str r0, [sp, #0x4]
- ldr r0, [sp, #0x2c]
- add r2, r7, #0x0
- str r0, [sp, #0x8]
- ldr r0, [r5, #0x0]
- str r0, [sp, #0xc]
- ldr r0, [r4, #0x10]
- bl FUN_02008FEC
- add r5, r0, #0x0
- beq _0200C0D0
- bl FUN_02009D68
- cmp r0, #0x1
- beq _0200C0B8
- bl GF_AssertFail
-_0200C0B8:
- ldr r0, [r4, #0x28]
- add r1, r5, #0x0
- bl FUN_0200C474
- ldr r1, [sp, #0x30]
- add r0, r5, #0x0
- bl FUN_02009E88
- lsl r0, r0, #0x18
- add sp, #0x10
- asr r0, r0, #0x18
- pop {r3-r7, pc}
-_0200C0D0:
- bl GF_AssertFail
- mov r0, #0x0
- mvn r0, r0
- add sp, #0x10
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0200C0DC
-FUN_0200C0DC: ; 0x0200C0DC
- push {r4-r6, lr}
- sub sp, #0x10
- add r5, r0, #0x0
- ldr r0, [sp, #0x28]
- add r6, r1, #0x0
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x2c]
- add r1, r3, #0x0
- str r0, [sp, #0x4]
- ldr r0, [sp, #0x30]
- ldr r3, [sp, #0x24]
- str r0, [sp, #0x8]
- ldr r0, [sp, #0x34]
- str r0, [sp, #0xc]
- add r0, r2, #0x0
- ldr r2, [sp, #0x20]
- bl FUN_0200C06C
- add r4, r0, #0x0
- mov r0, #0x0
- mvn r0, r0
- cmp r4, r0
- beq _0200C11A
- ldr r3, [sp, #0x2c]
- lsl r2, r4, #0x14
- add r0, r5, #0x0
- add r1, r6, #0x0
- lsr r2, r2, #0x10
- lsl r3, r3, #0x5
- bl FUN_02003108
-_0200C11A:
- lsl r0, r4, #0x18
- lsr r0, r0, #0x18
- add sp, #0x10
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0200C124
-FUN_0200C124: ; 0x0200C124
- push {r3-r4, lr}
- sub sp, #0xc
- ldr r4, [sp, #0x18]
- str r4, [sp, #0x0]
- mov r4, #0x2
- str r4, [sp, #0x4]
- ldr r4, [sp, #0x1c]
- str r4, [sp, #0x8]
- bl FUN_0200C404
- add sp, #0xc
- pop {r3-r4, pc}
-
- thumb_func_start FUN_0200C13C
-FUN_0200C13C: ; 0x0200C13C
- push {r3-r4, lr}
- sub sp, #0xc
- ldr r4, [sp, #0x18]
- str r4, [sp, #0x0]
- mov r4, #0x3
- str r4, [sp, #0x4]
- ldr r4, [sp, #0x1c]
- str r4, [sp, #0x8]
- bl FUN_0200C404
- add sp, #0xc
- pop {r3-r4, pc}
-
- thumb_func_start FUN_0200C154
-FUN_0200C154: ; 0x0200C154
- push {r4-r7, lr}
- sub sp, #0x74
- add r7, r0, #0x0
- ldr r0, [r7, #0x0]
- add r6, r1, #0x0
- mov r1, #0x10
- add r5, r2, #0x0
- bl AllocFromHeap
- add r4, r0, #0x0
- bne _0200C170
- add sp, #0x74
- mov r0, #0x0
- pop {r4-r7, pc}
-_0200C170:
- ldr r0, [r7, #0x0]
- mov r1, #0x8
- bl AllocFromHeap
- str r0, [r4, #0x8]
- cmp r0, #0x0
- bne _0200C184
- add sp, #0x74
- mov r0, #0x0
- pop {r4-r7, pc}
-_0200C184:
- ldr r0, [r7, #0x0]
- mov r1, #0x24
- bl AllocFromHeap
- ldr r1, [r4, #0x8]
- str r0, [r1, #0x0]
- ldr r0, [r4, #0x8]
- ldr r0, [r0, #0x0]
- str r0, [r4, #0x4]
- ldr r0, [r4, #0x8]
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- bne _0200C1AC
- cmp r0, #0x0
- beq _0200C1A6
- bl FreeToHeap
-_0200C1A6:
- add sp, #0x74
- mov r0, #0x0
- pop {r4-r7, pc}
-_0200C1AC:
- mov r1, #0x0
- add r2, r5, #0x0
- add r3, sp, #0x2c
-_0200C1B2:
- ldr r0, [r2, #0x14]
- add r1, r1, #0x1
- add r2, r2, #0x4
- stmia r3!, {r0}
- cmp r1, #0x6
- blt _0200C1B2
- ldr r0, [r6, #0x1c]
- cmp r0, #0x0
- beq _0200C1CA
- ldr r1, [r6, #0x20]
- cmp r1, #0x0
- bne _0200C1D4
-_0200C1CA:
- mov r0, #0x0
- mvn r0, r0
- str r0, [sp, #0x3c]
- str r0, [sp, #0x40]
- b _0200C206
-_0200C1D4:
- mov r2, #0x0
- ldr r1, [sp, #0x3c]
- mvn r2, r2
- cmp r1, r2
- beq _0200C1EC
- bl FUN_0200945C
- cmp r0, #0x0
- bne _0200C1EC
- mov r0, #0x0
- mvn r0, r0
- str r0, [sp, #0x3c]
-_0200C1EC:
- mov r0, #0x0
- ldr r1, [sp, #0x40]
- mvn r0, r0
- cmp r1, r0
- beq _0200C206
- ldr r0, [r6, #0x20]
- bl FUN_0200945C
- cmp r0, #0x0
- bne _0200C206
- mov r0, #0x0
- mvn r0, r0
- str r0, [sp, #0x40]
-_0200C206:
- ldr r0, [sp, #0x38]
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x3c]
- str r0, [sp, #0x4]
- ldr r0, [sp, #0x40]
- str r0, [sp, #0x8]
- ldr r0, [r5, #0x30]
- str r0, [sp, #0xc]
- ldr r0, [r5, #0x2c]
- str r0, [sp, #0x10]
- ldr r0, [r6, #0xc]
- str r0, [sp, #0x14]
- ldr r0, [r6, #0x10]
- str r0, [sp, #0x18]
- ldr r0, [r6, #0x14]
- str r0, [sp, #0x1c]
- ldr r0, [r6, #0x18]
- str r0, [sp, #0x20]
- ldr r0, [r6, #0x1c]
- str r0, [sp, #0x24]
- ldr r0, [r6, #0x20]
- str r0, [sp, #0x28]
- ldr r0, [r4, #0x4]
- ldr r1, [sp, #0x2c]
- ldr r2, [sp, #0x30]
- ldr r3, [sp, #0x34]
- bl FUN_02008AA4
- ldr r0, [r6, #0x0]
- str r0, [sp, #0x44]
- ldr r0, [r4, #0x4]
- str r0, [sp, #0x48]
- mov r0, #0x0
- ldrsh r0, [r5, r0]
- cmp r0, #0x0
- ble _0200C260
- lsl r0, r0, #0xc
- bl _fflt
- add r1, r0, #0x0
- mov r0, #0x3f
- lsl r0, r0, #0x18
- bl _fadd
- b _0200C26E
-_0200C260:
- lsl r0, r0, #0xc
- bl _fflt
- mov r1, #0x3f
- lsl r1, r1, #0x18
- bl _fsub
-_0200C26E:
- bl _ffix
- str r0, [sp, #0x4c]
- mov r0, #0x2
- ldrsh r0, [r5, r0]
- cmp r0, #0x0
- ble _0200C28E
- lsl r0, r0, #0xc
- bl _fflt
- add r1, r0, #0x0
- mov r0, #0x3f
- lsl r0, r0, #0x18
- bl _fadd
- b _0200C29C
-_0200C28E:
- lsl r0, r0, #0xc
- bl _fflt
- mov r1, #0x3f
- lsl r1, r1, #0x18
- bl _fsub
-_0200C29C:
- bl _ffix
- str r0, [sp, #0x50]
- mov r0, #0x4
- ldrsh r0, [r5, r0]
- cmp r0, #0x0
- ble _0200C2BC
- lsl r0, r0, #0xc
- bl _fflt
- add r1, r0, #0x0
- mov r0, #0x3f
- lsl r0, r0, #0x18
- bl _fadd
- b _0200C2CA
-_0200C2BC:
- lsl r0, r0, #0xc
- bl _fflt
- mov r1, #0x3f
- lsl r1, r1, #0x18
- bl _fsub
-_0200C2CA:
- bl _ffix
- str r0, [sp, #0x54]
- ldr r0, [r5, #0x10]
- cmp r0, #0x2
- bne _0200C2E0
- mov r0, #0x3
- ldr r1, [sp, #0x50]
- lsl r0, r0, #0x12
- add r0, r1, r0
- str r0, [sp, #0x50]
-_0200C2E0:
- mov r0, #0x1
- lsl r0, r0, #0xc
- str r0, [sp, #0x58]
- str r0, [sp, #0x5c]
- str r0, [sp, #0x60]
- mov r1, #0x0
- add r0, sp, #0x2c
- strh r1, [r0, #0x38]
- ldr r0, [r5, #0x8]
- str r0, [sp, #0x68]
- ldr r0, [r5, #0x10]
- str r0, [sp, #0x6c]
- ldr r0, [r7, #0x0]
- str r0, [sp, #0x70]
- add r0, sp, #0x44
- bl FUN_0201FE94
- str r0, [r4, #0x0]
- ldr r0, [r5, #0x30]
- str r0, [r4, #0xc]
- ldr r0, [r4, #0x0]
- cmp r0, #0x0
- beq _0200C328
- bl FUN_020202A0
- add r6, r0, #0x0
- ldrh r1, [r5, #0x6]
- ldr r0, [r4, #0x0]
- bl FUN_02020130
- ldr r1, [r5, #0xc]
- ldr r0, [r4, #0x0]
- add r1, r6, r1
- bl FUN_02020248
- b _0200C32C
-_0200C328:
- bl GF_AssertFail
-_0200C32C:
- add r0, r4, #0x0
- add sp, #0x74
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0200C334
-FUN_0200C334: ; 0x0200C334
- push {r3, lr}
- ldr r0, [r0, #0x10]
- bl FUN_020094F0
- mov r1, #0x0
- bl FUN_02009E54
- pop {r3, pc}
-
- thumb_func_start FUN_0200C344
-FUN_0200C344: ; 0x0200C344
- push {r4, lr}
- ldr r0, [r0, #0x10]
- add r4, r2, #0x0
- bl FUN_020094F0
- add r1, r4, #0x0
- bl FUN_02009E88
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0200C358
-FUN_0200C358: ; 0x0200C358
- add r3, r0, #0x0
- add r2, r1, #0x0
- ldr r0, [r3, #0xc]
- ldr r1, [r3, #0x24]
- ldr r3, _0200C364 ; =FUN_0200C4F4
- bx r3
- .balign 4
-_0200C364: .word FUN_0200C4F4
-
- thumb_func_start FUN_0200C368
-FUN_0200C368: ; 0x0200C368
- add r3, r0, #0x0
- add r2, r1, #0x0
- ldr r0, [r3, #0x10]
- ldr r1, [r3, #0x28]
- ldr r3, _0200C374 ; =FUN_0200C548
- bx r3
- .balign 4
-_0200C374: .word FUN_0200C548
-
- thumb_func_start FUN_0200C378
-FUN_0200C378: ; 0x0200C378
- add r3, r0, #0x0
- add r2, r1, #0x0
- ldr r0, [r3, #0x14]
- ldr r1, [r3, #0x2c]
- ldr r3, _0200C384 ; =FUN_0200C4A8
- bx r3
- .balign 4
-_0200C384: .word FUN_0200C4A8
-
- thumb_func_start FUN_0200C388
-FUN_0200C388: ; 0x0200C388
- add r3, r0, #0x0
- add r2, r1, #0x0
- ldr r0, [r3, #0x18]
- ldr r1, [r3, #0x30]
- ldr r3, _0200C394 ; =FUN_0200C4A8
- bx r3
- .balign 4
-_0200C394: .word FUN_0200C4A8
-
- thumb_func_start FUN_0200C398
-FUN_0200C398: ; 0x0200C398
- push {r3-r7, lr}
- add r6, r1, #0x0
- add r7, r0, #0x0
- add r0, r6, #0x0
- bl FUN_0200BC40
- ldr r0, [r6, #0x24]
- bl FUN_02009C30
- ldr r0, [r6, #0x28]
- bl FUN_02009E28
- ldr r0, [r6, #0x54]
- mov r4, #0x0
- cmp r0, #0x0
- ble _0200C3D0
- add r5, r6, #0x0
-_0200C3BA:
- ldr r0, [r5, #0x24]
- bl FUN_02009448
- ldr r0, [r5, #0xc]
- bl FUN_02008E2C
- ldr r0, [r6, #0x54]
- add r4, r4, #0x1
- add r5, r5, #0x4
- cmp r4, r0
- blt _0200C3BA
-_0200C3D0:
- add r0, r7, #0x0
- add r1, r6, #0x0
- bl FUN_0200BCD0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0200C3DC
-FUN_0200C3DC: ; 0x0200C3DC
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0xc]
- cmp r0, #0x0
- beq _0200C3EE
- ldr r0, [r4, #0x4]
- ldr r0, [r0, #0x0]
- bl FUN_02009CDC
-_0200C3EE:
- ldr r0, [r4, #0x0]
- bl FUN_0201FFC8
- ldr r0, [r4, #0x8]
- bl FUN_02008C80
- add r0, r4, #0x0
- bl FreeToHeap
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0200C404
-FUN_0200C404: ; 0x0200C404
- push {r4-r7, lr}
- sub sp, #0x14
- add r6, r1, #0x0
- add r7, r0, #0x0
- ldr r0, [sp, #0x2c]
- add r5, r6, #0x0
- lsl r4, r0, #0x2
- add r5, #0xc
- ldr r0, [r5, r4]
- ldr r1, [sp, #0x30]
- str r2, [sp, #0xc]
- str r3, [sp, #0x10]
- bl FUN_0200945C
- cmp r0, #0x0
- bne _0200C42A
- add sp, #0x14
- mov r0, #0x0
- pop {r4-r7, pc}
-_0200C42A:
- ldr r0, [sp, #0x30]
- ldr r1, [sp, #0xc]
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x2c]
- ldr r2, [sp, #0x10]
- str r0, [sp, #0x4]
- ldr r0, [r7, #0x0]
- ldr r3, [sp, #0x28]
- str r0, [sp, #0x8]
- ldr r0, [r5, r4]
- bl FUN_020090AC
- add r5, r0, #0x0
- beq _0200C460
- add r0, r6, r4
- ldr r0, [r0, #0x24]
- add r1, r5, #0x0
- bl FUN_0200C474
- add r4, r0, #0x0
- cmp r4, #0x1
- beq _0200C45A
- bl GF_AssertFail
-_0200C45A:
- add sp, #0x14
- add r0, r4, #0x0
- pop {r4-r7, pc}
-_0200C460:
- bl GF_AssertFail
- cmp r5, #0x0
- beq _0200C46E
- add sp, #0x14
- mov r0, #0x1
- pop {r4-r7, pc}
-_0200C46E:
- mov r0, #0x0
- add sp, #0x14
- pop {r4-r7, pc}
-
- thumb_func_start FUN_0200C474
-FUN_0200C474: ; 0x0200C474
- push {r3-r6}
- ldr r6, [r0, #0x4]
- mov r3, #0x0
- cmp r6, #0x0
- ble _0200C4A0
- ldr r5, [r0, #0x0]
- add r4, r5, #0x0
-_0200C482:
- ldr r2, [r4, #0x0]
- cmp r2, #0x0
- bne _0200C498
- lsl r2, r3, #0x2
- str r1, [r5, r2]
- ldr r1, [r0, #0x8]
- add r1, r1, #0x1
- str r1, [r0, #0x8]
- mov r0, #0x1
- pop {r3-r6}
- bx lr
-_0200C498:
- add r3, r3, #0x1
- add r4, r4, #0x4
- cmp r3, r6
- blt _0200C482
-_0200C4A0:
- mov r0, #0x0
- pop {r3-r6}
- bx lr
- .balign 4
-
- thumb_func_start FUN_0200C4A8
-FUN_0200C4A8: ; 0x0200C4A8
- push {r3-r7, lr}
- add r5, r1, #0x0
- str r0, [sp, #0x0]
- ldr r0, [r5, #0x4]
- add r7, r2, #0x0
- mov r6, #0x0
- cmp r0, #0x0
- ble _0200C4F0
- add r4, r6, #0x0
-_0200C4BA:
- ldr r0, [r5, #0x0]
- ldr r0, [r0, r4]
- cmp r0, #0x0
- beq _0200C4E6
- bl FUN_02009530
- cmp r0, r7
- bne _0200C4E6
- ldr r1, [r5, #0x0]
- lsl r4, r6, #0x2
- ldr r0, [sp, #0x0]
- ldr r1, [r1, r4]
- bl FUN_02009490
- ldr r0, [r5, #0x0]
- mov r1, #0x0
- str r1, [r0, r4]
- ldr r0, [r5, #0x8]
- sub r0, r0, #0x1
- str r0, [r5, #0x8]
- mov r0, #0x1
- pop {r3-r7, pc}
-_0200C4E6:
- ldr r0, [r5, #0x4]
- add r6, r6, #0x1
- add r4, r4, #0x4
- cmp r6, r0
- blt _0200C4BA
-_0200C4F0:
- mov r0, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0200C4F4
-FUN_0200C4F4: ; 0x0200C4F4
- push {r3-r7, lr}
- add r5, r1, #0x0
- str r0, [sp, #0x0]
- ldr r0, [r5, #0x4]
- add r7, r2, #0x0
- mov r6, #0x0
- cmp r0, #0x0
- ble _0200C542
- add r4, r6, #0x0
-_0200C506:
- ldr r0, [r5, #0x0]
- ldr r0, [r0, r4]
- cmp r0, #0x0
- beq _0200C538
- bl FUN_02009530
- cmp r0, r7
- bne _0200C538
- add r0, r7, #0x0
- bl FUN_0201D324
- ldr r1, [r5, #0x0]
- lsl r4, r6, #0x2
- ldr r0, [sp, #0x0]
- ldr r1, [r1, r4]
- bl FUN_02009490
- ldr r0, [r5, #0x0]
- mov r1, #0x0
- str r1, [r0, r4]
- ldr r0, [r5, #0x8]
- sub r0, r0, #0x1
- str r0, [r5, #0x8]
- mov r0, #0x1
- pop {r3-r7, pc}
-_0200C538:
- ldr r0, [r5, #0x4]
- add r6, r6, #0x1
- add r4, r4, #0x4
- cmp r6, r0
- blt _0200C506
-_0200C542:
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0200C548
-FUN_0200C548: ; 0x0200C548
- push {r3-r7, lr}
- add r5, r1, #0x0
- str r0, [sp, #0x0]
- ldr r0, [r5, #0x4]
- add r7, r2, #0x0
- mov r6, #0x0
- cmp r0, #0x0
- ble _0200C596
- add r4, r6, #0x0
-_0200C55A:
- ldr r0, [r5, #0x0]
- ldr r0, [r0, r4]
- cmp r0, #0x0
- beq _0200C58C
- bl FUN_02009530
- cmp r0, r7
- bne _0200C58C
- add r0, r7, #0x0
- bl FUN_0201E1C8
- ldr r1, [r5, #0x0]
- lsl r4, r6, #0x2
- ldr r0, [sp, #0x0]
- ldr r1, [r1, r4]
- bl FUN_02009490
- ldr r0, [r5, #0x0]
- mov r1, #0x0
- str r1, [r0, r4]
- ldr r0, [r5, #0x8]
- sub r0, r0, #0x1
- str r0, [r5, #0x8]
- mov r0, #0x1
- pop {r3-r7, pc}
-_0200C58C:
- ldr r0, [r5, #0x4]
- add r6, r6, #0x1
- add r4, r4, #0x4
- cmp r6, r0
- blt _0200C55A
-_0200C596:
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0200C59C
-FUN_0200C59C: ; 0x0200C59C
- ldr r3, _0200C5A4 ; =FUN_020201E4
- mov r1, #0x1
- lsl r1, r1, #0xc
- bx r3
- .balign 4
-_0200C5A4: .word FUN_020201E4
-
- thumb_func_start FUN_0200C5A8
-FUN_0200C5A8: ; 0x0200C5A8
- ldr r3, _0200C5B0 ; =FUN_0200C59C
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C5B0: .word FUN_0200C59C
-
- thumb_func_start FUN_0200C5B4
-FUN_0200C5B4: ; 0x0200C5B4
- ldr r3, _0200C5BC ; =FUN_020201E4
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C5BC: .word FUN_020201E4
-
- thumb_func_start FUN_0200C5C0
-FUN_0200C5C0: ; 0x0200C5C0
- ldr r3, _0200C5C8 ; =FUN_02020130
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C5C8: .word FUN_02020130
-
- thumb_func_start FUN_0200C5CC
-FUN_0200C5CC: ; 0x0200C5CC
- ldr r3, _0200C5D4 ; =FUN_020201DC
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C5D4: .word FUN_020201DC
-
- thumb_func_start FUN_0200C5D8
-FUN_0200C5D8: ; 0x0200C5D8
- ldr r3, _0200C5DC ; =FUN_020200BC
- bx r3
- .balign 4
-_0200C5DC: .word FUN_020200BC
-
- thumb_func_start FUN_0200C5E0
-FUN_0200C5E0: ; 0x0200C5E0
- ldr r3, _0200C5E8 ; =FUN_0200C5D8
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C5E8: .word FUN_0200C5D8
-
- thumb_func_start FUN_0200C5EC
-FUN_0200C5EC: ; 0x0200C5EC
- ldr r3, _0200C5F0 ; =FUN_020200D8
- bx r3
- .balign 4
-_0200C5F0: .word FUN_020200D8
-
- thumb_func_start FUN_0200C5F4
-FUN_0200C5F4: ; 0x0200C5F4
- ldr r3, _0200C5FC ; =FUN_0200C5EC
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C5FC: .word FUN_0200C5EC
-
- thumb_func_start FUN_0200C600
-FUN_0200C600: ; 0x0200C600
- ldr r3, _0200C604 ; =FUN_02020388
- bx r3
- .balign 4
-_0200C604: .word FUN_02020388
-
- thumb_func_start FUN_0200C608
-FUN_0200C608: ; 0x0200C608
- ldr r3, _0200C610 ; =FUN_0200C600
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C610: .word FUN_0200C600
-
- thumb_func_start FUN_0200C614
-FUN_0200C614: ; 0x0200C614
- ldr r3, _0200C618 ; =FUN_02020208
- bx r3
- .balign 4
-_0200C618: .word FUN_02020208
-
- thumb_func_start FUN_0200C61C
-FUN_0200C61C: ; 0x0200C61C
- ldr r3, _0200C624 ; =FUN_0200C614
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C624: .word FUN_0200C614
-
- thumb_func_start FUN_0200C628
-FUN_0200C628: ; 0x0200C628
- ldr r3, _0200C62C ; =FUN_0202022C
- bx r3
- .balign 4
-_0200C62C: .word FUN_0202022C
-
- thumb_func_start FUN_0200C630
-FUN_0200C630: ; 0x0200C630
- ldr r3, _0200C638 ; =FUN_0200C628
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C638: .word FUN_0200C628
-
- thumb_func_start FUN_0200C63C
-FUN_0200C63C: ; 0x0200C63C
- ldr r3, _0200C640 ; =FUN_020200A0
- bx r3
- .balign 4
-_0200C640: .word FUN_020200A0
-
- thumb_func_start FUN_0200C644
-FUN_0200C644: ; 0x0200C644
- ldr r3, _0200C64C ; =FUN_0200C63C
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C64C: .word FUN_0200C63C
-
- thumb_func_start FUN_0200C650
-FUN_0200C650: ; 0x0200C650
- ldr r3, _0200C654 ; =FUN_02020128
- bx r3
- .balign 4
-_0200C654: .word FUN_02020128
-
- thumb_func_start FUN_0200C658
-FUN_0200C658: ; 0x0200C658
- ldr r3, _0200C660 ; =FUN_0200C650
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C660: .word FUN_0200C650
-
- thumb_func_start FUN_0200C664
-FUN_0200C664: ; 0x0200C664
- ldr r3, _0200C668 ; =FUN_02020248
- bx r3
- .balign 4
-_0200C668: .word FUN_02020248
-
- thumb_func_start FUN_0200C66C
-FUN_0200C66C: ; 0x0200C66C
- ldr r3, _0200C674 ; =FUN_0200C664
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C674: .word FUN_0200C664
-
- thumb_func_start FUN_0200C678
-FUN_0200C678: ; 0x0200C678
- ldr r3, _0200C67C ; =FUN_020202A8
- bx r3
- .balign 4
-_0200C67C: .word FUN_020202A8
-
- thumb_func_start FUN_0200C680
-FUN_0200C680: ; 0x0200C680
- ldr r3, _0200C688 ; =FUN_0200C678
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C688: .word FUN_0200C678
-
- thumb_func_start FUN_0200C68C
-FUN_0200C68C: ; 0x0200C68C
- ldr r3, _0200C694 ; =FUN_02020300
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C694: .word FUN_02020300
-
- thumb_func_start FUN_0200C698
-FUN_0200C698: ; 0x0200C698
- ldr r3, _0200C6A0 ; =FUN_02020238
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bx r3
- .balign 4
-_0200C6A0: .word FUN_02020238
-
- thumb_func_start FUN_0200C6A4
-FUN_0200C6A4: ; 0x0200C6A4
- ldr r3, _0200C6AC ; =FUN_02020240
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C6AC: .word FUN_02020240
-
- thumb_func_start FUN_0200C6B0
-FUN_0200C6B0: ; 0x0200C6B0
- ldr r3, _0200C6B8 ; =FUN_0200C698
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C6B8: .word FUN_0200C698
-
- thumb_func_start FUN_0200C6BC
-FUN_0200C6BC: ; 0x0200C6BC
- ldr r3, _0200C6C0 ; =FUN_02020310
- bx r3
- .balign 4
-_0200C6C0: .word FUN_02020310
-
- thumb_func_start FUN_0200C6C4
-FUN_0200C6C4: ; 0x0200C6C4
- ldr r3, _0200C6CC ; =FUN_0200C6BC
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C6CC: .word FUN_0200C6BC
-
- thumb_func_start FUN_0200C6D0
-FUN_0200C6D0: ; 0x0200C6D0
- ldr r3, _0200C6D4 ; =FUN_0202032C
- bx r3
- .balign 4
-_0200C6D4: .word FUN_0202032C
-
- thumb_func_start FUN_0200C6D8
-FUN_0200C6D8: ; 0x0200C6D8
- ldr r3, _0200C6E0 ; =FUN_0200C6D0
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C6E0: .word FUN_0200C6D0
-
- thumb_func_start FUN_0200C6E4
-FUN_0200C6E4: ; 0x0200C6E4
- push {r3-r4, lr}
- sub sp, #0xc
- lsl r1, r1, #0xc
- str r1, [sp, #0x0]
- lsl r1, r2, #0xc
- add r4, r0, #0x0
- str r1, [sp, #0x4]
- bl FUN_02020380
- cmp r0, #0x2
- bne _0200C704
- mov r0, #0x3
- ldr r1, [sp, #0x4]
- lsl r0, r0, #0x12
- add r0, r1, r0
- str r0, [sp, #0x4]
-_0200C704:
- mov r0, #0x0
- str r0, [sp, #0x8]
- add r0, r4, #0x0
- add r1, sp, #0x0
- bl FUN_02020044
- add sp, #0xc
- pop {r3-r4, pc}
-
- thumb_func_start FUN_0200C714
-FUN_0200C714: ; 0x0200C714
- ldr r3, _0200C71C ; =FUN_0200C6E4
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C71C: .word FUN_0200C6E4
-
- thumb_func_start FUN_0200C720
-FUN_0200C720: ; 0x0200C720
- push {r4-r5, lr}
- sub sp, #0xc
- lsl r1, r1, #0xc
- str r1, [sp, #0x0]
- lsl r1, r2, #0xc
- add r5, r0, #0x0
- add r4, r3, #0x0
- str r1, [sp, #0x4]
- bl FUN_02020380
- cmp r0, #0x2
- bne _0200C73E
- ldr r0, [sp, #0x4]
- add r0, r0, r4
- str r0, [sp, #0x4]
-_0200C73E:
- mov r0, #0x0
- str r0, [sp, #0x8]
- add r0, r5, #0x0
- add r1, sp, #0x0
- bl FUN_02020044
- add sp, #0xc
- pop {r4-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0200C750
-FUN_0200C750: ; 0x0200C750
- push {r3, lr}
- ldr r0, [r0, #0x0]
- bl FUN_0200C720
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0200C75C
-FUN_0200C75C: ; 0x0200C75C
- push {r3-r7, lr}
- add r7, r0, #0x0
- add r6, r1, #0x0
- add r5, r2, #0x0
- bl FUN_0202011C
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- asr r0, r1, #0xb
- lsr r0, r0, #0x14
- add r0, r1, r0
- asr r0, r0, #0xc
- strh r0, [r6, #0x0]
- add r0, r7, #0x0
- bl FUN_02020380
- cmp r0, #0x2
- ldr r1, [r4, #0x4]
- bne _0200C794
- mov r0, #0x3
- lsl r0, r0, #0x12
- sub r1, r1, r0
- asr r0, r1, #0xb
- lsr r0, r0, #0x14
- add r0, r1, r0
- asr r0, r0, #0xc
- strh r0, [r5, #0x0]
- pop {r3-r7, pc}
-_0200C794:
- asr r0, r1, #0xb
- lsr r0, r0, #0x14
- add r0, r1, r0
- asr r0, r0, #0xc
- strh r0, [r5, #0x0]
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0200C7A0
-FUN_0200C7A0: ; 0x0200C7A0
- ldr r3, _0200C7A8 ; =FUN_0200C75C
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C7A8: .word FUN_0200C75C
-
- thumb_func_start FUN_0200C7AC
-FUN_0200C7AC: ; 0x0200C7AC
- push {r3-r7, lr}
- str r0, [sp, #0x0]
- add r6, r1, #0x0
- add r5, r2, #0x0
- add r7, r3, #0x0
- bl FUN_0202011C
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- asr r0, r1, #0xb
- lsr r0, r0, #0x14
- add r0, r1, r0
- asr r0, r0, #0xc
- strh r0, [r6, #0x0]
- ldr r0, [sp, #0x0]
- bl FUN_02020380
- cmp r0, #0x2
- bne _0200C7E2
- ldr r0, [r4, #0x4]
- sub r1, r0, r7
- asr r0, r1, #0xb
- lsr r0, r0, #0x14
- add r0, r1, r0
- asr r0, r0, #0xc
- strh r0, [r5, #0x0]
- pop {r3-r7, pc}
-_0200C7E2:
- ldr r1, [r4, #0x4]
- asr r0, r1, #0xb
- lsr r0, r0, #0x14
- add r0, r1, r0
- asr r0, r0, #0xc
- strh r0, [r5, #0x0]
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0200C7F0
-FUN_0200C7F0: ; 0x0200C7F0
- push {r3, lr}
- ldr r0, [r0, #0x0]
- bl FUN_0200C7AC
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0200C7FC
-FUN_0200C7FC: ; 0x0200C7FC
- push {r3-r6, lr}
- sub sp, #0xc
- add r6, r0, #0x0
- add r5, r1, #0x0
- add r4, r2, #0x0
- bl FUN_0202011C
- ldr r2, [r0, #0x0]
- lsl r1, r5, #0xc
- add r1, r2, r1
- str r1, [sp, #0x0]
- ldr r2, [r0, #0x4]
- lsl r1, r4, #0xc
- add r1, r2, r1
- str r1, [sp, #0x4]
- ldr r0, [r0, #0x8]
- add r1, sp, #0x0
- str r0, [sp, #0x8]
- add r0, r6, #0x0
- bl FUN_02020044
- add sp, #0xc
- pop {r3-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0200C82C
-FUN_0200C82C: ; 0x0200C82C
- ldr r3, _0200C834 ; =FUN_0200C7FC
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C834: .word FUN_0200C7FC
-
- thumb_func_start FUN_0200C838
-FUN_0200C838: ; 0x0200C838
- ldr r3, _0200C83C ; =FUN_020200EC
- bx r3
- .balign 4
-_0200C83C: .word FUN_020200EC
-
- thumb_func_start FUN_0200C840
-FUN_0200C840: ; 0x0200C840
- ldr r3, _0200C848 ; =FUN_0200C838
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C848: .word FUN_0200C838
-
- thumb_func_start FUN_0200C84C
-FUN_0200C84C: ; 0x0200C84C
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r7, r2, #0x0
- bl FUN_02020120
- add r4, r0, #0x0
- ldr r0, _0200C880 ; =0x45800000
- add r1, r6, #0x0
- bl _fmul
- bl _ffix
- str r0, [r4, #0x0]
- ldr r0, _0200C880 ; =0x45800000
- add r1, r7, #0x0
- bl _fmul
- bl _ffix
- str r0, [r4, #0x4]
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02020064
- pop {r3-r7, pc}
- .balign 4
-_0200C880: .word 0x45800000
-
- thumb_func_start FUN_0200C884
-FUN_0200C884: ; 0x0200C884
- ldr r3, _0200C88C ; =FUN_0200C84C
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C88C: .word FUN_0200C84C
-
- thumb_func_start FUN_0200C890
-FUN_0200C890: ; 0x0200C890
- ldr r3, _0200C894 ; =FUN_02020088
- bx r3
- .balign 4
-_0200C894: .word FUN_02020088
-
- thumb_func_start FUN_0200C898
-FUN_0200C898: ; 0x0200C898
- ldr r3, _0200C8A0 ; =FUN_0200C890
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C8A0: .word FUN_0200C890
-
- thumb_func_start FUN_0200C8A4
-FUN_0200C8A4: ; 0x0200C8A4
- push {r3-r5, lr}
- add r5, r1, #0x0
- add r4, r0, #0x0
- bl FUN_02020124
- add r0, r0, r5
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- add r0, r4, #0x0
- bl FUN_02020088
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0200C8BC
-FUN_0200C8BC: ; 0x0200C8BC
- ldr r3, _0200C8C4 ; =FUN_0200C8A4
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C8C4: .word FUN_0200C8A4
-
- thumb_func_start FUN_0200C8C8
-FUN_0200C8C8: ; 0x0200C8C8
- ldr r3, _0200C8CC ; =FUN_02020100
- bx r3
- .balign 4
-_0200C8CC: .word FUN_02020100
-
- thumb_func_start FUN_0200C8D0
-FUN_0200C8D0: ; 0x0200C8D0
- ldr r3, _0200C8D8 ; =FUN_0200C8C8
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C8D8: .word FUN_0200C8C8
-
- thumb_func_start FUN_0200C8DC
-FUN_0200C8DC: ; 0x0200C8DC
- push {lr}
- sub sp, #0xc
- lsl r1, r1, #0xc
- str r1, [sp, #0x0]
- lsl r1, r2, #0xc
- str r1, [sp, #0x4]
- mov r1, #0x0
- str r1, [sp, #0x8]
- ldr r0, [r0, #0x0]
- add r1, sp, #0x0
- bl FUN_02020054
- add sp, #0xc
- pop {pc}
-
- thumb_func_start FUN_0200C8F8
-FUN_0200C8F8: ; 0x0200C8F8
- ldr r3, _0200C900 ; =FUN_02020358
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C900: .word FUN_02020358
-
- thumb_func_start FUN_0200C904
-FUN_0200C904: ; 0x0200C904
- ldr r3, _0200C908 ; =FUN_02020398
- bx r3
- .balign 4
-_0200C908: .word FUN_02020398
-
- thumb_func_start FUN_0200C90C
-FUN_0200C90C: ; 0x0200C90C
- ldr r3, _0200C914 ; =FUN_0200C904
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0200C914: .word FUN_0200C904
-
- thumb_func_start FUN_0200C918
-FUN_0200C918: ; 0x0200C918
- push {r4-r7, lr}
- sub sp, #0xc
- add r4, r1, #0x0
- add r5, r0, #0x0
- ldr r0, [r4, #0xc]
- ldr r1, [sp, #0x28]
- add r6, r2, #0x0
- add r7, r3, #0x0
- bl FUN_0200945C
- cmp r0, #0x0
- bne _0200C936
- add sp, #0xc
- mov r0, #0x0
- pop {r4-r7, pc}
-_0200C936:
- ldr r0, [sp, #0x28]
- ldr r3, [sp, #0x20]
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x24]
- add r1, r6, #0x0
- str r0, [sp, #0x4]
- ldr r0, [r5, #0x0]
- add r2, r7, #0x0
- str r0, [sp, #0x8]
- ldr r0, [r4, #0xc]
- bl FUN_02008F34
- add r5, r0, #0x0
- beq _0200C964
- bl FUN_02009AC4
- ldr r0, [r4, #0x24]
- add r1, r5, #0x0
- bl FUN_0200C474
- add sp, #0xc
- mov r0, #0x1
- pop {r4-r7, pc}
-_0200C964:
- bl GF_AssertFail
- cmp r5, #0x0
- beq _0200C972
- add sp, #0xc
- mov r0, #0x1
- pop {r4-r7, pc}
-_0200C972:
- mov r0, #0x0
- add sp, #0xc
- pop {r4-r7, pc}
-
- thumb_func_start FUN_0200C978
-FUN_0200C978: ; 0x0200C978
- push {r4-r7, lr}
- sub sp, #0xc
- add r4, r1, #0x0
- add r5, r0, #0x0
- ldr r0, [r4, #0xc]
- ldr r1, [sp, #0x28]
- add r6, r2, #0x0
- add r7, r3, #0x0
- bl FUN_0200945C
- cmp r0, #0x0
- bne _0200C996
- add sp, #0xc
- mov r0, #0x0
- pop {r4-r7, pc}
-_0200C996:
- ldr r0, [sp, #0x28]
- ldr r3, [sp, #0x20]
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x24]
- add r1, r6, #0x0
- str r0, [sp, #0x4]
- ldr r0, [r5, #0x0]
- add r2, r7, #0x0
- str r0, [sp, #0x8]
- ldr r0, [r4, #0xc]
- bl FUN_02008F34
- add r5, r0, #0x0
- beq _0200C9C4
- bl FUN_02009B78
- ldr r0, [r4, #0x24]
- add r1, r5, #0x0
- bl FUN_0200C474
- add sp, #0xc
- mov r0, #0x1
- pop {r4-r7, pc}
-_0200C9C4:
- bl GF_AssertFail
- cmp r5, #0x0
- beq _0200C9D2
- add sp, #0xc
- mov r0, #0x1
- pop {r4-r7, pc}
-_0200C9D2:
- mov r0, #0x0
- add sp, #0xc
- pop {r4-r7, pc}
-
- thumb_func_start FUN_0200C9D8
-FUN_0200C9D8: ; 0x0200C9D8
- push {r4-r7, lr}
- sub sp, #0xc
- add r4, r1, #0x0
- add r5, r0, #0x0
- ldr r0, [r4, #0xc]
- ldr r1, [sp, #0x24]
- add r7, r2, #0x0
- str r3, [sp, #0x8]
- bl FUN_020094F0
- add r6, r0, #0x0
- ldr r0, [sp, #0x20]
- ldr r3, [sp, #0x8]
- str r0, [sp, #0x0]
- ldr r0, [r5, #0x0]
- add r1, r6, #0x0
- str r0, [sp, #0x4]
- ldr r0, [r4, #0xc]
- add r2, r7, #0x0
- bl FUN_020090FC
- add r0, r6, #0x0
- bl FUN_02009BE8
- add sp, #0xc
- pop {r4-r7, pc}
-
- thumb_func_start FUN_0200CA0C
-FUN_0200CA0C: ; 0x0200CA0C
- push {r4-r7, lr}
- sub sp, #0xc
- add r4, r1, #0x0
- add r5, r0, #0x0
- ldr r0, [r4, #0x10]
- ldr r1, [sp, #0x24]
- add r7, r2, #0x0
- str r3, [sp, #0x8]
- bl FUN_020094F0
- add r6, r0, #0x0
- ldr r0, [sp, #0x20]
- ldr r3, [sp, #0x8]
- str r0, [sp, #0x0]
- ldr r0, [r5, #0x0]
- add r1, r6, #0x0
- str r0, [sp, #0x4]
- ldr r0, [r4, #0x10]
- add r2, r7, #0x0
- bl FUN_02009168
- add r0, r6, #0x0
- bl FUN_02009DE0
- add sp, #0xc
- pop {r4-r7, pc}
-
- thumb_func_start FUN_0200CA40
-FUN_0200CA40: ; 0x0200CA40
- ldr r0, [r0, #0x0]
- bx lr
diff --git a/arm9/src/unk_0200BB14.c b/arm9/src/unk_0200BB14.c
index 7dba2282..2816d83a 100644
--- a/arm9/src/unk_0200BB14.c
+++ b/arm9/src/unk_0200BB14.c
@@ -1,5 +1,6 @@
#include "global.h"
#include "unk_0200BB14.h"
+#include "game_init.h"
#include "heap.h"
extern void FUN_0201D060(u32 *param0, u32 param1, u32 param2);
@@ -17,70 +18,52 @@ extern void FUN_02009EAC(u32 param0,
extern u32 FUN_0201C328(u32 param0, u32 param1);
extern void FUN_0201D168();
extern void FUN_0201E0BC();
-extern u32 FUN_02008C9C(u32 param0, u32 *param1, u32 param2);
+extern u32 FUN_02008C9C(u32 param0, void *param1, u32 param2);
extern void FUN_0201FFC8(u32 param0);
extern void FUN_0201FDEC(u32 param0);
extern void FUN_02009F80();
extern void FUN_0201C348();
-extern void FUN_0201FD58();
+extern void FUN_0201FD58(u32 param0);
extern void FUN_02008C80(u32 param0);
-extern u32 FUN_02009660(u32 param0, u32 param1);
+extern u32 FUN_02009660(u32 *param0, s32 param1);
extern void FUN_020096B4(u32 param0);
-extern void FUN_02009C30(u32 param0);
-extern void FUN_02009E28(u32 param0);
-extern void FUN_02009448(u32 param0);
+extern void FUN_02009C30(u32 *param0);
+extern void FUN_02009E28(u32 *param0);
+extern void FUN_02009448(u32 *param0);
extern void FUN_02008E2C(u32 param0);
extern void FUN_0201C350(u32 param0);
extern void FUN_0201D12C();
extern void FUN_0201E08C();
extern void FUN_02009FA0();
-extern u32 FUN_0200965C(u32 param0);
-extern u32 FUN_020161A4(u32 param0, u32 param1);
-extern void FUN_02009668(u32 param0, u32 param1, u32 param2);
+extern u32 FUN_0200965C(s32 param0);
+extern void FUN_02009668(void *param0, u32 param1, u32 param2);
extern u32 FUN_020096CC(u32 param0);
-extern u32 FUN_02008DEC(u32 param0, u32 param1, u32 param2);
-extern u32 FUN_02009424(u32 param0, u32 param1);
-extern u32 FUN_020093A8(u32 param0, u32 param1, u32 param2, u32 param3);
-extern void FUN_02009A90(u32 param0);
-extern void FUN_02009D34(u32 param0);
+extern u32 FUN_02008DEC(u32 param0, s32 param1, u32 param2);
+extern u32 *FUN_02009424(u32 param0, u32 param1);
+extern u32 FUN_020093A8(u32 param0, u32 param1, u32 *param2, u32 param3);
+extern void FUN_02009A90(u32 *param0);
+extern void FUN_02009D34(u32 *param0);
extern u32 FUN_02008BE0(
- u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7);
-extern u32 FUN_0200BE74(u32 *param0,
- u32 *param1,
- u32 param2,
- s16 param3,
- s16 param4,
- s16 param5,
- u16 param6,
- u32 param7,
- u32 param8,
- u32 param9,
- u32 param10,
- u32 param11,
- u32 param12,
- u32 param13);
+ void *param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7);
extern u32 FUN_0201FE94(struct UnkStruct4 *param0);
extern void FUN_02020130(u32 param0, u32 param1);
extern void FUN_02020248(u32 param0, u32 param1);
-extern u32 FUN_0200945C(u32 param0, u32 param1);
+extern u32 FUN_0200945C(u32 param0, s32 param1);
extern u32 FUN_02008F34(
- u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6);
+ u32 param0, u32 param1, u32 param2, u32 param3, s32 param4, u32 param5, u32 param6);
extern void FUN_02009B04(u32 param0);
-extern u32 FUN_0200C474(u32 *param0, u32 param1);
extern u32 FUN_02008FEC(
- u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7);
+ u32 param0, u32 param1, u32 param2, u32 param3, s32 param4, u32 param5, u32 param6, u32 param7);
extern u32 FUN_02009D68(u32 param0);
extern u32 FUN_02009E88(u32 param0, u32 param1);
extern void FUN_02003108(u32 param0, u32 param1, u16 param2, u32 param3);
-extern u32 FUN_0200C404(
- u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6);
-extern void FUN_02008AA4(u32 param0,
- u32 param1,
- u32 param2,
- u32 param3,
- u32 param4,
- u32 param5,
- u32 param6,
+extern void FUN_02008AA4(struct UnkStruct7 *param0,
+ s32 param1,
+ s32 param2,
+ s32 param3,
+ s32 param4,
+ s32 param5,
+ s32 param6,
u32 param7,
u32 param8,
u32 param9,
@@ -92,12 +75,9 @@ extern void FUN_02008AA4(u32 param0,
extern u8 FUN_020202A0(u32 param0);
extern u32 FUN_020094F0(u32 param0, u32 param1);
extern u32 FUN_02009E54(u32 param0, u32 param1);
-extern u32 FUN_0200C4F4(u32 param0, u32 *param1, u32 param2);
-extern u32 FUN_0200C548(u32 param0, u32 *param1, u32 param2);
-extern u32 FUN_0200C4A8(u32 param0, u32 *param1, u32 param2);
extern void FUN_02009CDC(u32 param0);
extern u32 FUN_020090AC(
- u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6);
+ u32 param0, u32 param1, u32 param2, u32 param3, s32 param4, u32 param5, u32 param6);
extern u32 FUN_02009530(u32 param0);
extern void FUN_02009490(u32 param0, u32 param1);
extern void FUN_0201D324(u32 param0);
@@ -111,7 +91,6 @@ extern void FUN_02020208(u32 param0);
extern void FUN_0202022C(u32 param0);
extern void FUN_020200A0(u32 param0, u32 param1);
extern u8 FUN_02020128(u32 param0);
-extern void FUN_02020248(u32 param0, u32 param1);
extern void FUN_020202A8(u32 param0, u32 param1);
extern u8 FUN_02020300(u32 param0);
extern void FUN_02020238(u32 param0, u8 param1);
@@ -123,7 +102,7 @@ extern void FUN_02020044(u32 param0, u32 *param1);
extern u32 *FUN_0202011C(u32 param0, u16 *param1, u16 *param2);
extern void FUN_020200EC(u32 param0, u32 param1);
extern u32 *FUN_02020120(u32 param0);
-extern void FUN_02020064(u32 param0, u32 param1);
+extern void FUN_02020064(u32 param0, s32 *param1);
extern void FUN_02020088(u32 param0, u16 param1);
extern u16 FUN_02020124(u32 param0);
extern void FUN_02020100(u32 param0, u32 param1);
@@ -139,7 +118,7 @@ extern void FUN_02009DE0(u32 param0);
THUMB_FUNC struct UnkStruct1 *FUN_0200BB14(u32 heap_id)
{
- struct UnkStruct1 *ptr = AllocFromHeap(heap_id, 0x138);
+ struct UnkStruct1 *ptr = AllocFromHeap(heap_id, sizeof(struct UnkStruct1));
if (ptr == NULL)
{
return NULL;
@@ -156,7 +135,7 @@ THUMB_FUNC struct UnkStruct2 *FUN_0200BB34(struct UnkStruct1 *param0)
{
GF_ASSERT(param0 != NULL);
- struct UnkStruct2 *ptr = AllocFromHeap(param0->unk000, 0x58);
+ struct UnkStruct2 *ptr = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct2));
if (ptr == NULL)
{
return NULL;
@@ -177,7 +156,7 @@ THUMB_FUNC u32 FUN_0200BB68(u32 param0)
return param0 + 0x10;
}
-THUMB_FUNC u32 FUN_0200BB6C(u32 *param0, u32 *param1, u32 *param2, u32 param3)
+THUMB_FUNC u32 FUN_0200BB6C(struct UnkStruct1 *param0, u32 *param1, u32 *param2, u32 param3)
{
GF_ASSERT(param0 != NULL);
@@ -186,13 +165,13 @@ THUMB_FUNC u32 FUN_0200BB6C(u32 *param0, u32 *param1, u32 *param2, u32 param3)
return 0;
}
- u32 st14[4] = { param2[0], param2[1], param2[2], param0[0] };
+ u32 st14[4] = { param2[0], param2[1], param2[2], param0->unk000 };
FUN_0201D060(st14, param2[3], param2[4]);
- FUN_0201E00C(param3, param0[0]);
+ FUN_0201E00C(param3, param0->unk000);
NNS_G2dInitOamManagerModule();
- if (param0[2] == 1)
+ if (param0->unk008 == 1)
{
FUN_02009EAC(param1[0],
param1[1],
@@ -202,24 +181,24 @@ THUMB_FUNC u32 FUN_0200BB6C(u32 *param0, u32 *param1, u32 *param2, u32 param3)
param1[5],
param1[6],
param1[7],
- param0[0]);
+ param0->unk000);
}
- param0[3] = FUN_0201C328(0x20, param0[0]);
+ param0->unk00c = FUN_0201C328(0x20, param0->unk000);
FUN_0201D168();
FUN_0201E0BC();
return 1;
}
-THUMB_FUNC u32 FUN_0200BBF0(u32 *param0, u32 *param1, u32 param2)
+THUMB_FUNC u32 FUN_0200BBF0(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 param2)
{
if (param0 == NULL || param1 == NULL)
{
return 0;
}
- param1[0] = FUN_02008C9C(param2, param0 + 4, param0[0]);
+ param1->unk00 = FUN_02008C9C(param2, param0->unk010, param0->unk000);
return 1;
}
@@ -246,34 +225,34 @@ THUMB_FUNC void FUN_0200BC38()
FUN_0201C348();
}
-THUMB_FUNC void FUN_0200BC40(u32 *param0)
+THUMB_FUNC void FUN_0200BC40(struct UnkStruct2 *param0)
{
- FUN_0201FD58(*param0);
+ FUN_0201FD58(param0->unk00);
}
-THUMB_FUNC void FUN_0200BC4C(u32 *param0)
+THUMB_FUNC void FUN_0200BC4C(struct UnkStruct2 *param0)
{
- if (param0[1] != 0)
+ if (param0->unk04 != 0)
{
- FUN_02008C80(param0[1]);
+ FUN_02008C80(param0->unk04);
}
}
-THUMB_FUNC void FUN_0200BC5C(u32 *param0)
+THUMB_FUNC void FUN_0200BC5C(struct UnkStruct2 *param0)
{
- for (int i = 0; i < (int)param0[21]; i++)
+ for (int i = 0; i < (int)param0->unk54; i++)
{
- FUN_020096B4(FUN_02009660(param0[2], i));
+ FUN_020096B4(FUN_02009660(param0->unk08, i));
}
- FreeToHeap(param0[2]);
- FUN_02009C30(param0[9]);
- FUN_02009E28(param0[10]);
+ FreeToHeap(param0->unk08);
+ FUN_02009C30(param0->unk24[0]);
+ FUN_02009E28(param0->unk24[1]);
- for (int i = 0; i < (int)param0[21]; i++)
+ for (int i = 0; i < (int)param0->unk54; i++)
{
- FUN_02009448(param0[i + 9]);
- FUN_02008E2C(param0[i + 3]);
+ FUN_02009448(param0->unk24[i]);
+ FUN_02008E2C(param0->unk0c[i]);
}
}
@@ -289,13 +268,13 @@ THUMB_FUNC void FUN_0200BCB0(u32 *param0)
}
}
-THUMB_FUNC void FUN_0200BCD0(u32 *param0, void *param1)
+THUMB_FUNC void FUN_0200BCD0(struct UnkStruct1 *param0, struct UnkStruct2 *param1)
{
- param0[1]--;
+ param0->unk004--;
FreeToHeap(param1);
}
-THUMB_FUNC void FUN_0200BCE0(u32 *param0, u32 *param1)
+THUMB_FUNC void FUN_0200BCE0(struct UnkStruct1 *param0, struct UnkStruct2 *param1)
{
FUN_0200BC40(param1);
FUN_0200BC4C(param1);
@@ -310,10 +289,11 @@ THUMB_FUNC void FUN_0200BD04(u32 *param0)
FreeToHeap(param0);
}
-THUMB_FUNC u32 FUN_0200BD20(u32 *param0, u32 *param1, u32 *param2)
+THUMB_FUNC u32 FUN_0200BD20(
+ struct UnkStruct1 *param0, struct UnkStruct2 *param1, const char **param2)
{
int st14 = 6;
- u32 *st10 = param2;
+ const char **st10 = param2;
if (param0 == NULL || param1 == NULL)
{
@@ -325,36 +305,43 @@ THUMB_FUNC u32 FUN_0200BD20(u32 *param0, u32 *param1, u32 *param2)
st14 = 4;
}
- param1[21] = st14;
+ param1->unk54 = st14;
u32 r2 = FUN_0200965C(st14);
- param1[2] = AllocFromHeap(param0[0], r2 * st14);
+ param1->unk08 = AllocFromHeap(param0->unk000, r2 * st14);
for (int i = 0; i < st14; i++)
{
- u32 st18 = FUN_02009660(param1[2], i);
- u32 st1c = FUN_020161A4(param0[0], st10[i]);
+ u32 st18 = FUN_02009660(param1->unk08, i);
+ void *st1c = FUN_020161A4(param0->unk000, st10[i]);
- FUN_02009668(st1c, st18, param0[0]);
+ FUN_02009668(st1c, st18, param0->unk000);
FreeToHeap(st1c);
}
for (int i = 0; i < st14; i++)
{
- param1[3 + i] = FUN_02008DEC(FUN_020096CC(FUN_02009660(param1[2], i)), i, param0[0]);
+ param1->unk0c[i] =
+ FUN_02008DEC(FUN_020096CC(FUN_02009660(param1->unk08, i)), i, param0->unk000);
}
for (int i = 0; i < st14; i++)
{
- u32 st20 = FUN_02009660(param1[2], i);
- param1[9 + i] = FUN_02009424(FUN_020096CC(st20), param0[0]);
- param1[15 + i] = FUN_020093A8(param1[3 + i], st20, param1[9 + i], param0[0]);
- }
-
- FUN_02009A90(param1[9]);
- FUN_02009D34(param1[10]);
- u32 r6 = FUN_020161A4(param0[0], st10[6]);
- param1[1] = FUN_02008BE0(
- r6, param0[0], param1[3], param1[4], param1[5], param1[6], param1[7], param1[8]);
+ u32 st20 = FUN_02009660(param1->unk08, i);
+ param1->unk24[i] = FUN_02009424(FUN_020096CC(st20), param0->unk000);
+ param1->unk3c[i] = FUN_020093A8(param1->unk0c[i], st20, param1->unk24[i], param0->unk000);
+ }
+
+ FUN_02009A90(param1->unk24[0]);
+ FUN_02009D34(param1->unk24[1]);
+ void *r6 = FUN_020161A4(param0->unk000, st10[6]);
+ param1->unk04 = FUN_02008BE0(r6,
+ param0->unk000,
+ param1->unk0c[0],
+ param1->unk0c[1],
+ param1->unk0c[2],
+ param1->unk0c[3],
+ param1->unk0c[4],
+ param1->unk0c[5]);
FreeToHeap(r6);
return 1;
@@ -393,10 +380,14 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0,
u32 param12,
u32 param13)
{
+#pragma unused(param10)
+#pragma unused(param11)
+#pragma unused(param12)
+#pragma unused(param13)
struct UnkStruct4 st0;
st0.unk00 = param1[0];
- st0.unk04 = *(u32 *)(param1[1]) + param2 * 0x24;
+ st0.unk04 = &(*(struct UnkStruct7 **)(param1[1]))[param2];
float r0;
if (param3 > 0)
@@ -407,7 +398,7 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0,
{
r0 = ((float)(param3 << 0xc) - (float)0.5);
}
- st0.unk08 = r0;
+ st0.unk08 = (s32)r0;
if (param4 > 0)
{
@@ -417,7 +408,7 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0,
{
r0 = ((float)(param4 << 0xc) - (float)0.5);
}
- st0.unk0c = r0;
+ st0.unk0c = (s32)r0;
if (param5 > 0)
{
@@ -427,7 +418,7 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0,
{
r0 = ((float)(param5 << 0xc) - (float)0.5);
}
- st0.unk10 = r0;
+ st0.unk10 = (s32)r0;
if (param9 == 2)
{
@@ -453,13 +444,13 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0,
return r4;
}
-THUMB_FUNC u32 FUN_0200BF60(u32 *param0, u32 *param1, u32 *param2)
+THUMB_FUNC u32 FUN_0200BF60(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2)
{
- u32 *st0 = param0;
+ struct UnkStruct1 *st0 = param0;
int i;
int st4 = 6;
- if (st0 == 0 || param1 == 0)
+ if (st0 == NULL || param1 == NULL)
{
return 0;
}
@@ -469,23 +460,23 @@ THUMB_FUNC u32 FUN_0200BF60(u32 *param0, u32 *param1, u32 *param2)
st4 = 4;
}
- param1[21] = st4;
+ param1->unk54 = st4;
for (i = 0; i < st4; i++)
{
- param1[3 + i] = FUN_02008DEC(param2[i], i, st0[0]);
+ param1->unk0c[i] = FUN_02008DEC(param2[i], i, st0->unk000);
}
for (i = 0; i < st4; i++)
{
if (param2[i] != 0)
{
- param1[9 + i] = FUN_02009424(param2[i], st0[0]);
- param1[15 + i] = 0;
+ param1->unk24[i] = FUN_02009424(param2[i], st0->unk000);
+ param1->unk3c[i] = 0;
- for (int j = 0; j < (int)((u32 *)param1[9 + i])[1]; j++)
+ for (int j = 0; j < (int)((u32 *)param1->unk24[i])[1]; j++)
{
- ((u32 *)(((u32 *)param1[9 + i])[0]))[j] = 0;
+ ((u32 *)(((u32 *)param1->unk24[i])[0]))[j] = 0;
}
}
}
@@ -494,22 +485,22 @@ THUMB_FUNC u32 FUN_0200BF60(u32 *param0, u32 *param1, u32 *param2)
}
THUMB_FUNC u32 FUN_0200C00C(
- u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6)
+ u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6)
{
- if (FUN_0200945C(param1[3], param6) == 0)
+ if (FUN_0200945C(param1->unk0c[0], param6) == 0)
{
return 0;
}
- u32 r5 = FUN_02008F34(param1[3], param2, param3, param4, param6, param5, param0[0]);
+ u32 r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]);
if (r5 != 0)
{
FUN_02009B04(r5);
- FUN_0200C474(param1[9], r5);
+ FUN_0200C474(param1->unk24[0], r5);
return 1;
}
- ErrorHandling();
+ GF_AssertFail();
if (r5 != 0)
{
return 1;
@@ -519,87 +510,88 @@ THUMB_FUNC u32 FUN_0200C00C(
}
THUMB_FUNC s32 FUN_0200C06C(u32 *param0,
- u32 *param1,
+ struct UnkStruct2 *param1,
u32 param2,
u32 param3,
u32 param4,
u32 param5,
u32 param6,
- u32 param7)
+ s32 param7)
{
- if (FUN_0200945C(param1[4], param7) == 0)
+ if (FUN_0200945C(param1->unk0c[1], param7) == 0)
{
return -1;
}
- u32 r5 = FUN_02008FEC(param1[4], param2, param3, param4, param7, param6, param5, param0[0]);
+ u32 r5 = FUN_02008FEC(param1->unk0c[1], param2, param3, param4, param7, param6, param5, param0[0]);
if (r5 != 0)
{
GF_ASSERT(FUN_02009D68(r5) == 1);
- FUN_0200C474(param1[10], r5);
+ FUN_0200C474(param1->unk24[1], r5);
return (s8)FUN_02009E88(r5, param6);
}
- ErrorHandling();
+ GF_AssertFail();
return -1;
}
THUMB_FUNC u8 FUN_0200C0DC(u32 param0,
u32 param1,
u32 *param2,
- u32 *param3,
+ struct UnkStruct2 *param3,
u32 param4,
u32 param5,
u32 param6,
u32 param7,
u32 param8,
- u32 param9)
+ s32 param9)
{
s32 r4 = FUN_0200C06C(param2, param3, param4, param5, param6, param7, param8, param9);
if (r4 != -1)
{
- FUN_02003108(param0, param1, r4 << 4, param7 << 5);
+ FUN_02003108(param0, param1, (u16)(r4 << 4), param7 << 5);
}
- return r4;
+ return (u8)r4;
}
THUMB_FUNC u32 FUN_0200C124(
- u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5)
+ u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, s32 param5)
{
return FUN_0200C404(param0, param1, param2, param3, param4, 2, param5);
}
THUMB_FUNC u32 FUN_0200C13C(
- u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5)
+ u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, s32 param5)
{
return FUN_0200C404(param0, param1, param2, param3, param4, 3, param5);
}
-THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2)
+THUMB_FUNC struct UnkStruct5 *FUN_0200C154(
+ struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2)
{
struct UnkStruct4 st44;
s32 st2c[6];
- u32 *ptr = AllocFromHeap(param0[0], 0x10);
+ struct UnkStruct5 *ptr = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct5));
if (ptr == NULL)
{
return 0;
}
- ptr[2] = AllocFromHeap(param0[0], 0x8);
- if (ptr[2] == 0)
+ ptr->unk08 = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct6));
+ if (ptr->unk08 == 0)
{
return 0;
}
- ((u32 *)ptr[2])[0] = AllocFromHeap(param0[0], 0x24);
- ptr[1] = ((u32 *)ptr[2])[0];
- if (((u32 *)ptr[2])[0] == 0)
+ ptr->unk08->unk0 = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct7));
+ ptr->unk04 = ptr->unk08->unk0;
+ if (ptr->unk08->unk0 == NULL)
{
- if (ptr[2] != 0)
+ if (ptr->unk08 != NULL)
{
- FreeToHeap(ptr[2]);
+ FreeToHeap(ptr->unk08);
}
return 0;
@@ -607,28 +599,28 @@ THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2)
for (int i = 0; i < 6; i++)
{
- st2c[i] = param2[5 + i];
+ st2c[i] = (s32)param2[5 + i];
}
- if (param1[7] == 0 || param1[8] == 0)
+ if (param1->unk0c[4] == 0 || param1->unk0c[5] == 0)
{
st2c[4] = -1;
st2c[5] = -1;
}
else
{
- if (st2c[4] != -1 && FUN_0200945C(param1[7], st2c[4]) == 0)
+ if (st2c[4] != -1 && FUN_0200945C(param1->unk0c[4], st2c[4]) == 0)
{
st2c[4] = -1;
}
- if (st2c[5] != -1 && FUN_0200945C(param1[8], st2c[5]) == 0)
+ if (st2c[5] != -1 && FUN_0200945C(param1->unk0c[5], st2c[5]) == 0)
{
st2c[5] = -1;
}
}
- FUN_02008AA4(ptr[1],
+ FUN_02008AA4(ptr->unk04,
st2c[0],
st2c[1],
st2c[2],
@@ -637,15 +629,15 @@ THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2)
st2c[5],
param2[12],
param2[11],
- param1[3],
- param1[4],
- param1[5],
- param1[6],
- param1[7],
- param1[8]);
-
- st44.unk00 = param1[0];
- st44.unk04 = ptr[1];
+ param1->unk0c[0],
+ param1->unk0c[1],
+ param1->unk0c[2],
+ param1->unk0c[3],
+ param1->unk0c[4],
+ param1->unk0c[5]);
+
+ st44.unk00 = param1->unk00;
+ st44.unk04 = ptr->unk04;
float r0;
if (((s16 *)param2)[0] > 0)
{
@@ -655,7 +647,7 @@ THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2)
{
r0 = ((float)(((s16 *)param2)[0] << 0xc) - (float)0.5);
}
- st44.unk08 = r0;
+ st44.unk08 = (s32)r0;
if (((s16 *)param2)[1] > 0)
{
@@ -665,7 +657,7 @@ THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2)
{
r0 = ((float)(((s16 *)param2)[1] << 0xc) - (float)0.5);
}
- st44.unk0c = r0;
+ st44.unk0c = (s32)r0;
if (((s16 *)param2)[2] > 0)
{
@@ -675,7 +667,7 @@ THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2)
{
r0 = ((float)(((s16 *)param2)[2] << 0xc) - (float)0.5);
}
- st44.unk10 = r0;
+ st44.unk10 = (s32)r0;
if (param2[4] == 2)
{
@@ -688,21 +680,21 @@ THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2)
st44.unk20 = 0;
st44.unk24 = param2[2];
st44.unk28 = param2[4];
- st44.unk2c = param0[0];
+ st44.unk2c = param0->unk000;
- ptr[0] = FUN_0201FE94(&st44);
- ptr[3] = param2[12];
+ ptr->unk00 = FUN_0201FE94(&st44);
+ ptr->unk0c = param2[12];
- if (ptr[0] != 0)
+ if (ptr->unk00 != 0)
{
- u8 r6 = FUN_020202A0(ptr[0]);
+ u8 r6 = FUN_020202A0(ptr->unk00);
- FUN_02020130(ptr[0], ((u16 *)param2)[3]);
- FUN_02020248(ptr[0], r6 + param2[3]);
+ FUN_02020130(ptr->unk00, ((u16 *)param2)[3]);
+ FUN_02020248(ptr->unk00, r6 + param2[3]);
}
else
{
- ErrorHandling();
+ GF_AssertFail();
}
return ptr;
@@ -718,36 +710,36 @@ THUMB_FUNC u32 FUN_0200C344(u32 *param0, u32 param1, u32 param2)
return FUN_02009E88(FUN_020094F0(param0[4], param1), param2);
}
-THUMB_FUNC u32 FUN_0200C358(u32 *param0, u32 param1)
+THUMB_FUNC u32 FUN_0200C358(struct UnkStruct2 *param0, u32 param1)
{
- return FUN_0200C4F4(param0[3], param0[9], param1);
+ return FUN_0200C4F4(param0->unk0c[0], param0->unk24[0], param1);
}
-THUMB_FUNC u32 FUN_0200C368(u32 *param0, u32 param1)
+THUMB_FUNC u32 FUN_0200C368(struct UnkStruct2 *param0, u32 param1)
{
- return FUN_0200C548(param0[4], param0[10], param1);
+ return FUN_0200C548(param0->unk0c[1], param0->unk24[1], param1);
}
-THUMB_FUNC u32 FUN_0200C378(u32 *param0, u32 param1)
+THUMB_FUNC u32 FUN_0200C378(struct UnkStruct2 *param0, u32 param1)
{
- return FUN_0200C4A8(param0[5], param0[11], param1);
+ return FUN_0200C4A8(param0->unk0c[2], param0->unk24[2], param1);
}
-THUMB_FUNC u32 FUN_0200C388(u32 *param0, u32 param1)
+THUMB_FUNC u32 FUN_0200C388(struct UnkStruct2 *param0, u32 param1)
{
- return FUN_0200C4A8(param0[6], param0[12], param1);
+ return FUN_0200C4A8(param0->unk0c[3], param0->unk24[3], param1);
}
-THUMB_FUNC void FUN_0200C398(u32 param0, u32 *param1)
+THUMB_FUNC void FUN_0200C398(struct UnkStruct1 *param0, struct UnkStruct2 *param1)
{
FUN_0200BC40(param1);
- FUN_02009C30(param1[9]);
- FUN_02009E28(param1[10]);
+ FUN_02009C30(param1->unk24[0]);
+ FUN_02009E28(param1->unk24[1]);
- for (int i = 0; i < (int)param1[21]; i++)
+ for (int i = 0; i < (int)param1->unk54; i++)
{
- FUN_02009448(param1[9 + i]);
- FUN_02008E2C(param1[3 + i]);
+ FUN_02009448(param1->unk24[i]);
+ FUN_02008E2C(param1->unk0c[i]);
}
FUN_0200BCD0(param0, param1);
@@ -766,21 +758,21 @@ THUMB_FUNC void FUN_0200C3DC(u32 *param0)
}
THUMB_FUNC u32 FUN_0200C404(
- u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6)
+ u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6)
{
- if (FUN_0200945C(param1[3 + param5], param6) == 0)
+ if (FUN_0200945C(param1->unk0c[param5], param6) == 0)
{
return 0;
}
- u32 r5 = FUN_020090AC(param1[3 + param5], param2, param3, param4, param6, param5, param0[0]);
+ u32 r5 = FUN_020090AC(param1->unk0c[param5], param2, param3, param4, param6, param5, param0[0]);
if (r5 != 0)
{
- u32 r4 = FUN_0200C474(param1[9 + param5], r5);
+ u32 r4 = FUN_0200C474(param1->unk24[param5], r5);
GF_ASSERT(r4 == 1);
return r4;
}
- ErrorHandling();
+ GF_AssertFail();
if (r5 != 0)
{
return 1;
@@ -959,12 +951,12 @@ THUMB_FUNC void FUN_0200C644(u32 *param0, u32 param1)
THUMB_FUNC u8 FUN_0200C650(u32 param0)
{
- FUN_02020128(param0);
+ return FUN_02020128(param0);
}
THUMB_FUNC u8 FUN_0200C658(u32 *param0)
{
- FUN_0200C650(*param0);
+ return FUN_0200C650(*param0);
}
THUMB_FUNC void FUN_0200C664(u32 param0, u32 param1)
@@ -994,7 +986,7 @@ THUMB_FUNC u8 FUN_0200C68C(u32 *param0)
THUMB_FUNC void FUN_0200C698(u32 param0, u32 param1)
{
- FUN_02020238(param0, param1);
+ FUN_02020238(param0, (u8)param1);
}
THUMB_FUNC u8 FUN_0200C6A4(u32 *param0)
@@ -1070,18 +1062,18 @@ THUMB_FUNC void FUN_0200C75C(u32 param0, u16 *param1, u16 *param2)
{
u32 *r4 = FUN_0202011C(param0, param1, param2);
- param1[0] = (int)(r4[0] + ((u32)((int)r4[0] >> 0xb) >> 0x14)) >> 0xc;
+ param1[0] = (u16)((int)(r4[0] + ((u32)((int)r4[0] >> 0xb) >> 0x14)) >> 0xc);
if (FUN_02020380(param0) == 2)
{
u32 r1 = r4[1] - 0xc0000;
- param2[0] = (int)(r1 + ((u32)((int)r1 >> 0xb) >> 0x14)) >> 0xc;
+ param2[0] = (u16)((int)(r1 + ((u32)((int)r1 >> 0xb) >> 0x14)) >> 0xc);
return;
}
- param2[0] = (int)(r4[1] + ((u32)((int)r4[1] >> 0xb) >> 0x14)) >> 0xc;
+ param2[0] = (u16)((int)(r4[1] + ((u32)((int)r4[1] >> 0xb) >> 0x14)) >> 0xc);
}
THUMB_FUNC void FUN_0200C7A0(u32 *param0, u16 *param1, u16 *param2)
@@ -1093,18 +1085,18 @@ THUMB_FUNC void FUN_0200C7AC(u32 param0, u16 *param1, u16 *param2, u32 param3)
{
u32 *r4 = FUN_0202011C(param0, param1, param2);
- param1[0] = (int)(r4[0] + ((u32)((int)r4[0] >> 0xb) >> 0x14)) >> 0xc;
+ param1[0] = (u16)((int)(r4[0] + ((u32)((int)r4[0] >> 0xb) >> 0x14)) >> 0xc);
if (FUN_02020380(param0) == 2)
{
u32 r1 = r4[1] - param3;
- param2[0] = (int)(r1 + ((u32)((int)r1 >> 0xb) >> 0x14)) >> 0xc;
+ param2[0] = (u16)((int)(r1 + ((u32)((int)r1 >> 0xb) >> 0x14)) >> 0xc);
return;
}
- param2[0] = (int)(r4[1] + ((u32)((int)r4[1] >> 0xb) >> 0x14)) >> 0xc;
+ param2[0] = (u16)((int)(r4[1] + ((u32)((int)r4[1] >> 0xb) >> 0x14)) >> 0xc);
}
THUMB_FUNC void FUN_0200C7F0(u32 *param0, u16 *param1, u16 *param2, u32 param3)
@@ -1142,10 +1134,10 @@ THUMB_FUNC void FUN_0200C840(u32 *param0, u32 param1)
THUMB_FUNC void FUN_0200C84C(u32 param0, f32 param1, f32 param2)
{
- int *r4 = FUN_02020120(param0);
+ s32 *r4 = FUN_02020120(param0);
- r4[0] = param1 * 0x1000;
- r4[1] = param2 * 0x1000;
+ r4[0] = (s32)(param1 * 0x1000);
+ r4[1] = (s32)(param2 * 0x1000);
FUN_02020064(param0, r4);
}
@@ -1213,23 +1205,23 @@ THUMB_FUNC void FUN_0200C90C(u32 *param0, u32 param1)
}
THUMB_FUNC u32 FUN_0200C918(
- u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6)
+ u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6)
{
- if (FUN_0200945C(param1[3], param6) == 0)
+ if (FUN_0200945C(param1->unk0c[0], param6) == 0)
{
return 0;
}
- u32 r5 = FUN_02008F34(param1[3], param2, param3, param4, param6, param5, param0[0]);
+ u32 r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]);
if (r5 != 0)
{
FUN_02009AC4(r5);
- FUN_0200C474(param1[9], r5);
+ FUN_0200C474(param1->unk24[0], r5);
return 1;
}
- ErrorHandling();
+ GF_AssertFail();
if (r5 != 0)
{
return 1;
@@ -1239,23 +1231,23 @@ THUMB_FUNC u32 FUN_0200C918(
}
THUMB_FUNC u32 FUN_0200C978(
- u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6)
+ u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6)
{
- if (FUN_0200945C(param1[3], param6) == 0)
+ if (FUN_0200945C(param1->unk0c[0], param6) == 0)
{
return 0;
}
- u32 r5 = FUN_02008F34(param1[3], param2, param3, param4, param6, param5, param0[0]);
+ u32 r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]);
if (r5 != 0)
{
FUN_02009B78(r5);
- FUN_0200C474(param1[9], r5);
+ FUN_0200C474(param1->unk24[0], r5);
return 1;
}
- ErrorHandling();
+ GF_AssertFail();
if (r5 != 0)
{
return 1;
diff --git a/include/unk_0200BB14.h b/include/unk_0200BB14.h
index 973a9a65..33fe0aee 100644
--- a/include/unk_0200BB14.h
+++ b/include/unk_0200BB14.h
@@ -5,14 +5,19 @@ struct UnkStruct1
u32 unk000;
u32 unk004;
u32 unk008;
- u8 unk00c[0x12c];
+ u32 unk00c;
+ u8 unk010[0x128];
};
struct UnkStruct2
{
- u8 unk00[0xc];
+ u32 unk00;
+ u32 unk04;
+ u32 *unk08;
u32 unk0c[6];
- u8 unk24[0x34];
+ u32 *unk24[6];
+ u32 unk3c[6];
+ s32 unk54;
};
struct UnkStruct3
@@ -31,10 +36,14 @@ struct UnkStruct3
u32 unk24;
};
+struct UnkStruct7 {
+ u8 unk00[0x24];
+};
+
struct UnkStruct4
{
u32 unk00;
- u32 unk04;
+ struct UnkStruct7 *unk04;
s32 unk08;
s32 unk0c;
s32 unk10;
@@ -47,23 +56,38 @@ struct UnkStruct4
u32 unk2c;
};
+
+
+
+struct UnkStruct6 {
+ struct UnkStruct7 *unk0;
+ u32 unk4;
+};
+struct UnkStruct5 {
+ u32 unk00;
+ struct UnkStruct7 *unk04;
+ struct UnkStruct6 *unk08;
+ u32 unk0c;
+};
+
+
struct UnkStruct1 *FUN_0200BB14(u32 heap_id);
struct UnkStruct2 *FUN_0200BB34(struct UnkStruct1 *param0);
u32 FUN_0200BB68(u32 param0);
-u32 FUN_0200BB6C(u32 *param0, u32 *param1, u32 *param2, u32 param3);
-u32 FUN_0200BBF0(u32 *param0, u32 *param1, u32 param2);
+u32 FUN_0200BB6C(struct UnkStruct1 *param0, u32 *param1, u32 *param2, u32 param3);
+u32 FUN_0200BBF0(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 param2);
void FUN_0200BC14(u32 param0);
void FUN_0200BC1C(u32 *param0);
void FUN_0200BC30();
void FUN_0200BC38();
-void FUN_0200BC40(u32 *param0);
-void FUN_0200BC4C(u32 *param0);
-void FUN_0200BC5C(u32 *param0);
+void FUN_0200BC40(struct UnkStruct2 *param0);
+void FUN_0200BC4C(struct UnkStruct2 *param0);
+void FUN_0200BC5C(struct UnkStruct2 *param0);
void FUN_0200BCB0(u32 *param0);
-void FUN_0200BCD0(u32 *param0, void *param1);
-void FUN_0200BCE0(u32 *param0, u32 *param1);
+void FUN_0200BCD0(struct UnkStruct1 *param0, struct UnkStruct2 *param1);
+void FUN_0200BCE0(struct UnkStruct1 *param0, struct UnkStruct2 *param1);
void FUN_0200BD04(u32 *param0);
-u32 FUN_0200BD20(u32 *param0, u32 *param1, u32 *param2);
+u32 FUN_0200BD20(struct UnkStruct1 *param0, struct UnkStruct2 *param1, const char **param2);
u32 FUN_0200BE38(u32 *param0, u32 *param1, struct UnkStruct3 *param2);
u32 FUN_0200BE74(u32 *param0,
u32 *param1,
@@ -79,40 +103,40 @@ u32 FUN_0200BE74(u32 *param0,
u32 param11,
u32 param12,
u32 param13);
-u32 FUN_0200BF60(u32 *param0, u32 *param1, u32 *param2);
+u32 FUN_0200BF60(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2);
u32 FUN_0200C00C(
- u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6);
+ u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6);
s32 FUN_0200C06C(u32 *param0,
- u32 *param1,
+ struct UnkStruct2 *param1,
u32 param2,
u32 param3,
u32 param4,
u32 param5,
u32 param6,
- u32 param7);
+ s32 param7);
u8 FUN_0200C0DC(u32 param0,
u32 param1,
u32 *param2,
- u32 *param3,
+ struct UnkStruct2 *param3,
u32 param4,
u32 param5,
u32 param6,
u32 param7,
u32 param8,
- u32 param9);
-u32 FUN_0200C124(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5);
-u32 FUN_0200C13C(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5);
-u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2);
+ s32 param9);
+u32 FUN_0200C124(u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, s32 param5);
+u32 FUN_0200C13C(u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, s32 param5);
+struct UnkStruct5 *FUN_0200C154(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2);
u32 FUN_0200C334(u32 *param0, u32 param1);
u32 FUN_0200C344(u32 *param0, u32 param1, u32 param2);
-u32 FUN_0200C358(u32 *param0, u32 param1);
-u32 FUN_0200C368(u32 *param0, u32 param1);
-u32 FUN_0200C378(u32 *param0, u32 param1);
-u32 FUN_0200C388(u32 *param0, u32 param1);
-void FUN_0200C398(u32 param0, u32 *param1);
+u32 FUN_0200C358(struct UnkStruct2 *param0, u32 param1);
+u32 FUN_0200C368(struct UnkStruct2 *param0, u32 param1);
+u32 FUN_0200C378(struct UnkStruct2 *param0, u32 param1);
+u32 FUN_0200C388(struct UnkStruct2 *param0, u32 param1);
+void FUN_0200C398(struct UnkStruct1 *param0, struct UnkStruct2 *param1);
void FUN_0200C3DC(u32 *param0);
u32 FUN_0200C404(
- u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6);
+ u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6);
u32 FUN_0200C474(u32 *param0, u32 param1);
u32 FUN_0200C4A8(u32 param0, u32 *param1, u32 param2);
u32 FUN_0200C4F4(u32 param0, u32 *param1, u32 param2);
@@ -173,9 +197,9 @@ void FUN_0200C8F8(u32 *param0, u32 param1);
void FUN_0200C904(u32 param0, u32 param1);
void FUN_0200C90C(u32 *param0, u32 param1);
u32 FUN_0200C918(
- u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6);
+ u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6);
u32 FUN_0200C978(
- u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6);
+ u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6);
void FUN_0200C9D8(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5);
void FUN_0200CA0C(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5);
u32 FUN_0200CA40(u32 *param0);