That is AT&T syntax, in Intel syntax it would be:
cmp ebx,[esi+4]
Note that the order of operands is reversed.
In Intel syntax it's dest, src. In AT&T it's src, dest.
So basically that instruction compares ebx
with the dword value stored in [esi+4]
by subtracting the dword value stored in [esi+4]
from ebx
, just like sub
would do, but cmp
only updates flags, it doesn't store the result anywhere.