user: Demonstrate the C code that generates the assembly output below:

```asm
<loadbackground>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %edi,-0x4(%rbp)
  mov    %rsi,-0x10(%rbp)
  mov    -0x10(%rbp),%rsi
  mov    -0x4(%rbp),%eax
  mov    $0x100,%r9d
  mov    $0x100,%r8d
  mov    $0x0,%ecx
  mov    $0x0,%edx
  mov    %eax,%edi
  call   <loadtexturetgapartial@plt>
  mov    -0x4(%rbp),%eax
  lea    0x1(%rax),%edi
  mov    -0x10(%rbp),%rax
  mov    $0x100,%r9d
  mov    $0x100,%r8d
  mov    $0x0,%ecx
  mov    $0x100,%edx
  mov    %rax,%rsi
  call   <loadtexturetgapartial@plt>
  mov    -0x4(%rbp),%eax
  lea    0x2(%rax),%edi
  mov    -0x10(%rbp),%rax
  mov    $0x100,%r9d
  mov    $0x100,%r8d
  mov    $0x0,%ecx
  mov    $0x200,%edx
  mov    %rax,%rsi
  call   <loadtexturetgapartial@plt>
  mov    -0x4(%rbp),%eax
  lea    0x3(%rax),%edi
  mov    -0x10(%rbp),%rax
  mov    $0x100,%r9d
  mov    $0x100,%r8d
  mov    $0x0,%ecx
  mov    $0x300,%edx
  mov    %rax,%rsi
  call   <loadtexturetgapartial@plt>
  mov    -0x4(%rbp),%eax
  lea    0x4(%rax),%edi
  mov    -0x10(%rbp),%rax
  mov    $0x100,%r9d
  mov    $0x100,%r8d
  mov    $0x100,%ecx
  mov    $0x0,%edx
  mov    %rax,%rsi
  call   <loadtexturetgapartial@plt>
  mov    -0x4(%rbp),%eax
  lea    0x5(%rax),%edi
  mov    -0x10(%rbp),%rax
  mov    $0x100,%r9d
  mov    $0x100,%r8d
  mov    $0x100,%ecx
  mov    $0x100,%edx
  mov    %rax,%rsi
  call   <loadtexturetgapartial@plt>
  mov    -0x4(%rbp),%eax
  lea    0x6(%rax),%edi
  mov    -0x10(%rbp),%rax
  mov    $0x100,%r9d
  mov    $0x100,%r8d
  mov    $0x100,%ecx
  mov    $0x200,%edx
  mov    %rax,%rsi
  call   <loadtexturetgapartial@plt>
  mov    -0x4(%rbp),%eax
  lea    0x7(%rax),%edi
  mov    -0x10(%rbp),%rax
  mov    $0x100,%r9d
  mov    $0x100,%r8d
  mov    $0x100,%ecx
  mov    $0x300,%edx
  mov    %rax,%rsi
  call   <loadtexturetgapartial@plt>
  mov    -0x4(%rbp),%eax
  lea    0x8(%rax),%edi
  mov    -0x10(%rbp),%rax
  mov    $0x100,%r9d
  mov    $0x100,%r8d
  mov    $0x200,%ecx
  mov    $0x0,%edx
  mov    %rax,%rsi
  call   <loadtexturetgapartial@plt>
  mov    -0x4(%rbp),%eax
  lea    0x9(%rax),%edi
  mov    -0x10(%rbp),%rax
  mov    $0x100,%r9d
  mov    $0x100,%r8d
  mov    $0x200,%ecx
  mov    $0x100,%edx
  mov    %rax,%rsi
  call   <loadtexturetgapartial@plt>
  mov    -0x4(%rbp),%eax
  lea    0xa(%rax),%edi
  mov    -0x10(%rbp),%rax
  mov    $0x100,%r9d
  mov    $0x100,%r8d
  mov    $0x200,%ecx
  mov    $0x200,%edx
  mov    %rax,%rsi
  call   <loadtexturetgapartial@plt>
  mov    -0x4(%rbp),%eax
  lea    0xb(%rax),%edi
  mov    -0x10(%rbp),%rax
  mov    $0x100,%r9d
  mov    $0x100,%r8d
  mov    $0x200,%ecx
  mov    $0x300,%edx
  mov    %rax,%rsi
  call   <loadtexturetgapartial@plt>
  nop
  leave
  ret
```

assistant: ```c
void loadbackground(int texturenum, char *filename) {
  loadtexturetgapartial(texturenum, filename, 0, 0, 256, 256);
  loadtexturetgapartial(texturenum + 1, filename, 256, 0, 256, 256);
  loadtexturetgapartial(texturenum + 2, filename, 512, 0, 256, 256);
  loadtexturetgapartial(texturenum + 3, filename, 768, 0, 256, 256);
  loadtexturetgapartial(texturenum + 4, filename, 0, 256, 256, 256);
  loadtexturetgapartial(texturenum + 5, filename, 256, 256, 256, 256);
  loadtexturetgapartial(texturenum + 6, filename, 512, 256, 256, 256);
  loadtexturetgapartial(texturenum + 7, filename, 768, 256, 256, 256);
  loadtexturetgapartial(texturenum + 8, filename, 0, 512, 256, 256);
  loadtexturetgapartial(texturenum + 9, filename, 256, 512, 256, 256);
  loadtexturetgapartial(texturenum + 10, filename, 512, 512, 256, 256);
  loadtexturetgapartial(texturenum + 11, filename, 768, 512, 256, 256);
}
```