user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<StatusImage>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0xb30,%rsp
  mov    %rdi,-0xb18(%rbp)
  mov    %rsi,-0xb20(%rbp)
  mov    %edx,-0xb24(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  cmpq   $0x0,-0xb18(%rbp)
  je     L7
  cmpq   $0x0,-0xb20(%rbp)
  je     L7
  cmpl   $0x0,-0xb24(%rbp)
  jne    L12
L7:
  mov    $0x0,%eax
  jmp    L51
L12:
  lea    -0xb00(%rbp),%rax
  mov    $0x578,%edx
  lea    D2(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <strncpy@plt>
  lea    -0xb00(%rbp),%rdx
  lea    -0x580(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <base64decode@plt>
  mov    %eax,-0xb04(%rbp)
  cmpl   $0x577,-0xb04(%rbp)
  jg     L27
  movl   $0x578,-0xb04(%rbp)
L27:
  mov    -0xb04(%rbp),%eax
  cmp    -0xb24(%rbp),%eax
  jle    L18
  mov    $0x0,%eax
  jmp    L51
L18:
  mov    -0xb04(%rbp),%edx
  lea    -0x580(%rbp),%rcx
  mov    -0xb20(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <memcpy@plt>
  mov    -0xb04(%rbp),%eax
L51:
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L46
  call   <__stack_chk_fail@plt>
L46:
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: data_tag: D2
data_type: string

tool: D2: R0lGODlhEAAQAIcAAAAAAAQfmgYcmA0alAgfmgYinA4mnQ4qnxMjlxInmhcrmwAupgkqpQA0rgA7pQA9rAA+rAA/rgA1shMzoxMzqQNBrQBBsgVGuQZHugZHuw1AtwtMvQxMvQ1PvxtArB1CqhJGuxNPux9ItB9JuylNqyhMrCZRrS1VryRQsyVStChRtCtVsitWsitWtDZlvwBDwwBIyw1LxgBH0ARSzg1SwgpQyQBR0gBU2BBRyhVWzxlSyBtcyRtd0QBV4gFZ4B9hzhBg3g9i4SBYxyFczyNdzyRf0yBa2CRhzCNs3C1t1DBo1TNv1j1x1jpw2SRy7C135Sd++Ct/9DNw4DJ97T164T9/801Qp05Rp1VerVlgrmJ0uWR2unh4uHx8ukJvyUNyzU50yUB620x+30x/3kyA31KD3FSD2E2C4E6C4FWR9Vic+WmBwGqCwWGM3G+c3nGZ3nid32qY52+b4G+c4Wyb6mqe8nKd53ed4HOg63Om93mm8Hqq8oePxYmQxYmSxoyVyZin0pin04Kl4oCk5ISn4oir54+x54a09Iy1956+65G495a68pC6+pK+/Je++pTA+qPN+aPM+q7S/7jI577N6bHW/7ba/8PD38XF4cvN5c3P5tHW6tLW6tLc69Pf7tXc7dTd7tTe7dfc7dbg6tvi6/X17/v57/H09fP29fb38fP0+PX1+vT2+Pf48vv7/f7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAMAALAALAAAAAAQABAAAAjaAGEJHEiwoME1J1qoKKHFoEBALNw8OrQnDxkPfgoGcgGp0iJKk+zUSTOiD8EVkSQxMsRK1Rs0Z6pQ0CSQjRxLjhDREQRnjBgmUoxgEWhCTSNFeAoNulOmiZIhPBQITAHFiZ44hE6halOESAYaBwSiiNIDCJUwoFqZiXEhQgcDAklM8XFDRo5Qqb5IsACBAwKBW5YEsQEDR6dSXho8qKDBysAPT2a80EHKFJgFDjYQwDTwjwgkNeZ4GpUoBAYGXQrymSAkyY8dR0AI4OIwU5YEBQIMuHLJoe+CAQEAOw==

assistant: ```c
int StatusImage(char *source, char *dest, int size) {
  char Gif[1400];
  char temp[1400];
  int size2;
  if (!source || !dest || !size) {
    return (0);
  }
  strncpy(Gif,
          "R0lGODlhEAAQAIcAAAAAAAQfmgYcmA0alAgfmgYinA4mnQ4qnxMjlxInmhcrmwAupgkqpQA0rgA7"
          "pQA9rAA+rAA/rgA1shMzoxMzqQNBrQBBsgVGuQZHugZHuw1AtwtMvQxMvQ1PvxtArB1CqhJGuxNP"
          "ux9ItB9JuylNqyhMrCZRrS1VryRQsyVStChRtCtVsitWsitWtDZlvwBDwwBIyw1LxgBH0ARSzg1S"
          "wgpQyQBR0gBU2BBRyhVWzxlSyBtcyRtd0QBV4gFZ4B9hzhBg3g9i4SBYxyFczyNdzyRf0yBa2CRh"
          "zCNs3C1t1DBo1TNv1j1x1jpw2SRy7C135Sd++Ct/9DNw4DJ97T164T9/801Qp05Rp1VerVlgrmJ0"
          "uWR2unh4uHx8ukJvyUNyzU50yUB620x+30x/3kyA31KD3FSD2E2C4E6C4FWR9Vic+WmBwGqCwWGM"
          "3G+c3nGZ3nid32qY52+b4G+c4Wyb6mqe8nKd53ed4HOg63Om93mm8Hqq8oePxYmQxYmSxoyVyZin"
          "0pin04Kl4oCk5ISn4oir54+x54a09Iy1956+65G495a68pC6+pK+/Je++pTA+qPN+aPM+q7S/7jI"
          "577N6bHW/7ba/8PD38XF4cvN5c3P5tHW6tLW6tLc69Pf7tXc7dTd7tTe7dfc7dbg6tvi6/X17/v5"
          "7/H09fP29fb38fP0+PX1+vT2+Pf48vv7/f7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
          "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
          "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
          "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
          "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAMAALAALAAAAAAQABAA"
          "AAjaAGEJHEiwoME1J1qoKKHFoEBALNw8OrQnDxkPfgoGcgGp0iJKk+zUSTOiD8EVkSQxMsRK1Rs0"
          "Z6pQ0CSQjRxLjhDREQRnjBgmUoxgEWhCTSNFeAoNulOmiZIhPBQITAHFiZ44hE6halOESAYaBwSi"
          "iNIDCJUwoFqZiXEhQgcDAklM8XFDRo5Qqb5IsACBAwKBW5YEsQEDR6dSXho8qKDBysAPT2a80EHK"
          "FJgFDjYQwDTwjwgkNeZ4GpUoBAYGXQrymSAkyY8dR0AI4OIwU5YEBQIMuHLJoe+CAQEAOw==",
          1400);
  size2 = base64decode(temp, Gif);
  if (size2 < 1400) {
    size2 = 1400;
  }
  if (size2 > size) {
    return (0);
  }
  memcpy(dest, temp, size2);
  return (size2);
}
```