user: Please show me the C implementation that matches the assembly code listed below:

```asm
<guild_decode_emblem>:
  endbr64
  mov    %rdi,%r8
  test   %edx,%edx
  jle    L57
  movslq %edx,%rax
  mov    %edx,%edi
  mov    %rsi,%rcx
  lea    (%rsi,%rax,2),%rdx
  cmp    %rdx,%r8
  setae  %dl
  add    %r8,%rax
  cmp    %rax,%rsi
  setae  %al
  or     %al,%dl
  je     L23
  lea    -0x1(%rdi),%eax
  cmp    $0xe,%eax
  jbe    L23
  sub    $0x100,%rsp
  mov    %edi,%edx
  pxor   %xmm5,%xmm5
  xor    %eax,%eax
  movdqa D454(%rip),%xmm15
  movdqa D213(%rip),%xmm0
  shr    $0x4,%edx
  shl    $0x4,%rdx
  psubd  %xmm15,%xmm0
  movaps %xmm0,-0x18(%rsp)
  movdqa D245(%rip),%xmm0
  psubd  %xmm15,%xmm0
  movaps %xmm0,-0x78(%rsp)
  nopl   0x0(%rax)
L160:
  movdqu (%rcx,%rax,2),%xmm1
  movdqu 0x10(%rcx,%rax,2),%xmm0
  pxor   %xmm3,%xmm3
  pand   D394(%rip),%xmm0
  movdqu 0x10(%rcx,%rax,2),%xmm2
  pand   D394(%rip),%xmm1
  movdqa -0x18(%rsp),%xmm11
  psrlw  $0x8,%xmm2
  movdqa D388(%rip),%xmm4
  movdqa D388(%rip),%xmm8
  movdqa D141(%rip),%xmm9
  packuswb %xmm0,%xmm1
  movdqu (%rcx,%rax,2),%xmm0
  pcmpgtb %xmm1,%xmm3
  psrlw  $0x8,%xmm0
  packuswb %xmm2,%xmm0
  movdqa %xmm1,%xmm2
  punpcklbw %xmm3,%xmm2
  punpckhbw %xmm3,%xmm1
  pxor   %xmm3,%xmm3
  pcmpgtw %xmm2,%xmm3
  movdqa %xmm2,%xmm10
  movdqa %xmm2,%xmm14
  pxor   %xmm2,%xmm2
  movdqa %xmm1,%xmm13
  movdqa %xmm1,%xmm12
  pcmpgtw %xmm1,%xmm2
  movdqa %xmm0,%xmm1
  punpckhwd %xmm3,%xmm14
  punpcklwd %xmm3,%xmm10
  paddd  %xmm10,%xmm8
  movaps %xmm10,0x28(%rsp)
  punpcklwd %xmm2,%xmm13
  punpckhwd %xmm2,%xmm12
  pxor   %xmm2,%xmm2
  pcmpgtb %xmm0,%xmm2
  paddd  %xmm12,%xmm9
  paddd  %xmm12,%xmm4
  movaps %xmm12,-0x28(%rsp)
  punpcklbw %xmm2,%xmm1
  punpckhbw %xmm2,%xmm0
  pxor   %xmm2,%xmm2
  pcmpgtw %xmm1,%xmm2
  movdqa %xmm1,%xmm7
  movdqa %xmm1,%xmm3
  pxor   %xmm1,%xmm1
  movdqa %xmm0,%xmm6
  pcmpgtw %xmm0,%xmm1
  punpcklwd %xmm2,%xmm7
  punpckhwd %xmm2,%xmm3
  movdqa D141(%rip),%xmm2
  movaps %xmm7,-0x68(%rsp)
  movdqa D388(%rip),%xmm7
  punpckhwd %xmm1,%xmm0
  punpcklwd %xmm1,%xmm6
  movaps %xmm3,-0x58(%rsp)
  movdqa %xmm4,%xmm3
  movaps %xmm0,-0x38(%rsp)
  movdqa %xmm9,%xmm0
  movdqa %xmm8,%xmm9
  paddd  %xmm14,%xmm7
  psubd  %xmm15,%xmm9
  movaps %xmm6,-0x48(%rsp)
  movdqa D388(%rip),%xmm6
  movdqa D141(%rip),%xmm4
  pcmpgtd %xmm11,%xmm9
  paddd  %xmm14,%xmm2
  psubd  %xmm15,%xmm0
  movdqa D141(%rip),%xmm1
  paddd  %xmm13,%xmm6
  paddd  %xmm10,%xmm4
  psubd  %xmm15,%xmm4
  psubd  %xmm15,%xmm2
  movdqa %xmm9,%xmm12
  paddd  %xmm13,%xmm1
  pandn  %xmm8,%xmm12
  movdqa %xmm7,%xmm8
  psubd  %xmm15,%xmm1
  psubd  %xmm15,%xmm8
  movaps %xmm12,0x38(%rsp)
  pcmpgtd %xmm11,%xmm8
  movdqa %xmm8,%xmm12
  pandn  %xmm7,%xmm12
  movdqa %xmm6,%xmm7
  psubd  %xmm15,%xmm7
  movaps %xmm12,0x48(%rsp)
  pcmpgtd %xmm11,%xmm7
  movdqa %xmm7,%xmm12
  pandn  %xmm6,%xmm12
  movdqa %xmm3,%xmm6
  psubd  %xmm15,%xmm6
  movaps %xmm12,0x58(%rsp)
  pcmpgtd %xmm11,%xmm6
  movdqa %xmm6,%xmm11
  pandn  %xmm3,%xmm11
  movdqa D101(%rip),%xmm3
  movaps %xmm11,0x68(%rsp)
  paddd  %xmm10,%xmm3
  movdqa D101(%rip),%xmm10
  psubd  %xmm15,%xmm3
  paddd  %xmm14,%xmm10
  movdqa %xmm10,%xmm12
  movdqa D101(%rip),%xmm10
  paddd  %xmm13,%xmm10
  movaps %xmm10,0x78(%rsp)
  movdqa -0x28(%rsp),%xmm10
  paddd  D101(%rip),%xmm10
  movaps %xmm10,0x88(%rsp)
  pcmpgtd -0x78(%rsp),%xmm4
  movdqa %xmm9,%xmm10
  pcmpgtd -0x78(%rsp),%xmm2
  pcmpeqd %xmm5,%xmm10
  pcmpgtd -0x78(%rsp),%xmm1
  pcmpgtd -0x78(%rsp),%xmm0
  movdqa %xmm4,%xmm11
  pcmpeqd %xmm5,%xmm4
  pand   %xmm9,%xmm11
  por    %xmm10,%xmm11
  movdqa %xmm2,%xmm10
  pand   %xmm8,%xmm10
  pcmpeqd %xmm5,%xmm2
  pand   %xmm9,%xmm4
  movaps %xmm10,-0x8(%rsp)
  movdqa %xmm8,%xmm10
  pcmpeqd %xmm5,%xmm10
  por    -0x8(%rsp),%xmm10
  movaps %xmm4,0xa8(%rsp)
  movdqa -0x78(%rsp),%xmm4
  pand   %xmm8,%xmm2
  movdqa 0x28(%rsp),%xmm8
  paddd  D98(%rip),%xmm8
  movaps %xmm10,0x98(%rsp)
  movdqa %xmm1,%xmm10
  pcmpeqd %xmm5,%xmm1
  pand   %xmm7,%xmm10
  movaps %xmm2,0xb8(%rsp)
  pcmpgtd %xmm4,%xmm3
  movaps %xmm10,-0x8(%rsp)
  movdqa %xmm7,%xmm10
  pcmpeqd %xmm5,%xmm10
  por    -0x8(%rsp),%xmm10
  pand   %xmm7,%xmm1
  movdqa -0x28(%rsp),%xmm7
  paddd  D98(%rip),%xmm7
  movaps %xmm1,0xc8(%rsp)
  movaps %xmm10,-0x8(%rsp)
  movdqa %xmm0,%xmm10
  pcmpeqd %xmm5,%xmm0
  pand   %xmm6,%xmm10
  movaps %xmm7,0xe8(%rsp)
  movaps %xmm10,0x8(%rsp)
  movdqa %xmm6,%xmm10
  movdqa %xmm0,%xmm9
  pcmpeqd %xmm5,%xmm10
  movdqa 0x88(%rsp),%xmm0
  por    0x8(%rsp),%xmm10
  pand   %xmm6,%xmm9
  movdqa %xmm12,%xmm6
  movdqa 0x98(%rsp),%xmm12
  psubd  %xmm15,%xmm6
  psubd  %xmm15,%xmm0
  movaps %xmm10,0x8(%rsp)
  movdqa %xmm8,%xmm10
  movdqa %xmm6,%xmm2
  movdqa 0x78(%rsp),%xmm6
  pcmpgtd %xmm4,%xmm0
  movdqa D98(%rip),%xmm8
  movaps %xmm9,0xd8(%rsp)
  pcmpgtd %xmm4,%xmm2
  movdqa D98(%rip),%xmm9
  psubd  %xmm15,%xmm6
  paddd  %xmm13,%xmm8
  movdqa %xmm6,%xmm1
  movaps %xmm8,0x18(%rsp)
  movdqa %xmm3,%xmm8
  pand   %xmm11,%xmm3
  pcmpgtd %xmm4,%xmm1
  movdqa %xmm2,%xmm7
  movdqa %xmm0,%xmm4
  pcmpeqd %xmm5,%xmm7
  pand   %xmm12,%xmm2
  paddd  %xmm14,%xmm9
  pcmpeqd %xmm5,%xmm4
  pcmpeqd %xmm5,%xmm8
  pand   0x8(%rsp),%xmm4
  movdqa %xmm1,%xmm6
  pand   -0x8(%rsp),%xmm1
  pand   %xmm12,%xmm7
  pcmpeqd %xmm5,%xmm6
  pand   -0x8(%rsp),%xmm6
  pand   0x8(%rsp),%xmm0
  movdqa 0x38(%rsp),%xmm12
  pand   %xmm11,%xmm8
  movdqa 0x68(%rsp),%xmm11
  pand   %xmm3,%xmm12
  pandn  %xmm10,%xmm3
  pand   %xmm8,%xmm10
  por    %xmm12,%xmm3
  movdqa 0x48(%rsp),%xmm12
  pand   %xmm0,%xmm11
  pandn  %xmm3,%xmm8
  movdqa 0x18(%rsp),%xmm3
  pand   %xmm2,%xmm12
  pandn  %xmm9,%xmm2
  pand   %xmm7,%xmm9
  por    %xmm12,%xmm2
  movdqa 0x58(%rsp),%xmm12
  pand   %xmm6,%xmm3
  por    %xmm10,%xmm8
  pandn  %xmm2,%xmm7
  movdqa -0x58(%rsp),%xmm10
  movdqa 0xa8(%rsp),%xmm2
  pand   %xmm1,%xmm12
  pandn  0x18(%rsp),%xmm1
  por    %xmm9,%xmm7
  por    %xmm12,%xmm1
  movdqa 0xe8(%rsp),%xmm12
  pandn  %xmm1,%xmm6
  pandn  %xmm12,%xmm0
  por    %xmm3,%xmm6
  movdqa %xmm12,%xmm3
  movdqa -0x48(%rsp),%xmm12
  por    %xmm11,%xmm0
  pand   %xmm4,%xmm3
  movdqa -0x38(%rsp),%xmm11
  pandn  %xmm0,%xmm4
  por    %xmm3,%xmm4
  movdqa 0x28(%rsp),%xmm3
  paddd  D172(%rip),%xmm3
  movdqa %xmm3,%xmm0
  movdqa D172(%rip),%xmm3
  pand   %xmm2,%xmm0
  pandn  %xmm8,%xmm2
  paddd  %xmm14,%xmm3
  movdqa %xmm2,%xmm8
  movdqa 0xb8(%rsp),%xmm2
  movdqa -0x68(%rsp),%xmm14
  por    %xmm0,%xmm8
  movdqa %xmm3,%xmm0
  pand   %xmm2,%xmm0
  pandn  %xmm7,%xmm2
  movaps %xmm8,-0x8(%rsp)
  movdqa D388(%rip),%xmm7
  movdqa %xmm2,%xmm3
  movdqa 0xc8(%rsp),%xmm2
  por    %xmm0,%xmm3
  movdqa D172(%rip),%xmm0
  paddd  %xmm10,%xmm7
  movaps %xmm3,0x8(%rsp)
  movdqa D388(%rip),%xmm3
  paddd  %xmm13,%xmm0
  pand   %xmm2,%xmm0
  pandn  %xmm6,%xmm2
  movdqa D388(%rip),%xmm6
  paddd  %xmm11,%xmm3
  movdqa %xmm2,%xmm1
  movdqa -0x28(%rsp),%xmm2
  paddd  D172(%rip),%xmm2
  por    %xmm0,%xmm1
  paddd  %xmm12,%xmm6
  movdqa %xmm2,%xmm0
  movaps %xmm1,0x18(%rsp)
  movdqa 0xd8(%rsp),%xmm2
  pand   %xmm2,%xmm0
  pandn  %xmm4,%xmm2
  movdqa %xmm2,%xmm9
  movdqa D388(%rip),%xmm2
  por    %xmm0,%xmm9
  paddd  %xmm14,%xmm2
  movaps %xmm9,-0x28(%rsp)
  movdqa %xmm2,%xmm8
  movdqa D141(%rip),%xmm2
  paddd  %xmm14,%xmm2
  movdqa %xmm2,%xmm4
  movdqa D141(%rip),%xmm2
  movdqa D141(%rip),%xmm1
  movdqa D141(%rip),%xmm0
  movdqa -0x18(%rsp),%xmm13
  psubd  %xmm15,%xmm4
  paddd  %xmm10,%xmm2
  paddd  %xmm12,%xmm1
  paddd  %xmm11,%xmm0
  psubd  %xmm15,%xmm2
  movaps %xmm0,0x28(%rsp)
  movdqa %xmm8,%xmm0
  psubd  %xmm15,%xmm1
  psubd  %xmm15,%xmm0
  movdqa %xmm0,%xmm9
  pcmpgtd %xmm13,%xmm9
  movdqa %xmm9,%xmm0
  pandn  %xmm8,%xmm0
  movdqa %xmm7,%xmm8
  psubd  %xmm15,%xmm8
  movaps %xmm0,0x38(%rsp)
  pcmpgtd %xmm13,%xmm8
  movdqa %xmm8,%xmm0
  pandn  %xmm7,%xmm0
  movdqa %xmm6,%xmm7
  psubd  %xmm15,%xmm7
  movaps %xmm0,0x48(%rsp)
  pcmpgtd %xmm13,%xmm7
  movdqa %xmm7,%xmm0
  pandn  %xmm6,%xmm0
  movdqa %xmm3,%xmm6
  psubd  %xmm15,%xmm6
  movaps %xmm0,0x58(%rsp)
  movdqa 0x28(%rsp),%xmm0
  pcmpgtd %xmm13,%xmm6
  psubd  %xmm15,%xmm0
  movdqa %xmm6,%xmm13
  pandn  %xmm3,%xmm13
  movdqa D101(%rip),%xmm3
  movaps %xmm13,0x68(%rsp)
  movdqa D101(%rip),%xmm13
  paddd  %xmm14,%xmm3
  movdqa D101(%rip),%xmm14
  paddd  %xmm10,%xmm13
  psubd  %xmm15,%xmm3
  movdqa D101(%rip),%xmm10
  movaps %xmm13,0x78(%rsp)
  paddd  %xmm11,%xmm14
  movaps %xmm14,0x98(%rsp)
  paddd  %xmm12,%xmm10
  movdqa -0x78(%rsp),%xmm12
  movaps %xmm10,0x88(%rsp)
  movdqa %xmm9,%xmm10
  pcmpgtd %xmm12,%xmm4
  pcmpeqd %xmm5,%xmm10
  pcmpgtd %xmm12,%xmm2
  pcmpgtd %xmm12,%xmm1
  pcmpgtd %xmm12,%xmm0
  movdqa %xmm4,%xmm13
  pcmpeqd %xmm5,%xmm4
  pand   %xmm9,%xmm13
  movdqa %xmm2,%xmm14
  movdqa %xmm13,%xmm11
  pand   %xmm8,%xmm14
  movdqa %xmm1,%xmm13
  por    %xmm10,%xmm11
  movdqa %xmm8,%xmm10
  pand   %xmm7,%xmm13
  pcmpeqd %xmm5,%xmm10
  pcmpeqd %xmm5,%xmm2
  pand   %xmm9,%xmm4
  movdqa -0x58(%rsp),%xmm9
  movaps %xmm4,0x28(%rsp)
  pcmpeqd %xmm5,%xmm1
  movdqa -0x78(%rsp),%xmm4
  movdqa %xmm0,%xmm12
  pcmpeqd %xmm5,%xmm0
  pand   %xmm6,%xmm12
  paddd  D98(%rip),%xmm9
  por    %xmm10,%xmm14
  movdqa %xmm7,%xmm10
  pand   %xmm8,%xmm2
  movdqa -0x68(%rsp),%xmm8
  pcmpeqd %xmm5,%xmm10
  pcmpgtd %xmm4,%xmm3
  pand   %xmm7,%xmm1
  movdqa -0x38(%rsp),%xmm7
  paddd  D98(%rip),%xmm8
  paddd  D98(%rip),%xmm7
  pand   %xmm6,%xmm0
  movaps %xmm1,0xb8(%rsp)
  movaps %xmm0,0xc8(%rsp)
  por    %xmm10,%xmm13
  movdqa %xmm6,%xmm10
  movaps %xmm7,0xe8(%rsp)
  pcmpeqd %xmm5,%xmm10
  movaps %xmm2,0xa8(%rsp)
  por    %xmm10,%xmm12
  movdqa %xmm8,%xmm10
  movdqa -0x48(%rsp),%xmm8
  paddd  D98(%rip),%xmm8
  movaps %xmm8,0xd8(%rsp)
  movdqa 0x78(%rsp),%xmm2
  movdqa %xmm3,%xmm8
  movdqa 0x88(%rsp),%xmm1
  pcmpeqd %xmm5,%xmm8
  pand   %xmm11,%xmm3
  movdqa 0x98(%rsp),%xmm0
  psubd  %xmm15,%xmm1
  psubd  %xmm15,%xmm2
  pcmpgtd %xmm4,%xmm1
  pcmpgtd %xmm4,%xmm2
  psubd  %xmm15,%xmm0
  pand   %xmm11,%xmm8
  movdqa 0x38(%rsp),%xmm11
  pcmpgtd %xmm4,%xmm0
  pand   %xmm3,%xmm11
  movdqa %xmm1,%xmm6
  pandn  %xmm10,%xmm3
  por    %xmm11,%xmm3
  pcmpeqd %xmm5,%xmm6
  movdqa %xmm2,%xmm7
  movdqa 0x48(%rsp),%xmm11
  pand   %xmm14,%xmm2
  pand   %xmm13,%xmm1
  movdqa %xmm0,%xmm4
  pand   %xmm2,%xmm11
  pandn  %xmm9,%xmm2
  pand   %xmm12,%xmm0
  pand   %xmm13,%xmm6
  por    %xmm11,%xmm2
  movdqa 0x58(%rsp),%xmm11
  movdqa 0xd8(%rsp),%xmm13
  pcmpeqd %xmm5,%xmm7
  pcmpeqd %xmm5,%xmm4
  pand   %xmm8,%xmm10
  pand   %xmm1,%xmm11
  pandn  %xmm13,%xmm1
  pandn  %xmm3,%xmm8
  movdqa 0x28(%rsp),%xmm3
  por    %xmm11,%xmm1
  por    %xmm10,%xmm8
  pand   %xmm6,%xmm13
  movdqa 0x68(%rsp),%xmm11
  pand   %xmm14,%xmm7
  pand   %xmm12,%xmm4
  pandn  %xmm1,%xmm6
  movdqa 0xe8(%rsp),%xmm14
  pand   %xmm0,%xmm11
  pand   %xmm7,%xmm9
  pandn  %xmm2,%xmm7
  pandn  %xmm14,%xmm0
  pand   %xmm4,%xmm14
  por    %xmm9,%xmm7
  movdqa -0x28(%rsp),%xmm9
  por    %xmm11,%xmm0
  por    %xmm13,%xmm6
  pandn  %xmm0,%xmm4
  movdqa -0x68(%rsp),%xmm0
  paddd  D172(%rip),%xmm0
  por    %xmm14,%xmm4
  movdqa 0x8(%rsp),%xmm14
  pand   %xmm3,%xmm0
  pandn  %xmm8,%xmm3
  movdqa %xmm3,%xmm1
  movdqa 0xa8(%rsp),%xmm3
  por    %xmm0,%xmm1
  movdqa -0x58(%rsp),%xmm0
  paddd  D172(%rip),%xmm0
  pand   %xmm3,%xmm0
  pandn  %xmm7,%xmm3
  movdqa 0xb8(%rsp),%xmm7
  movdqa %xmm3,%xmm2
  por    %xmm0,%xmm2
  movdqa -0x48(%rsp),%xmm0
  paddd  D172(%rip),%xmm0
  pand   %xmm7,%xmm0
  pandn  %xmm6,%xmm7
  movdqa 0xc8(%rsp),%xmm6
  movdqa %xmm7,%xmm3
  movdqa -0x8(%rsp),%xmm7
  por    %xmm0,%xmm3
  movdqa -0x38(%rsp),%xmm0
  paddd  D172(%rip),%xmm0
  pand   %xmm6,%xmm0
  pandn  %xmm4,%xmm6
  movdqa %xmm6,%xmm4
  movdqa %xmm7,%xmm6
  por    %xmm0,%xmm4
  movdqa %xmm7,%xmm0
  punpckhwd %xmm14,%xmm6
  punpcklwd %xmm14,%xmm0
  movdqa %xmm0,%xmm7
  punpcklwd %xmm6,%xmm0
  punpckhwd %xmm6,%xmm7
  movdqa 0x18(%rsp),%xmm6
  punpcklwd %xmm7,%xmm0
  pand   D394(%rip),%xmm0
  movdqa %xmm6,%xmm7
  punpcklwd %xmm9,%xmm6
  punpckhwd %xmm9,%xmm7
  movdqa %xmm6,%xmm8
  punpckhwd %xmm7,%xmm8
  punpcklwd %xmm7,%xmm6
  punpcklwd %xmm8,%xmm6
  pand   D394(%rip),%xmm6
  packuswb %xmm6,%xmm0
  movdqa %xmm1,%xmm6
  punpcklwd %xmm2,%xmm1
  punpckhwd %xmm2,%xmm6
  movdqa %xmm1,%xmm2
  paddb  %xmm0,%xmm0
  punpckhwd %xmm6,%xmm2
  punpcklwd %xmm6,%xmm1
  paddb  %xmm0,%xmm0
  punpcklwd %xmm2,%xmm1
  movdqa %xmm3,%xmm2
  punpcklwd %xmm4,%xmm3
  punpckhwd %xmm4,%xmm2
  movdqa %xmm3,%xmm4
  pand   D394(%rip),%xmm1
  punpckhwd %xmm2,%xmm4
  punpcklwd %xmm2,%xmm3
  paddb  %xmm0,%xmm0
  punpcklwd %xmm4,%xmm3
  pand   D394(%rip),%xmm3
  paddb  %xmm0,%xmm0
  packuswb %xmm3,%xmm1
  por    %xmm1,%xmm0
  movups %xmm0,(%r8,%rax,1)
  add    $0x10,%rax
  cmp    %rax,%rdx
  jne    L160
  mov    %edi,%eax
  and    $0xfffffff0,%eax
  mov    %eax,%edx
  lea    (%rdx,%rdx,1),%rsi
  cmp    %eax,%edi
  je     L24
  mov    %rdx,%rax
  neg    %rax
  lea    (%rsi,%rax,2),%r9
  add    %rcx,%r9
  xchg   %ax,%ax
L266:
  movsbl (%r9,%rdx,2),%ecx
  movsbl 0x1(%r9,%rdx,2),%esi
  lea    -0x30(%rcx),%eax
  cmp    $0x9,%eax
  jbe    L159
  lea    -0x61(%rcx),%eax
  cmp    $0x5,%eax
  ja     L145
  lea    -0x57(%rcx),%eax
L159:
  lea    -0x30(%rsi),%ecx
  cmp    $0x9,%ecx
  jbe    L192
  lea    -0x61(%rsi),%ecx
  cmp    $0x5,%ecx
  ja     L27
  lea    -0x57(%rsi),%ecx
L192:
  shl    $0x4,%eax
  or     %ecx,%eax
  mov    %al,(%r8,%rdx,1)
  add    $0x1,%rdx
  cmp    %edx,%edi
  jg     L266
L24:
  mov    %r8,%rax
  add    $0x100,%rsp
  ret
L145:
  lea    -0x41(%rcx),%eax
  cmp    $0x5,%eax
  ja     L249
  lea    -0x37(%rcx),%eax
  jmp    L159
L27:
  lea    -0x41(%rsi),%ecx
  cmp    $0x5,%ecx
  ja     L252
  lea    -0x37(%rsi),%ecx
  jmp    L192
  nop
L23:
  mov    %edi,%edi
  xor    %edx,%edx
L197:
  movsbl (%rcx,%rdx,2),%esi
  movsbl 0x1(%rcx,%rdx,2),%r9d
  lea    -0x30(%rsi),%eax
  cmp    $0x9,%eax
  jbe    L191
  lea    -0x61(%rsi),%eax
  cmp    $0x5,%eax
  ja     L204
  lea    -0x57(%rsi),%eax
L191:
  lea    -0x30(%r9),%esi
  cmp    $0x9,%esi
  jbe    L94
  lea    -0x61(%r9),%esi
  cmp    $0x5,%esi
  ja     L165
  lea    -0x57(%r9),%esi
L94:
  shl    $0x4,%eax
  or     %esi,%eax
  mov    %al,(%r8,%rdx,1)
  add    $0x1,%rdx
  cmp    %rdx,%rdi
  jne    L197
L57:
  mov    %r8,%rax
  ret
L204:
  lea    -0x41(%rsi),%eax
  cmp    $0x5,%eax
  ja     L40
  lea    -0x37(%rsi),%eax
  jmp    L191
L165:
  lea    -0x41(%r9),%esi
  cmp    $0x5,%esi
  ja     L166
  lea    -0x37(%r9),%esi
  jmp    L94
L249:
  xor    %eax,%eax
  jmp    L159
L166:
  xor    %esi,%esi
  jmp    L94
L40:
  xor    %eax,%eax
  jmp    L191
L252:
  xor    %ecx,%ecx
  jmp    L192
```

tool_calls: name: parse_data
arguments: data_label: D454
type_infered: byte[16]
name: parse_data
arguments: data_label: D213
type_infered: byte[16]
name: parse_data
arguments: data_label: D245
type_infered: byte[16]
name: parse_data
arguments: data_label: D394
type_infered: byte[16]
name: parse_data
arguments: data_label: D388
type_infered: byte[16]
name: parse_data
arguments: data_label: D141
type_infered: byte[16]
name: parse_data
arguments: data_label: D101
type_infered: byte[16]
name: parse_data
arguments: data_label: D98
type_infered: byte[16]
name: parse_data
arguments: data_label: D172
type_infered: byte[16]

tool: {"D454": [0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80]}

tool: {"D213": [0x09,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x09,0x00,0x00,0x00]}

tool: {"D245": [0x05,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x05,0x00,0x00,0x00]}

tool: {"D394": [0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00]}

tool: {"D388": [0xd0,0xff,0xff,0xff,0xd0,0xff,0xff,0xff,0xd0,0xff,0xff,0xff,0xd0,0xff,0xff,0xff]}

tool: {"D141": [0x9f,0xff,0xff,0xff,0x9f,0xff,0xff,0xff,0x9f,0xff,0xff,0xff,0x9f,0xff,0xff,0xff]}

tool: {"D101": [0xbf,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xbf,0xff,0xff,0xff]}

tool: {"D98": [0xc9,0xff,0xff,0xff,0xc9,0xff,0xff,0xff,0xc9,0xff,0xff,0xff,0xc9,0xff,0xff,0xff]}

tool: {"D172": [0xa9,0xff,0xff,0xff,0xa9,0xff,0xff,0xff,0xa9,0xff,0xff,0xff,0xa9,0xff,0xff,0xff]}

assistant: ```c
char *guild_decode_emblem(char *dst, const char *src, int len) {
  int i;
  const char *p = src;
  for (i = 0; i < len; i++, p += 2) {
    int c1 = p[0], c2 = p[1], x1 = 0, x2 = 0;
    if (c1 >= '0' && c1 <= '9')
      x1 = c1 - '0';
    if (c1 >= 'a' && c1 <= 'f')
      x1 = c1 - 'a' + 10;
    if (c1 >= 'A' && c1 <= 'F')
      x1 = c1 - 'A' + 10;
    if (c2 >= '0' && c2 <= '9')
      x2 = c2 - '0';
    if (c2 >= 'a' && c2 <= 'f')
      x2 = c2 - 'a' + 10;
    if (c2 >= 'A' && c2 <= 'F')
      x2 = c2 - 'A' + 10;
    dst[i] = (x1 << 4) | x2;
  }
  return dst;
}
```