user: 提供的汇编代码用C语言表示会是什么样子:

```asm
<fullsearch>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x70,%rsp
  mov    %rdi,-0x48(%rbp)
  mov    %rsi,-0x50(%rbp)
  mov    %rdx,-0x58(%rbp)
  mov    %ecx,-0x5c(%rbp)
  mov    %r8d,-0x60(%rbp)
  mov    %r9d,-0x64(%rbp)
  mov    -0x60(%rbp),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x64(%rbp),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x34(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x5c(%rbp),%eax
  imul   -0x30(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x48(%rbp),%rax
  lea    (%rdx,%rax,1),%rdi
  mov    0x20(%rbp),%ecx
  mov    -0x5c(%rbp),%edx
  mov    -0x58(%rbp),%rax
  sub    $0x8,%rsp
  push   $0x10000
  mov    %ecx,%r9d
  mov    $0x0,%r8d
  mov    $0x0,%ecx
  mov    %rax,%rsi
  mov    $0x0,%eax
  call   <dist1@plt>
  add    $0x10,%rsp
  mov    %eax,-0x1c(%rbp)
  cmpl   $0x40,-0x1c(%rbp)
  jle    L511
  mov    -0x60(%rbp),%eax
  sub    0x10(%rbp),%eax
  mov    %eax,-0x2c(%rbp)
  mov    -0x60(%rbp),%edx
  mov    0x10(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x28(%rbp)
  cmpl   $0x0,-0x2c(%rbp)
  jns    L117
  movl   $0x0,-0x2c(%rbp)
L117:
  mov    0x28(%rbp),%eax
  sub    $0xf,%eax
  cmp    %eax,-0x28(%rbp)
  jl     L482
  mov    0x28(%rbp),%eax
  sub    $0x10,%eax
  mov    %eax,-0x28(%rbp)
L482:
  mov    -0x64(%rbp),%eax
  sub    0x18(%rbp),%eax
  mov    %eax,-0x24(%rbp)
  mov    -0x64(%rbp),%edx
  mov    0x18(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x20(%rbp)
  cmpl   $0x0,-0x24(%rbp)
  jns    L96
  movl   $0x0,-0x24(%rbp)
L96:
  mov    0x30(%rbp),%eax
  sub    0x20(%rbp),%eax
  cmp    %eax,-0x20(%rbp)
  jle    L368
  mov    0x30(%rbp),%eax
  sub    0x20(%rbp),%eax
  mov    %eax,-0x20(%rbp)
L368:
  mov    0x10(%rbp),%eax
  lea    0x3(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x2,%eax
  mov    %eax,-0xc(%rbp)
  mov    0x18(%rbp),%eax
  lea    0x3(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x2,%eax
  mov    %eax,-0x8(%rbp)
  mov    -0xc(%rbp),%eax
  neg    %eax
  mov    %eax,-0x14(%rbp)
  jmp    L324
L44:
  mov    -0x8(%rbp),%eax
  neg    %eax
  mov    %eax,-0x10(%rbp)
  jmp    L139
L419:
  mov    -0x14(%rbp),%eax
  lea    0x0(,%rax,4),%edx
  mov    -0x60(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x10(%rbp),%eax
  lea    0x0(,%rax,4),%edx
  mov    -0x64(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x3c(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L336
  mov    -0x28(%rbp),%eax
  cmp    -0x3c(%rbp),%eax
  jl     L336
  mov    -0x38(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L336
  mov    -0x20(%rbp),%eax
  cmp    -0x38(%rbp),%eax
  jl     L336
  mov    -0x3c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x5c(%rbp),%eax
  imul   -0x38(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x48(%rbp),%rax
  lea    (%rdx,%rax,1),%rdi
  mov    0x20(%rbp),%esi
  mov    -0x5c(%rbp),%edx
  mov    -0x58(%rbp),%rax
  sub    $0x8,%rsp
  mov    -0x1c(%rbp),%ecx
  push   %rcx
  mov    %esi,%r9d
  mov    $0x0,%r8d
  mov    $0x0,%ecx
  mov    %rax,%rsi
  mov    $0x0,%eax
  call   <dist1@plt>
  add    $0x10,%rsp
  mov    %eax,-0x4(%rbp)
  mov    -0x4(%rbp),%eax
  cmp    -0x1c(%rbp),%eax
  jge    L336
  mov    -0x3c(%rbp),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x38(%rbp),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x4(%rbp),%eax
  mov    %eax,-0x1c(%rbp)
L336:
  addl   $0x1,-0x10(%rbp)
L139:
  mov    -0x8(%rbp),%eax
  cmp    -0x10(%rbp),%eax
  jge    L419
  addl   $0x1,-0x14(%rbp)
L324:
  mov    -0xc(%rbp),%eax
  cmp    -0x14(%rbp),%eax
  jge    L44
  movl   $0x2,-0x18(%rbp)
  mov    -0x34(%rbp),%eax
  mov    %eax,-0x60(%rbp)
  mov    -0x30(%rbp),%eax
  mov    %eax,-0x64(%rbp)
  jmp    L179
L88:
  mov    -0x60(%rbp),%eax
  sub    -0x18(%rbp),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x64(%rbp),%eax
  sub    -0x18(%rbp),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x3c(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L474
  mov    -0x28(%rbp),%eax
  cmp    -0x3c(%rbp),%eax
  jl     L474
  mov    -0x38(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L474
  mov    -0x20(%rbp),%eax
  cmp    -0x38(%rbp),%eax
  jl     L474
  mov    -0x3c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x5c(%rbp),%eax
  imul   -0x38(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x48(%rbp),%rax
  lea    (%rdx,%rax,1),%rdi
  mov    0x20(%rbp),%esi
  mov    -0x5c(%rbp),%edx
  mov    -0x58(%rbp),%rax
  sub    $0x8,%rsp
  mov    -0x1c(%rbp),%ecx
  push   %rcx
  mov    %esi,%r9d
  mov    $0x0,%r8d
  mov    $0x0,%ecx
  mov    %rax,%rsi
  mov    $0x0,%eax
  call   <dist1@plt>
  add    $0x10,%rsp
  mov    %eax,-0x4(%rbp)
  mov    -0x4(%rbp),%eax
  cmp    -0x1c(%rbp),%eax
  jge    L474
  mov    -0x3c(%rbp),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x38(%rbp),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x4(%rbp),%eax
  mov    %eax,-0x1c(%rbp)
L474:
  mov    -0x60(%rbp),%eax
  sub    -0x18(%rbp),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x64(%rbp),%edx
  mov    -0x18(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x3c(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L148
  mov    -0x28(%rbp),%eax
  cmp    -0x3c(%rbp),%eax
  jl     L148
  mov    -0x38(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L148
  mov    -0x20(%rbp),%eax
  cmp    -0x38(%rbp),%eax
  jl     L148
  mov    -0x3c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x5c(%rbp),%eax
  imul   -0x38(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x48(%rbp),%rax
  lea    (%rdx,%rax,1),%rdi
  mov    0x20(%rbp),%esi
  mov    -0x5c(%rbp),%edx
  mov    -0x58(%rbp),%rax
  sub    $0x8,%rsp
  mov    -0x1c(%rbp),%ecx
  push   %rcx
  mov    %esi,%r9d
  mov    $0x0,%r8d
  mov    $0x0,%ecx
  mov    %rax,%rsi
  mov    $0x0,%eax
  call   <dist1@plt>
  add    $0x10,%rsp
  mov    %eax,-0x4(%rbp)
  mov    -0x4(%rbp),%eax
  cmp    -0x1c(%rbp),%eax
  jge    L148
  mov    -0x3c(%rbp),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x38(%rbp),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x4(%rbp),%eax
  mov    %eax,-0x1c(%rbp)
L148:
  mov    -0x60(%rbp),%edx
  mov    -0x18(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x64(%rbp),%eax
  sub    -0x18(%rbp),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x3c(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L392
  mov    -0x28(%rbp),%eax
  cmp    -0x3c(%rbp),%eax
  jl     L392
  mov    -0x38(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L392
  mov    -0x20(%rbp),%eax
  cmp    -0x38(%rbp),%eax
  jl     L392
  mov    -0x3c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x5c(%rbp),%eax
  imul   -0x38(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x48(%rbp),%rax
  lea    (%rdx,%rax,1),%rdi
  mov    0x20(%rbp),%esi
  mov    -0x5c(%rbp),%edx
  mov    -0x58(%rbp),%rax
  sub    $0x8,%rsp
  mov    -0x1c(%rbp),%ecx
  push   %rcx
  mov    %esi,%r9d
  mov    $0x0,%r8d
  mov    $0x0,%ecx
  mov    %rax,%rsi
  mov    $0x0,%eax
  call   <dist1@plt>
  add    $0x10,%rsp
  mov    %eax,-0x4(%rbp)
  mov    -0x4(%rbp),%eax
  cmp    -0x1c(%rbp),%eax
  jge    L392
  mov    -0x3c(%rbp),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x38(%rbp),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x4(%rbp),%eax
  mov    %eax,-0x1c(%rbp)
L392:
  mov    -0x60(%rbp),%edx
  mov    -0x18(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x64(%rbp),%edx
  mov    -0x18(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x3c(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L333
  mov    -0x28(%rbp),%eax
  cmp    -0x3c(%rbp),%eax
  jl     L333
  mov    -0x38(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L333
  mov    -0x20(%rbp),%eax
  cmp    -0x38(%rbp),%eax
  jl     L333
  mov    -0x3c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x5c(%rbp),%eax
  imul   -0x38(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x48(%rbp),%rax
  lea    (%rdx,%rax,1),%rdi
  mov    0x20(%rbp),%esi
  mov    -0x5c(%rbp),%edx
  mov    -0x58(%rbp),%rax
  sub    $0x8,%rsp
  mov    -0x1c(%rbp),%ecx
  push   %rcx
  mov    %esi,%r9d
  mov    $0x0,%r8d
  mov    $0x0,%ecx
  mov    %rax,%rsi
  mov    $0x0,%eax
  call   <dist1@plt>
  add    $0x10,%rsp
  mov    %eax,-0x4(%rbp)
  mov    -0x4(%rbp),%eax
  cmp    -0x1c(%rbp),%eax
  jge    L333
  mov    -0x3c(%rbp),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x38(%rbp),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x4(%rbp),%eax
  mov    %eax,-0x1c(%rbp)
L333:
  mov    -0x60(%rbp),%edx
  mov    -0x18(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x64(%rbp),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x3c(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L8
  mov    -0x28(%rbp),%eax
  cmp    -0x3c(%rbp),%eax
  jl     L8
  mov    -0x38(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L8
  mov    -0x20(%rbp),%eax
  cmp    -0x38(%rbp),%eax
  jl     L8
  mov    -0x3c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x5c(%rbp),%eax
  imul   -0x38(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x48(%rbp),%rax
  lea    (%rdx,%rax,1),%rdi
  mov    0x20(%rbp),%esi
  mov    -0x5c(%rbp),%edx
  mov    -0x58(%rbp),%rax
  sub    $0x8,%rsp
  mov    -0x1c(%rbp),%ecx
  push   %rcx
  mov    %esi,%r9d
  mov    $0x0,%r8d
  mov    $0x0,%ecx
  mov    %rax,%rsi
  mov    $0x0,%eax
  call   <dist1@plt>
  add    $0x10,%rsp
  mov    %eax,-0x4(%rbp)
  mov    -0x4(%rbp),%eax
  cmp    -0x1c(%rbp),%eax
  jge    L8
  mov    -0x3c(%rbp),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x38(%rbp),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x4(%rbp),%eax
  mov    %eax,-0x1c(%rbp)
L8:
  mov    -0x60(%rbp),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x64(%rbp),%eax
  sub    -0x18(%rbp),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x3c(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L205
  mov    -0x28(%rbp),%eax
  cmp    -0x3c(%rbp),%eax
  jl     L205
  mov    -0x38(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L205
  mov    -0x20(%rbp),%eax
  cmp    -0x38(%rbp),%eax
  jl     L205
  mov    -0x3c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x5c(%rbp),%eax
  imul   -0x38(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x48(%rbp),%rax
  lea    (%rdx,%rax,1),%rdi
  mov    0x20(%rbp),%esi
  mov    -0x5c(%rbp),%edx
  mov    -0x58(%rbp),%rax
  sub    $0x8,%rsp
  mov    -0x1c(%rbp),%ecx
  push   %rcx
  mov    %esi,%r9d
  mov    $0x0,%r8d
  mov    $0x0,%ecx
  mov    %rax,%rsi
  mov    $0x0,%eax
  call   <dist1@plt>
  add    $0x10,%rsp
  mov    %eax,-0x4(%rbp)
  mov    -0x4(%rbp),%eax
  cmp    -0x1c(%rbp),%eax
  jge    L205
  mov    -0x3c(%rbp),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x38(%rbp),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x4(%rbp),%eax
  mov    %eax,-0x1c(%rbp)
L205:
  mov    -0x60(%rbp),%eax
  sub    -0x18(%rbp),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x64(%rbp),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x3c(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L57
  mov    -0x28(%rbp),%eax
  cmp    -0x3c(%rbp),%eax
  jl     L57
  mov    -0x38(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L57
  mov    -0x20(%rbp),%eax
  cmp    -0x38(%rbp),%eax
  jl     L57
  mov    -0x3c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x5c(%rbp),%eax
  imul   -0x38(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x48(%rbp),%rax
  lea    (%rdx,%rax,1),%rdi
  mov    0x20(%rbp),%esi
  mov    -0x5c(%rbp),%edx
  mov    -0x58(%rbp),%rax
  sub    $0x8,%rsp
  mov    -0x1c(%rbp),%ecx
  push   %rcx
  mov    %esi,%r9d
  mov    $0x0,%r8d
  mov    $0x0,%ecx
  mov    %rax,%rsi
  mov    $0x0,%eax
  call   <dist1@plt>
  add    $0x10,%rsp
  mov    %eax,-0x4(%rbp)
  mov    -0x4(%rbp),%eax
  cmp    -0x1c(%rbp),%eax
  jge    L57
  mov    -0x3c(%rbp),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x38(%rbp),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x4(%rbp),%eax
  mov    %eax,-0x1c(%rbp)
L57:
  mov    -0x60(%rbp),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x64(%rbp),%edx
  mov    -0x18(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x3c(%rbp),%eax
  cmp    -0x2c(%rbp),%eax
  jl     L395
  mov    -0x28(%rbp),%eax
  cmp    -0x3c(%rbp),%eax
  jl     L395
  mov    -0x38(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L395
  mov    -0x20(%rbp),%eax
  cmp    -0x38(%rbp),%eax
  jl     L395
  mov    -0x3c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x5c(%rbp),%eax
  imul   -0x38(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x48(%rbp),%rax
  lea    (%rdx,%rax,1),%rdi
  mov    0x20(%rbp),%esi
  mov    -0x5c(%rbp),%edx
  mov    -0x58(%rbp),%rax
  sub    $0x8,%rsp
  mov    -0x1c(%rbp),%ecx
  push   %rcx
  mov    %esi,%r9d
  mov    $0x0,%r8d
  mov    $0x0,%ecx
  mov    %rax,%rsi
  mov    $0x0,%eax
  call   <dist1@plt>
  add    $0x10,%rsp
  mov    %eax,-0x4(%rbp)
  mov    -0x4(%rbp),%eax
  cmp    -0x1c(%rbp),%eax
  jge    L395
  mov    -0x3c(%rbp),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x38(%rbp),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x4(%rbp),%eax
  mov    %eax,-0x1c(%rbp)
L395:
  mov    -0x34(%rbp),%eax
  mov    %eax,-0x60(%rbp)
  mov    -0x30(%rbp),%eax
  mov    %eax,-0x64(%rbp)
  mov    -0x18(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,-0x18(%rbp)
L179:
  cmpl   $0x0,-0x18(%rbp)
  jg     L88
L511:
  movl   $0x10000,-0x1c(%rbp)
  shll   -0x34(%rbp)
  shll   -0x30(%rbp)
  cmpl   $0x0,-0x34(%rbp)
  setg   %al
  movzbl %al,%edx
  mov    -0x34(%rbp),%eax
  sub    %edx,%eax
  mov    %eax,-0x2c(%rbp)
  mov    0x28(%rbp),%eax
  sub    $0x10,%eax
  add    %eax,%eax
  cmp    %eax,-0x34(%rbp)
  setl   %al
  movzbl %al,%edx
  mov    -0x34(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x28(%rbp)
  cmpl   $0x0,-0x30(%rbp)
  setg   %al
  movzbl %al,%edx
  mov    -0x30(%rbp),%eax
  sub    %edx,%eax
  mov    %eax,-0x24(%rbp)
  mov    0x30(%rbp),%eax
  sub    0x20(%rbp),%eax
  add    %eax,%eax
  cmp    %eax,-0x30(%rbp)
  setl   %al
  movzbl %al,%edx
  mov    -0x30(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x20(%rbp)
  mov    -0x24(%rbp),%eax
  mov    %eax,-0x38(%rbp)
  jmp    L344
L535:
  mov    -0x2c(%rbp),%eax
  mov    %eax,-0x3c(%rbp)
  jmp    L226
L70:
  mov    -0x38(%rbp),%eax
  and    $0x1,%eax
  mov    %eax,%r10d
  mov    -0x3c(%rbp),%eax
  and    $0x1,%eax
  mov    %eax,%ecx
  mov    -0x3c(%rbp),%eax
  sar    %eax
  movslq %eax,%rdx
  mov    -0x38(%rbp),%eax
  sar    %eax
  imul   -0x5c(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x50(%rbp),%rax
  lea    (%rdx,%rax,1),%rdi
  mov    0x20(%rbp),%r8d
  mov    -0x5c(%rbp),%edx
  mov    -0x58(%rbp),%rax
  sub    $0x8,%rsp
  mov    -0x1c(%rbp),%esi
  push   %rsi
  mov    %r8d,%r9d
  mov    %r10d,%r8d
  mov    %rax,%rsi
  mov    $0x0,%eax
  call   <dist1@plt>
  add    $0x10,%rsp
  mov    %eax,-0x4(%rbp)
  mov    -0x4(%rbp),%eax
  cmp    -0x1c(%rbp),%eax
  jge    L110
  mov    -0x4(%rbp),%eax
  mov    %eax,-0x1c(%rbp)
  mov    -0x3c(%rbp),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x38(%rbp),%eax
  mov    %eax,-0x30(%rbp)
L110:
  addl   $0x1,-0x3c(%rbp)
L226:
  mov    -0x28(%rbp),%eax
  cmp    -0x3c(%rbp),%eax
  jge    L70
  addl   $0x1,-0x38(%rbp)
L344:
  mov    -0x20(%rbp),%eax
  cmp    -0x38(%rbp),%eax
  jge    L535
  mov    0x38(%rbp),%rax
  mov    -0x34(%rbp),%edx
  mov    %edx,(%rax)
  mov    0x40(%rbp),%rax
  mov    -0x30(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0x1c(%rbp),%eax
  leave
  ret
```

assistant: ```c
signed int fullsearch(unsigned char *org, unsigned char *ref, unsigned char *blk, signed int lx, signed int i0, signed int j0, signed int sx, signed int sy, signed int h, signed int xmax, signed int ymax, signed int *iminp, signed int *jminp) {
  signed int i;
  signed int j;
  signed int imin;
  signed int jmin;
  signed int ilow;
  signed int ihigh;
  signed int jlow;
  signed int jhigh;
  signed int d;
  signed int dmin;
  signed int p;
  imin = i0;
  jmin = j0;
  dmin = dist1(org + (signed long int)imin + (signed long int)(lx * jmin), blk, lx, 0, 0, h, 65536);
  if (dmin > 64) {
    signed int w;
    signed int z;
    signed int limitx;
    signed int limity;
    ilow = i0 - sx;
    ihigh = i0 + sx;
    if (ilow < 0)
      ilow = 0;
    if (!(-16 + xmax >= ihigh))
      ihigh = xmax - 16;
    jlow = j0 - sy;
    jhigh = j0 + sy;
    if (jlow < 0)
      jlow = 0;
    if (!(ymax + -h >= jhigh))
      jhigh = ymax - h;
    limitx = sx / 4;
    limity = sy / 4;
    w = -limitx;
    while (limitx >= w) {
      z = -limity;
      while (limity >= z) {
        i = i0 + 4 * w;
        j = j0 + 4 * z;
        if (i >= ilow) {
          if (ihigh >= i) {
            if (j >= jlow) {
              if (jhigh >= j) {
                d = dist1(org + (signed long int)i + (signed long int)(lx * j), blk, lx, 0, 0, h, dmin);
                if (!(d >= dmin)) {
                  imin = i;
                  jmin = j;
                  dmin = d;
                }
              }
            }
          }
        }
        z = z + 1;
      }
      w = w + 1;
    }
    p = 2;
    i0 = imin;
    j0 = jmin;
    while (p > 0) {
      i = i0 - p;
      j = j0 - p;
      if (i >= ilow) {
        if (ihigh >= i) {
          if (j >= jlow) {
            if (jhigh >= j) {
              d = dist1(org + (signed long int)i + (signed long int)(lx * j), blk, lx, 0, 0, h, dmin);
              if (!(d >= dmin)) {
                imin = i;
                jmin = j;
                dmin = d;
              }
            }
          }
        }
      }
      i = i0 - p;
      j = j0 + p;
      if (i >= ilow) {
        if (ihigh >= i) {
          if (j >= jlow) {
            if (jhigh >= j) {
              d = dist1(org + (signed long int)i + (signed long int)(lx * j), blk, lx, 0, 0, h, dmin);
              if (!(d >= dmin)) {
                imin = i;
                jmin = j;
                dmin = d;
              }
            }
          }
        }
      }
      i = i0 + p;
      j = j0 - p;
      if (i >= ilow) {
        if (ihigh >= i) {
          if (j >= jlow) {
            if (jhigh >= j) {
              d = dist1(org + (signed long int)i + (signed long int)(lx * j), blk, lx, 0, 0, h, dmin);
              if (!(d >= dmin)) {
                imin = i;
                jmin = j;
                dmin = d;
              }
            }
          }
        }
      }
      i = i0 + p;
      j = j0 + p;
      if (i >= ilow) {
        if (ihigh >= i) {
          if (j >= jlow) {
            if (jhigh >= j) {
              d = dist1(org + (signed long int)i + (signed long int)(lx * j), blk, lx, 0, 0, h, dmin);
              if (!(d >= dmin)) {
                imin = i;
                jmin = j;
                dmin = d;
              }
            }
          }
        }
      }
      i = i0 + p;
      j = j0;
      if (i >= ilow) {
        if (ihigh >= i) {
          if (j >= jlow) {
            if (jhigh >= j) {
              d = dist1(org + (signed long int)i + (signed long int)(lx * j), blk, lx, 0, 0, h, dmin);
              if (!(d >= dmin)) {
                imin = i;
                jmin = j;
                dmin = d;
              }
            }
          }
        }
      }
      i = i0;
      j = j0 - p;
      if (i >= ilow) {
        if (ihigh >= i) {
          if (j >= jlow) {
            if (jhigh >= j) {
              d = dist1(org + (signed long int)i + (signed long int)(lx * j), blk, lx, 0, 0, h, dmin);
              if (!(d >= dmin)) {
                imin = i;
                jmin = j;
                dmin = d;
              }
            }
          }
        }
      }
      i = i0 - p;
      j = j0;
      if (i >= ilow) {
        if (ihigh >= i) {
          if (j >= jlow) {
            if (jhigh >= j) {
              d = dist1(org + (signed long int)i + (signed long int)(lx * j), blk, lx, 0, 0, h, dmin);
              if (!(d >= dmin)) {
                imin = i;
                jmin = j;
                dmin = d;
              }
            }
          }
        }
      }
      i = i0;
      j = j0 + p;
      if (i >= ilow) {
        if (ihigh >= i) {
          if (j >= jlow) {
            if (jhigh >= j) {
              d = dist1(org + (signed long int)i + (signed long int)(lx * j), blk, lx, 0, 0, h, dmin);
              if (!(d >= dmin)) {
                imin = i;
                jmin = j;
                dmin = d;
              }
            }
          }
        }
      }
      i0 = imin;
      j0 = jmin;
      p = p / 2;
    }
  }
  dmin = 65536;
  imin = imin << 1;
  jmin = jmin << 1;
  ilow = imin - (signed int)(imin > 0);
  ihigh = imin + (signed int)(imin < xmax - 16 << 1);
  jlow = jmin - (signed int)(jmin > 0);
  jhigh = jmin + (signed int)(jmin < ymax - h << 1);
  j = jlow;
  while (jhigh >= j) {
    i = ilow;
    while (ihigh >= i) {
      d = dist1(ref + (signed long int)(i >> 1) + (signed long int)(lx * (j >> 1)), blk, lx, i & 1, j & 1, h, dmin);
      if (!(d >= dmin)) {
        dmin = d;
        imin = i;
        jmin = j;
      }
      i = i + 1;
    }
    j = j + 1;
  }
  *iminp = imin;
  *jminp = jmin;
  return dmin;
}
```