NYVHTMLLUMBKBQSWO6SQDQ5KFACQLNCBRDDM5BH3OU6WWT54KC2AC VFH3EJPYSVGK6HYH4B3SVYG7LPBSHEPRRGRH2QRAC4KYWAV3SSIQC LWF4H4TMNZYUKTCVDALXQLBE3U5AXQJ3LLNUJJ7YGTLG6T2O33JAC WTTQGET65BQV7NSFOI75JGCTWFS6R73OFZE4V63JYWAODNIOUAHQC TB4YBE4CMWCLSKJ43QF6IU5HVYUUO33BLXVG7XDRLJS3IFIBQLYAC BL3ZR4OWJM54HFXUNMUZKB5YQYVBT7ETFIXCOXWL6S5SZFM6IFDQC TDHJSFFSJZBEZFMDHPLRSVB6CIVJ7AWGGNIC3WUCADQLQSIQKXDAC 6S6HHKOXBQ5ARL7S7PKMPDIAH3VTPOAPWWSMGY37RP2R2U662FBAC _ = @mulWithOverflow(Board.BoardType, mut_occupancy, bishop_magic[square.int()], &mut_occupancy);mut_occupancy >>= @intCast(Board.SquareType, @as(u7, 64) - bishop_relevant_bits[square.int()]);
mut_occupancy = @mulWithOverflow(mut_occupancy, bishop_magic[square.int()])[0];mut_occupancy >>= @intCast(Board.SquareType, @as(u7, 64) -bishop_relevant_bits[square.int()]);
_ = @mulWithOverflow(Board.BoardType, mut_occupancy, rook_magic[square.int()], &mut_occupancy);mut_occupancy >>= @intCast(Board.SquareType, @as(u7, 64) - rook_relevant_bits[square.int()]);
mut_occupancy = @mulWithOverflow(mut_occupancy, rook_magic[square.int()])[0];mut_occupancy >>= @intCast(Board.SquareType, @as(u7, 64) -rook_relevant_bits[square.int()]);
var tmp2: Board.BoardType = undefined; // FIXME: ugly_ = @mulWithOverflow(Board.BoardType, occupancies[index], magic, &tmp2);var magic_index: usize = @intCast(usize, tmp2 >> @intCast(Board.SquareType, @as(u7, 64) - relevant));
const tmp2 = @mulWithOverflow(occupancies[index], magic)[0];var magic_index: usize = @intCast(usize, tmp2 >>@intCast(Board.SquareType, @as(u7, 64) - relevant));
.white => if (@subWithOverflow(SquareType, source_square, 8, &target_square))continue,.black => if (@addWithOverflow(SquareType, source_square, 8, &target_square))continue,
.white => {const ts = @subWithOverflow(source_square, 8);if (ts[1] == 1) continue;target_square = ts[0];},.black => {const ts = @addWithOverflow(source_square, 8);if (ts[1] == 1) continue;target_square = ts[0];},