не оптимизированный
cmp eax, 0Bh ; switch 12 cases
; сравниваем a с 11
ja short loc_80483F5 ; default
; если a
>
11 выходим из оператора switch
;
jmp ds:off_804857C[eax*4] ; switch jump
; передаем управление соответствующему case-обработчику
; таким образом, мы имеем всего лишь одно сравнение и два ветвления
; // таблица смещений case-обработчиков
off_804857C dd offset loc_80483F5 ; DATA XREF: main+11^r
dd offset loc_80483E8 ; jump table for switch statement
dd offset loc_80483F9
dd offset loc_8048402
dd offset loc_804840B
dd offset loc_8048414
dd offset loc_804841D
dd offset loc_8048426
dd offset loc_804842F
dd offset loc_8048438
dd offset loc_8048441
dd offset loc_804844F