Buenas, respecto a la instruccion:
006A7C31 |. 0FA305 3C7C6A>BT DWORD PTR DS:[6A7C3C],EAX
lo que hace es copiar el número de bit del primer operando que indique el segundo operando (entre 0 y 31) en el flag de acarreo, o sea que dentro de la direccion [6A7C3C] si eax vale 1 copiara el primero, si vale dos el segundo, y asi
respecto a la instruccion:
006A7C38 |> 0F92C0 SETB AL
lo que hace es poner a 1 el bit indicado (Al) si el flag de acarreo es 1
Entonces, lo que supongo es que para la direccion [6A7C3C], cuando eax vale 17 te pone el flag de acarreo con un valor distinto de cero, por eso es que la instruccion siguiente te pone un 1 en AL. Cuando vale 15 o 16 lo mas probable es que el bit que copie en el CF (carry flag) sea un 0
Espero haberte ayudado (y no haberme equivocado
)
Saludos