The concept is basically this:
repeat
if OpenBankFast('location here') then
if WaitFunc(@BankScreen, 200, 3000) then
begin
Withdraw(0, 0, 0);
wait(250+random(150));
CloseBank;
wait(250+random(150));
MouseItem(1, mouse_left);
wait(250+random(150));
//MMouse to click the sapphire...
ClickMouse2(mouse_left);
//wait until completion here... DTM or whatever
//MarkTime(t); //basic timeout failsafe
while not checkComplete do
begin
wait(200+random(50);
//if TimeFromMark(t) > {decide} then break;
end;
end;
until not LoggedIn;