If we convert the abstract code back to Erlang, the interesting part starts like this and goes on for 288K lines:
case_fn(_binary@1, _acc@1) ->
case _binary@1 of
<<",", _@1/binary>> -> case_fn(_@1, [<<",">> | _acc@1]);
<<"0", _@2/binary>> -> case_fn(_@2, [<<"0">> | _acc@1]);
<<"1", _@3/binary>> -> case_fn(_@3, [<<"1">> | _acc@1]);
<<"2", _@4/binary>> -> case_fn(_@4, [<<"2">> | _acc@1]);
<<"3", _@5/binary>> -> case_fn(_@5, [<<"3">> | _acc@1]);
<<"4", _@6/binary>> -> case_fn(_@6, [<<"4">> | _acc@1]);
<<"5", _@7/binary>> -> case_fn(_@7, [<<"5">> | _acc@1]);
<<"6", _@8/binary>> -> case_fn(_@8, [<<"6">> | _acc@1]);
<<"7", _@9/binary>> -> case_fn(_@9, [<<"7">> | _acc@1]);
<<"8", _@10/binary>> ->
case_fn(_@10, [<<"8">> | _acc@1]);
<<"9", _@11/binary>> ->
case_fn(_@11, [<<"9">> | _acc@1]);
<<"A", _@12/binary>> ->
case_fn(_@12, [<<"A">> | _acc@1]);
<<"B", _@13/binary>> ->
case_fn(_@13, [<<"B">> | _acc@1]);
<<"C", _@14/binary>> ->
case_fn(_@14, [<<"C">> | _acc@1]);
<<"D", _@15/binary>> ->
case_fn(_@15, [<<"D">> | _acc@1]);
......