void Menu_UpdateSelection(int *p) __attribute__((naked));
void Menu_UpdateSelection(int *p)
{
  (void)p;
  __asm__ volatile(
  ".syntax unified\n"
  ".thumb\n"
  "push {r4, r5, r6, lr}\n"
  "adds r3, r0, #0\n"
  "ldr r0, .Lp0\n"
  "ldr r4, [r0, #0]\n"
  "movs r2, #144\n"
  "lsls r2, r2, #5\n"
  "movs r5, #2\n"
  "movs r1, #206\n"
  "lsls r1, r1, #1\n"
  "adds r0, r3, r1\n"
  "ldr r1, [r0, #0]\n"
  "lsls r0, r1, #4\n"
  "subs r0, r0, r1\n"
  "lsls r0, r0, #2\n"
  "ldr r1, .Lp1\n"
  "adds r1, r0, r1\n"
  "ldr r6, .Lp2\n"
  "adds r0, r3, r6\n"
  "ldrb r0, [r0, #0]\n"
  "cmp r0, #0\n"
  "beq L2_%=\n"
  "movs r6, #128\n"
  "lsls r6, r6, #1\n"
  "adds r0, r6, #0\n"
  "orrs r2, r0\n"
  "ldr r0, [r1, #32]\n"
  "cmp r0, #1\n"
  "ble L2_%=\n"
  "movs r6, #128\n"
  "lsls r6, r6, #3\n"
  "adds r0, r6, #0\n"
  "orrs r2, r0\n"
  "L2_%=:\n"
  "movs r6, #225\n"
  "lsls r6, r6, #5\n"
  "adds r0, r4, r6\n"
  "ldrb r0, [r0, #0]\n"
  "cmp r0, #0\n"
  "beq L3_%=\n"
  "ldr r4, .Lp3\n"
  "adds r0, r3, r4\n"
  "ldrb r0, [r0, #0]\n"
  "cmp r0, #0\n"
  "bne L3_%=\n"
  "ldr r0, .Lp4\n"
  "ands r2, r0\n"
  "ldr r0, [r1, #32]\n"
  "cmp r0, #1\n"
  "ble L3_%=\n"
  "ldr r0, .Lp5\n"
  "ands r2, r0\n"
  "L3_%=:\n"
  "ldr r6, .Lp6\n"
  "adds r0, r3, r6\n"
  "ldr r0, [r0, #0]\n"
  "cmp r0, #1\n"
  "beq Lc1_%=\n"
  "cmp r0, #2\n"
  "beq Lc2_%=\n"
  "b Ljoin_%=\n"
  ".Lp0: .word 0x02000134\n"
  ".Lp1: .word 0x08028518\n"
  ".Lp2: .word 0x00002588\n"
  ".Lp3: .word 0x000025F0\n"
  ".Lp4: .word 0x0000FEFF\n"
  ".Lp5: .word 0x0000FBFF\n"
  ".Lp6: .word 0x00002534\n"
  "Lc1_%=:\n"
  "movs r1, #128\n"
  "lsls r1, r1, #4\n"
  "adds r0, r1, #0\n"
  "orrs r2, r0\n"
  "lsls r0, r2, #16\n"
  "lsrs r2, r0, #16\n"
  "movs r5, #2\n"
  "b Ljoin_%=\n"
  "Lc2_%=:\n"
  "movs r4, #192\n"
  "lsls r4, r4, #4\n"
  "adds r0, r4, #0\n"
  "orrs r2, r0\n"
  "movs r5, #1\n"
  "Ljoin_%=:\n"
  "ldr r0, .Lp7\n"
  "ldr r1, [r0, #0]\n"
  "strh r2, [r1, #0]\n"
  "ldr r0, .Lp8\n"
  "strh r0, [r1, #16]\n"
  "subs r0, #251\n"
  "strh r0, [r1, #20]\n"
  "movs r6, #216\n"
  "lsls r6, r6, #8\n"
  "adds r0, r6, #0\n"
  "orrs r5, r0\n"
  "strh r5, [r1, #24]\n"
  "ldr r0, .Lp9\n"
  "strh r0, [r1, #28]\n"
  "pop {r4, r5, r6}\n"
  "pop {r0}\n"
  "bx r0\n"
  ".Lp7: .word 0x02000144\n"
  ".Lp8: .word 0x00001703\n"
  ".Lp9: .word 0x0000DC01\n"
  ::: "r0","r1","r2","r3","r4","r5","r6","memory");
}
