title: ARM LDR instruction with PC register as memory address
body: <p>I have this decompiled arm binary. The comments are based on <a href="https://stackoverflow.com/a/43257174/10231266">this answer</a>...</p>
  <pre><code>...
  12de3c0:       e59f6400        ldr     r6, [pc, #1024] ; load into r6 a word from offset 0x12de7c8 (0x12de3c0 + 0x8 + 1024)
  12de3c4:       e1a0a000        mov     sl, r0 ; ignore this
  12de3c8:       e1a09001        mov     r9, r1 ; ignore this
  12de3cc:       e08f6006        add     r6, pc, r6 ; r6 = pc + r6; so r6 = 0x12de3cc + 0x8 + 0x035cbf8f = 0x48AA363 ???
  12de3d0:       e5d60000        ldrb    r0, [r6] ; load a byte into r0 from the obtained address (0x48AA363)
  ...
  12de7c8:       035cbf8f        cmpeq   ip, #572        ; 0x23c
  ...
  </code></pre>
  <p>However, I am confused that 0x48AA363 exceeds the size of the binary, so there has to be a mistake in my assumptions. Where might I have misinterpreted the code ?</p>