CBZ
Compare and Branch on Zero compares the value in a register with zero, and conditionally branches to a label at a PC-relative offset if the comparison is equal. It provides a hint that this is not a subroutine call or return. This instruction does not affect condition flags.
比较(Compare),如果结果为零(Zero)就转移(只能跳到后面的指令) 1MB。
402c6c: b90013e0 str w0, [sp, #16] // [sp, #16] = len
402c70: 93407c01 sxtw x1, w0 // x1=len
402c74: f90047e1 str x1, [sp, #136] // [sp, #136] = len
402c78: aa0103e0 mov x0, x1 // x0=len
402c7c: 97fffbc1 bl 401b80 <malloc@plt> // malloc(len)
402c80: aa0003f5 mov x21, x0 // x21=x0=malloc(len)
402c84: b4001060 cbz x0, 402e90 <ferror@plt+0xfb0> // exit(2)
char *path = NULL;
if ((path = malloc(len) == NULL) {
// cbz 402e90
exit(2);
}