struct BG3Cnt { u16 field_0:13; u16 field_d:1; u16 field_e:2; }; void sub_80789D4(bool8 a1) { // BUG: 8-bit access to an io reg is disallowed. #define BG3CNT (*(volatile struct BG3Cnt*)REG_ADDR_BG3CNT) if (!a1) { BG3CNT.field_e = 0; BG3CNT.field_d = 1; } else if (sub_8076BE0()) { BG3CNT.field_e = 0; BG3CNT.field_d = 1; } else { BG3CNT.field_e = 1; BG3CNT.field_d = 0; } }