1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
   | .text:00401000 ; int __cdecl main(int argc, const char **argv, const char **envp) .text:00401000 _main           proc near               ; CODE XREF: start+AF↓p .text:00401000 .text:00401000 argc            = dword ptr  4 .text:00401000 argv            = dword ptr  8 .text:00401000 envp            = dword ptr  0Ch .text:00401000 .text:00401000                 mov     eax, [esp+argc] .text:00401004                 add     eax, 0FFFFFFECh ; switch 20 cases .text:00401007                 cmp     eax, 13h .text:0040100A                 ja      short def_401014 ; jumptable 00401014 default case, cases 22,28-30,32-38 .text:0040100C                 xor     ecx, ecx .text:0040100E                 mov     cl, ds:byte_401094[eax] .text:00401014                 jmp     ds:jpt_401014[ecx*4] ; switch jump .text:0040101B ; --------------------------------------------------------------------------- .text:0040101B .text:0040101B loc_40101B:                             ; CODE XREF: _main+14↑j .text:0040101B                                         ; DATA XREF: .text:jpt_401014↓o .text:0040101B                 push    offset Format   ; jumptable 00401014 case 23 .text:00401020                 call    _printf .text:00401025                 add     esp, 4 .text:00401028                 xor     eax, eax .text:0040102A                 retn .text:0040102B ; --------------------------------------------------------------------------- .text:0040102B .text:0040102B loc_40102B:                             ; CODE XREF: _main+14↑j .text:0040102B                                         ; DATA XREF: .text:jpt_401014↓o .text:0040102B                 push    offset aArgc1   ; jumptable 00401014 case 24 .text:00401030                 call    _printf .text:00401035                 add     esp, 4 .text:00401038                 xor     eax, eax .text:0040103A                 retn .text:0040103B ; --------------------------------------------------------------------------- .text:0040103B .text:0040103B loc_40103B:                             ; CODE XREF: _main+14↑j .text:0040103B                                         ; DATA XREF: .text:jpt_401014↓o .text:0040103B                 push    offset aArgc2   ; jumptable 00401014 case 25 .text:00401040                 call    _printf .text:00401045                 add     esp, 4 .text:00401048                 xor     eax, eax .text:0040104A                 retn .text:0040104B ; --------------------------------------------------------------------------- .text:0040104B .text:0040104B loc_40104B:                             ; CODE XREF: _main+14↑j .text:0040104B                                         ; DATA XREF: .text:jpt_401014↓o .text:0040104B                 push    offset aArgc3   ; jumptable 00401014 case 26 .text:00401050                 call    _printf .text:00401055                 add     esp, 4 .text:00401058                 xor     eax, eax .text:0040105A                 retn .text:0040105B ; --------------------------------------------------------------------------- .text:0040105B .text:0040105B loc_40105B:                             ; CODE XREF: _main+14↑j .text:0040105B                                         ; DATA XREF: .text:jpt_401014↓o .text:0040105B                 push    offset aArgc4   ; jumptable 00401014 cases 20,21,27,31,39 .text:00401060                 call    _printf .text:00401065                 add     esp, 4 .text:00401068                 xor     eax, eax .text:0040106A                 retn .text:0040106B ; --------------------------------------------------------------------------- .text:0040106B .text:0040106B def_401014:                             ; CODE XREF: _main+A↑j .text:0040106B                                         ; _main+14↑j .text:0040106B                                         ; DATA XREF: ... .text:0040106B                 push    offset aHello   ; jumptable 00401014 default case, cases 22,28-30,32-38 .text:00401070                 call    _printf .text:00401075                 add     esp, 4 .text:00401078                 xor     eax, eax .text:0040107A                 retn .text:0040107A _main           endp .text:0040107A .text:0040107A ; --------------------------------------------------------------------------- .text:0040107B                 align 4 .text:0040107C jpt_401014      dd offset CASE_23    ; DATA XREF: _main+14↑r .text:0040107C                 dd offset loc_40101B    ; jump table for switch statement .text:0040107C                 dd offset loc_40102B .text:0040107C                 dd offset loc_40103B .text:0040107C                 dd offset loc_40104B .text:0040107C                 dd offset def_401014 .text:00401094 byte_401094     db      0,     0,     5,     1 .text:00401094                                         ; DATA XREF: _main+E↑r .text:00401094                 db      2,     3,     4,     0 ; indirect table for switch statement .text:00401094                 db      5,     5,     5,     0 .text:00401094                 db      5,     5,     5,     5 .text:00401094                 db      5,     5,     5,     0 .text:004010A8                 align 10h .text:004010B0
   |