pokediamond/arm9/asm/unk_02033B68.s

589 lines
10 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.section .rodata
.global UNK_020EEC68
UNK_020EEC68: ; 0x020EEC68
.byte 0xFC, 0x01, 0x14, 0x00, 0xFF, 0xFF, 0x00, 0x00
.global UNK_020EEC70
UNK_020EEC70: ; 0x020EEC70
.byte 0xF8, 0x01, 0x14, 0x00, 0xFF, 0xFF, 0x00, 0x00
.global UNK_020EEC78
UNK_020EEC78: ; 0x020EEC78
.byte 0xF4, 0x01, 0x14, 0x00, 0xFF, 0xFF, 0x00, 0x00
.global UNK_020EEC80
UNK_020EEC80: ; 0x020EEC80
.byte 0xF0, 0x01, 0x14, 0x00, 0xFF, 0xFF, 0x00, 0x00
.global UNK_020EEC88
UNK_020EEC88: ; 0x020EEC88
.byte 0xF0, 0x01, 0x14, 0x00, 0xF4, 0x01, 0x14, 0x00, 0xF8, 0x01, 0x14, 0x00, 0xFC, 0x01, 0x14, 0x00
.byte 0xFF, 0xFF, 0x00, 0x00
.section .data
.balign 4
.global UNK_02105D74
UNK_02105D74: ; 0x02105D74
.word UNK_020EEC80
.word UNK_020EEC78
.word UNK_020EEC70
.word UNK_020EEC68
.word UNK_020EEC88
.global UNK_02105D88
UNK_02105D88: ; 0x02105D88
.asciz "data/wm.NCLR"
.balign 4, 0
.global UNK_02105D98
UNK_02105D98: ; 0x02105D98
.asciz "data/wifi.NCGR"
.balign 4, 0
.global UNK_02105DA8
UNK_02105DA8: ; 0x02105DA8
.asciz "data/wm.NCGR"
.section .bss
.global UNK_021C5A04
UNK_021C5A04: ; 0x021C5A04
.space 0x4
.text
thumb_func_start sub_02033B68
sub_02033B68: ; 0x02033B68
push {r4-r6, lr}
add r4, r1, #0x0
add r5, r2, #0x0
mov r2, #0x7
add r6, r3, #0x0
ldr r1, [sp, #0x10]
mov r0, #0x1
lsl r2, r2, #0x6
add r3, r4, #0x0
bl sub_02033D3C
ldr r1, [sp, #0x10]
mov r0, #0x1
add r2, r4, #0x0
bl sub_02033D9C
add r0, r4, #0x0
mov r1, #0x20
bl Heap_AllocAtEnd
add r4, r0, #0x0
ldr r0, _02033BC4 ; =sub_02033BC8
add r1, r4, #0x0
mov r2, #0x5
bl sub_0200CA98
str r0, [r4, #0x18]
strh r5, [r4, #0xc]
strh r6, [r4, #0xe]
mov r1, #0x0
str r1, [r4, #0x0]
mov r0, #0x3
str r0, [r4, #0x4]
ldr r0, [sp, #0x14]
str r0, [r4, #0x14]
ldr r0, [sp, #0x10]
str r1, [r4, #0x8]
strb r0, [r4, #0x10]
strb r1, [r4, #0x12]
mov r0, #0x7
strb r1, [r4, #0x11]
lsl r0, r0, #0x18
str r0, [r4, #0x1c]
add r0, r4, #0x0
pop {r4-r6, pc}
nop
_02033BC4: .word sub_02033BC8
thumb_func_start sub_02033BC8
sub_02033BC8: ; 0x02033BC8
push {r3-r7, lr}
add r5, r1, #0x0
ldrb r0, [r5, #0x11]
cmp r0, #0x1
beq _02033BD8
cmp r0, #0x2
beq _02033BEE
b _02033C04
_02033BD8:
ldr r0, _02033CB0 ; =0x04000304
ldrh r1, [r0, #0x0]
lsr r0, r0, #0xb
and r0, r1
asr r0, r0, #0xf
cmp r0, #0x1
bne _02033BEA
mov r6, #0x1
b _02033C06
_02033BEA:
mov r6, #0x2
b _02033C06
_02033BEE:
ldr r0, _02033CB0 ; =0x04000304
ldrh r1, [r0, #0x0]
lsr r0, r0, #0xb
and r0, r1
asr r0, r0, #0xf
cmp r0, #0x1
bne _02033C00
mov r6, #0x2
b _02033C06
_02033C00:
mov r6, #0x1
b _02033C06
_02033C04:
mov r6, #0x1
_02033C06:
ldr r4, [r5, #0x4]
cmp r6, #0x1
bne _02033C1E
mov r0, #0x1
lsl r0, r0, #0x1a
ldr r1, [r0, #0x0]
ldr r0, _02033CB4 ; =0x00300010
add r7, r1, #0x0
and r7, r0
bl GX_GetBankForOBJ
b _02033C2C
_02033C1E:
ldr r0, _02033CB8 ; =0x04001000
ldr r1, [r0, #0x0]
ldr r0, _02033CB4 ; =0x00300010
add r7, r1, #0x0
and r7, r0
bl GX_GetBankForSubOBJ
_02033C2C:
cmp r7, #0x10
beq _02033C38
ldr r1, _02033CBC ; =0x00200010
cmp r7, r1
beq _02033C54
b _02033C6C
_02033C38:
cmp r0, #0x40
beq _02033C40
cmp r0, #0x20
bne _02033C4A
_02033C40:
mov r0, #0x1f
lsl r1, r4, #0x2
lsl r0, r0, #0x4
add r1, r1, r0
b _02033C74
_02033C4A:
mov r0, #0x3f
lsl r1, r4, #0x2
lsl r0, r0, #0x4
add r1, r1, r0
b _02033C74
_02033C54:
cmp r0, #0x30
beq _02033C5C
cmp r0, #0x50
bne _02033C64
_02033C5C:
mov r0, #0x9f
lsl r0, r0, #0x2
add r1, r4, r0
b _02033C74
_02033C64:
mov r0, #0xff
lsl r0, r0, #0x2
add r1, r4, r0
b _02033C74
_02033C6C:
mov r0, #0xfe
lsl r1, r4, #0x1
lsl r0, r0, #0x2
add r1, r1, r0
_02033C74:
cmp r6, #0x1
bne _02033C7E
mov r2, #0x7
lsl r2, r2, #0x18
b _02033C80
_02033C7E:
ldr r2, _02033CC0 ; =0x07000400
_02033C80:
ldrh r3, [r5, #0xe]
ldrh r0, [r5, #0xc]
lsl r3, r3, #0x18
lsr r4, r3, #0x18
mov r3, #0x1
lsl r0, r0, #0x17
lsl r3, r3, #0x1e
lsr r0, r0, #0x7
orr r3, r4
orr r0, r3
str r0, [r2, #0x0]
mov r0, #0xe
lsl r0, r0, #0xc
orr r0, r1
strh r0, [r2, #0x4]
ldr r1, [r5, #0x1c]
cmp r2, r1
beq _02033CAE
ldr r0, _02033CC4 ; =0x40000200
str r0, [r1, #0x0]
mov r0, #0x0
strh r0, [r1, #0x4]
str r2, [r5, #0x1c]
_02033CAE:
pop {r3-r7, pc}
.balign 4
_02033CB0: .word 0x04000304
_02033CB4: .word 0x00300010
_02033CB8: .word 0x04001000
_02033CBC: .word 0x00200010
_02033CC0: .word 0x07000400
_02033CC4: .word 0x40000200
thumb_func_start sub_02033CC8
sub_02033CC8: ; 0x02033CC8
cmp r1, #0x4
bge _02033CD2
str r1, [r0, #0x4]
mov r1, #0x0
str r1, [r0, #0x8]
_02033CD2:
bx lr
thumb_func_start sub_02033CD4
sub_02033CD4: ; 0x02033CD4
push {r4, lr}
add r4, r0, #0x0
ldr r0, [r4, #0x18]
bl SysTask_Destroy
mov r0, #0x7
ldr r2, _02033D00 ; =0x40000200
lsl r0, r0, #0x18
str r2, [r0, #0x0]
mov r1, #0x0
strh r1, [r0, #0x4]
ldrb r0, [r4, #0x12]
cmp r0, #0x0
beq _02033CF6
ldr r0, _02033D04 ; =0x07000400
str r2, [r0, #0x0]
strh r1, [r0, #0x4]
_02033CF6:
add r0, r4, #0x0
bl Heap_Free
pop {r4, pc}
nop
_02033D00: .word 0x40000200
_02033D04: .word 0x07000400
thumb_func_start sub_02033D08
sub_02033D08: ; 0x02033D08
push {r4-r6, lr}
add r5, r0, #0x0
add r4, r1, #0x0
add r6, r2, #0x0
mov r2, #0x7
ldrb r1, [r5, #0x10]
mov r0, #0x2
lsl r2, r2, #0x6
add r3, r6, #0x0
bl sub_02033D3C
ldrb r1, [r5, #0x10]
mov r0, #0x2
add r2, r6, #0x0
bl sub_02033D9C
cmp r4, #0x0
beq _02033D30
mov r0, #0x1
b _02033D32
_02033D30:
mov r0, #0x2
_02033D32:
strb r0, [r5, #0x11]
mov r0, #0x1
strb r0, [r5, #0x12]
pop {r4-r6, pc}
.balign 4
thumb_func_start sub_02033D3C
sub_02033D3C: ; 0x02033D3C
push {r3-r5, lr}
sub sp, #0x8
mov r1, #0x96
add r5, r0, #0x0
add r0, r3, #0x0
lsl r1, r1, #0x2
add r4, r2, #0x0
bl Heap_AllocAtEnd
str r0, [sp, #0x4]
cmp r0, #0x0
beq _02033D92
ldr r0, _02033D98 ; =UNK_02105D88
add r1, sp, #0x4
bl OpenAndReadWholeFile
mov r1, #0x96
ldr r0, [sp, #0x4]
lsl r1, r1, #0x2
bl DC_FlushRange
ldr r0, [sp, #0x4]
add r1, sp, #0x0
bl NNS_G2dGetUnpackedPaletteData
cmp r5, #0x1
bne _02033D80
ldr r0, [sp, #0x0]
add r1, r4, #0x0
ldr r0, [r0, #0xc]
mov r2, #0x20
bl GX_LoadOBJPltt
b _02033D8C
_02033D80:
ldr r0, [sp, #0x0]
add r1, r4, #0x0
ldr r0, [r0, #0xc]
mov r2, #0x20
bl GXS_LoadOBJPltt
_02033D8C:
ldr r0, [sp, #0x4]
bl Heap_Free
_02033D92:
add sp, #0x8
pop {r3-r5, pc}
nop
_02033D98: .word UNK_02105D88
thumb_func_start sub_02033D9C
sub_02033D9C: ; 0x02033D9C
push {r3-r5, lr}
sub sp, #0x8
add r4, r1, #0x0
mov r1, #0x96
add r5, r0, #0x0
add r0, r2, #0x0
lsl r1, r1, #0x2
bl Heap_AllocAtEnd
str r0, [sp, #0x4]
cmp r0, #0x0
beq _02033E58
cmp r4, #0x0
add r1, sp, #0x4
beq _02033DC2
ldr r0, _02033E5C ; =UNK_02105D98
bl OpenAndReadWholeFile
b _02033DC8
_02033DC2:
ldr r0, _02033E60 ; =UNK_02105DA8
bl OpenAndReadWholeFile
_02033DC8:
mov r1, #0x96
ldr r0, [sp, #0x4]
lsl r1, r1, #0x2
bl DC_FlushRange
ldr r0, [sp, #0x4]
add r1, sp, #0x0
bl NNS_G2dGetUnpackedCharacterData
cmp r5, #0x1
bne _02033DF0
mov r0, #0x1
lsl r0, r0, #0x1a
ldr r1, [r0, #0x0]
ldr r0, _02033E64 ; =0x00300010
add r4, r1, #0x0
and r4, r0
bl GX_GetBankForOBJ
b _02033E00
_02033DF0:
mov r0, #0x1
lsl r0, r0, #0x1a
ldr r1, [r0, #0x0]
ldr r0, _02033E64 ; =0x00300010
add r4, r1, #0x0
and r4, r0
bl GX_GetBankForOBJ
_02033E00:
cmp r4, #0x10
beq _02033E0C
ldr r1, _02033E68 ; =0x00200010
cmp r4, r1
beq _02033E20
b _02033E30
_02033E0C:
cmp r0, #0x40
beq _02033E14
cmp r0, #0x20
bne _02033E1A
_02033E14:
mov r1, #0x3e
lsl r1, r1, #0x8
b _02033E34
_02033E1A:
mov r1, #0x7e
lsl r1, r1, #0x8
b _02033E34
_02033E20:
cmp r0, #0x30
beq _02033E28
cmp r0, #0x50
bne _02033E2C
_02033E28:
ldr r1, _02033E6C ; =0x00013E00
b _02033E34
_02033E2C:
ldr r1, _02033E70 ; =0x0001FE00
b _02033E34
_02033E30:
mov r1, #0xfe
lsl r1, r1, #0x8
_02033E34:
cmp r5, #0x1
bne _02033E46
ldr r0, [sp, #0x0]
mov r2, #0x2
ldr r0, [r0, #0x14]
lsl r2, r2, #0x8
bl GX_LoadOBJ
b _02033E52
_02033E46:
ldr r0, [sp, #0x0]
mov r2, #0x2
ldr r0, [r0, #0x14]
lsl r2, r2, #0x8
bl GXS_LoadOBJ
_02033E52:
ldr r0, [sp, #0x4]
bl Heap_Free
_02033E58:
add sp, #0x8
pop {r3-r5, pc}
.balign 4
_02033E5C: .word UNK_02105D98
_02033E60: .word UNK_02105DA8
_02033E64: .word 0x00300010
_02033E68: .word 0x00200010
_02033E6C: .word 0x00013E00
_02033E70: .word 0x0001FE00
thumb_func_start sub_02033E74
sub_02033E74: ; 0x02033E74
push {r4, lr}
mov r4, #0x0
bl sub_02033590
cmp r0, #0x0
beq _02033E82
mov r4, #0x1
_02033E82:
mov r0, #0xf0
mov r1, #0x0
add r2, r4, #0x0
bl sub_02033E90
pop {r4, pc}
.balign 4
thumb_func_start sub_02033E90
sub_02033E90: ; 0x02033E90
push {r4-r6, lr}
sub sp, #0x8
add r5, r0, #0x0
add r6, r1, #0x0
add r4, r2, #0x0
bl sub_0202E4DC
cmp r0, #0x0
beq _02033EC4
ldr r0, _02033EC8 ; =UNK_021C5A04
ldr r0, [r0, #0x0]
cmp r0, #0x0
beq _02033EAE
bl sub_02033ED0
_02033EAE:
ldr r0, _02033ECC ; =UNK_02105D74
str r4, [sp, #0x0]
str r0, [sp, #0x4]
mov r0, #0x0
mov r1, #0x5b
add r2, r5, #0x0
add r3, r6, #0x0
bl sub_02033B68
ldr r1, _02033EC8 ; =UNK_021C5A04
str r0, [r1, #0x0]
_02033EC4:
add sp, #0x8
pop {r4-r6, pc}
.balign 4
_02033EC8: .word UNK_021C5A04
_02033ECC: .word UNK_02105D74
thumb_func_start sub_02033ED0
sub_02033ED0: ; 0x02033ED0
push {r3, lr}
ldr r0, _02033EE8 ; =UNK_021C5A04
ldr r0, [r0, #0x0]
cmp r0, #0x0
beq _02033EE4
bl sub_02033CD4
ldr r0, _02033EE8 ; =UNK_021C5A04
mov r1, #0x0
str r1, [r0, #0x0]
_02033EE4:
pop {r3, pc}
nop
_02033EE8: .word UNK_021C5A04
thumb_func_start sub_02033EEC
sub_02033EEC: ; 0x02033EEC
push {r3, lr}
add r1, r0, #0x0
ldr r0, _02033F00 ; =UNK_021C5A04
ldr r0, [r0, #0x0]
cmp r0, #0x0
beq _02033EFC
bl sub_02033CC8
_02033EFC:
pop {r3, pc}
nop
_02033F00: .word UNK_021C5A04
thumb_func_start sub_02033F04
sub_02033F04: ; 0x02033F04
push {r3, lr}
add r3, r0, #0x0
ldr r0, _02033F1C ; =UNK_021C5A04
add r2, r1, #0x0
ldr r0, [r0, #0x0]
cmp r0, #0x0
beq _02033F18
add r1, r3, #0x0
bl sub_02033D08
_02033F18:
pop {r3, pc}
nop
_02033F1C: .word UNK_021C5A04
thumb_func_start sub_02033F20
sub_02033F20: ; 0x02033F20
push {r3, lr}
bl sub_02030F40
cmp r0, #0x0
beq _02033F40
bl sub_02030F20
cmp r0, #0x1
bgt _02033F3A
bl sub_02033590
cmp r0, #0x0
beq _02033F4C
_02033F3A:
bl sub_02033E74
pop {r3, pc}
_02033F40:
bl sub_02033590
cmp r0, #0x0
beq _02033F4C
bl sub_02033E74
_02033F4C:
pop {r3, pc}
.balign 4