Iterative Implementation of Negamax Alpha-Beta
Some quick suggestions:


Split the code into smaller methods, with understandable names - it will become simpler!
Use clear variable names (even if they are longer) and try to avoid "shortenings";
Never use less than 3 characters for variable names... le? r? mv?!? (int i in for cycles is an exception because it is idiomatic);
Use PascalCase (not camelCase) for methods and properties;
Use camelCase (not lowercase) for local variables;
Don't repeat code (var le = legals(bd); while (le.Any()) { ... }), extract it to a method.