Since yesterday am trying to understand a challenge named hidden password from crackmes.
Isn't call instructions used for functions only? Why is it used with register? I did not find anything about that. (Look at 0x557d18421542)
    :> pid 20  @ 0x557d18421511
0x557d18421511       488b85d0feffff  mov rax, qword [rbp - 0x130]
0x557d18421518             4883c008  add rax, 8
0x557d1842151c               488b00  mov rax, qword [rax]
0x557d1842151f               4889c7  mov rdi, rax
0x557d18421522           e819fbffff  call sym.imp.strlen
0x557d18421527               4889c1  mov rcx, rax
0x557d1842152a       488b85d0feffff  mov rax, qword [rbp - 0x130]
0x557d18421531             4883c008  add rax, 8
0x557d18421535               488b00  mov rax, qword [rax]
0x557d18421538             488b55d0  mov rdx, qword [rbp - 0x30]
0x557d1842153c               4889ce  mov rsi, rcx
0x557d1842153f               4889c7  mov rdi, rax
0x557d18421542                 ffd2  call rdx
0x557d18421544               8945c8  mov dword [rbp - 0x38], eax
0x557d18421547             837dc800  cmp dword [rbp - 0x38], 0
0x557d1842154b                 740e  je 0x557d1842155b
0x557d1842154d       488d3dc20a0000  lea rdi, [rip + 0xac2]
0x557d18421554           e8d7faffff  call sym.imp.puts
0x557d18421559                 eb2c  jmp 0x557d18421587
Is it valid? If it is what does it do? Thank you