Do you mean the je doesn't jump, and falls through? That means it executed but found the condition was false. That happens when the 4 bytes in memory don't match the 4 bytes in EAX, so cmp won't set ZF.
The only way for je to not execute would be if cmp caused a segmentation fault or something, so the program died before reaching the instruction after cmp.
And yes, you are decoding the AT&T addressing-mode syntax correctly, it's a scaled-index with no base register, just a disp32.) cmp isn't missing an argument, the addressing mode is missing a base (which is totally normal). %ebx is being used as a scaled index into a static array of dwords.
Referencing the contents of a memory location. (x86 addressing modes). (I'm not sure if there's a good link for AT&T syntax addressing modes, but what the machine can encode is fixed; AT&T and Intel syntax can both express every addressing mode the machine can do.)