user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<difference_edge>:
  endbr64
  push   %r15
  mov    $0x3,%eax
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  mov    %rdx,%rbx
  sub    $0x128,%rsp
  cmp    $0x4,%r8
  mov    %rdx,0xf8(%rsp)
  mov    $0x10,%edx
  cmovne %edx,%eax
  mov    $0xfa,%edx
  mov    %rsi,0x58(%rsp)
  mov    %rcx,0x110(%rsp)
  mov    %ax,0x11e(%rsp)
  mov    $0xa,%eax
  cmovne %edx,%eax
  mov    %r9d,0x118(%rsp)
  mov    %ax,0x11c(%rsp)
  test   %rbx,%rbx
  jle    L341
  mov    %rdi,%rbp
  test   %rcx,%rcx
  jle    L103
  lea    (%rsi,%rbx,8),%r12
  mov    %rsi,%r13
  lea    (%rcx,%rcx,1),%rbx
  nop
L432:
  mov    0x0(%r13),%rdi
  mov    %rbx,%rdx
  xor    %esi,%esi
  add    $0x8,%r13
  call   <memset@plt>
  cmp    %r12,%r13
  jne    L432
L103:
  cmpq   $0x2,0xf8(%rsp)
  jle    L341
  mov    0x110(%rsp),%rcx
  mov    0xf8(%rsp),%rax
  lea    -0x2(%rcx),%rbx
  sub    $0x1,%rax
  lea    -0x1(%rcx),%r13
  mov    %rbx,%r12
  mov    %rbx,0x60(%rsp)
  and    $0xfffffffffffffff8,%rbx
  lea    0x1(%rbx),%r14d
  mov    %rax,0x40(%rsp)
  shr    $0x3,%r12
  movslq %r14d,%r14
  mov    %rbx,0x68(%rsp)
  shl    $0x4,%r12
  add    %r14,%r14
  lea    0x2(%r14),%rax
  lea    -0x2(%r14),%r15
  mov    %rax,0x8(%rsp)
  mov    %ebx,%eax
  add    $0x2,%eax
  cltq
  mov    %rax,0x88(%rsp)
  add    %rax,%rax
  lea    -0x2(%rax),%rdx
  mov    %rax,0xa0(%rsp)
  add    $0x2,%rax
  mov    %rax,0x18(%rsp)
  mov    %ebx,%eax
  add    $0x3,%eax
  mov    %rdx,0x10(%rsp)
  cltq
  mov    %rax,0xa8(%rsp)
  add    %rax,%rax
  lea    -0x2(%rax),%rdx
  mov    %rax,0xb0(%rsp)
  add    $0x2,%rax
  mov    %rax,0x28(%rsp)
  mov    %ebx,%eax
  add    $0x4,%eax
  mov    %rdx,0x20(%rsp)
  cltq
  mov    %rax,0xb8(%rsp)
  add    %rax,%rax
  lea    -0x2(%rax),%rdx
  mov    %rax,0xc0(%rsp)
  add    $0x2,%rax
  mov    %rax,0x38(%rsp)
  mov    %ebx,%eax
  add    $0x5,%eax
  mov    %rdx,0x30(%rsp)
  cltq
  mov    %rax,0xc8(%rsp)
  add    %rax,%rax
  lea    -0x2(%rax),%rdx
  mov    %rax,0xd0(%rsp)
  add    $0x2,%rax
  mov    %rax,0x50(%rsp)
  mov    %ebx,%eax
  add    $0x6,%eax
  mov    %rdx,0x48(%rsp)
  cltq
  mov    %rax,0xd8(%rsp)
  add    %rax,%rax
  lea    -0x2(%rax),%rdx
  mov    %rax,0xe0(%rsp)
  add    $0x2,%rax
  mov    %rax,0x80(%rsp)
  mov    %ebx,%eax
  add    $0x7,%eax
  mov    %rdx,0x78(%rsp)
  cltq
  mov    %rax,0xe8(%rsp)
  add    %rax,%rax
  lea    -0x2(%rax),%rbx
  mov    %rax,0xf0(%rsp)
  add    $0x2,%rax
  mov    %rax,0x98(%rsp)
  lea    -0x4(%rcx,%rcx,1),%rax
  mov    %rax,0x108(%rsp)
  lea    -0x3(%rcx),%rax
  mov    %rax,0x70(%rsp)
  mov    %rbx,0x90(%rsp)
  mov    $0x2,%ebx
  nopl   0x0(%rax,%rax,1)
L321:
  cmp    $0x1,%r13
  jle    L349
  mov    0x58(%rsp),%rdi
  mov    0x0(%rbp,%rbx,8),%rdx
  mov    -0x10(%rbp,%rbx,8),%rax
  mov    -0x8(%rbp,%rbx,8),%rcx
  mov    -0x8(%rdi,%rbx,8),%r8
  mov    %r8,%rsi
  sub    %rdx,%rsi
  cmp    $0x10,%rsi
  mov    %r8,%rsi
  seta   %dil
  sub    %rax,%rsi
  cmp    $0x10,%rsi
  seta   %sil
  and    %edi,%esi
  cmpq   $0x6,0x70(%rsp)
  seta   %dil
  test   %dil,%sil
  je     L70
  mov    %r8,%rsi
  sub    %rcx,%rsi
  cmp    $0x10,%rsi
  jbe    L70
  xor    %esi,%esi
  pxor   %xmm10,%xmm10
  nopl   0x0(%rax,%rax,1)
L210:
  movdqu (%rax,%rsi,1),%xmm0
  movdqu 0x4(%rdx,%rsi,1),%xmm2
  movdqa %xmm10,%xmm5
  movdqa %xmm10,%xmm3
  movdqa %xmm10,%xmm6
  movdqa %xmm10,%xmm15
  movdqa %xmm10,%xmm14
  movdqa %xmm0,%xmm1
  pcmpgtw %xmm0,%xmm5
  movdqa %xmm0,%xmm4
  pcmpeqw %xmm2,%xmm1
  pcmpgtw %xmm2,%xmm3
  movdqa %xmm2,%xmm7
  movdqa %xmm10,%xmm13
  movdqa %xmm10,%xmm12
  movdqa %xmm10,%xmm11
  punpcklwd %xmm5,%xmm4
  punpckhwd %xmm5,%xmm0
  movdqa %xmm10,%xmm9
  pcmpeqw %xmm10,%xmm1
  punpcklwd %xmm3,%xmm7
  punpckhwd %xmm3,%xmm2
  psubd  %xmm7,%xmm4
  psubd  %xmm2,%xmm0
  movdqa %xmm4,%xmm7
  movdqa %xmm0,%xmm2
  pcmpgtw %xmm1,%xmm6
  psrad  $0x1f,%xmm7
  movdqa %xmm1,%xmm8
  psrad  $0x1f,%xmm2
  pxor   %xmm7,%xmm4
  pxor   %xmm2,%xmm0
  psubd  %xmm7,%xmm4
  movdqu 0x4(%rcx,%rsi,1),%xmm7
  punpcklwd %xmm6,%xmm8
  punpckhwd %xmm6,%xmm1
  psubd  %xmm2,%xmm0
  movdqu (%rcx,%rsi,1),%xmm2
  pand   %xmm8,%xmm4
  pand   %xmm1,%xmm0
  movdqu (%rdx,%rsi,1),%xmm8
  movdqu 0x4(%rax,%rsi,1),%xmm1
  pcmpgtw %xmm2,%xmm13
  pcmpgtw %xmm7,%xmm12
  movdqa %xmm2,%xmm6
  pcmpgtw %xmm1,%xmm15
  pcmpgtw %xmm8,%xmm14
  movdqa %xmm1,%xmm3
  movdqa %xmm8,%xmm5
  punpcklwd %xmm13,%xmm6
  punpckhwd %xmm13,%xmm2
  punpcklwd %xmm14,%xmm5
  punpcklwd %xmm15,%xmm3
  punpckhwd %xmm15,%xmm1
  psubd  %xmm5,%xmm3
  punpckhwd %xmm14,%xmm8
  movdqa %xmm3,%xmm5
  psubd  %xmm8,%xmm1
  psrad  $0x1f,%xmm5
  pxor   %xmm5,%xmm3
  psubd  %xmm5,%xmm3
  movdqa %xmm7,%xmm5
  punpckhwd %xmm12,%xmm7
  punpcklwd %xmm12,%xmm5
  psubd  %xmm7,%xmm2
  psubd  %xmm5,%xmm6
  movdqa %xmm6,%xmm5
  psrad  $0x1f,%xmm5
  pxor   %xmm5,%xmm6
  psubd  %xmm5,%xmm6
  movdqa %xmm3,%xmm5
  pcmpgtd %xmm6,%xmm5
  pand   %xmm5,%xmm3
  pandn  %xmm6,%xmm5
  movdqu 0x2(%rax,%rsi,1),%xmm6
  por    %xmm3,%xmm5
  pcmpgtw %xmm6,%xmm11
  movdqa %xmm6,%xmm3
  movdqu 0x2(%rdx,%rsi,1),%xmm6
  pcmpgtw %xmm6,%xmm9
  punpcklwd %xmm11,%xmm3
  punpcklwd %xmm9,%xmm6
  psubd  %xmm6,%xmm3
  movdqa %xmm3,%xmm6
  psrad  $0x1f,%xmm6
  pxor   %xmm6,%xmm3
  psubd  %xmm6,%xmm3
  movdqa %xmm3,%xmm6
  pcmpgtd %xmm4,%xmm6
  pand   %xmm6,%xmm3
  pandn  %xmm4,%xmm6
  movdqa %xmm1,%xmm4
  psrad  $0x1f,%xmm4
  por    %xmm3,%xmm6
  movdqa %xmm5,%xmm3
  pxor   %xmm4,%xmm1
  pcmpgtd %xmm6,%xmm3
  psubd  %xmm4,%xmm1
  movdqa %xmm2,%xmm4
  psrad  $0x1f,%xmm4
  pxor   %xmm4,%xmm2
  pand   %xmm3,%xmm5
  pandn  %xmm6,%xmm3
  psubd  %xmm4,%xmm2
  movdqa %xmm1,%xmm4
  por    %xmm5,%xmm3
  pcmpgtd %xmm2,%xmm4
  pand   %xmm4,%xmm1
  pandn  %xmm2,%xmm4
  movdqa %xmm4,%xmm2
  movdqu 0x2(%rdx,%rsi,1),%xmm4
  por    %xmm1,%xmm2
  movdqu 0x2(%rax,%rsi,1),%xmm1
  punpckhwd %xmm9,%xmm4
  punpckhwd %xmm11,%xmm1
  psubd  %xmm4,%xmm1
  movdqa %xmm1,%xmm4
  psrad  $0x1f,%xmm4
  pxor   %xmm4,%xmm1
  psubd  %xmm4,%xmm1
  movdqa %xmm1,%xmm4
  pcmpgtd %xmm0,%xmm4
  pand   %xmm4,%xmm1
  pandn  %xmm0,%xmm4
  movdqa %xmm2,%xmm0
  por    %xmm4,%xmm1
  pcmpgtd %xmm1,%xmm0
  pand   %xmm0,%xmm2
  pandn  %xmm1,%xmm0
  por    %xmm0,%xmm2
  movdqa %xmm3,%xmm0
  punpcklwd %xmm2,%xmm3
  punpckhwd %xmm2,%xmm0
  movdqa %xmm3,%xmm1
  punpcklwd %xmm0,%xmm3
  punpckhwd %xmm0,%xmm1
  punpcklwd %xmm1,%xmm3
  movups %xmm3,0x2(%r8,%rsi,1)
  add    $0x10,%rsi
  cmp    %r12,%rsi
  jne    L210
  mov    0x68(%rsp),%rsi
  cmp    %rsi,0x60(%rsp)
  je     L349
  mov    0x8(%rsp),%rdi
  movswl (%rax,%r15,1),%esi
  xor    %r9d,%r9d
  movswl (%rdx,%rdi,1),%edi
  cmp    %si,%di
  je     L275
  sub    %edi,%esi
  mov    %esi,%r9d
  neg    %r9d
  cmovs  %esi,%r9d
L275:
  mov    0x8(%rsp),%r11
  movswl (%rdx,%r15,1),%esi
  movswl (%rcx,%r15,1),%r10d
  movswl (%rax,%r11,1),%edi
  sub    %esi,%edi
  mov    %edi,%esi
  neg    %esi
  cmovs  %edi,%esi
  movswl (%rcx,%r11,1),%edi
  sub    %edi,%r10d
  mov    %r10d,%edi
  neg    %edi
  cmovs  %r10d,%edi
  movswl (%rax,%r14,1),%r10d
  cmp    %edi,%esi
  cmovl  %edi,%esi
  movswl (%rdx,%r14,1),%edi
  sub    %edi,%r10d
  mov    %r10d,%edi
  neg    %edi
  cmovs  %r10d,%edi
  cmp    %edi,%esi
  cmovl  %edi,%esi
  cmp    %r9d,%esi
  cmovl  %r9d,%esi
  mov    %si,(%r8,%r14,1)
  cmp    0x88(%rsp),%r13
  jle    L349
  mov    0x10(%rsp),%rdi
  xor    %r9d,%r9d
  movswl (%rax,%rdi,1),%esi
  mov    0x18(%rsp),%rdi
  movswl (%rdx,%rdi,1),%edi
  cmp    %di,%si
  je     L114
  sub    %edi,%esi
  mov    %esi,%r9d
  neg    %r9d
  cmovs  %esi,%r9d
L114:
  mov    0x18(%rsp),%r11
  mov    0x10(%rsp),%r10
  movswl (%rax,%r11,1),%edi
  movswl (%rdx,%r10,1),%esi
  movswl (%rcx,%r10,1),%r10d
  sub    %esi,%edi
  mov    %edi,%esi
  neg    %esi
  cmovs  %edi,%esi
  movswl (%rcx,%r11,1),%edi
  mov    0xa0(%rsp),%r11
  sub    %edi,%r10d
  mov    %r10d,%edi
  neg    %edi
  cmovs  %r10d,%edi
  movswl (%rax,%r11,1),%r10d
  cmp    %edi,%esi
  cmovl  %edi,%esi
  movswl (%rdx,%r11,1),%edi
  sub    %edi,%r10d
  mov    %r10d,%edi
  neg    %edi
  cmovs  %r10d,%edi
  cmp    %edi,%esi
  cmovl  %edi,%esi
  cmp    %r9d,%esi
  cmovl  %r9d,%esi
  mov    %si,(%r8,%r11,1)
  cmp    0xa8(%rsp),%r13
  jle    L349
  mov    0x20(%rsp),%rdi
  xor    %r9d,%r9d
  movswl (%rax,%rdi,1),%esi
  mov    0x28(%rsp),%rdi
  movswl (%rdx,%rdi,1),%edi
  cmp    %di,%si
  je     L37
  sub    %edi,%esi
  mov    %esi,%r9d
  neg    %r9d
  cmovs  %esi,%r9d
L37:
  mov    0x28(%rsp),%r11
  mov    0x20(%rsp),%r10
  movswl (%rax,%r11,1),%edi
  movswl (%rdx,%r10,1),%esi
  movswl (%rcx,%r10,1),%r10d
  sub    %esi,%edi
  mov    %edi,%esi
  neg    %esi
  cmovs  %edi,%esi
  movswl (%rcx,%r11,1),%edi
  mov    0xb0(%rsp),%r11
  sub    %edi,%r10d
  mov    %r10d,%edi
  neg    %edi
  cmovs  %r10d,%edi
  movswl (%rax,%r11,1),%r10d
  cmp    %edi,%esi
  cmovl  %edi,%esi
  movswl (%rdx,%r11,1),%edi
  sub    %edi,%r10d
  mov    %r10d,%edi
  neg    %edi
  cmovs  %r10d,%edi
  cmp    %edi,%esi
  cmovl  %edi,%esi
  cmp    %r9d,%esi
  cmovl  %r9d,%esi
  mov    %si,(%r8,%r11,1)
  cmp    0xb8(%rsp),%r13
  jle    L349
  mov    0x30(%rsp),%rdi
  xor    %r9d,%r9d
  movswl (%rax,%rdi,1),%esi
  mov    0x38(%rsp),%rdi
  movswl (%rdx,%rdi,1),%edi
  cmp    %di,%si
  je     L261
  sub    %edi,%esi
  mov    %esi,%r9d
  neg    %r9d
  cmovs  %esi,%r9d
L261:
  mov    0x38(%rsp),%r11
  mov    0x30(%rsp),%r10
  movswl (%rax,%r11,1),%edi
  movswl (%rdx,%r10,1),%esi
  movswl (%rcx,%r10,1),%r10d
  sub    %esi,%edi
  mov    %edi,%esi
  neg    %esi
  cmovs  %edi,%esi
  movswl (%rcx,%r11,1),%edi
  mov    0xc0(%rsp),%r11
  sub    %edi,%r10d
  mov    %r10d,%edi
  neg    %edi
  cmovs  %r10d,%edi
  movswl (%rax,%r11,1),%r10d
  cmp    %edi,%esi
  cmovl  %edi,%esi
  movswl (%rdx,%r11,1),%edi
  sub    %edi,%r10d
  mov    %r10d,%edi
  neg    %edi
  cmovs  %r10d,%edi
  cmp    %edi,%esi
  cmovl  %edi,%esi
  cmp    %r9d,%esi
  cmovl  %r9d,%esi
  mov    %si,(%r8,%r11,1)
  cmp    0xc8(%rsp),%r13
  jle    L349
  mov    0x48(%rsp),%rdi
  xor    %r9d,%r9d
  movswl (%rax,%rdi,1),%esi
  mov    0x50(%rsp),%rdi
  movswl (%rdx,%rdi,1),%edi
  cmp    %di,%si
  je     L45
  sub    %edi,%esi
  mov    %esi,%r9d
  neg    %r9d
  cmovs  %esi,%r9d
L45:
  mov    0x50(%rsp),%r11
  mov    0x48(%rsp),%r10
  movswl (%rax,%r11,1),%edi
  movswl (%rdx,%r10,1),%esi
  movswl (%rcx,%r10,1),%r10d
  sub    %esi,%edi
  mov    %edi,%esi
  neg    %esi
  cmovs  %edi,%esi
  movswl (%rcx,%r11,1),%edi
  mov    0xd0(%rsp),%r11
  sub    %edi,%r10d
  mov    %r10d,%edi
  neg    %edi
  cmovs  %r10d,%edi
  movswl (%rax,%r11,1),%r10d
  cmp    %edi,%esi
  cmovl  %edi,%esi
  movswl (%rdx,%r11,1),%edi
  sub    %edi,%r10d
  mov    %r10d,%edi
  neg    %edi
  cmovs  %r10d,%edi
  cmp    %edi,%esi
  cmovl  %edi,%esi
  cmp    %r9d,%esi
  cmovl  %r9d,%esi
  mov    %si,(%r8,%r11,1)
  cmp    0xd8(%rsp),%r13
  jle    L349
  mov    0x78(%rsp),%rdi
  xor    %r9d,%r9d
  movswl (%rax,%rdi,1),%esi
  mov    0x80(%rsp),%rdi
  movswl (%rdx,%rdi,1),%edi
  cmp    %di,%si
  je     L245
  sub    %edi,%esi
  mov    %esi,%r9d
  neg    %r9d
  cmovs  %esi,%r9d
L245:
  mov    0x78(%rsp),%r11
  mov    0x80(%rsp),%r10
  movswl (%rdx,%r11,1),%esi
  movswl (%rax,%r10,1),%edi
  movswl (%rcx,%r10,1),%r10d
  sub    %esi,%edi
  mov    %edi,%esi
  neg    %esi
  cmovs  %edi,%esi
  movswl (%rcx,%r11,1),%edi
  mov    0xe0(%rsp),%r11
  sub    %r10d,%edi
  mov    %edi,%r10d
  neg    %r10d
  cmovs  %edi,%r10d
  movswl (%rdx,%r11,1),%edi
  cmp    %r10d,%esi
  cmovl  %r10d,%esi
  movswl (%rax,%r11,1),%r10d
  sub    %edi,%r10d
  mov    %r10d,%edi
  neg    %edi
  cmovs  %r10d,%edi
  cmp    %edi,%esi
  cmovl  %edi,%esi
  cmp    %r9d,%esi
  cmovl  %r9d,%esi
  mov    %si,(%r8,%r11,1)
  cmp    0xe8(%rsp),%r13
  jle    L349
  mov    0x90(%rsp),%rdi
  movswl (%rax,%rdi,1),%esi
  mov    0x98(%rsp),%rdi
  movswl (%rdx,%rdi,1),%edi
  cmp    %di,%si
  jne    L16
  xor    %r9d,%r9d
L392:
  mov    0x98(%rsp),%r10
  mov    0x90(%rsp),%r11
  movswl (%rax,%r10,1),%esi
  movswl (%rdx,%r11,1),%edi
  sub    %edi,%esi
  mov    %esi,%edi
  neg    %edi
  cmovs  %esi,%edi
  movswl (%rcx,%r11,1),%esi
  movswl (%rcx,%r10,1),%ecx
  sub    %ecx,%esi
  mov    %esi,%ecx
  neg    %ecx
  cmovs  %esi,%ecx
  cmp    %ecx,%edi
  cmovge %edi,%ecx
  mov    0xf0(%rsp),%rdi
  movswl (%rdx,%rdi,1),%edx
  movswl (%rax,%rdi,1),%eax
  sub    %edx,%eax
  mov    %eax,%edx
  neg    %edx
  cmovs  %eax,%edx
  cmp    %edx,%ecx
  cmovl  %edx,%ecx
  cmp    %r9d,%ecx
  cmovl  %r9d,%ecx
  mov    %cx,(%r8,%rdi,1)
L349:
  mov    %ebx,%esi
  cmp    0x40(%rsp),%rbx
  je     L341
L283:
  imul   $0xcccccccd,%ebx,%eax
  ror    %eax
  cmp    $0x19999999,%eax
  ja     L197
  lea    D0(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
L197:
  add    $0x1,%rbx
  jmp    L321
L16:
  sub    %edi,%esi
  mov    %esi,%r9d
  neg    %r9d
  cmovs  %esi,%r9d
  jmp    L392
  nopl   0x0(%rax)
L70:
  mov    %rbx,0x100(%rsp)
  mov    0x108(%rsp),%rbx
  xor    %edi,%edi
  nopw   0x0(%rax,%rax,1)
L304:
  movswl (%rax,%rdi,1),%esi
  movswl 0x4(%rdx,%rdi,1),%r9d
  xor    %r10d,%r10d
  cmp    %si,%r9w
  je     L109
  sub    %r9d,%esi
  mov    %esi,%r10d
  neg    %r10d
  cmovs  %esi,%r10d
L109:
  movswl 0x4(%rcx,%rdi,1),%esi
  movswl (%rcx,%rdi,1),%r9d
  movswl (%rdx,%rdi,1),%r11d
  sub    %esi,%r9d
  mov    %r9d,%esi
  neg    %esi
  cmovs  %r9d,%esi
  movswl 0x4(%rax,%rdi,1),%r9d
  sub    %r11d,%r9d
  mov    %r9d,%r11d
  neg    %r11d
  cmovs  %r9d,%r11d
  movswl 0x2(%rdx,%rdi,1),%r9d
  cmp    %r11d,%esi
  cmovl  %r11d,%esi
  movswl 0x2(%rax,%rdi,1),%r11d
  sub    %r9d,%r11d
  mov    %r11d,%r9d
  neg    %r9d
  cmovs  %r11d,%r9d
  cmp    %r9d,%esi
  cmovl  %r9d,%esi
  cmp    %r10d,%esi
  cmovl  %r10d,%esi
  mov    %si,0x2(%r8,%rdi,1)
  add    $0x2,%rdi
  cmp    %rbx,%rdi
  jne    L304
  mov    0x100(%rsp),%rbx
  mov    %ebx,%esi
  cmp    0x40(%rsp),%rbx
  jne    L283
  nopl   0x0(%rax)
L341:
  cmpl   $0x1,0x118(%rsp)
  je     L372
L435:
  add    $0x128,%rsp
  mov    $0x1,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L372:
  mov    0xf8(%rsp),%rax
  test   %rax,%rax
  jle    L435
  mov    0x110(%rsp),%rbx
  test   %rbx,%rbx
  jle    L435
  mov    0x58(%rsp),%rcx
  mov    %rbx,%r8
  mov    %rbx,%rdi
  lea    -0x1(%rbx),%r9
  movzwl 0x11c(%rsp),%ebp
  shr    $0x3,%r8
  and    $0xfffffffffffffff8,%rdi
  movzwl 0x11e(%rsp),%r12d
  mov    (%rcx),%rdx
  lea    (%rcx,%rax,8),%rsi
  shl    $0x4,%r8
  mov    %edi,%r10d
  movd   %ebp,%xmm6
  movd   %r12d,%xmm5
  mov    0x160(%rsp),%r11d
  punpcklwd %xmm6,%xmm6
  punpcklwd %xmm5,%xmm5
  pshufd $0x0,%xmm6,%xmm6
  pshufd $0x0,%xmm5,%xmm5
  cmp    $0x6,%r9
  jbe    L239
  cs nopw 0x0(%rax,%rax,1)
L73:
  movd   %r11d,%xmm7
  lea    (%r8,%rdx,1),%r13
  pxor   %xmm4,%xmm4
  mov    %rdx,%rax
  pshufd $0x0,%xmm7,%xmm3
  nopl   (%rax)
L180:
  movdqu (%rax),%xmm1
  movdqa %xmm4,%xmm2
  add    $0x10,%rax
  pcmpgtw %xmm1,%xmm2
  movdqa %xmm1,%xmm0
  punpcklwd %xmm2,%xmm0
  punpckhwd %xmm2,%xmm1
  pcmpgtd %xmm3,%xmm1
  pcmpgtd %xmm3,%xmm0
  movdqa %xmm0,%xmm2
  punpcklwd %xmm1,%xmm0
  punpckhwd %xmm1,%xmm2
  movdqa %xmm0,%xmm1
  punpckhwd %xmm2,%xmm1
  punpcklwd %xmm2,%xmm0
  punpcklwd %xmm1,%xmm0
  movdqa %xmm6,%xmm1
  pand   %xmm0,%xmm1
  pandn  %xmm5,%xmm0
  por    %xmm1,%xmm0
  movups %xmm0,-0x10(%rax)
  cmp    %rax,%r13
  jne    L180
  cmp    %rbx,%rdi
  je     L271
  mov    %r10d,%eax
L183:
  movslq %eax,%r13
  add    %r13,%r13
  lea    (%rdx,%r13,1),%r14
  movswl (%r14),%r15d
  cmp    %r11d,%r15d
  mov    %r12d,%r15d
  cmovg  %ebp,%r15d
  mov    %r15w,(%r14)
  lea    0x1(%rax),%r14d
  movslq %r14d,%r14
  cmp    %rbx,%r14
  jge    L271
  lea    0x2(%rdx,%r13,1),%r14
  movswl (%r14),%r15d
  cmp    %r11d,%r15d
  mov    %r12d,%r15d
  cmovg  %ebp,%r15d
  mov    %r15w,(%r14)
  lea    0x2(%rax),%r14d
  movslq %r14d,%r14
  cmp    %rbx,%r14
  jge    L271
  lea    0x4(%rdx,%r13,1),%r14
  movswl (%r14),%r15d
  cmp    %r11d,%r15d
  mov    %r12d,%r15d
  cmovg  %ebp,%r15d
  mov    %r15w,(%r14)
  lea    0x3(%rax),%r14d
  movslq %r14d,%r14
  cmp    %r14,%rbx
  jle    L271
  lea    0x6(%rdx,%r13,1),%r14
  movswl (%r14),%r15d
  cmp    %r11d,%r15d
  mov    %r12d,%r15d
  cmovg  %ebp,%r15d
  mov    %r15w,(%r14)
  lea    0x4(%rax),%r14d
  movslq %r14d,%r14
  cmp    %rbx,%r14
  jge    L271
  lea    0x8(%rdx,%r13,1),%r14
  movswl (%r14),%r15d
  cmp    %r11d,%r15d
  mov    %r12d,%r15d
  cmovg  %ebp,%r15d
  mov    %r15w,(%r14)
  lea    0x5(%rax),%r14d
  movslq %r14d,%r14
  cmp    %r14,%rbx
  jle    L271
  lea    0xa(%rdx,%r13,1),%r14
  movswl (%r14),%r15d
  cmp    %r15d,%r11d
  mov    %r12d,%r15d
  cmovl  %ebp,%r15d
  add    $0x6,%eax
  cltq
  mov    %r15w,(%r14)
  cmp    %rax,%rbx
  jle    L271
  lea    0xc(%rdx,%r13,1),%rax
  movswl (%rax),%edx
  cmp    %edx,%r11d
  mov    %ebp,%edx
  cmovge %r12d,%edx
  mov    %dx,(%rax)
L271:
  add    $0x8,%rcx
  cmp    %rsi,%rcx
  je     L435
  mov    (%rcx),%rdx
  cmp    $0x6,%r9
  ja     L73
L239:
  xor    %eax,%eax
  jmp    L183
```

tool_calls: name: extract_symbolic_data
arguments: tag: D0
datatype: string

tool: D0: %4d

assistant: ```c
int difference_edge(the_image, out_image, rows, cols, bits_per_pixel, threshold, high)
int high, threshold;
short **the_image, **out_image;
long rows, cols, bits_per_pixel;
{
  int a, b, absdiff, absmax, diff, i, j, length, max, max_diff, new_hi, new_low, width;
  new_hi = 250;
  new_low = 16;
  if (bits_per_pixel == 4) {
    new_hi = 10;
    new_low = 3;
  }
  max = 255;
  if (bits_per_pixel == 4)
    max = 16;
  for (i = 0; i < rows; i++)
    for (j = 0; j < cols; j++)
      out_image[i][j] = 0;
  for (i = 1; i < rows - 1; i++) {
    if ((i % 10) == 0)
      printf("%4d", i);
    for (j = 1; j < cols - 1; j++) {
      max_diff = 0;
      absdiff = abs(the_image[i - 1][j - 1] - the_image[i + 1][j + 1]);
      if (absdiff > max_diff)
        max_diff = absdiff;
      absdiff = abs(the_image[i - 1][j + 1] - the_image[i + 1][j - 1]);
      if (absdiff > max_diff)
        max_diff = absdiff;
      absdiff = abs(the_image[i][j - 1] - the_image[i][j + 1]);
      if (absdiff > max_diff)
        max_diff = absdiff;
      absdiff = abs(the_image[i - 1][j] - the_image[i + 1][j]);
      if (absdiff > max_diff)
        max_diff = absdiff;
      out_image[i][j] = max_diff;
    }
  }
  if (threshold == 1) {
    for (i = 0; i < rows; i++) {
      for (j = 0; j < cols; j++) {
        if (out_image[i][j] > high) {
          out_image[i][j] = new_hi;
        } else {
          out_image[i][j] = new_low;
        }
      }
    }
  }
  return (1);
}
```