I have code in C:int a() {     char string[100];}When I compile this I get code in assembly:a:    push    rbp    mov rbp, rsp    sub rsp, 112    mov rax, QWORD PTR fs:40  <----    mov QWORD PTR [rbp-8], rax <----    xor eax, eax    nop    mov rdx, QWORD PTR [rbp-8]    xor rdx, QWORD PTR fs:40    je  .L2    call    __stack_chk_failWhat make lines that I checked ? What is it fs:40 ? (always when I make a array in c) and what is in rbp-12 ? nothing ?
what means this lines in assembly program (compile from c)?
assembly;c