thumb_func_start fboxes_set_ptr ; void fboxes_set_ptr(struct fbox *ptr) fboxes_set_ptr: ; 80045A4 ldr r1, =0x03002f80 str r0, [r1] bx lr .align 2, 0 .pool thumb_func_end fboxes_set_ptr thumb_func_start TextBox_ResetSomeField ; void TextBox_ResetSomeField() TextBox_ResetSomeField: ; 80045B0 push {lr} ldr r1, =0x020201b0 movs r2, 0 ldr r3, =0x0000045c adds r0, r1, r3 @080045BA: strb r2, [r0, 0x1B] subs r0, 0x24 cmp r0, r1 bge @080045BA pop {r0} bx r0 .align 2, 0 .pool thumb_func_end TextBox_ResetSomeField thumb_func_start Print ; int Print(u8 windowId, u8 fontId, int char_cursor, char x, char y, u8 a6, int a7) Print: ; 80045D0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 ldr r4, [sp, 0x28] ldr r5, [sp, 0x2C] ldr r7, [sp, 0x30] lsls r1, 24 lsrs r1, 24 lsls r3, 24 lsrs r3, 24 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 mov r8, r5 str r2, [sp] mov r2, sp strb r0, [r2, 0x4] mov r0, sp strb r1, [r0, 0x5] strb r3, [r0, 0x6] strb r4, [r0, 0x7] strb r3, [r0, 0x8] strb r4, [r0, 0x9] ldr r0, =0x03002f80 ldr r0, [r0] lsls r3, r1, 1 adds r3, r1 lsls r3, 2 adds r3, r0 ldrb r0, [r3, 0x6] strb r0, [r2, 0xA] mov r1, sp ldrb r0, [r3, 0x7] strb r0, [r1, 0xB] mov r5, sp ldrb r1, [r3, 0x8] lsls r1, 28 movs r6, 0xF lsrs r1, 28 ldrb r4, [r5, 0xC] movs r2, 0x10 negs r2, r2 adds r0, r2, 0 ands r0, r4 orrs r0, r1 strb r0, [r5, 0xC] mov r4, sp ldrb r1, [r3, 0x8] lsrs r1, 4 lsls r1, 4 ands r0, r6 orrs r0, r1 strb r0, [r4, 0xC] ldrb r0, [r3, 0x9] lsls r0, 28 lsrs r0, 28 adds r1, r6, 0 ands r1, r0 ldrb r0, [r4, 0xD] ands r2, r0 orrs r2, r1 strb r2, [r4, 0xD] mov r1, sp ldrb r0, [r3, 0x9] lsrs r0, 4 lsls r0, 4 ands r2, r6 orrs r2, r0 strb r2, [r1, 0xD] mov r0, sp mov r1, r8 adds r2, r7, 0 bl remo_copy lsls r0, 16 lsrs r0, 16 add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 .pool thumb_func_end Print thumb_func_start remo_copy ; int remo_copy(struct TextBox *x, u8 text_speed, int a3) remo_copy: ; 800467C push {r4-r7,lr} adds r6, r0, 0 mov r12, r2 lsls r1, 24 lsrs r5, r1, 24 ldr r0, =0x03002f80 ldr r0, [r0] cmp r0, 0 bne @08004698 movs r0, 0 b @08004766 .align 2, 0 .pool @08004698: ldr r0, =0x0202018c movs r2, 0 movs r1, 0x1 strb r1, [r0, 0x1B] strb r2, [r0, 0x1C] strb r5, [r0, 0x1D] strb r2, [r0, 0x1E] strb r2, [r0, 0x1F] adds r4, r0, 0 movs r1, 0x6 adds r0, 0x1A @080046AE: strb r2, [r0] subs r0, 0x1 subs r1, 0x1 cmp r1, 0 bge @080046AE adds r1, r4, 0 adds r0, r6, 0 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r0, [r0] str r0, [r1] mov r0, r12 str r0, [r4, 0x10] adds r0, r4, 0 adds r0, 0x20 movs r1, 0 strb r1, [r0] adds r0, 0x1 strb r1, [r0] ldrb r0, [r6, 0xC] lsrs r0, 4 ldrb r2, [r6, 0xD] lsls r1, r2, 28 lsrs r1, 28 lsrs r2, 4 bl GenerateFontHalfRowLut cmp r5, 0xFF beq @08004718 cmp r5, 0 beq @08004718 ldrb r0, [r4, 0x1D] subs r0, 0x1 strb r0, [r4, 0x1D] ldr r2, =0x020201b0 ldrb r0, [r6, 0x4] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r2 adds r0, r4, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r4,r7} stm r1!, {r2,r4,r7} b @0800475E .align 2, 0 .pool @08004718: ldr r1, =0x0202018c movs r0, 0 strb r0, [r1, 0x1D] movs r4, 0 ldr r7, =0x000003ff b @08004732 .align 2, 0 .pool @0800472C: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 @08004732: cmp r4, r7 bhi @08004740 ldr r0, =0x0202018c bl fbox_exec cmp r0, 0x1 bne @0800472C @08004740: cmp r5, 0xFF beq @0800474E ldr r0, =0x0202018c ldrb r0, [r0, 0x4] movs r1, 0x2 bl Window_CopyToVram @0800474E: ldr r2, =0x020201b0 ldrb r1, [r6, 0x4] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strb r1, [r0, 0x1B] @0800475E: ldr r1, =0x03002f84 movs r0, 0 strb r0, [r1] movs r0, 0x1 @08004766: pop {r4-r7} pop {r1} bx r1 .align 2, 0 .pool thumb_func_end remo_copy thumb_func_start run_remoboxes ; void run_remoboxes() run_remoboxes: ; 8004778 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, =0x03002f84 ldrb r0, [r0] cmp r0, 0 bne @080047F6 ldr r0, =0x020201b0 movs r6, 0 adds r5, r0, 0x4 mov r8, r0 movs r7, 0x1F @08004790: ldrb r0, [r5, 0x17] cmp r0, 0 beq @080047E8 mov r0, r8 bl fbox_exec lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x1 beq @080047E4 cmp r4, 0x1 bgt @080047B8 cmp r4, 0 beq @080047BE b @080047E8 .align 2, 0 .pool @080047B8: cmp r4, 0x3 beq @080047C6 b @080047E8 @080047BE: ldrb r0, [r5] movs r1, 0x2 bl Window_CopyToVram @080047C6: ldr r1, =0x020201b0 adds r0, r1, 0 adds r0, 0x10 adds r0, r6, r0 ldr r2, [r0] cmp r2, 0 beq @080047E8 adds r0, r6, r1 adds r1, r4, 0 bl _call_via_r2 b @080047E8 .align 2, 0 .pool @080047E4: movs r0, 0 strb r0, [r5, 0x17] @080047E8: adds r6, 0x24 adds r5, 0x24 movs r0, 0x24 add r8, r0 subs r7, 0x1 cmp r7, 0 bge @08004790 @080047F6: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end run_remoboxes thumb_func_start a_pressed_maybe a_pressed_maybe: ; 8004800 lsls r0, 24 lsrs r0, 24 ldr r2, =0x020201b0 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x1B] bx lr .align 2, 0 .pool thumb_func_end a_pressed_maybe thumb_func_start fbox_exec ; int fbox_exec(struct TextBox *x) fbox_exec: ; 8004818 push {r4,lr} adds r4, r0, 0 @0800481C: ldrb r1, [r4, 0x5] ldr r0, =0x03002f80 ldr r2, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 beq @0800481C pop {r4} pop {r1} bx r1 .align 2, 0 .pool thumb_func_end fbox_exec thumb_func_start GenerateFontHalfRowLut GenerateFontHalfRowLut: ; 8004844 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 ldr r3, =0x03000948 ldr r4, =0x030009ea strh r1, [r4] ldr r4, =0x030009ec strh r0, [r4] ldr r4, =0x030009ee strh r2, [r4] lsls r5, r1, 12 lsls r6, r0, 12 lsls r4, r2, 12 mov r8, r4 lsls r7, r1, 8 str r7, [sp] lsls r4, r1, 4 mov r9, r4 orrs r7, r4 str r7, [sp, 0x4] orrs r7, r1 adds r4, r5, 0 orrs r4, r7 strh r4, [r3] adds r3, 0x2 adds r4, r6, 0 orrs r4, r7 strh r4, [r3] adds r3, 0x2 mov r4, r8 orrs r7, r4 strh r7, [r3] adds r3, 0x2 lsls r7, r0, 8 mov r10, r7 mov r4, r10 mov r7, r9 orrs r4, r7 str r4, [sp, 0x8] adds r7, r4, 0 orrs r7, r1 adds r4, r5, 0 orrs r4, r7 strh r4, [r3] adds r3, 0x2 adds r4, r6, 0 orrs r4, r7 strh r4, [r3] adds r3, 0x2 mov r4, r8 orrs r7, r4 strh r7, [r3] adds r3, 0x2 lsls r7, r2, 8 mov r12, r7 mov r4, r12 mov r7, r9 orrs r4, r7 str r4, [sp, 0xC] adds r7, r4, 0 orrs r7, r1 adds r4, r5, 0 orrs r4, r7 strh r4, [r3] adds r3, 0x2 adds r4, r6, 0 orrs r4, r7 strh r4, [r3] adds r3, 0x2 mov r4, r8 orrs r7, r4 strh r7, [r3] adds r3, 0x2 lsls r7, r0, 4 mov r9, r7 ldr r4, [sp] orrs r4, r7 str r4, [sp, 0x10] adds r7, r4, 0 orrs r7, r1 adds r4, r5, 0 orrs r4, r7 strh r4, [r3] adds r3, 0x2 adds r4, r6, 0 orrs r4, r7 strh r4, [r3] adds r3, 0x2 mov r4, r8 orrs r7, r4 strh r7, [r3] adds r3, 0x2 mov r7, r10 adds r4, r7, 0 mov r7, r9 orrs r4, r7 str r4, [sp, 0x14] adds r7, r4, 0 orrs r7, r1 adds r4, r5, 0 orrs r4, r7 strh r4, [r3] adds r3, 0x2 adds r4, r6, 0 orrs r4, r7 strh r4, [r3] adds r3, 0x2 mov r4, r8 orrs r7, r4 strh r7, [r3] adds r3, 0x2 mov r7, r12 adds r4, r7, 0 mov r7, r9 orrs r4, r7 str r4, [sp, 0x18] adds r7, r4, 0 orrs r7, r1 adds r4, r5, 0 orrs r4, r7 strh r4, [r3] adds r3, 0x2 adds r4, r6, 0 orrs r4, r7 strh r4, [r3] adds r3, 0x2 mov r4, r8 orrs r7, r4 strh r7, [r3] adds r3, 0x2 lsls r7, r2, 4 mov r9, r7 mov r4, r9 ldr r7, [sp] orrs r7, r4 str r7, [sp, 0x1C] orrs r7, r1 adds r4, r5, 0 orrs r4, r7 strh r4, [r3] adds r3, 0x2 adds r4, r6, 0 orrs r4, r7 strh r4, [r3] adds r3, 0x2 mov r4, r8 orrs r7, r4 strh r7, [r3] adds r3, 0x2 mov r7, r9 mov r4, r10 orrs r4, r7 str r4, [sp, 0x20] adds r7, r4, 0 orrs r7, r1 adds r4, r5, 0 orrs r4, r7 strh r4, [r3] adds r3, 0x2 adds r4, r6, 0 orrs r4, r7 strh r4, [r3] adds r3, 0x2 mov r4, r8 orrs r7, r4 strh r7, [r3] adds r3, 0x2 mov r4, r12 mov r7, r9 orrs r4, r7 adds r7, r4, 0 orrs r7, r1 adds r1, r5, 0 orrs r1, r7 strh r1, [r3] adds r3, 0x2 adds r1, r6, 0 orrs r1, r7 strh r1, [r3] adds r3, 0x2 mov r1, r8 orrs r7, r1 strh r7, [r3] adds r3, 0x2 ldr r7, [sp, 0x4] orrs r7, r0 adds r1, r5, 0 orrs r1, r7 strh r1, [r3] adds r3, 0x2 adds r1, r6, 0 orrs r1, r7 strh r1, [r3] adds r3, 0x2 mov r1, r8 orrs r7, r1 strh r7, [r3] adds r3, 0x2 ldr r7, [sp, 0x8] orrs r7, r0 adds r1, r5, 0 orrs r1, r7 strh r1, [r3] adds r3, 0x2 adds r1, r6, 0 orrs r1, r7 strh r1, [r3] adds r3, 0x2 mov r1, r8 orrs r7, r1 strh r7, [r3] adds r3, 0x2 ldr r7, [sp, 0xC] orrs r7, r0 adds r1, r5, 0 orrs r1, r7 strh r1, [r3] adds r3, 0x2 adds r1, r6, 0 orrs r1, r7 strh r1, [r3] adds r3, 0x2 mov r1, r8 orrs r7, r1 strh r7, [r3] adds r3, 0x2 ldr r7, [sp, 0x10] orrs r7, r0 adds r1, r5, 0 orrs r1, r7 strh r1, [r3] adds r3, 0x2 adds r1, r6, 0 orrs r1, r7 strh r1, [r3] adds r3, 0x2 mov r1, r8 orrs r7, r1 strh r7, [r3] adds r3, 0x2 ldr r7, [sp, 0x14] orrs r7, r0 adds r1, r5, 0 orrs r1, r7 strh r1, [r3] adds r3, 0x2 adds r1, r6, 0 orrs r1, r7 strh r1, [r3] adds r3, 0x2 mov r1, r8 orrs r7, r1 strh r7, [r3] adds r3, 0x2 ldr r7, [sp, 0x18] orrs r7, r0 adds r1, r5, 0 orrs r1, r7 strh r1, [r3] adds r3, 0x2 adds r1, r6, 0 orrs r1, r7 strh r1, [r3] adds r3, 0x2 mov r1, r8 orrs r7, r1 strh r7, [r3] adds r3, 0x2 ldr r7, [sp, 0x1C] orrs r7, r0 adds r1, r5, 0 orrs r1, r7 strh r1, [r3] adds r3, 0x2 adds r1, r6, 0 orrs r1, r7 strh r1, [r3] adds r3, 0x2 mov r1, r8 orrs r7, r1 strh r7, [r3] adds r3, 0x2 ldr r7, [sp, 0x20] orrs r7, r0 adds r1, r5, 0 orrs r1, r7 strh r1, [r3] adds r3, 0x2 adds r1, r6, 0 orrs r1, r7 strh r1, [r3] adds r3, 0x2 mov r1, r8 orrs r7, r1 strh r7, [r3] adds r3, 0x2 adds r7, r4, 0 orrs r7, r0 adds r0, r5, 0 orrs r0, r7 strh r0, [r3] adds r3, 0x2 adds r0, r6, 0 orrs r0, r7 strh r0, [r3] adds r3, 0x2 orrs r7, r1 strh r7, [r3] adds r3, 0x2 adds r7, r2, 0 ldr r0, [sp, 0x4] orrs r7, r0 adds r0, r5, 0 orrs r0, r7 strh r0, [r3] adds r3, 0x2 adds r0, r6, 0 orrs r0, r7 strh r0, [r3] adds r3, 0x2 orrs r7, r1 strh r7, [r3] adds r3, 0x2 adds r7, r2, 0 ldr r1, [sp, 0x8] orrs r7, r1 adds r0, r5, 0 orrs r0, r7 strh r0, [r3] adds r3, 0x2 adds r0, r6, 0 orrs r0, r7 strh r0, [r3] adds r3, 0x2 mov r0, r8 orrs r7, r0 strh r7, [r3] adds r3, 0x2 adds r7, r2, 0 ldr r1, [sp, 0xC] orrs r7, r1 adds r0, r5, 0 orrs r0, r7 strh r0, [r3] adds r3, 0x2 adds r0, r6, 0 orrs r0, r7 strh r0, [r3] adds r3, 0x2 mov r0, r8 orrs r7, r0 strh r7, [r3] adds r3, 0x2 adds r7, r2, 0 ldr r1, [sp, 0x10] orrs r7, r1 adds r0, r5, 0 orrs r0, r7 strh r0, [r3] adds r3, 0x2 adds r0, r6, 0 orrs r0, r7 strh r0, [r3] adds r3, 0x2 mov r0, r8 orrs r7, r0 strh r7, [r3] adds r3, 0x2 adds r7, r2, 0 ldr r1, [sp, 0x14] orrs r7, r1 adds r0, r5, 0 orrs r0, r7 strh r0, [r3] adds r3, 0x2 adds r0, r6, 0 orrs r0, r7 strh r0, [r3] adds r3, 0x2 mov r0, r8 orrs r7, r0 strh r7, [r3] adds r3, 0x2 adds r7, r2, 0 ldr r1, [sp, 0x18] orrs r7, r1 adds r0, r5, 0 orrs r0, r7 strh r0, [r3] adds r3, 0x2 adds r0, r6, 0 orrs r0, r7 strh r0, [r3] adds r3, 0x2 mov r0, r8 orrs r7, r0 strh r7, [r3] adds r3, 0x2 adds r7, r2, 0 ldr r1, [sp, 0x1C] orrs r7, r1 adds r0, r5, 0 orrs r0, r7 strh r0, [r3] adds r3, 0x2 adds r0, r6, 0 orrs r0, r7 strh r0, [r3] adds r3, 0x2 mov r0, r8 orrs r7, r0 strh r7, [r3] adds r3, 0x2 adds r7, r2, 0 ldr r1, [sp, 0x20] orrs r7, r1 adds r0, r5, 0 orrs r0, r7 strh r0, [r3] adds r3, 0x2 adds r0, r6, 0 orrs r0, r7 strh r0, [r3] adds r3, 0x2 mov r0, r8 orrs r7, r0 strh r7, [r3] adds r3, 0x2 adds r7, r2, 0 orrs r7, r4 orrs r5, r7 strh r5, [r3] adds r3, 0x2 orrs r6, r7 strh r6, [r3] orrs r0, r7 strh r0, [r3, 0x2] add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 .pool thumb_func_end GenerateFontHalfRowLut thumb_func_start save_remo_colors save_remo_colors: ; 8004BE0 ldr r3, =0x030009ea ldrh r3, [r3] strb r3, [r1] ldr r1, =0x030009ec ldrh r1, [r1] strb r1, [r0] ldr r0, =0x030009ee ldrh r0, [r0] strb r0, [r2] bx lr .align 2, 0 .pool thumb_func_end save_remo_colors thumb_func_start restore_remo_colors restore_remo_colors: ; 8004C00 push {lr} ldrb r0, [r0] ldrb r1, [r1] ldrb r2, [r2] bl GenerateFontHalfRowLut pop {r0} bx r0 thumb_func_end restore_remo_colors thumb_func_start DecompressGlyphTile ; void DecompressGlyphTile(u16 *src, u32 *dest) DecompressGlyphTile: ; 8004C10 push {r4-r7,lr} mov r7, r8 push {r7} ldrh r7, [r0] ldr r5, =0x03000948 ldr r4, =gFontHalfRowOffsets movs r2, 0xFF mov r8, r2 adds r2, r7, 0 mov r3, r8 ands r2, r3 adds r2, r4 ldrb r2, [r2] lsls r2, 1 adds r2, r5 ldrh r3, [r2] lsls r3, 16 lsrs r2, r7, 8 adds r2, r4 ldrb r2, [r2] lsls r2, 1 adds r2, r5 ldrh r2, [r2] orrs r3, r2 adds r6, r1, 0 stm r6!, {r3} ldrh r7, [r0, 0x2] adds r0, 0x4 adds r2, r7, 0 mov r3, r8 ands r2, r3 adds r2, r4 ldrb r2, [r2] lsls r2, 1 adds r2, r5 ldrh r3, [r2] lsls r3, 16 lsrs r2, r7, 8 adds r2, r4 ldrb r2, [r2] lsls r2, 1 adds r2, r5 ldrh r2, [r2] orrs r3, r2 str r3, [r1, 0x4] adds r6, 0x4 ldrh r7, [r0] adds r0, 0x2 adds r1, r7, 0 mov r2, r8 ands r1, r2 adds r1, r4 ldrb r1, [r1] lsls r1, 1 adds r1, r5 ldrh r2, [r1] lsls r2, 16 lsrs r1, r7, 8 adds r1, r4 ldrb r1, [r1] lsls r1, 1 adds r1, r5 ldrh r1, [r1] orrs r2, r1 stm r6!, {r2} ldrh r7, [r0] adds r0, 0x2 adds r1, r7, 0 mov r3, r8 ands r1, r3 adds r1, r4 ldrb r1, [r1] lsls r1, 1 adds r1, r5 ldrh r2, [r1] lsls r2, 16 lsrs r1, r7, 8 adds r1, r4 ldrb r1, [r1] lsls r1, 1 adds r1, r5 ldrh r1, [r1] orrs r2, r1 stm r6!, {r2} ldrh r7, [r0] adds r0, 0x2 adds r1, r7, 0 ands r1, r3 adds r1, r4 ldrb r1, [r1] lsls r1, 1 adds r1, r5 ldrh r2, [r1] lsls r2, 16 lsrs r1, r7, 8 adds r1, r4 ldrb r1, [r1] lsls r1, 1 adds r1, r5 ldrh r1, [r1] orrs r2, r1 stm r6!, {r2} ldrh r7, [r0] adds r0, 0x2 adds r1, r7, 0 ands r1, r3 adds r1, r4 ldrb r1, [r1] lsls r1, 1 adds r1, r5 ldrh r2, [r1] lsls r2, 16 lsrs r1, r7, 8 adds r1, r4 ldrb r1, [r1] lsls r1, 1 adds r1, r5 ldrh r1, [r1] orrs r2, r1 stm r6!, {r2} ldrh r7, [r0] adds r1, r7, 0 ands r1, r3 adds r1, r4 ldrb r1, [r1] lsls r1, 1 adds r1, r5 ldrh r2, [r1] lsls r2, 16 lsrs r1, r7, 8 adds r1, r4 ldrb r1, [r1] lsls r1, 1 adds r1, r5 ldrh r1, [r1] orrs r2, r1 stm r6!, {r2} ldrh r7, [r0, 0x2] adds r0, r7, 0 ands r0, r3 adds r0, r4 ldrb r0, [r0] lsls r0, 1 adds r0, r5 ldrh r1, [r0] lsls r1, 16 lsrs r0, r7, 8 adds r0, r4 ldrb r0, [r0] lsls r0, 1 adds r0, r5 ldrh r0, [r0] orrs r1, r0 str r1, [r6] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 .pool thumb_func_end DecompressGlyphTile thumb_func_start sub_8004D58 sub_8004D58: ; 8004D58 push {lr} lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x1 beq @08004D8C cmp r0, 0x1 bgt @08004D6E cmp r0, 0 beq @08004D74 b @08004D98 @08004D6E: cmp r1, 0x2 beq @08004D80 b @08004D98 @08004D74: ldr r0, =0x030009ec ldrb r0, [r0] b @08004D9A .align 2, 0 .pool @08004D80: ldr r0, =0x030009ea ldrb r0, [r0] b @08004D9A .align 2, 0 .pool @08004D8C: ldr r0, =0x030009ee ldrb r0, [r0] b @08004D9A .align 2, 0 .pool @08004D98: movs r0, 0 @08004D9A: pop {r1} bx r1 thumb_func_end sub_8004D58 thumb_func_start CopyGlyphToWindow ; int CopyGlyphToWindow(struct TextBox *x) CopyGlyphToWindow: ; 8004DA0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8C adds r3, r0, 0 ldrb r1, [r3, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, =0x02020004 adds r1, r0, r1 adds r2, r1, 0 ldrb r7, [r1, 0x3] lsls r0, r7, 3 ldrb r6, [r3, 0x8] subs r4, r0, r6 ldr r5, =0x03002f90 adds r0, r5, 0 adds r0, 0x80 ldrb r0, [r0] cmp r4, r0 ble @08004DD2 adds r4, r0, 0 @08004DD2: ldrb r0, [r1, 0x4] lsls r0, 3 ldrb r3, [r3, 0x9] subs r0, r3 adds r1, r5, 0 adds r1, 0x81 ldrb r1, [r1] cmp r0, r1 ble @08004DE6 adds r0, r1, 0 @08004DE6: str r6, [sp] mov r8, r3 adds r3, r5, 0 ldr r2, [r2, 0x8] mov r9, r2 lsls r1, r7, 5 str r1, [sp, 0x4] cmp r4, 0x8 ble @08004DFA b @08004F94 @08004DFA: cmp r0, 0x8 bgt @08004E84 mov r1, r8 str r3, [sp, 0x8] adds r2, r6, 0 adds r2, r4 mov r8, r2 adds r0, r1, r0 str r0, [sp, 0xC] str r6, [sp, 0x10] cmp r1, r0 bcc @08004E14 b @080052AA @08004E14: ldr r3, [sp, 0x8] ldm r3!, {r5} str r3, [sp, 0x8] ldr r4, [sp, 0x10] adds r0, r1, 0x1 mov r10, r0 cmp r4, r8 bcs @08004E72 movs r2, 0x7 mov r12, r2 lsrs r0, r1, 3 ldr r2, [sp, 0x4] adds r3, r0, 0 muls r3, r2 adds r7, r3, 0 mov r3, r12 ands r1, r3 lsls r6, r1, 2 @08004E38: adds r3, r5, 0 movs r0, 0xF ands r3, r0 cmp r3, 0 beq @08004E6A lsrs r2, r4, 3 lsls r2, 5 add r2, r9 adds r0, r4, 0 mov r1, r12 ands r0, r1 lsrs r0, 1 adds r2, r0 adds r2, r7 adds r2, r6 movs r1, 0x1 ands r1, r4 lsls r1, 2 lsls r3, r1 movs r0, 0xF0 asrs r0, r1 ldrb r1, [r2] ands r0, r1 orrs r3, r0 strb r3, [r2] @08004E6A: lsrs r5, 4 adds r4, 0x1 cmp r4, r8 bcc @08004E38 @08004E72: mov r1, r10 ldr r2, [sp, 0xC] cmp r1, r2 bcc @08004E14 b @080052AA .align 2, 0 .pool @08004E84: mov r1, r8 str r3, [sp, 0x14] ldr r3, [sp] adds r3, r4 mov r12, r3 adds r2, r1, 0 adds r2, 0x8 str r2, [sp, 0x18] ldr r3, [sp] str r3, [sp, 0x1C] mov r2, r12 str r2, [sp, 0x74] ldr r3, [sp, 0x18] str r3, [sp, 0x88] subs r0, 0x8 str r0, [sp, 0x80] cmp r1, r3 bcs @08004F0E @08004EA8: ldr r0, [sp, 0x14] ldm r0!, {r5} str r0, [sp, 0x14] ldr r4, [sp, 0x1C] adds r2, r1, 0x1 mov r8, r2 cmp r4, r12 bcs @08004F06 movs r3, 0x7 mov r10, r3 lsrs r0, r1, 3 ldr r3, [sp, 0x4] adds r2, r0, 0 muls r2, r3 adds r7, r2, 0 mov r0, r10 ands r1, r0 lsls r6, r1, 2 @08004ECC: adds r3, r5, 0 movs r1, 0xF ands r3, r1 cmp r3, 0 beq @08004EFE lsrs r2, r4, 3 lsls r2, 5 add r2, r9 adds r0, r4, 0 mov r1, r10 ands r0, r1 lsrs r0, 1 adds r2, r0 adds r2, r7 adds r2, r6 movs r1, 0x1 ands r1, r4 lsls r1, 2 lsls r3, r1 movs r0, 0xF0 asrs r0, r1 ldrb r1, [r2] ands r0, r1 orrs r3, r0 strb r3, [r2] @08004EFE: lsrs r5, 4 adds r4, 0x1 cmp r4, r12 bcc @08004ECC @08004F06: mov r1, r8 ldr r2, [sp, 0x18] cmp r1, r2 bcc @08004EA8 @08004F0E: ldr r1, [sp, 0x88] ldr r3, =0x03002fd0 str r3, [sp, 0x20] ldr r0, [sp, 0x74] mov r8, r0 ldr r2, [sp, 0x80] adds r2, r1, r2 str r2, [sp, 0x24] ldr r3, [sp] str r3, [sp, 0x28] cmp r1, r2 bcc @08004F28 b @080052AA @08004F28: ldr r0, [sp, 0x20] ldm r0!, {r5} str r0, [sp, 0x20] ldr r4, [sp, 0x28] adds r2, r1, 0x1 mov r10, r2 cmp r4, r8 bcs @08004F86 movs r3, 0x7 mov r12, r3 lsrs r0, r1, 3 ldr r3, [sp, 0x4] adds r2, r0, 0 muls r2, r3 adds r7, r2, 0 mov r0, r12 ands r1, r0 lsls r6, r1, 2 @08004F4C: adds r3, r5, 0 movs r1, 0xF ands r3, r1 cmp r3, 0 beq @08004F7E lsrs r2, r4, 3 lsls r2, 5 add r2, r9 adds r0, r4, 0 mov r1, r12 ands r0, r1 lsrs r0, 1 adds r2, r0 adds r2, r7 adds r2, r6 movs r1, 0x1 ands r1, r4 lsls r1, 2 lsls r3, r1 movs r0, 0xF0 asrs r0, r1 ldrb r1, [r2] ands r0, r1 orrs r3, r0 strb r3, [r2] @08004F7E: lsrs r5, 4 adds r4, 0x1 cmp r4, r8 bcc @08004F4C @08004F86: mov r1, r10 ldr r2, [sp, 0x24] cmp r1, r2 bcc @08004F28 b @080052AA .align 2, 0 .pool @08004F94: cmp r0, 0x8 ble @08004F9A b @080050A4 @08004F9A: mov r1, r8 str r3, [sp, 0x2C] ldr r3, [sp] adds r3, 0x8 mov r12, r3 add r0, r8 str r0, [sp, 0x30] ldr r0, [sp] str r0, [sp, 0x34] ldr r2, [sp, 0x30] str r2, [sp, 0x78] str r3, [sp, 0x84] subs r4, 0x8 str r4, [sp, 0x7C] cmp r8, r2 bcs @0800501C @08004FBA: ldr r0, [sp, 0x2C] ldm r0!, {r5} str r0, [sp, 0x2C] ldr r4, [sp, 0x34] adds r2, r1, 0x1 mov r10, r2 cmp r4, r12 bcs @08005014 lsrs r0, r1, 3 ldr r2, [sp, 0x4] adds r3, r0, 0 muls r3, r2 adds r7, r3, 0 movs r3, 0x7 ands r1, r3 lsls r6, r1, 2 @08004FDA: adds r3, r5, 0 movs r0, 0xF ands r3, r0 cmp r3, 0 beq @0800500C lsrs r2, r4, 3 lsls r2, 5 add r2, r9 adds r0, r4, 0 movs r1, 0x7 ands r0, r1 lsrs r0, 1 adds r2, r0 adds r2, r7 adds r2, r6 movs r1, 0x1 ands r1, r4 lsls r1, 2 lsls r3, r1 movs r0, 0xF0 asrs r0, r1 ldrb r1, [r2] ands r0, r1 orrs r3, r0 strb r3, [r2] @0800500C: lsrs r5, 4 adds r4, 0x1 cmp r4, r12 bcc @08004FDA @08005014: mov r1, r10 ldr r2, [sp, 0x30] cmp r1, r2 bcc @08004FBA @0800501C: mov r1, r8 ldr r3, =0x03002fb0 str r3, [sp, 0x38] ldr r0, [sp, 0x84] ldr r2, [sp, 0x7C] adds r0, r2 mov r8, r0 ldr r3, [sp, 0x78] str r3, [sp, 0x3C] ldr r0, [sp, 0x84] str r0, [sp, 0x40] cmp r1, r3 bcc @08005038 b @080052AA @08005038: ldr r2, [sp, 0x38] ldm r2!, {r5} str r2, [sp, 0x38] ldr r4, [sp, 0x40] adds r3, r1, 0x1 mov r10, r3 cmp r4, r8 bcs @08005096 movs r0, 0x7 mov r12, r0 lsrs r0, r1, 3 ldr r3, [sp, 0x4] adds r2, r0, 0 muls r2, r3 adds r7, r2, 0 mov r0, r12 ands r1, r0 lsls r6, r1, 2 @0800505C: adds r3, r5, 0 movs r1, 0xF ands r3, r1 cmp r3, 0 beq @0800508E lsrs r2, r4, 3 lsls r2, 5 add r2, r9 adds r0, r4, 0 mov r1, r12 ands r0, r1 lsrs r0, 1 adds r2, r0 adds r2, r7 adds r2, r6 movs r1, 0x1 ands r1, r4 lsls r1, 2 lsls r3, r1 movs r0, 0xF0 asrs r0, r1 ldrb r1, [r2] ands r0, r1 orrs r3, r0 strb r3, [r2] @0800508E: lsrs r5, 4 adds r4, 0x1 cmp r4, r8 bcc @0800505C @08005096: mov r1, r10 ldr r2, [sp, 0x3C] cmp r1, r2 bcc @08005038 b @080052AA .align 2, 0 .pool @080050A4: mov r1, r8 str r5, [sp, 0x44] ldr r3, [sp] adds r3, 0x8 mov r12, r3 mov r2, r8 adds r2, 0x8 str r2, [sp, 0x48] ldr r3, [sp] str r3, [sp, 0x4C] str r2, [sp, 0x88] subs r0, 0x8 str r0, [sp, 0x80] mov r0, r12 str r0, [sp, 0x84] subs r4, 0x8 str r4, [sp, 0x7C] cmp r8, r2 bcs @0800512C @080050CA: ldr r2, [sp, 0x44] ldm r2!, {r5} str r2, [sp, 0x44] ldr r4, [sp, 0x4C] adds r3, r1, 0x1 mov r10, r3 cmp r4, r12 bcs @08005124 lsrs r0, r1, 3 ldr r3, [sp, 0x4] adds r2, r0, 0 muls r2, r3 adds r7, r2, 0 movs r0, 0x7 ands r1, r0 lsls r6, r1, 2 @080050EA: adds r3, r5, 0 movs r1, 0xF ands r3, r1 cmp r3, 0 beq @0800511C lsrs r2, r4, 3 lsls r2, 5 add r2, r9 adds r0, r4, 0 movs r1, 0x7 ands r0, r1 lsrs r0, 1 adds r2, r0 adds r2, r7 adds r2, r6 movs r1, 0x1 ands r1, r4 lsls r1, 2 lsls r3, r1 movs r0, 0xF0 asrs r0, r1 ldrb r1, [r2] ands r0, r1 orrs r3, r0 strb r3, [r2] @0800511C: lsrs r5, 4 adds r4, 0x1 cmp r4, r12 bcc @080050EA @08005124: mov r1, r10 ldr r2, [sp, 0x48] cmp r1, r2 bcc @080050CA @0800512C: mov r1, r8 ldr r3, =0x03002fb0 str r3, [sp, 0x50] ldr r0, [sp, 0x84] ldr r2, [sp, 0x7C] adds r0, r2 mov r8, r0 ldr r3, [sp, 0x88] str r3, [sp, 0x54] ldr r0, [sp, 0x84] str r0, [sp, 0x58] cmp r1, r3 bcs @080051AC @08005146: ldr r2, [sp, 0x50] ldm r2!, {r5} str r2, [sp, 0x50] ldr r4, [sp, 0x58] adds r3, r1, 0x1 mov r10, r3 cmp r4, r8 bcs @080051A4 movs r0, 0x7 mov r12, r0 lsrs r0, r1, 3 ldr r3, [sp, 0x4] adds r2, r0, 0 muls r2, r3 adds r7, r2, 0 mov r0, r12 ands r1, r0 lsls r6, r1, 2 @0800516A: adds r3, r5, 0 movs r1, 0xF ands r3, r1 cmp r3, 0 beq @0800519C lsrs r2, r4, 3 lsls r2, 5 add r2, r9 adds r0, r4, 0 mov r1, r12 ands r0, r1 lsrs r0, 1 adds r2, r0 adds r2, r7 adds r2, r6 movs r1, 0x1 ands r1, r4 lsls r1, 2 lsls r3, r1 movs r0, 0xF0 asrs r0, r1 ldrb r1, [r2] ands r0, r1 orrs r3, r0 strb r3, [r2] @0800519C: lsrs r5, 4 adds r4, 0x1 cmp r4, r8 bcc @0800516A @080051A4: mov r1, r10 ldr r2, [sp, 0x54] cmp r1, r2 bcc @08005146 @080051AC: ldr r1, [sp, 0x88] ldr r3, =0x03002fd0 str r3, [sp, 0x5C] ldr r0, [sp, 0x84] mov r8, r0 ldr r2, [sp, 0x80] adds r2, r1, r2 str r2, [sp, 0x60] ldr r3, [sp] str r3, [sp, 0x64] cmp r1, r2 bcs @0800522A @080051C4: ldr r0, [sp, 0x5C] ldm r0!, {r5} str r0, [sp, 0x5C] ldr r4, [sp, 0x64] adds r2, r1, 0x1 mov r10, r2 cmp r4, r8 bcs @08005222 movs r3, 0x7 mov r12, r3 lsrs r0, r1, 3 ldr r3, [sp, 0x4] adds r2, r0, 0 muls r2, r3 adds r7, r2, 0 mov r0, r12 ands r1, r0 lsls r6, r1, 2 @080051E8: adds r3, r5, 0 movs r1, 0xF ands r3, r1 cmp r3, 0 beq @0800521A lsrs r2, r4, 3 lsls r2, 5 add r2, r9 adds r0, r4, 0 mov r1, r12 ands r0, r1 lsrs r0, 1 adds r2, r0 adds r2, r7 adds r2, r6 movs r1, 0x1 ands r1, r4 lsls r1, 2 lsls r3, r1 movs r0, 0xF0 asrs r0, r1 ldrb r1, [r2] ands r0, r1 orrs r3, r0 strb r3, [r2] @0800521A: lsrs r5, 4 adds r4, 0x1 cmp r4, r8 bcc @080051E8 @08005222: mov r1, r10 ldr r2, [sp, 0x60] cmp r1, r2 bcc @080051C4 @0800522A: ldr r4, [sp, 0x84] ldr r1, [sp, 0x88] ldr r3, =0x03002ff0 str r3, [sp, 0x68] ldr r0, [sp, 0x7C] adds r0, r4 mov r8, r0 ldr r2, [sp, 0x80] adds r2, r1, r2 str r2, [sp, 0x6C] str r4, [sp, 0x70] cmp r1, r2 bcs @080052AA @08005244: ldr r3, [sp, 0x68] ldm r3!, {r5} str r3, [sp, 0x68] ldr r4, [sp, 0x70] adds r0, r1, 0x1 mov r10, r0 cmp r4, r8 bcs @080052A2 movs r2, 0x7 mov r12, r2 lsrs r0, r1, 3 ldr r2, [sp, 0x4] adds r3, r0, 0 muls r3, r2 adds r7, r3, 0 mov r3, r12 ands r1, r3 lsls r6, r1, 2 @08005268: adds r3, r5, 0 movs r0, 0xF ands r3, r0 cmp r3, 0 beq @0800529A lsrs r2, r4, 3 lsls r2, 5 add r2, r9 adds r0, r4, 0 mov r1, r12 ands r0, r1 lsrs r0, 1 adds r2, r0 adds r2, r7 adds r2, r6 movs r1, 0x1 ands r1, r4 lsls r1, 2 lsls r3, r1 movs r0, 0xF0 asrs r0, r1 ldrb r1, [r2] ands r0, r1 orrs r3, r0 strb r3, [r2] @0800529A: lsrs r5, 4 adds r4, 0x1 cmp r4, r8 bcc @08005268 @080052A2: mov r1, r10 ldr r2, [sp, 0x6C] cmp r1, r2 bcc @08005244 @080052AA: add sp, 0x8C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 .pool thumb_func_end CopyGlyphToWindow thumb_func_start Text_ClearHorizontalSpan ; void Text_ClearHorizontalSpan(TextBox *textBox, int width) Text_ClearHorizontalSpan: ; 80052C8 push {r4-r6,lr} sub sp, 0x10 adds r4, r0, 0 adds r6, r1, 0 ldr r0, =0x030009ea ldrh r5, [r0] cmp r5, 0 beq @0800531E ldrb r1, [r4, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, =0x02020004 adds r0, r1 ldr r1, [r0, 0x8] str r1, [sp, 0x8] ldrb r2, [r0, 0x3] lsls r2, 3 ldr r3, =0xffff0000 ldr r1, [sp, 0xC] ands r1, r3 orrs r1, r2 str r1, [sp, 0xC] ldrb r2, [r0, 0x4] lsls r2, 19 ldr r0, =0x0000ffff ands r0, r1 orrs r0, r2 str r0, [sp, 0xC] ldr r0, =0x03002f90 adds r0, 0x81 ldrb r1, [r4, 0x8] ldrb r2, [r4, 0x9] lsls r3, r6, 16 lsrs r3, 16 ldrb r0, [r0] str r0, [sp] lsls r0, r5, 24 lsrs r0, 24 str r0, [sp, 0x4] add r0, sp, 0x8 bl PixelBlock_FillRect4Bpp @0800531E: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 .pool thumb_func_end Text_ClearHorizontalSpan thumb_func_start Font0Func ; int Font0Func(struct TextBox *x) Font0Func: ; 800533C push {lr} adds r2, r0, 0 adds r3, r2, 0 adds r3, 0x14 ldrb r1, [r3, 0x1] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne @08005360 ldrb r1, [r2, 0x14] movs r0, 0x10 negs r0, r0 ands r0, r1 strb r0, [r2, 0x14] ldrb r0, [r3, 0x1] movs r1, 0x80 orrs r0, r1 strb r0, [r3, 0x1] @08005360: adds r0, r2, 0 bl font_render_b lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end Font0Func thumb_func_start Font1Func ; int Font1Func(struct TextBox *x) Font1Func: ; 8005370 push {lr} adds r2, r0, 0 adds r3, r2, 0 adds r3, 0x14 ldrb r1, [r3, 0x1] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne @08005398 ldrb r1, [r2, 0x14] movs r0, 0x10 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x14] ldrb r0, [r3, 0x1] movs r1, 0x80 orrs r0, r1 strb r0, [r3, 0x1] @08005398: adds r0, r2, 0 bl font_render_b lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end Font1Func thumb_func_start Font2Func ; int Font2Func(struct TextBox *x) Font2Func: ; 80053A8 push {lr} adds r2, r0, 0 adds r3, r2, 0 adds r3, 0x14 ldrb r1, [r3, 0x1] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne @080053D0 ldrb r1, [r2, 0x14] movs r0, 0x10 negs r0, r0 ands r0, r1 movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0x14] ldrb r0, [r3, 0x1] movs r1, 0x80 orrs r0, r1 strb r0, [r3, 0x1] @080053D0: adds r0, r2, 0 bl font_render_b lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end Font2Func thumb_func_start Font3Func ; int Font3Func(struct TextBox *x) Font3Func: ; 80053E0 push {lr} adds r2, r0, 0 adds r3, r2, 0 adds r3, 0x14 ldrb r1, [r3, 0x1] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne @08005408 ldrb r1, [r2, 0x14] movs r0, 0x10 negs r0, r0 ands r0, r1 movs r1, 0x3 orrs r0, r1 strb r0, [r2, 0x14] ldrb r0, [r3, 0x1] movs r1, 0x80 orrs r0, r1 strb r0, [r3, 0x1] @08005408: adds r0, r2, 0 bl font_render_b lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end Font3Func thumb_func_start Font4Func ; int Font4Func(struct TextBox *x) Font4Func: ; 8005418 push {lr} adds r2, r0, 0 adds r3, r2, 0 adds r3, 0x14 ldrb r1, [r3, 0x1] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne @08005440 ldrb r1, [r2, 0x14] movs r0, 0x10 negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r2, 0x14] ldrb r0, [r3, 0x1] movs r1, 0x80 orrs r0, r1 strb r0, [r3, 0x1] @08005440: adds r0, r2, 0 bl font_render_b lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end Font4Func thumb_func_start Font5Func ; int Font5Func(struct TextBox *x) Font5Func: ; 8005450 push {lr} adds r2, r0, 0 adds r3, r2, 0 adds r3, 0x14 ldrb r1, [r3, 0x1] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne @08005478 ldrb r1, [r2, 0x14] movs r0, 0x10 negs r0, r0 ands r0, r1 movs r1, 0x5 orrs r0, r1 strb r0, [r2, 0x14] ldrb r0, [r3, 0x1] movs r1, 0x80 orrs r0, r1 strb r0, [r3, 0x1] @08005478: adds r0, r2, 0 bl font_render_b lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end Font5Func thumb_func_start Font7Func ; int Font7Func(struct TextBox *x) Font7Func: ; 8005488 push {lr} adds r2, r0, 0 adds r3, r2, 0 adds r3, 0x14 ldrb r1, [r3, 0x1] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne @080054B0 ldrb r1, [r2, 0x14] movs r0, 0x10 negs r0, r0 ands r0, r1 movs r1, 0x7 orrs r0, r1 strb r0, [r2, 0x14] ldrb r0, [r3, 0x1] movs r1, 0x80 orrs r0, r1 strb r0, [r3, 0x1] @080054B0: adds r0, r2, 0 bl font_render_b lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end Font7Func thumb_func_start Font8Func ; int Font8Func(struct TextBox *x) Font8Func: ; 80054C0 push {lr} adds r2, r0, 0 adds r3, r2, 0 adds r3, 0x14 ldrb r1, [r3, 0x1] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne @080054E8 ldrb r1, [r2, 0x14] movs r0, 0x10 negs r0, r0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r2, 0x14] ldrb r0, [r3, 0x1] movs r1, 0x80 orrs r0, r1 strb r0, [r3, 0x1] @080054E8: adds r0, r2, 0 bl font_render_b lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end Font8Func thumb_func_start sub_80054F8 ; void sub_80054F8(TextBox *textBox) sub_80054F8: ; 80054F8 push {lr} adds r2, r0, 0 adds r2, 0x14 ldr r0, =0x03003014 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq @08005514 movs r0, 0 strb r0, [r2, 0x2] b @08005524 .align 2, 0 .pool @08005514: ldrb r0, [r2, 0x1] movs r1, 0x61 negs r1, r1 ands r1, r0 movs r0, 0x20 negs r0, r0 ands r1, r0 strb r1, [r2, 0x1] @08005524: pop {r0} bx r0 thumb_func_end sub_80054F8 thumb_func_start remo_draw_bouncing_down_arrow ; int remo_draw_bouncing_down_arrow(TextBox *x) remo_draw_bouncing_down_arrow: ; 8005528 push {r4-r7,lr} sub sp, 0x18 adds r5, r0, 0 adds r6, r5, 0 adds r6, 0x14 ldr r7, =0x03003014 ldrb r1, [r7] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne @080055EE ldrb r2, [r6, 0x1] movs r0, 0x1F ands r0, r2 cmp r0, 0 beq @08005560 ldr r0, [r5, 0x14] lsls r0, 19 lsrs r0, 27 subs r0, 0x1 movs r1, 0x1F ands r0, r1 movs r1, 0x20 negs r1, r1 b @080055E8 .align 2, 0 .pool @08005560: ldrb r0, [r5, 0x4] ldrb r2, [r5, 0xD] lsls r2, 28 lsrs r1, r2, 4 orrs r1, r2 lsrs r1, 24 ldrb r2, [r5, 0x8] ldrb r3, [r5, 0x9] movs r4, 0x8 str r4, [sp] movs r4, 0x10 str r4, [sp, 0x4] bl Window_FillPixelRect ldr r0, [r7] lsls r0, 30 lsrs r0, 31 cmp r0, 0 beq @0800558A cmp r0, 0x1 beq @08005594 @0800558A: ldr r7, =gDownArrowTiles b @08005596 .align 2, 0 .pool @08005594: ldr r7, =gDarkDownArrowTiles @08005596: ldrb r0, [r5, 0x4] ldr r2, =gDownArrowYCoords ldr r1, [r6] lsls r1, 17 lsrs r1, 30 adds r1, r2 ldrb r3, [r1] movs r4, 0x8 str r4, [sp] movs r2, 0x10 str r2, [sp, 0x4] ldrb r1, [r5, 0x8] str r1, [sp, 0x8] ldrb r1, [r5, 0x9] str r1, [sp, 0xC] str r4, [sp, 0x10] str r2, [sp, 0x14] adds r1, r7, 0 movs r2, 0 bl Window_CopyPixelRectToWindow ldrb r0, [r5, 0x4] movs r1, 0x2 bl Window_CopyToVram ldrb r0, [r6, 0x1] movs r1, 0x20 negs r1, r1 ands r1, r0 movs r0, 0x8 orrs r1, r0 strb r1, [r6, 0x1] ldr r0, [r6] lsls r0, 17 lsrs r0, 30 adds r0, 0x1 movs r2, 0x3 ands r0, r2 lsls r0, 5 movs r2, 0x61 negs r2, r2 @080055E8: ands r1, r2 orrs r1, r0 strb r1, [r6, 0x1] @080055EE: add sp, 0x18 pop {r4-r7} pop {r0} bx r0 .align 2, 0 .pool thumb_func_end remo_draw_bouncing_down_arrow thumb_func_start remo_clear_down_arrow ; int remo_clear_down_arrow(TextBox *x) remo_clear_down_arrow: ; 8005600 push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 ldrb r0, [r5, 0x4] ldrb r2, [r5, 0xD] lsls r2, 28 lsrs r1, r2, 4 orrs r1, r2 lsrs r1, 24 ldrb r2, [r5, 0x8] ldrb r3, [r5, 0x9] movs r4, 0x8 str r4, [sp] movs r4, 0x10 str r4, [sp, 0x4] bl Window_FillPixelRect ldrb r0, [r5, 0x4] movs r1, 0x2 bl Window_CopyToVram add sp, 0x8 pop {r4,r5} pop {r0} bx r0 thumb_func_end remo_clear_down_arrow thumb_func_start remo_is_it_time_to_continue_autopilot ; int remo_is_it_time_to_continue_autopilot(struct TextBox *x) remo_is_it_time_to_continue_autopilot: ; 8005634 push {lr} adds r1, r0, 0 adds r1, 0x14 ldrb r0, [r1, 0x2] cmp r0, 0x31 beq @08005648 adds r0, 0x1 strb r0, [r1, 0x2] movs r0, 0 b @0800564A @08005648: movs r0, 0x1 @0800564A: pop {r1} bx r1 thumb_func_end remo_is_it_time_to_continue_autopilot thumb_func_start remo_is_it_time_to_continue_plus_down_arrow remo_is_it_time_to_continue_plus_down_arrow: ; 8005650 push {r4,lr} adds r2, r0, 0 movs r4, 0 ldr r0, =0x03003014 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq @08005674 adds r0, r2, 0 bl remo_is_it_time_to_continue_autopilot lsls r0, 24 lsrs r4, r0, 24 b @0800568E .align 2, 0 .pool @08005674: adds r0, r2, 0 bl remo_draw_bouncing_down_arrow ldr r0, =0x030022c0 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq @0800568E movs r4, 0x1 movs r0, 0x5 bl audio_play @0800568E: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 .pool thumb_func_end remo_is_it_time_to_continue_plus_down_arrow thumb_func_start remo_is_it_time_to_continue remo_is_it_time_to_continue: ; 800569C push {r4,lr} adds r2, r0, 0 movs r4, 0 ldr r0, =0x03003014 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq @080056C0 adds r0, r2, 0 bl remo_is_it_time_to_continue_autopilot lsls r0, 24 lsrs r4, r0, 24 b @080056D4 .align 2, 0 .pool @080056C0: ldr r0, =0x030022c0 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq @080056D4 movs r4, 0x1 movs r0, 0x5 bl audio_play @080056D4: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 .pool thumb_func_end remo_is_it_time_to_continue thumb_func_start draw_bouncing_down_arrow_2 draw_bouncing_down_arrow_2: ; 80056E0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 ldr r4, [sp, 0x38] ldr r5, [sp, 0x3C] mov r9, r5 ldr r5, [sp, 0x40] mov r10, r5 lsls r0, 24 lsrs r5, r0, 24 lsls r1, 16 lsrs r1, 16 mov r8, r1 lsls r2, 16 lsrs r7, r2, 16 lsls r3, 24 lsrs r3, 24 lsls r4, 24 lsrs r4, 24 mov r1, r9 ldrb r0, [r1] cmp r0, 0 beq @0800571A subs r0, 0x1 strb r0, [r1] b @0800579A @0800571A: lsls r1, r3, 4 orrs r1, r3 lsls r1, 24 lsrs r1, 24 movs r0, 0x8 str r0, [sp] movs r0, 0x10 str r0, [sp, 0x4] adds r0, r5, 0 mov r2, r8 adds r3, r7, 0 bl Window_FillPixelRect cmp r4, 0 bne @0800579A ldr r0, =0x03003014 ldr r0, [r0] lsls r0, 30 lsrs r0, 31 cmp r0, 0 beq @08005748 cmp r0, 0x1 beq @08005754 @08005748: ldr r6, =gDownArrowTiles b @08005756 .align 2, 0 .pool @08005754: ldr r6, =gDarkDownArrowTiles @08005756: ldr r2, =gDownArrowYCoords mov r0, r10 ldrb r1, [r0] movs r0, 0x3 ands r0, r1 adds r0, r2 ldrb r3, [r0] movs r4, 0x8 str r4, [sp] movs r1, 0x10 str r1, [sp, 0x4] mov r0, r8 str r0, [sp, 0x8] subs r0, r7, 0x2 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0xC] str r4, [sp, 0x10] str r1, [sp, 0x14] adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl Window_CopyPixelRectToWindow adds r0, r5, 0 movs r1, 0x2 bl Window_CopyToVram mov r1, r9 strb r4, [r1] mov r5, r10 ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] @0800579A: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 .pool thumb_func_end draw_bouncing_down_arrow_2 thumb_func_start font_render_b ; int font_render_b(struct TextBox *x) font_render_b: ; 80057B4 push {r4-r6,lr} adds r6, r0, 0 adds r4, r6, 0 adds r4, 0x14 ldrb r0, [r6, 0x1C] cmp r0, 0x6 bls @080057C4 b @08005D6C @080057C4: lsls r0, 2 ldr r1, =@080057D4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 .pool .align 2, 0 @080057D4: .4byte @080057F0 .4byte @08005C78 .4byte @08005C8C .4byte @08005CB8 .4byte @08005CF0 .4byte @08005D48 .4byte @08005D5A @080057F0: ldr r2, =0x030022c0 ldrh r1, [r2, 0x2C] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq @0800580A ldrb r1, [r4] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq @0800580A movs r0, 0 strb r0, [r6, 0x1E] @0800580A: ldrb r1, [r6, 0x1E] cmp r1, 0 beq @0800584C ldrb r0, [r6, 0x1D] cmp r0, 0 beq @0800584C subs r0, r1, 0x1 strb r0, [r6, 0x1E] ldr r0, =0x03003014 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne @08005828 b @08005B56 @08005828: ldrh r1, [r2, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne @08005834 b @08005B56 @08005834: ldrb r0, [r4] movs r1, 0x10 orrs r0, r1 strb r0, [r4] movs r0, 0 strb r0, [r6, 0x1E] b @08005B56 .align 2, 0 .pool @0800584C: ldr r0, =0x02022fec ldr r0, [r0] movs r1, 0x80 lsls r1, 17 ands r0, r1 cmp r0, 0 bne @08005874 ldr r0, =0x03003014 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq @08005874 movs r0, 0x3 b @08005876 .align 2, 0 .pool @08005874: ldrb r0, [r6, 0x1D] @08005876: strb r0, [r6, 0x1E] ldr r0, [r6] ldrb r3, [r0] adds r0, 0x1 str r0, [r6] adds r0, r3, 0 subs r0, 0xF8 cmp r0, 0x7 bls @0800588A b @08005B90 @0800588A: lsls r0, 2 ldr r1, =@08005898 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 .pool .align 2, 0 @08005898: .4byte @08005B6C .4byte @08005B5A .4byte @08005B4C .4byte @08005B48 .4byte @080058E0 .4byte @080058DC .4byte @080058B8 .4byte @08005D6C @080058B8: ldrb r0, [r6, 0x6] strb r0, [r6, 0x8] ldrb r1, [r6, 0x5] ldr r0, =0x03002f80 ldr r2, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r6, 0xB] ldrb r0, [r0, 0x5] adds r1, r0 ldrb r0, [r6, 0x9] adds r0, r1 b @08005ABA .align 2, 0 .pool @080058DC: ldr r0, [r6] b @08005B30 @080058E0: ldr r0, [r6] ldrb r3, [r0] adds r0, 0x1 str r0, [r6] subs r0, r3, 0x1 cmp r0, 0x17 bls @080058F0 b @08005B90 @080058F0: lsls r0, 2 ldr r1, =@08005900 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 .pool .align 2, 0 @08005900: .4byte @08005960 .4byte @08005982 .4byte @080059A6 .4byte @080059C0 .4byte @08005A0E .4byte @08005A12 .4byte @08005A0A .4byte @08005A2A .4byte @08005A3A .4byte @08005A58 .4byte @08005A5C .4byte @08005B5A .4byte @08005A90 .4byte @08005A98 .4byte @08005AA4 .4byte @08005A76 .4byte @08005AD8 .4byte @08005AF2 .4byte @08005B02 .4byte @08005B26 .4byte @08005B36 .4byte @08005B3E .4byte @08005ABE .4byte @08005ACC @08005960: ldr r2, [r6] ldrb r1, [r2] lsls r1, 4 ldrb r3, [r6, 0xC] movs r0, 0xF ands r0, r3 orrs r0, r1 strb r0, [r6, 0xC] adds r2, 0x1 str r2, [r6] lsls r0, 24 lsrs r0, 28 ldrb r2, [r6, 0xD] lsls r1, r2, 28 lsrs r1, 28 lsrs r2, 4 b @08005A06 @08005982: ldr r1, [r6] ldrb r2, [r1] movs r0, 0xF ands r0, r2 ldrb r3, [r6, 0xD] movs r2, 0x10 negs r2, r2 ands r2, r3 orrs r2, r0 strb r2, [r6, 0xD] adds r1, 0x1 str r1, [r6] ldrb r0, [r6, 0xC] lsrs r0, 4 lsls r1, r2, 28 lsrs r1, 28 lsrs r2, 4 b @08005A06 @080059A6: ldr r1, [r6] ldrb r0, [r1] lsls r0, 4 ldrb r3, [r6, 0xD] movs r2, 0xF ands r2, r3 orrs r2, r0 strb r2, [r6, 0xD] adds r1, 0x1 str r1, [r6] ldrb r0, [r6, 0xC] lsrs r0, 4 b @080059FE @080059C0: ldr r3, [r6] ldrb r1, [r3] lsls r1, 4 ldrb r4, [r6, 0xC] movs r2, 0xF adds r0, r2, 0 ands r0, r4 orrs r0, r1 strb r0, [r6, 0xC] adds r5, r3, 0x1 str r5, [r6] ldrb r3, [r3, 0x1] adds r1, r2, 0 ands r1, r3 ldrb r4, [r6, 0xD] movs r3, 0x10 negs r3, r3 ands r3, r4 orrs r3, r1 strb r3, [r6, 0xD] adds r4, r5, 0x1 str r4, [r6] ldrb r1, [r5, 0x1] lsls r1, 4 ands r2, r3 orrs r2, r1 strb r2, [r6, 0xD] adds r4, 0x1 str r4, [r6] lsls r0, 24 lsrs r0, 28 @080059FE: lsls r1, r2, 28 lsrs r1, 28 lsls r2, 24 lsrs r2, 28 @08005A06: bl GenerateFontHalfRowLut @08005A0A: movs r0, 0x2 b @08005D6E @08005A0E: ldr r0, [r6] b @08005B30 @08005A12: ldr r0, [r6] ldrb r0, [r0] movs r1, 0xF ands r1, r0 ldrb r2, [r4] movs r0, 0x10 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4] ldr r0, [r6] b @08005B30 @08005A2A: ldr r0, [r6] ldrb r1, [r0] strb r1, [r6, 0x1E] adds r0, 0x1 str r0, [r6] movs r0, 0x6 strb r0, [r6, 0x1C] b @08005A0A @08005A3A: movs r0, 0x1 strb r0, [r6, 0x1C] ldr r0, =0x03003014 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne @08005A4C b @08005B56 @08005A4C: movs r0, 0 strb r0, [r4, 0x2] b @08005B56 .align 2, 0 .pool @08005A58: movs r0, 0x5 b @08005D56 @08005A5C: ldr r0, [r6] ldrb r3, [r0] adds r1, r0, 0x1 str r1, [r6] ldrb r0, [r0, 0x1] lsls r0, 8 orrs r3, r0 adds r1, 0x1 str r1, [r6] adds r0, r3, 0 bl song_play_for_text b @08005A0A @08005A76: ldr r0, [r6] ldrb r3, [r0] adds r1, r0, 0x1 str r1, [r6] ldrb r0, [r0, 0x1] lsls r0, 8 orrs r3, r0 adds r1, 0x1 str r1, [r6] adds r0, r3, 0 bl audio_play b @08005A0A @08005A90: ldr r1, [r6] ldrb r0, [r1] ldrb r3, [r6, 0x6] b @08005AF8 @08005A98: ldr r1, [r6] ldrb r0, [r1] ldrb r2, [r6, 0x7] adds r0, r2 strb r0, [r6, 0x9] b @08005AFC @08005AA4: ldrb r0, [r6, 0x4] ldrb r2, [r6, 0xD] lsls r2, 28 lsrs r1, r2, 4 orrs r1, r2 lsrs r1, 24 bl Window_FastFillPixels ldrb r0, [r6, 0x6] strb r0, [r6, 0x8] ldrb r0, [r6, 0x7] @08005ABA: strb r0, [r6, 0x9] b @08005A0A @08005ABE: ldr r0, =0x03007420 bl MPlayStop_rev01 b @08005A0A .align 2, 0 .pool @08005ACC: ldr r0, =0x03007420 bl m4aMPlayContinue b @08005A0A .align 2, 0 .pool @08005AD8: ldr r0, [r6] ldrb r4, [r0] adds r0, 0x1 str r0, [r6] cmp r4, 0 ble @08005A0A adds r0, r6, 0 adds r1, r4, 0 bl Text_ClearHorizontalSpan ldrb r0, [r6, 0x8] adds r0, r4 b @08005C6E @08005AF2: ldr r1, [r6] ldrb r0, [r6, 0x6] ldrb r3, [r1] @08005AF8: adds r0, r3 strb r0, [r6, 0x8] @08005AFC: adds r1, 0x1 str r1, [r6] b @08005A0A @08005B02: ldr r0, [r6] ldrb r2, [r0] ldrb r1, [r6, 0x6] adds r2, r1 adds r0, 0x1 str r0, [r6] ldrb r0, [r6, 0x8] subs r4, r2, r0 cmp r4, 0 bgt @08005B18 b @08005A0A @08005B18: adds r0, r6, 0 adds r1, r4, 0 bl Text_ClearHorizontalSpan ldrb r0, [r6, 0x8] adds r0, r4 b @08005C6E @08005B26: ldr r0, [r6] ldrb r2, [r0] adds r1, r6, 0 adds r1, 0x20 strb r2, [r1] @08005B30: adds r0, 0x1 str r0, [r6] b @08005A0A @08005B36: adds r1, r6, 0 adds r1, 0x21 movs r0, 0x1 b @08005B44 @08005B3E: adds r1, r6, 0 adds r1, 0x21 movs r0, 0 @08005B44: strb r0, [r1] b @08005A0A @08005B48: movs r0, 0x2 b @08005B4E @08005B4C: movs r0, 0x3 @08005B4E: strb r0, [r6, 0x1C] adds r0, r6, 0 bl sub_80054F8 @08005B56: movs r0, 0x3 b @08005D6E @08005B5A: ldr r0, [r6] ldrb r3, [r0] movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 orrs r3, r1 adds r0, 0x1 str r0, [r6] b @08005B90 @08005B6C: ldr r0, [r6] ldrb r3, [r0] adds r0, 0x1 str r0, [r6] ldrb r0, [r6, 0x4] adds r1, r3, 0 ldrb r2, [r6, 0x8] ldrb r3, [r6, 0x9] bl TextBox_DrawKeypadIcon ldr r1, =0x03002f90 adds r1, 0x80 strb r0, [r1] ldrb r3, [r6, 0xA] adds r0, r3 b @08005C6A .align 2, 0 .pool @08005B90: ldr r0, [r4] lsls r0, 28 lsrs r0, 28 cmp r0, 0x8 bhi @08005C10 lsls r0, 2 ldr r1, =@08005BA8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 .pool .align 2, 0 @08005BA8: .4byte @08005BCC .4byte @08005BDA .4byte @08005BE8 .4byte @08005BE8 .4byte @08005BE8 .4byte @08005BE8 .4byte @08005C10 .4byte @08005BF6 .4byte @08005C04 @08005BCC: adds r0, r6, 0 adds r0, 0x21 ldrb r1, [r0] adds r0, r3, 0 bl DecompressGlyphFont0 b @08005C10 @08005BDA: adds r0, r6, 0 adds r0, 0x21 ldrb r1, [r0] adds r0, r3, 0 bl DecompressGlyphFont1 b @08005C10 @08005BE8: adds r0, r6, 0 adds r0, 0x21 ldrb r1, [r0] adds r0, r3, 0 bl DecompressGlyphFont2 b @08005C10 @08005BF6: adds r0, r6, 0 adds r0, 0x21 ldrb r1, [r0] adds r0, r3, 0 bl DecompressGlyphFont7 b @08005C10 @08005C04: adds r0, r6, 0 adds r0, 0x21 ldrb r1, [r0] adds r0, r3, 0 bl DecompressGlyphFont8 @08005C10: adds r0, r6, 0 bl CopyGlyphToWindow adds r2, r6, 0 adds r2, 0x20 ldrb r0, [r2] cmp r0, 0 beq @08005C48 ldr r1, =0x03002f90 adds r1, 0x80 ldrb r0, [r1] ldrb r3, [r6, 0x8] adds r0, r3 strb r0, [r6, 0x8] ldrb r2, [r2] ldrb r0, [r1] subs r4, r2, r0 cmp r4, 0 ble @08005C70 adds r0, r6, 0 adds r1, r4, 0 bl Text_ClearHorizontalSpan ldrb r0, [r6, 0x8] adds r0, r4 b @08005C6E .align 2, 0 .pool @08005C48: adds r0, r6, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0 beq @08005C64 ldr r0, =0x03002f90 adds r0, 0x80 ldrb r1, [r6, 0xA] ldrb r0, [r0] adds r1, r0 ldrb r0, [r6, 0x8] b @08005C6C .align 2, 0 .pool @08005C64: ldr r0, =0x03002f90 adds r0, 0x80 ldrb r0, [r0] @08005C6A: ldrb r1, [r6, 0x8] @08005C6C: adds r0, r1 @08005C6E: strb r0, [r6, 0x8] @08005C70: movs r0, 0 b @08005D6E .align 2, 0 .pool @08005C78: adds r0, r6, 0 bl remo_is_it_time_to_continue lsls r0, 16 cmp r0, 0 bne @08005C86 b @08005B56 @08005C86: movs r0, 0 strb r0, [r6, 0x1C] b @08005B56 @08005C8C: adds r0, r6, 0 bl remo_is_it_time_to_continue_plus_down_arrow lsls r0, 16 cmp r0, 0 bne @08005C9A b @08005B56 @08005C9A: ldrb r0, [r6, 0x4] ldrb r2, [r6, 0xD] lsls r2, 28 lsrs r1, r2, 4 orrs r1, r2 lsrs r1, 24 bl Window_FastFillPixels ldrb r0, [r6, 0x6] movs r1, 0 strb r0, [r6, 0x8] ldrb r0, [r6, 0x7] strb r0, [r6, 0x9] strb r1, [r6, 0x1C] b @08005B56 @08005CB8: adds r0, r6, 0 bl remo_is_it_time_to_continue_plus_down_arrow lsls r0, 16 cmp r0, 0 bne @08005CC6 b @08005B56 @08005CC6: adds r0, r6, 0 bl remo_clear_down_arrow ldrb r1, [r6, 0x5] ldr r0, =0x03002f80 ldr r2, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r6, 0xB] ldrb r0, [r0, 0x5] adds r1, r0 strb r1, [r6, 0x1F] ldrb r0, [r6, 0x6] strb r0, [r6, 0x8] movs r0, 0x4 strb r0, [r6, 0x1C] b @08005B56 .align 2, 0 .pool @08005CF0: ldrb r0, [r6, 0x1F] cmp r0, 0 beq @08005D44 bl sub_8197964 ldr r1, =gWindowVerticalScrollSpeeds adds r0, r1 ldrb r4, [r0] ldrb r2, [r6, 0x1F] cmp r2, r4 bge @08005D20 ldrb r0, [r6, 0x4] ldrb r1, [r6, 0xD] lsls r1, 28 lsrs r3, r1, 4 orrs r3, r1 lsrs r3, 24 movs r1, 0 bl Window_ScrollVertically movs r0, 0 b @08005D38 .align 2, 0 .pool @08005D20: ldrb r0, [r6, 0x4] ldrb r1, [r6, 0xD] lsls r1, 28 lsrs r3, r1, 4 orrs r3, r1 lsrs r3, 24 movs r1, 0 adds r2, r4, 0 bl Window_ScrollVertically ldrb r0, [r6, 0x1F] subs r0, r4 @08005D38: strb r0, [r6, 0x1F] ldrb r0, [r6, 0x4] movs r1, 0x2 bl Window_CopyToVram b @08005B56 @08005D44: strb r0, [r6, 0x1C] b @08005B56 @08005D48: bl mplay_has_finished_maybe lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq @08005D56 b @08005B56 @08005D56: strb r0, [r6, 0x1C] b @08005B56 @08005D5A: ldrb r0, [r6, 0x1E] adds r1, r0, 0 cmp r1, 0 beq @08005D68 subs r0, 0x1 strb r0, [r6, 0x1E] b @08005B56 @08005D68: strb r1, [r6, 0x1C] b @08005B56 @08005D6C: movs r0, 0x1 @08005D6E: pop {r4-r6} pop {r1} bx r1 thumb_func_end font_render_b thumb_func_start sub_8005D74 sub_8005D74: ; 8005D74 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r2, 24 mov r8, r2 movs r2, 0 mov r1, sp adds r1, 0x7 @08005D8C: strb r2, [r1] subs r1, 0x1 cmp r1, sp bge @08005D8C movs r5, 0 movs r6, 0 adds r4, r0, 0 movs r2, 0 @08005D9C: adds r0, r4, r2 ldrb r3, [r0] adds r2, 0x1 adds r0, r3, 0 subs r0, 0xF7 cmp r0, 0x8 bhi @08005E6A lsls r0, 2 ldr r1, =@08005DB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 .pool .align 2, 0 @08005DB8: .4byte @08005E64 .4byte @08005E68 .4byte @08005E68 .4byte @08005E70 .4byte @08005E70 .4byte @08005DEC .4byte @08005E64 .4byte @08005DDC .4byte @08005DDC @08005DDC: mov r1, sp adds r0, r1, r6 strb r5, [r0] movs r5, 0 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 b @08005E70 @08005DEC: adds r0, r4, r2 ldrb r0, [r0] adds r2, 0x1 subs r0, 0x1 cmp r0, 0x15 bhi @08005E70 lsls r0, 2 ldr r1, =@08005E08 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 .pool .align 2, 0 @08005E08: .4byte @08005E64 .4byte @08005E64 .4byte @08005E64 .4byte @08005E60 .4byte @08005E64 .4byte @08005E64 .4byte @08005E70 .4byte @08005E64 .4byte @08005E70 .4byte @08005E70 .4byte @08005E62 .4byte @08005E64 .4byte @08005E64 .4byte @08005E64 .4byte @08005E70 .4byte @08005E62 .4byte @08005E64 .4byte @08005E64 .4byte @08005E64 .4byte @08005E64 .4byte @08005E70 .4byte @08005E70 @08005E60: adds r2, 0x1 @08005E62: adds r2, 0x1 @08005E64: adds r2, 0x1 b @08005E70 @08005E68: adds r2, 0x1 @08005E6A: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @08005E70: cmp r3, 0xFF bne @08005D9C movs r5, 0 movs r2, 0 @08005E78: mov r1, sp adds r0, r1, r2 ldrb r1, [r0] cmp r5, r1 bcs @08005E84 ldrb r5, [r0] @08005E84: adds r2, 0x1 cmp r2, 0x7 ble @08005E78 adds r0, r7, 0 movs r1, 0 bl fbox_get_field add r0, r8 lsls r0, 24 lsrs r0, 24 muls r0, r5 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8005D74 thumb_func_start GetFontWidthFunc GetFontWidthFunc: ; 8005EA8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r3, 0 ldr r0, =gGlyphWidthFuncs adds r2, r0, 0x4 adds r1, r0, 0 @08005EB6: ldr r0, [r1] cmp r4, r0 bne @08005EC4 ldr r0, [r2] b @08005ED0 .align 2, 0 .pool @08005EC4: adds r2, 0x8 adds r1, 0x8 adds r3, 0x1 cmp r3, 0x8 bls @08005EB6 movs r0, 0 @08005ED0: pop {r4} pop {r1} bx r1 thumb_func_end GetFontWidthFunc thumb_func_start font_get_width_of_string ; unsigned int font_get_width_of_string(u8 a1, u8 *s, u16 a3) font_get_width_of_string: ; 8005ED8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 lsls r2, 16 lsrs r5, r2, 16 movs r0, 0 mov r9, r0 movs r7, 0 adds r0, r6, 0 bl GetFontWidthFunc mov r8, r0 cmp r0, 0 bne @08005F06 @08005F02: movs r0, 0 b @0800612E @08005F06: lsls r0, r5, 16 asrs r2, r0, 16 movs r1, 0x1 negs r1, r1 str r0, [sp, 0x4] cmp r2, r1 bne @08005F24 adds r0, r6, 0 movs r1, 0x2 bl fbox_get_field lsls r0, 24 lsrs r0, 24 mov r10, r0 b @08005F26 @08005F24: mov r10, r2 @08005F26: movs r2, 0 str r2, [sp] movs r5, 0 movs r6, 0 b @0800611E @08005F30: ldrb r1, [r4] adds r0, r1, 0 subs r0, 0xF7 cmp r0, 0x7 bls @08005F3C b @080060F8 @08005F3C: lsls r0, 2 ldr r1, =@08005F4C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 .pool .align 2, 0 @08005F4C: .4byte @08005FA2 .4byte @080060BC .4byte @080060BC .4byte @0800611C .4byte @0800611C .4byte @08005FEA .4byte @08005F78 .4byte @08005F6C @08005F6C: ldr r0, [sp] cmp r5, r0 bls @08005F74 str r5, [sp] @08005F74: movs r5, 0 b @0800611C @08005F78: adds r4, 0x1 ldrb r0, [r4] cmp r0, 0x3 beq @08005F98 cmp r0, 0x3 bgt @08005F8A cmp r0, 0x2 beq @08005F90 b @08005F02 @08005F8A: cmp r0, 0x4 beq @08005FA0 b @08005F02 @08005F90: ldr r6, =0x02021cc4 b @08005FA2 .align 2, 0 .pool @08005F98: ldr r6, =0x02021dc4 b @08005FA2 .align 2, 0 .pool @08005FA0: ldr r6, =0x02021ec4 @08005FA2: cmp r6, 0 bne @08005FE0 adds r4, 0x1 ldrb r0, [r4] bl sub_81AFC74 adds r6, r0, 0 b @08005FE0 .align 2, 0 .pool @08005FB8: ldrb r0, [r6] adds r6, 0x1 mov r1, r9 bl _call_via_r8 cmp r7, 0 ble @08005FD0 cmp r0, r7 bge @08005FCC adds r0, r7, 0 @08005FCC: adds r5, r0 b @08005FE0 @08005FD0: adds r5, r0 mov r2, r9 cmp r2, 0 beq @08005FE0 ldrb r0, [r4, 0x1] cmp r0, 0xFF beq @08005FE0 add r5, r10 @08005FE0: ldrb r0, [r6] cmp r0, 0xFF bne @08005FB8 movs r6, 0 b @0800611C @08005FEA: adds r4, 0x1 ldrb r0, [r4] subs r0, 0x1 cmp r0, 0x15 bls @08005FF6 b @0800611C @08005FF6: lsls r0, 2 ldr r1, =@08006004 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 .pool .align 2, 0 @08006004: .4byte @08006060 .4byte @08006060 .4byte @08006060 .4byte @0800605C .4byte @08006060 .4byte @08006064 .4byte @0800611C .4byte @08006060 .4byte @0800611C .4byte @0800611C .4byte @0800605E .4byte @08006060 .4byte @08006060 .4byte @08006060 .4byte @0800611C .4byte @0800605E .4byte @08006090 .4byte @08006098 .4byte @0800609E .4byte @080060AA .4byte @080060B0 .4byte @080060B6 @0800605C: adds r4, 0x1 @0800605E: adds r4, 0x1 @08006060: adds r4, 0x1 b @0800611C @08006064: adds r4, 0x1 ldrb r0, [r4] bl GetFontWidthFunc mov r8, r0 cmp r0, 0 bne @08006074 b @08005F02 @08006074: ldr r0, [sp, 0x4] asrs r1, r0, 16 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne @0800611C ldrb r0, [r4] movs r1, 0x2 bl fbox_get_field lsls r0, 24 lsrs r0, 24 mov r10, r0 b @0800611C @08006090: adds r4, 0x1 ldrb r0, [r4] @08006094: adds r5, r0 b @0800611C @08006098: adds r4, 0x1 ldrb r5, [r4] b @0800611C @0800609E: adds r4, 0x1 ldrb r0, [r4] cmp r0, r5 bls @0800611C adds r5, r0, 0 b @0800611C @080060AA: adds r4, 0x1 ldrb r7, [r4] b @0800611C @080060B0: movs r2, 0x1 mov r9, r2 b @0800611C @080060B6: movs r0, 0 mov r9, r0 b @0800611C @080060BC: ldrb r0, [r4] cmp r0, 0xF9 bne @080060D6 adds r4, 0x1 ldrb r0, [r4] movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 orrs r0, r1 mov r1, r9 bl _call_via_r8 b @080060E2 @080060D6: adds r4, 0x1 ldrb r0, [r4] bl Font_ReturnsValueFromLUT lsls r0, 24 lsrs r0, 24 @080060E2: cmp r7, 0 ble @080060EE cmp r0, r7 bge @08006094 adds r0, r7, 0 b @08006094 @080060EE: adds r5, r0 mov r0, r9 cmp r0, 0 beq @0800611C b @08006114 @080060F8: adds r0, r1, 0 mov r1, r9 bl _call_via_r8 cmp r7, 0 ble @0800610C cmp r0, r7 bge @08006094 adds r0, r7, 0 b @08006094 @0800610C: adds r5, r0 mov r2, r9 cmp r2, 0 beq @0800611C @08006114: ldrb r0, [r4, 0x1] cmp r0, 0xFF beq @0800611C add r5, r10 @0800611C: adds r4, 0x1 @0800611E: ldrb r0, [r4] cmp r0, 0xFF beq @08006126 b @08005F30 @08006126: ldr r0, [sp] cmp r5, r0 bls @0800612E adds r0, r5, 0 @0800612E: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end font_get_width_of_string thumb_func_start font_render_some ; int font_render_some(char *pixels, u8 font, int a3) font_render_some: ; 8006140 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 mov r9, r0 adds r6, r2, 0 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x4] mov r4, sp adds r4, 0x1 mov r5, sp adds r5, 0x2 mov r0, sp adds r1, r4, 0 adds r2, r5, 0 bl save_remo_colors movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0 str r0, [sp, 0xC] movs r0, 0x3 mov r10, r0 movs r0, 0x1 movs r1, 0 movs r2, 0x3 bl GenerateFontHalfRowLut adds r7, r6, 0 movs r6, 0 @08006182: adds r0, r7, r6 ldrb r0, [r0] mov r8, r0 adds r6, 0x1 subs r0, 0xF7 cmp r0, 0x8 bhi @0800627E lsls r0, 2 ldr r1, =@080061A0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 .pool .align 2, 0 @080061A0: .4byte @08006276 .4byte @08006276 .4byte @08006276 .4byte @080062B8 .4byte @080062B8 .4byte @080061C4 .4byte @08006276 .4byte @080062B8 .4byte @080062B8 @080061C4: adds r0, r7, r6 ldrb r0, [r0] adds r6, 0x1 subs r0, 0x1 cmp r0, 0x15 bhi @080062B8 lsls r0, 2 ldr r1, =@080061E0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 .pool .align 2, 0 @080061E0: .4byte @0800624A .4byte @08006254 .4byte @0800625C .4byte @08006238 .4byte @08006276 .4byte @08006270 .4byte @080062B8 .4byte @08006276 .4byte @080062B8 .4byte @080062B8 .4byte @0800627A .4byte @08006276 .4byte @08006276 .4byte @08006276 .4byte @080062B8 .4byte @0800627A .4byte @08006276 .4byte @08006276 .4byte @08006276 .4byte @08006276 .4byte @080062B8 .4byte @080062B8 @08006238: adds r0, r7, r6 ldrb r0, [r0] str r0, [sp, 0x8] adds r6, 0x1 adds r0, r7, r6 ldrb r0, [r0] str r0, [sp, 0xC] adds r6, 0x1 b @0800625C @0800624A: adds r0, r7, r6 ldrb r0, [r0] str r0, [sp, 0x8] adds r6, 0x1 b @08006266 @08006254: adds r0, r7, r6 ldrb r0, [r0] str r0, [sp, 0xC] b @08006262 @0800625C: adds r0, r7, r6 ldrb r0, [r0] mov r10, r0 @08006262: adds r6, 0x1 ldr r0, [sp, 0x8] @08006266: ldr r1, [sp, 0xC] mov r2, r10 bl GenerateFontHalfRowLut b @080062B8 @08006270: adds r0, r7, r6 ldrb r0, [r0] str r0, [sp, 0x4] @08006276: adds r6, 0x1 b @080062B8 @0800627A: adds r6, 0x1 b @08006276 @0800627E: ldr r0, [sp, 0x4] cmp r0, 0x1 beq @08006290 cmp r0, 0x9 bne @08006290 mov r0, r8 bl DecompressGlyphFont9 b @08006298 @08006290: mov r0, r8 movs r1, 0x1 bl DecompressGlyphFont1 @08006298: ldr r4, =0x03002f90 ldr r5, =0x04000008 adds r0, r4, 0 mov r1, r9 adds r2, r5, 0 bl CpuSet adds r4, 0x40 mov r1, r9 adds r1, 0x20 adds r0, r4, 0 adds r2, r5, 0 bl CpuSet movs r0, 0x40 add r9, r0 @080062B8: mov r0, r8 cmp r0, 0xFF beq @080062C0 b @08006182 @080062C0: mov r0, sp mov r1, sp adds r1, 0x1 mov r2, sp adds r2, 0x2 bl restore_remo_colors movs r0, 0x1 add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 .pool thumb_func_end font_render_some thumb_func_start TextBox_DrawKeypadIcon TextBox_DrawKeypadIcon: ; 80062E8 push {r4,r5,lr} sub sp, 0x18 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsls r2, 16 lsrs r2, 16 lsls r3, 16 lsrs r3, 16 ldr r4, =gKeypadIcons lsrs r1, 22 adds r1, r4 ldrh r5, [r1] lsls r5, 5 ldr r4, =gKeypadIconTiles adds r5, r4 movs r4, 0x80 str r4, [sp] str r4, [sp, 0x4] str r2, [sp, 0x8] str r3, [sp, 0xC] ldrb r4, [r1, 0x2] str r4, [sp, 0x10] ldrb r1, [r1, 0x3] str r1, [sp, 0x14] adds r1, r5, 0 movs r2, 0 movs r3, 0 bl Window_CopyPixelRectToWindow adds r0, r4, 0 add sp, 0x18 pop {r4,r5} pop {r1} bx r1 .align 2, 0 .pool thumb_func_end TextBox_DrawKeypadIcon thumb_func_start sub_8006338 sub_8006338: ; 8006338 lsls r0, 24 ldr r1, =gKeypadIcons lsrs r0, 22 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 .pool thumb_func_end sub_8006338 thumb_func_start Font_ReturnsValueFromLUT Font_ReturnsValueFromLUT: ; 8006348 lsls r0, 24 ldr r1, =gKeypadIcons lsrs r0, 22 adds r0, r1 ldrb r0, [r0, 0x2] bx lr .align 2, 0 .pool thumb_func_end Font_ReturnsValueFromLUT thumb_func_start sub_8006358 sub_8006358: ; 8006358 lsls r0, 24 ldr r1, =gKeypadIcons lsrs r0, 22 adds r0, r1 ldrb r0, [r0, 0x3] bx lr .align 2, 0 .pool thumb_func_end sub_8006358 thumb_func_start fboxes_set_default_ptr fboxes_set_default_ptr: ; 8006368 push {lr} ldr r0, =gFontInfos bl fboxes_set_ptr pop {r0} bx r0 .align 2, 0 .pool thumb_func_end fboxes_set_default_ptr thumb_func_start fbox_get_field fbox_get_field: ; 8006378 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r1, 24 movs r0, 0 cmp r1, 0x7 bhi @08006456 lsls r0, r1, 2 ldr r1, =@08006398 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 .pool .align 2, 0 @08006398: .4byte @080063B8 .4byte @080063CC .4byte @080063E0 .4byte @080063F4 .4byte @08006408 .4byte @0800641C .4byte @08006430 .4byte @08006448 @080063B8: ldr r1, =gFontInfos lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x4] b @08006456 .align 2, 0 .pool @080063CC: ldr r1, =gFontInfos lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x5] b @08006456 .align 2, 0 .pool @080063E0: ldr r1, =gFontInfos lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x6] b @08006456 .align 2, 0 .pool @080063F4: ldr r1, =gFontInfos lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x7] b @08006456 .align 2, 0 .pool @08006408: ldr r0, =gFontInfos lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x8] b @0800643C .align 2, 0 .pool @0800641C: ldr r0, =gFontInfos lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x8] b @08006454 .align 2, 0 .pool @08006430: ldr r0, =gFontInfos lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x9] @0800643C: lsls r0, 28 lsrs r0, 28 b @08006456 .align 2, 0 .pool @08006448: ldr r0, =gFontInfos lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x9] @08006454: lsrs r0, 4 @08006456: pop {r1} bx r1 .align 2, 0 .pool thumb_func_end fbox_get_field thumb_func_start GetMenuCursorDimensionByFont ; u8 GetMenuCursorDimensionByFont(u8 fontId, u8 whichDimension) GetMenuCursorDimensionByFont: ; 8006460 lsls r0, 24 lsls r1, 24 lsrs r1, 24 ldr r2, =gMenuCursorDimensions lsrs r0, 23 adds r1, r0 adds r1, r2 ldrb r0, [r1] bx lr .align 2, 0 .pool thumb_func_end GetMenuCursorDimensionByFont thumb_func_start DecompressGlyphFont0 DecompressGlyphFont0: ; 8006478 push {r4,r5,lr} lsls r0, 16 lsrs r3, r0, 16 cmp r1, 0x1 bne @080064C4 lsrs r2, r0, 20 lsls r2, 9 movs r0, 0xF ands r0, r3 lsls r0, 4 ldr r1, =gFont0JapaneseGlyphs adds r0, r1 adds r5, r2, r0 ldr r4, =0x03002f90 adds r0, r5, 0 adds r1, r4, 0 bl DecompressGlyphTile movs r1, 0x80 lsls r1, 1 adds r0, r5, r1 adds r1, r4, 0 adds r1, 0x40 bl DecompressGlyphTile adds r1, r4, 0 adds r1, 0x80 movs r0, 0x8 strb r0, [r1] adds r4, 0x81 movs r0, 0xC strb r0, [r4] b @08006534 .align 2, 0 .pool @080064C4: lsls r1, r3, 6 ldr r0, =gFont0LatinGlyphs adds r5, r1, r0 ldr r4, =0x03002f90 ldr r0, =gFont0LatinGlyphWidths adds r0, r3, r0 ldrb r1, [r0] adds r0, r4, 0 adds r0, 0x80 strb r1, [r0] cmp r1, 0x8 bhi @08006500 adds r0, r5, 0 adds r1, r4, 0 bl DecompressGlyphTile adds r0, r5, 0 adds r0, 0x20 adds r1, r4, 0 adds r1, 0x40 bl DecompressGlyphTile b @0800652C .align 2, 0 .pool @08006500: adds r0, r5, 0 adds r1, r4, 0 bl DecompressGlyphTile adds r0, r5, 0 adds r0, 0x10 adds r1, r4, 0 adds r1, 0x20 bl DecompressGlyphTile adds r0, r5, 0 adds r0, 0x20 adds r1, r4, 0 adds r1, 0x40 bl DecompressGlyphTile adds r0, r5, 0 adds r0, 0x30 adds r1, r4, 0 adds r1, 0x60 bl DecompressGlyphTile @0800652C: ldr r0, =0x03002f90 adds r0, 0x81 movs r1, 0xD strb r1, [r0] @08006534: pop {r4,r5} pop {r0} bx r0 .align 2, 0 .pool thumb_func_end DecompressGlyphFont0 thumb_func_start GetGlyphWidthFont0 GetGlyphWidthFont0: ; 8006540 push {lr} lsls r0, 16 lsrs r2, r0, 16 cmp r1, 0x1 beq @08006558 ldr r0, =gFont0LatinGlyphWidths adds r0, r2, r0 ldrb r0, [r0] b @0800655A .align 2, 0 .pool @08006558: movs r0, 0x8 @0800655A: pop {r1} bx r1 thumb_func_end GetGlyphWidthFont0 thumb_func_start DecompressGlyphFont7 DecompressGlyphFont7: ; 8006560 push {r4-r6,lr} lsls r0, 16 lsrs r3, r0, 16 cmp r1, 0x1 bne @080065AC lsrs r2, r0, 20 lsls r2, 9 movs r5, 0xF adds r0, r3, 0 ands r0, r5 lsls r0, 4 ldr r1, =gFont1JapaneseGlyphs adds r0, r1 adds r6, r2, r0 ldr r4, =0x03002f90 adds r0, r6, 0 adds r1, r4, 0 bl DecompressGlyphTile movs r1, 0x80 lsls r1, 1 adds r0, r6, r1 adds r1, r4, 0 adds r1, 0x40 bl DecompressGlyphTile adds r1, r4, 0 adds r1, 0x80 movs r0, 0x8 strb r0, [r1] adds r4, 0x81 strb r5, [r4] b @0800661C .align 2, 0 .pool @080065AC: lsls r1, r3, 6 ldr r0, =gFont7LatinGlyphs adds r6, r1, r0 ldr r4, =0x03002f90 ldr r0, =gFont7LatinGlyphWidths adds r0, r3, r0 ldrb r1, [r0] adds r0, r4, 0 adds r0, 0x80 strb r1, [r0] cmp r1, 0x8 bhi @080065E8 adds r0, r6, 0 adds r1, r4, 0 bl DecompressGlyphTile adds r0, r6, 0 adds r0, 0x20 adds r1, r4, 0 adds r1, 0x40 bl DecompressGlyphTile b @08006614 .align 2, 0 .pool @080065E8: adds r0, r6, 0 adds r1, r4, 0 bl DecompressGlyphTile adds r0, r6, 0 adds r0, 0x10 adds r1, r4, 0 adds r1, 0x20 bl DecompressGlyphTile adds r0, r6, 0 adds r0, 0x20 adds r1, r4, 0 adds r1, 0x40 bl DecompressGlyphTile adds r0, r6, 0 adds r0, 0x30 adds r1, r4, 0 adds r1, 0x60 bl DecompressGlyphTile @08006614: ldr r0, =0x03002f90 adds r0, 0x81 movs r1, 0xF strb r1, [r0] @0800661C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 .pool thumb_func_end DecompressGlyphFont7 thumb_func_start GetGlyphWidthFont7 GetGlyphWidthFont7: ; 8006628 push {lr} lsls r0, 16 lsrs r2, r0, 16 cmp r1, 0x1 beq @08006640 ldr r0, =gFont7LatinGlyphWidths adds r0, r2, r0 ldrb r0, [r0] b @08006642 .align 2, 0 .pool @08006640: movs r0, 0x8 @08006642: pop {r1} bx r1 thumb_func_end GetGlyphWidthFont7 thumb_func_start DecompressGlyphFont8 ; void DecompressGlyphFont8(u16 glyphIndex, bool japanese) DecompressGlyphFont8: ; 8006648 push {r4,r5,lr} lsls r0, 16 lsrs r3, r0, 16 cmp r1, 0x1 bne @08006694 lsrs r2, r0, 20 lsls r2, 9 movs r0, 0xF ands r0, r3 lsls r0, 4 ldr r1, =gFont0JapaneseGlyphs adds r0, r1 adds r5, r2, r0 ldr r4, =0x03002f90 adds r0, r5, 0 adds r1, r4, 0 bl DecompressGlyphTile movs r1, 0x80 lsls r1, 1 adds r0, r5, r1 adds r1, r4, 0 adds r1, 0x40 bl DecompressGlyphTile adds r1, r4, 0 adds r1, 0x80 movs r0, 0x8 strb r0, [r1] adds r4, 0x81 movs r0, 0xC strb r0, [r4] b @08006704 .align 2, 0 .pool @08006694: lsls r1, r3, 6 ldr r0, =gFont8LatinGlyphs adds r5, r1, r0 ldr r4, =0x03002f90 ldr r0, =gFont8LatinGlyphWidths adds r0, r3, r0 ldrb r1, [r0] adds r0, r4, 0 adds r0, 0x80 strb r1, [r0] cmp r1, 0x8 bhi @080066D0 adds r0, r5, 0 adds r1, r4, 0 bl DecompressGlyphTile adds r0, r5, 0 adds r0, 0x20 adds r1, r4, 0 adds r1, 0x40 bl DecompressGlyphTile b @080066FC .align 2, 0 .pool @080066D0: adds r0, r5, 0 adds r1, r4, 0 bl DecompressGlyphTile adds r0, r5, 0 adds r0, 0x10 adds r1, r4, 0 adds r1, 0x20 bl DecompressGlyphTile adds r0, r5, 0 adds r0, 0x20 adds r1, r4, 0 adds r1, 0x40 bl DecompressGlyphTile adds r0, r5, 0 adds r0, 0x30 adds r1, r4, 0 adds r1, 0x60 bl DecompressGlyphTile @080066FC: ldr r0, =0x03002f90 adds r0, 0x81 movs r1, 0xC strb r1, [r0] @08006704: pop {r4,r5} pop {r0} bx r0 .align 2, 0 .pool thumb_func_end DecompressGlyphFont8 thumb_func_start GetGlyphWidthFont8 GetGlyphWidthFont8: ; 8006710 push {lr} lsls r0, 16 lsrs r2, r0, 16 cmp r1, 0x1 beq @08006728 ldr r0, =gFont8LatinGlyphWidths adds r0, r2, r0 ldrb r0, [r0] b @0800672A .align 2, 0 .pool @08006728: movs r0, 0x8 @0800672A: pop {r1} bx r1 thumb_func_end GetGlyphWidthFont8 thumb_func_start DecompressGlyphFont2 DecompressGlyphFont2: ; 8006730 push {r4-r6,lr} lsls r0, 16 lsrs r6, r0, 16 cmp r1, 0x1 bne @080067A0 lsrs r2, r0, 19 lsls r2, 9 movs r0, 0x7 ands r0, r6 lsls r0, 5 ldr r1, =gFont2JapaneseGlyphs adds r0, r1 adds r4, r2, r0 ldr r5, =0x03002f90 adds r0, r4, 0 adds r1, r5, 0 bl DecompressGlyphTile adds r0, r4, 0 adds r0, 0x10 adds r1, r5, 0 adds r1, 0x20 bl DecompressGlyphTile movs r1, 0x80 lsls r1, 1 adds r0, r4, r1 adds r1, r5, 0 adds r1, 0x40 bl DecompressGlyphTile movs r1, 0x88 lsls r1, 1 adds r0, r4, r1 adds r1, r5, 0 adds r1, 0x60 bl DecompressGlyphTile ldr r0, =gFont2JapaneseGlyphWidths adds r0, r6, r0 ldrb r1, [r0] adds r0, r5, 0 adds r0, 0x80 strb r1, [r0] adds r1, r5, 0 adds r1, 0x81 movs r0, 0xE strb r0, [r1] b @08006810 .align 2, 0 .pool @080067A0: lsls r1, r6, 6 ldr r0, =gFont2LatinGlyphs adds r4, r1, r0 ldr r5, =0x03002f90 ldr r0, =gFont2LatinGlyphWidths adds r0, r6, r0 ldrb r1, [r0] adds r0, r5, 0 adds r0, 0x80 strb r1, [r0] cmp r1, 0x8 bhi @080067DC adds r0, r4, 0 adds r1, r5, 0 bl DecompressGlyphTile adds r0, r4, 0 adds r0, 0x20 adds r1, r5, 0 adds r1, 0x40 bl DecompressGlyphTile b @08006808 .align 2, 0 .pool @080067DC: adds r0, r4, 0 adds r1, r5, 0 bl DecompressGlyphTile adds r0, r4, 0 adds r0, 0x10 adds r1, r5, 0 adds r1, 0x20 bl DecompressGlyphTile adds r0, r4, 0 adds r0, 0x20 adds r1, r5, 0 adds r1, 0x40 bl DecompressGlyphTile adds r0, r4, 0 adds r0, 0x30 adds r1, r5, 0 adds r1, 0x60 bl DecompressGlyphTile @08006808: ldr r0, =0x03002f90 adds r0, 0x81 movs r1, 0xE strb r1, [r0] @08006810: pop {r4-r6} pop {r0} bx r0 .align 2, 0 .pool thumb_func_end DecompressGlyphFont2 thumb_func_start GetGlyphWidthFont2 GetGlyphWidthFont2: ; 800681C push {lr} lsls r0, 16 lsrs r2, r0, 16 cmp r1, 0x1 beq @08006830 ldr r0, =gFont2LatinGlyphWidths b @08006832 .align 2, 0 .pool @08006830: ldr r0, =gFont2JapaneseGlyphWidths @08006832: adds r0, r2, r0 ldrb r0, [r0] pop {r1} bx r1 .align 2, 0 .pool thumb_func_end GetGlyphWidthFont2 thumb_func_start DecompressGlyphFont1 ; void DecompressGlyphFont1(int a1, int japanese) DecompressGlyphFont1: ; 8006840 push {r4-r6,lr} lsls r0, 16 lsrs r3, r0, 16 cmp r1, 0x1 bne @0800688C lsrs r2, r0, 20 lsls r2, 9 movs r5, 0xF adds r0, r3, 0 ands r0, r5 lsls r0, 4 ldr r1, =gFont1JapaneseGlyphs adds r0, r1 adds r6, r2, r0 ldr r4, =0x03002f90 adds r0, r6, 0 adds r1, r4, 0 bl DecompressGlyphTile movs r1, 0x80 lsls r1, 1 adds r0, r6, r1 adds r1, r4, 0 adds r1, 0x40 bl DecompressGlyphTile adds r1, r4, 0 adds r1, 0x80 movs r0, 0x8 strb r0, [r1] adds r4, 0x81 strb r5, [r4] b @080068FC .align 2, 0 .pool @0800688C: lsls r1, r3, 6 ldr r0, =gFont1LatinGlyphs adds r6, r1, r0 ldr r4, =0x03002f90 ldr r0, =gFont1LatinGlyphWidths adds r0, r3, r0 ldrb r1, [r0] adds r0, r4, 0 adds r0, 0x80 strb r1, [r0] cmp r1, 0x8 bhi @080068C8 adds r0, r6, 0 adds r1, r4, 0 bl DecompressGlyphTile adds r0, r6, 0 adds r0, 0x20 adds r1, r4, 0 adds r1, 0x40 bl DecompressGlyphTile b @080068F4 .align 2, 0 .pool @080068C8: adds r0, r6, 0 adds r1, r4, 0 bl DecompressGlyphTile adds r0, r6, 0 adds r0, 0x10 adds r1, r4, 0 adds r1, 0x20 bl DecompressGlyphTile adds r0, r6, 0 adds r0, 0x20 adds r1, r4, 0 adds r1, 0x40 bl DecompressGlyphTile adds r0, r6, 0 adds r0, 0x30 adds r1, r4, 0 adds r1, 0x60 bl DecompressGlyphTile @080068F4: ldr r0, =0x03002f90 adds r0, 0x81 movs r1, 0xF strb r1, [r0] @080068FC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 .pool thumb_func_end DecompressGlyphFont1 thumb_func_start GetGlyphWidthFont1 GetGlyphWidthFont1: ; 8006908 push {lr} lsls r0, 16 lsrs r2, r0, 16 cmp r1, 0x1 beq @08006920 ldr r0, =gFont1LatinGlyphWidths adds r0, r2, r0 ldrb r0, [r0] b @08006922 .align 2, 0 .pool @08006920: movs r0, 0x8 @08006922: pop {r1} bx r1 thumb_func_end GetGlyphWidthFont1 thumb_func_start DecompressGlyphFont9 DecompressGlyphFont9: ; 8006928 push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 20 lsls r4, 9 movs r1, 0xF0 lsls r1, 12 ands r1, r0 lsrs r1, 12 ldr r0, =gFont9JapaneseGlyphs adds r1, r0 adds r4, r1 ldr r5, =0x03002f90 adds r0, r4, 0 adds r1, r5, 0 bl DecompressGlyphTile movs r0, 0x80 lsls r0, 1 adds r4, r0 adds r1, r5, 0 adds r1, 0x40 adds r0, r4, 0 bl DecompressGlyphTile adds r1, r5, 0 adds r1, 0x80 movs r0, 0x8 strb r0, [r1] adds r5, 0x81 movs r0, 0xC strb r0, [r5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 .pool thumb_func_end DecompressGlyphFont9