Decomp everything onvolving UnknownSubStruct_81C81D4
Now I can start cleaning up the fields and substructs
This commit is contained in:
606
asm/pokenav.s
606
asm/pokenav.s
@@ -3,606 +3,6 @@
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_81C8DBC
|
||||
sub_81C8DBC: @ 81C8DBC
|
||||
push {r4-r6,lr}
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5,r6}
|
||||
sub sp, 0x1C
|
||||
adds r6, r0, 0
|
||||
mov r8, r1
|
||||
add r1, sp, 0xC
|
||||
ldr r0, =gUnknown_0861FBE8
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
add r0, sp, 0x18
|
||||
mov r9, r0
|
||||
ldr r1, =gUnknown_0861FBF4
|
||||
movs r2, 0x3
|
||||
bl memcpy
|
||||
ldrh r4, [r6, 0xA]
|
||||
mov r1, r8
|
||||
lsls r0, r1, 1
|
||||
adds r0, 0x1
|
||||
adds r4, r0
|
||||
movs r0, 0xF
|
||||
ands r4, r0
|
||||
ldrb r0, [r6, 0x8]
|
||||
lsls r5, r4, 4
|
||||
adds r3, r5, 0
|
||||
ldrb r1, [r6, 0x4]
|
||||
str r1, [sp]
|
||||
movs r1, 0x10
|
||||
str r1, [sp, 0x4]
|
||||
movs r1, 0x11
|
||||
movs r2, 0
|
||||
bl FillWindowPixelRect
|
||||
ldrb r0, [r6, 0x8]
|
||||
movs r1, 0x1
|
||||
orrs r5, r1
|
||||
mov r2, r9
|
||||
str r2, [sp]
|
||||
subs r1, 0x2
|
||||
str r1, [sp, 0x4]
|
||||
mov r3, r8
|
||||
lsls r3, 2
|
||||
mov r8, r3
|
||||
mov r1, sp
|
||||
add r1, r8
|
||||
adds r1, 0xC
|
||||
ldr r1, [r1]
|
||||
str r1, [sp, 0x8]
|
||||
movs r1, 0x7
|
||||
movs r2, 0x2
|
||||
adds r3, r5, 0
|
||||
bl AddTextPrinterParameterized3
|
||||
ldrh r0, [r6, 0x8]
|
||||
lsls r4, 1
|
||||
ldrb r1, [r6, 0x4]
|
||||
str r1, [sp]
|
||||
movs r1, 0x2
|
||||
str r1, [sp, 0x4]
|
||||
movs r2, 0
|
||||
adds r3, r4, 0
|
||||
bl CopyWindowRectToVram
|
||||
add sp, 0x1C
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_81C8DBC
|
||||
|
||||
thumb_func_start sub_81C8E54
|
||||
sub_81C8E54: @ 81C8E54
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, 0xC
|
||||
adds r7, r1, 0
|
||||
adds r1, r2, 0
|
||||
ldrh r3, [r7, 0xA]
|
||||
ldr r2, =gUnknown_0861FBF7
|
||||
adds r2, r1, r2
|
||||
ldrb r2, [r2]
|
||||
adds r6, r3, r2
|
||||
movs r2, 0xF
|
||||
ands r6, r2
|
||||
ldrh r0, [r0]
|
||||
bl sub_81CAFD8
|
||||
adds r5, r0, 0
|
||||
cmp r5, 0
|
||||
beq _081C8EC0
|
||||
ldrh r0, [r7, 0x8]
|
||||
lsls r4, r6, 1
|
||||
ldrb r3, [r7, 0x4]
|
||||
subs r3, 0x1
|
||||
movs r1, 0x2
|
||||
mov r8, r1
|
||||
str r1, [sp]
|
||||
movs r1, 0x1
|
||||
adds r2, r4, 0
|
||||
bl sub_81DB620
|
||||
ldrb r0, [r7, 0x8]
|
||||
lsls r1, r6, 4
|
||||
movs r2, 0x1
|
||||
orrs r1, r2
|
||||
str r1, [sp]
|
||||
movs r1, 0xFF
|
||||
str r1, [sp, 0x4]
|
||||
movs r1, 0
|
||||
str r1, [sp, 0x8]
|
||||
movs r1, 0x7
|
||||
adds r2, r5, 0
|
||||
movs r3, 0x2
|
||||
bl AddTextPrinterParameterized
|
||||
ldrh r0, [r7, 0x8]
|
||||
ldrb r1, [r7, 0x4]
|
||||
str r1, [sp]
|
||||
mov r1, r8
|
||||
str r1, [sp, 0x4]
|
||||
movs r1, 0x2
|
||||
movs r2, 0
|
||||
adds r3, r4, 0
|
||||
bl CopyWindowRectToVram
|
||||
_081C8EC0:
|
||||
add sp, 0xC
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_81C8E54
|
||||
|
||||
thumb_func_start sub_81C8ED0
|
||||
sub_81C8ED0: @ 81C8ED0
|
||||
push {r4,r5,lr}
|
||||
movs r5, 0
|
||||
ldr r4, =gUnknown_0861FBFC
|
||||
_081C8ED6:
|
||||
adds r0, r4, 0
|
||||
bl LoadCompressedSpriteSheet
|
||||
adds r4, 0x8
|
||||
adds r5, 0x1
|
||||
cmp r5, 0
|
||||
beq _081C8ED6
|
||||
ldr r0, =gUnknown_0861FC04
|
||||
bl sub_81C795C
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_81C8ED0
|
||||
|
||||
thumb_func_start sub_81C8EF8
|
||||
sub_81C8EF8: @ 81C8EF8
|
||||
push {r4-r6,lr}
|
||||
mov r6, r10
|
||||
mov r5, r9
|
||||
mov r4, r8
|
||||
push {r4-r6}
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
ldr r0, =gUnknown_0861FC1C
|
||||
ldrb r1, [r5, 0x2]
|
||||
lsls r1, 3
|
||||
adds r1, 0x3
|
||||
ldrb r2, [r5, 0x3]
|
||||
adds r2, 0x1
|
||||
lsls r2, 3
|
||||
movs r3, 0x7
|
||||
bl CreateSprite
|
||||
lsls r0, 24
|
||||
lsrs r3, r0, 24
|
||||
lsls r0, r3, 4
|
||||
adds r0, r3
|
||||
lsls r0, 2
|
||||
ldr r1, =gSprites
|
||||
mov r8, r1
|
||||
add r0, r8
|
||||
str r0, [r5, 0x3C]
|
||||
ldrb r6, [r5, 0x2]
|
||||
lsls r6, 3
|
||||
ldrb r0, [r5, 0x4]
|
||||
subs r0, 0x1
|
||||
lsls r0, 2
|
||||
ldr r3, =gUnknown_0861FC3C
|
||||
mov r10, r3
|
||||
adds r6, r0
|
||||
ldrb r2, [r5, 0x3]
|
||||
lsls r2, 3
|
||||
ldrh r0, [r4, 0x8]
|
||||
lsls r0, 4
|
||||
adds r2, r0
|
||||
lsls r2, 16
|
||||
asrs r2, 16
|
||||
mov r0, r10
|
||||
adds r1, r6, 0
|
||||
movs r3, 0x7
|
||||
bl CreateSprite
|
||||
lsls r0, 24
|
||||
lsrs r3, r0, 24
|
||||
lsls r2, r3, 4
|
||||
adds r2, r3
|
||||
lsls r2, 2
|
||||
add r2, r8
|
||||
str r2, [r5, 0x44]
|
||||
ldrh r3, [r2, 0x4]
|
||||
lsls r1, r3, 22
|
||||
lsrs r1, 22
|
||||
adds r1, 0x2
|
||||
ldr r0, =0x000003ff
|
||||
mov r9, r0
|
||||
mov r0, r9
|
||||
ands r1, r0
|
||||
ldr r4, =0xfffffc00
|
||||
adds r0, r4, 0
|
||||
ands r0, r3
|
||||
orrs r0, r1
|
||||
strh r0, [r2, 0x4]
|
||||
ldr r1, [r5, 0x44]
|
||||
ldr r0, =sub_81C90A0
|
||||
str r0, [r1, 0x1C]
|
||||
ldrb r2, [r5, 0x3]
|
||||
lsls r2, 3
|
||||
mov r0, r10
|
||||
adds r1, r6, 0
|
||||
movs r3, 0x7
|
||||
bl CreateSprite
|
||||
lsls r0, 24
|
||||
lsrs r3, r0, 24
|
||||
lsls r1, r3, 4
|
||||
adds r1, r3
|
||||
lsls r1, 2
|
||||
add r1, r8
|
||||
str r1, [r5, 0x40]
|
||||
ldrh r2, [r1, 0x4]
|
||||
lsls r0, r2, 22
|
||||
lsrs r0, 22
|
||||
adds r0, 0x4
|
||||
mov r3, r9
|
||||
ands r0, r3
|
||||
ands r4, r2
|
||||
orrs r4, r0
|
||||
strh r4, [r1, 0x4]
|
||||
ldr r1, [r5, 0x40]
|
||||
ldr r0, =sub_81C90F4
|
||||
str r0, [r1, 0x1C]
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_81C8EF8
|
||||
|
||||
thumb_func_start sub_81C8FE0
|
||||
sub_81C8FE0: @ 81C8FE0
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r0, [r4, 0x3C]
|
||||
bl DestroySprite
|
||||
ldr r0, [r4, 0x40]
|
||||
bl DestroySprite
|
||||
ldr r0, [r4, 0x44]
|
||||
bl DestroySprite
|
||||
movs r0, 0xA
|
||||
bl FreeSpriteTilesByTag
|
||||
movs r0, 0x14
|
||||
bl FreeSpritePaletteByTag
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_81C8FE0
|
||||
|
||||
thumb_func_start sub_81C9008
|
||||
sub_81C9008: @ 81C9008
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
cmp r4, 0
|
||||
beq _081C9028
|
||||
ldr r2, [r5, 0x3C]
|
||||
ldr r1, =SpriteCallbackDummy
|
||||
str r1, [r2, 0x1C]
|
||||
ldr r0, [r5, 0x40]
|
||||
str r1, [r0, 0x1C]
|
||||
ldr r0, [r5, 0x44]
|
||||
str r1, [r0, 0x1C]
|
||||
b _081C903A
|
||||
.pool
|
||||
_081C9028:
|
||||
ldr r2, [r5, 0x3C]
|
||||
ldr r0, =sub_81C9080
|
||||
str r0, [r2, 0x1C]
|
||||
ldr r1, [r5, 0x40]
|
||||
ldr r0, =sub_81C90F4
|
||||
str r0, [r1, 0x1C]
|
||||
ldr r1, [r5, 0x44]
|
||||
ldr r0, =sub_81C90A0
|
||||
str r0, [r1, 0x1C]
|
||||
_081C903A:
|
||||
adds r3, r2, 0
|
||||
adds r3, 0x3E
|
||||
movs r0, 0x1
|
||||
ands r4, r0
|
||||
lsls r4, 2
|
||||
ldrb r2, [r3]
|
||||
movs r1, 0x5
|
||||
negs r1, r1
|
||||
adds r0, r1, 0
|
||||
ands r0, r2
|
||||
orrs r0, r4
|
||||
strb r0, [r3]
|
||||
ldr r2, [r5, 0x40]
|
||||
adds r2, 0x3E
|
||||
ldrb r3, [r2]
|
||||
adds r0, r1, 0
|
||||
ands r0, r3
|
||||
orrs r0, r4
|
||||
strb r0, [r2]
|
||||
ldr r0, [r5, 0x44]
|
||||
adds r0, 0x3E
|
||||
ldrb r2, [r0]
|
||||
ands r1, r2
|
||||
orrs r1, r4
|
||||
strb r1, [r0]
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_81C9008
|
||||
|
||||
thumb_func_start sub_81C9080
|
||||
sub_81C9080: @ 81C9080
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
movs r0, 0x11
|
||||
bl GetSubstructPtr
|
||||
ldr r1, =0x0000088e
|
||||
adds r0, r1
|
||||
ldrh r0, [r0]
|
||||
lsls r0, 4
|
||||
strh r0, [r4, 0x26]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_81C9080
|
||||
|
||||
thumb_func_start sub_81C90A0
|
||||
sub_81C90A0: @ 81C90A0
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
movs r1, 0x3C
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0
|
||||
bne _081C90C2
|
||||
bl sub_81C84C0
|
||||
cmp r0, 0
|
||||
beq _081C90C2
|
||||
adds r2, r4, 0
|
||||
adds r2, 0x3E
|
||||
ldrb r1, [r2]
|
||||
movs r0, 0x5
|
||||
negs r0, r0
|
||||
ands r0, r1
|
||||
b _081C90CC
|
||||
_081C90C2:
|
||||
adds r2, r4, 0
|
||||
adds r2, 0x3E
|
||||
ldrb r0, [r2]
|
||||
movs r1, 0x4
|
||||
orrs r0, r1
|
||||
_081C90CC:
|
||||
strb r0, [r2]
|
||||
ldrh r0, [r4, 0x2E]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x2E]
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
cmp r0, 0x3
|
||||
ble _081C90EC
|
||||
movs r0, 0
|
||||
strh r0, [r4, 0x2E]
|
||||
ldrh r0, [r4, 0x30]
|
||||
adds r0, 0x1
|
||||
movs r1, 0x7
|
||||
ands r0, r1
|
||||
strh r0, [r4, 0x30]
|
||||
strh r0, [r4, 0x26]
|
||||
_081C90EC:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_81C90A0
|
||||
|
||||
thumb_func_start sub_81C90F4
|
||||
sub_81C90F4: @ 81C90F4
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
movs r1, 0x3C
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0
|
||||
bne _081C9116
|
||||
bl sub_81C84A4
|
||||
cmp r0, 0
|
||||
beq _081C9116
|
||||
adds r2, r4, 0
|
||||
adds r2, 0x3E
|
||||
ldrb r1, [r2]
|
||||
movs r0, 0x5
|
||||
negs r0, r0
|
||||
ands r0, r1
|
||||
b _081C9120
|
||||
_081C9116:
|
||||
adds r2, r4, 0
|
||||
adds r2, 0x3E
|
||||
ldrb r0, [r2]
|
||||
movs r1, 0x4
|
||||
orrs r0, r1
|
||||
_081C9120:
|
||||
strb r0, [r2]
|
||||
ldrh r0, [r4, 0x2E]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x2E]
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
cmp r0, 0x3
|
||||
ble _081C9142
|
||||
movs r0, 0
|
||||
strh r0, [r4, 0x2E]
|
||||
ldrh r0, [r4, 0x30]
|
||||
adds r0, 0x1
|
||||
movs r1, 0x7
|
||||
ands r0, r1
|
||||
strh r0, [r4, 0x30]
|
||||
negs r0, r0
|
||||
strh r0, [r4, 0x26]
|
||||
_081C9142:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_81C90F4
|
||||
|
||||
thumb_func_start sub_81C9148
|
||||
sub_81C9148: @ 81C9148
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
movs r0, 0x11
|
||||
bl GetSubstructPtr
|
||||
ldr r1, [r0, 0x40]
|
||||
strh r4, [r1, 0x3C]
|
||||
ldr r0, [r0, 0x44]
|
||||
strh r4, [r0, 0x3C]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_81C9148
|
||||
|
||||
thumb_func_start sub_81C9160
|
||||
sub_81C9160: @ 81C9160
|
||||
push {r4,r5,lr}
|
||||
adds r2, r0, 0
|
||||
ldr r0, [r1]
|
||||
str r0, [r2, 0x10]
|
||||
ldrh r4, [r1, 0x6]
|
||||
movs r5, 0
|
||||
strh r4, [r2]
|
||||
ldrh r3, [r1, 0x4]
|
||||
strh r3, [r2, 0x2]
|
||||
ldrb r0, [r1, 0x8]
|
||||
str r0, [r2, 0xC]
|
||||
ldrb r1, [r1, 0xC]
|
||||
strh r1, [r2, 0x8]
|
||||
lsls r0, r3, 16
|
||||
lsrs r0, 16
|
||||
cmp r1, r0
|
||||
bcc _081C918A
|
||||
strh r5, [r2]
|
||||
strh r5, [r2, 0x4]
|
||||
strh r4, [r2, 0x6]
|
||||
b _081C91A6
|
||||
_081C918A:
|
||||
subs r0, r3, r1
|
||||
strh r0, [r2, 0x4]
|
||||
ldrh r1, [r2]
|
||||
ldrh r0, [r2, 0x8]
|
||||
adds r1, r0
|
||||
ldrh r0, [r2, 0x2]
|
||||
cmp r1, r0
|
||||
ble _081C91A4
|
||||
subs r0, r1, r0
|
||||
strh r0, [r2, 0x6]
|
||||
subs r0, r4, r0
|
||||
strh r0, [r2]
|
||||
b _081C91A6
|
||||
_081C91A4:
|
||||
strh r5, [r2, 0x6]
|
||||
_081C91A6:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_81C9160
|
||||
|
||||
thumb_func_start sub_81C91AC
|
||||
sub_81C91AC: @ 81C91AC
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
sub sp, 0x8
|
||||
adds r7, r0, 0
|
||||
ldr r4, [r1]
|
||||
lsls r4, 30
|
||||
lsrs r0, r4, 30
|
||||
movs r1, 0
|
||||
mov r9, r1
|
||||
strb r0, [r7]
|
||||
strh r3, [r7, 0x6]
|
||||
ldr r0, [r2, 0x10]
|
||||
str r0, [r7, 0x34]
|
||||
ldr r0, [r2, 0x14]
|
||||
str r0, [r7, 0x38]
|
||||
ldrb r6, [r2, 0xD]
|
||||
strb r6, [r7, 0x1]
|
||||
ldrb r1, [r2, 0x9]
|
||||
strb r1, [r7, 0x2]
|
||||
ldrb r0, [r2, 0xB]
|
||||
strb r0, [r7, 0x3]
|
||||
ldrb r5, [r2, 0xA]
|
||||
strb r5, [r7, 0x4]
|
||||
ldrb r0, [r2, 0xE]
|
||||
strb r0, [r7, 0x5]
|
||||
lsrs r4, 30
|
||||
ldr r2, =0xffffff00
|
||||
mov r8, r2
|
||||
ldr r0, [sp]
|
||||
ands r0, r2
|
||||
orrs r0, r4
|
||||
lsls r1, 24
|
||||
lsrs r1, 16
|
||||
ldr r2, =0xffff00ff
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
ldr r1, =0xff00ffff
|
||||
ands r0, r1
|
||||
lsls r5, 24
|
||||
ldr r1, =0x00ffffff
|
||||
ands r0, r1
|
||||
orrs r0, r5
|
||||
str r0, [sp]
|
||||
ldr r0, [sp, 0x4]
|
||||
mov r1, r8
|
||||
ands r0, r1
|
||||
movs r1, 0x20
|
||||
orrs r0, r1
|
||||
lsls r6, 24
|
||||
lsrs r6, 16
|
||||
ands r0, r2
|
||||
orrs r0, r6
|
||||
adds r3, 0x2
|
||||
lsls r3, 16
|
||||
ldr r1, =0x0000ffff
|
||||
ands r0, r1
|
||||
orrs r0, r3
|
||||
str r0, [sp, 0x4]
|
||||
mov r0, sp
|
||||
bl AddWindow
|
||||
strh r0, [r7, 0x8]
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0xFF
|
||||
beq _081C9258
|
||||
mov r2, r9
|
||||
strh r2, [r7, 0xA]
|
||||
mov r0, r9
|
||||
str r0, [r7, 0x3C]
|
||||
str r0, [r7, 0x40]
|
||||
str r0, [r7, 0x44]
|
||||
movs r0, 0x1
|
||||
b _081C925A
|
||||
.pool
|
||||
_081C9258:
|
||||
movs r0, 0
|
||||
_081C925A:
|
||||
add sp, 0x8
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_81C91AC
|
||||
|
||||
thumb_func_start sub_81C9268
|
||||
sub_81C9268: @ 81C9268
|
||||
push {r4,lr}
|
||||
@@ -5440,7 +4840,7 @@ _081CB7BA:
|
||||
b _081CB81A
|
||||
_081CB7C4:
|
||||
movs r0, 0x1
|
||||
bl sub_81C9148
|
||||
bl ToggleMatchCallVerticalArrows
|
||||
adds r0, r5, 0
|
||||
bl sub_81CC058
|
||||
movs r0, 0
|
||||
@@ -5508,7 +4908,7 @@ _081CB844:
|
||||
adds r0, r5, 0
|
||||
bl sub_81CC09C
|
||||
movs r0, 0x1
|
||||
bl sub_81C9148
|
||||
bl ToggleMatchCallVerticalArrows
|
||||
movs r0, 0x1
|
||||
strb r0, [r5, 0xE]
|
||||
movs r0, 0
|
||||
@@ -5617,7 +5017,7 @@ _081CB922:
|
||||
bne _081CB8EC
|
||||
_081CB92C:
|
||||
movs r0, 0
|
||||
bl sub_81C9148
|
||||
bl ToggleMatchCallVerticalArrows
|
||||
movs r6, 0x4
|
||||
_081CB934:
|
||||
adds r0, r6, 0
|
||||
|
||||
Reference in New Issue
Block a user