user: 请从给定的汇编指令推导出C源代码:

```asm
<adjustSide>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %rbx
  sub    $0x8,%rsp
  mov    $0x0,%edi
  call   <get_front_ir_dist@plt>
  sub    $0x19,%eax
  mov    %eax,%edx
  neg    %edx
  cmovns %edx,%eax
  cmp    $0x5,%eax
  jle    L50
  mov    $0x0,%edi
  call   <get_side_ir_dist@plt>
  sub    $0x19,%eax
  mov    %eax,%edx
  neg    %edx
  cmovns %edx,%eax
  cmp    $0x5,%eax
  jle    L50
  mov    $0x0,%edi
  call   <get_front_ir_dist@plt>
  cmp    $0x18,%eax
  jg     L48
  mov    $0x0,%edi
  call   <get_side_ir_dist@plt>
  cmp    $0x18,%eax
  jg     L48
  jmp    L37
L70:
  mov    $0x1e,%esi
  mov    $0x32,%edi
  call   <set_motors@plt>
  mov    $0x0,%edi
  call   <get_front_ir_dist@plt>
  mov    %eax,%ebx
  mov    $0x0,%edi
  call   <get_side_ir_dist@plt>
  mov    %ebx,%edx
  mov    %eax,%esi
  lea    D2(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  call   <checkWallAhead@plt>
  mov    $0x0,%eax
  call   <calcP@plt>
L37:
  mov    $0x0,%edi
  call   <get_front_ir_dist@plt>
  sub    $0x19,%eax
  mov    %eax,%edx
  neg    %edx
  cmovns %edx,%eax
  cmp    $0x5,%eax
  jle    L48
  mov    $0x0,%edi
  call   <get_side_ir_dist@plt>
  sub    $0x19,%eax
  mov    %eax,%edx
  neg    %edx
  cmovns %edx,%eax
  cmp    $0x5,%eax
  jg     L70
L48:
  mov    $0x0,%edi
  call   <get_front_ir_dist@plt>
  cmp    $0x19,%eax
  jle    L50
  mov    $0x0,%edi
  call   <get_side_ir_dist@plt>
  cmp    $0x19,%eax
  jle    L50
  jmp    L2
L8:
  mov    $0x32,%esi
  mov    $0x1e,%edi
  call   <set_motors@plt>
  mov    $0x0,%edi
  call   <get_front_ir_dist@plt>
  mov    %eax,%ebx
  mov    $0x0,%edi
  call   <get_side_ir_dist@plt>
  mov    %ebx,%edx
  mov    %eax,%esi
  lea    D5(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  call   <checkWallAhead@plt>
  mov    $0x0,%eax
  call   <calcP@plt>
L2:
  mov    $0x0,%edi
  call   <get_front_ir_dist@plt>
  sub    $0x19,%eax
  mov    %eax,%edx
  neg    %edx
  cmovns %edx,%eax
  cmp    $0x5,%eax
  jle    L50
  mov    $0x0,%edi
  call   <get_side_ir_dist@plt>
  sub    $0x19,%eax
  mov    %eax,%edx
  neg    %edx
  cmovns %edx,%eax
  cmp    $0x5,%eax
  jg     L8
L50:
  nop
  mov    -0x8(%rbp),%rbx
  leave
  ret
```

tool_calls: name: parse_data
arguments: tag: D2
data_type: string
name: parse_data
arguments: tag: D5
data_type: string

tool: D2:  SIDE OUT %d %d


tool: D5:  SIDE IN %d %d


assistant: ```c
void adjustSide() {
  if (abs(get_front_ir_dist(0) - 25) > 5 && abs(get_side_ir_dist(0) - 25) > 5) {
    if (get_front_ir_dist(0) - 25 < 0 && get_side_ir_dist(0) - 25 < 0) {
      while (abs(get_front_ir_dist(0) - 25) > 5 && abs(get_side_ir_dist(0) - 25) > 5) {
        set_motors(50, 30);
        printf(" SIDE OUT %d %d\n", get_side_ir_dist(0), get_front_ir_dist(0));
        checkWallAhead();
        calcP();
      }
    }
    if (get_front_ir_dist(0) - 25 > 0 && get_side_ir_dist(0) - 25 > 0) {
      while (abs(get_front_ir_dist(0) - 25) > 5 && abs(get_side_ir_dist(0) - 25) > 5) {
        set_motors(30, 50);
        printf(" SIDE IN %d %d\n", get_side_ir_dist(0), get_front_ir_dist(0));
        checkWallAhead();
        calcP();
      }
    }
  }
}
```