user: 下面的汇编指令对应的C源代码是什么：

```asm
<UI_Update>:
  endbr64
  push   %r13
  xor    %eax,%eax
  push   %r12
  push   %rbp
  mov    %rdi,%rbp
  push   %rbx
  sub    $0x8,%rsp
  call   <trap_Cvar_VariableValue@plt>
  lea    D504(%rip),%rsi
  mov    %rbp,%rdi
  mov    %eax,%ebx
  xor    %eax,%eax
  call   <Q_stricmp@plt>
  test   %eax,%eax
  jne    L329
  lea    D319(%rip),%rdi
  call   <UI_Cvar_VariableString@plt>
  lea    D352(%rip),%rdi
  mov    %eax,%esi
L252:
  add    $0x8,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  jmp    1090 <trap_Cvar_Set@plt>
  nopl   (%rax)
L329:
  xor    %eax,%eax
  lea    D741(%rip),%rsi
  mov    %rbp,%rdi
  call   <Q_stricmp@plt>
  test   %eax,%eax
  jne    L269
  lea    D260(%rip),%rdi
  call   <trap_Cvar_VariableValue@plt>
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  comiss D121(%rip),%xmm0
  jae    L319
  xor    %eax,%eax
  comiss D99(%rip),%xmm0
  lea    D296(%rip),%rsi
  lea    D497(%rip),%rdi
  jb     L298
  call   <trap_Cvar_Set@plt>
  lea    D188(%rip),%rsi
L15:
  lea    D479(%rip),%rdi
L158:
  add    $0x8,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  jmp    1090 <trap_Cvar_Set@plt>
  nop
L269:
  xor    %eax,%eax
  lea    D384(%rip),%rsi
  mov    %rbp,%rdi
  call   <Q_stricmp@plt>
  test   %eax,%eax
  je     L69
  lea    D85(%rip),%r12
  xor    %eax,%eax
  mov    %rbp,%rdi
  mov    %r12,%rsi
  call   <Q_stricmp@plt>
  test   %eax,%eax
  jne    L115
  cmp    $0x10,%ebx
  je     L316
  cmp    $0x20,%ebx
  je     L184
  test   %ebx,%ebx
  je     L235
L125:
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  ret
  cs nopw 0x0(%rax,%rax,1)
L69:
  lea    D352(%rip),%rdi
  call   <UI_Cvar_VariableString@plt>
  lea    D319(%rip),%rdi
  mov    %eax,%esi
  jmp    L252
  nopw   0x0(%rax,%rax,1)
L319:
  lea    D699(%rip),%rsi
  lea    D497(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_Set@plt>
  lea    D118(%rip),%rsi
  jmp    L15
  nopl   0x0(%rax)
L298:
  call   <trap_Cvar_Set@plt>
  lea    D118(%rip),%rsi
  jmp    L15
  nopl   0x0(%rax)
L115:
  lea    D540(%rip),%r13
  xor    %eax,%eax
  mov    %rbp,%rdi
  mov    %r13,%rsi
  call   <Q_stricmp@plt>
  test   %eax,%eax
  jne    L34
  cmp    $0x1,%ebx
  je     L17
  cmp    $0x2,%ebx
  je     L271
  mov    $0x4,%esi
  lea    D786(%rip),%rdi
  test   %ebx,%ebx
  jne    L125
L193:
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  jmp    10b0 <trap_Cvar_SetValue@plt>
  nopl   0x0(%rax)
L235:
  xor    %esi,%esi
  lea    D135(%rip),%rdi
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  lea    D713(%rip),%rdi
  xor    %eax,%eax
  jmp    L193
  nopl   0x0(%rax,%rax,1)
L184:
  mov    $0x18,%esi
  lea    D135(%rip),%rdi
  xor    %eax,%eax
  jmp    L193
  nopl   0x0(%rax,%rax,1)
L316:
  mov    $0x10,%esi
  lea    D135(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  lea    D713(%rip),%rdi
  xor    %eax,%eax
  jmp    L193
L34:
  xor    %eax,%eax
  lea    D709(%rip),%rsi
  mov    %rbp,%rdi
  call   <Q_stricmp@plt>
  test   %eax,%eax
  jne    L7
  cmp    $0x2,%ebx
  je     L217
  jg     L85
  test   %ebx,%ebx
  je     L285
  cmp    $0x1,%ebx
  jne    L125
  mov    $0x1,%esi
  lea    D515(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0xc,%esi
  lea    D786(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  lea    D715(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  mov    %r13,%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x18,%esi
  lea    D135(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  lea    D462(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x3,%esi
  lea    D32(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  lea    D277(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  lea    D27(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x1,%esi
  lea    D523(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x9c4,%esi
  lea    D676(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  lea    D383(%rip),%rsi
  lea    D842(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_Set@plt>
  xor    %esi,%esi
  lea    D200(%rip),%rdi
  xor    %eax,%eax
  jmp    L193
L85:
  cmp    $0x3,%ebx
  jne    L125
  mov    $0x1,%esi
  lea    D515(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x14,%esi
  lea    D786(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x1,%esi
  lea    D715(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x2,%esi
  mov    %r13,%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x10,%esi
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x10,%esi
  lea    D135(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x3,%esi
  lea    D32(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x2,%esi
  lea    D462(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x10,%esi
  lea    D277(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  lea    D200(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  lea    D676(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x1,%esi
  lea    D27(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  lea    D523(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  lea    D580(%rip),%rsi
  lea    D842(%rip),%rdi
  jmp    L158
L271:
  mov    $0x14,%esi
  lea    D786(%rip),%rdi
  xor    %eax,%eax
  jmp    L193
L17:
  mov    $0xc,%esi
  lea    D786(%rip),%rdi
  xor    %eax,%eax
  jmp    L193
L7:
  xor    %eax,%eax
  lea    D482(%rip),%rsi
  mov    %rbp,%rdi
  call   <Q_stricmp@plt>
  test   %eax,%eax
  jne    L125
  movsd  D642(%rip),%xmm0
  test   %ebx,%ebx
  je     L5
  movsd  D789(%rip),%xmm0
L5:
  add    $0x8,%rsp
  lea    D646(%rip),%rdi
  mov    $0x1,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  jmp    10b0 <trap_Cvar_SetValue@plt>
L217:
  mov    $0x1,%esi
  lea    D515(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x8,%esi
  lea    D786(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  lea    D715(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x1,%esi
  mov    %r13,%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  lea    D135(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x1,%esi
  lea    D462(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x3,%esi
  lea    D32(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  lea    D277(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  lea    D200(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x1,%esi
  lea    D27(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  lea    D523(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  lea    D676(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  lea    D580(%rip),%rsi
  lea    D842(%rip),%rdi
  jmp    L158
L285:
  mov    $0x1,%esi
  lea    D515(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x4,%esi
  lea    D786(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  lea    D715(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  mov    %r13,%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x20,%esi
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x18,%esi
  lea    D135(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  lea    D462(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x4,%esi
  lea    D32(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x20,%esi
  lea    D277(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  xor    %esi,%esi
  lea    D27(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x1,%esi
  lea    D523(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x1,%esi
  lea    D200(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  mov    $0x9c4,%esi
  lea    D676(%rip),%rdi
  xor    %eax,%eax
  call   <trap_Cvar_SetValue@plt>
  lea    D383(%rip),%rsi
  lea    D842(%rip),%rdi
  jmp    L158
```

tool_calls: name: parse_data
arguments: label: D504
type: string
name: parse_data
arguments: label: D319
type: string
name: parse_data
arguments: label: D352
type: string
name: parse_data
arguments: label: D741
type: string
name: parse_data
arguments: label: D260
type: string
name: parse_data
arguments: label: D121
type: byte[4]
name: parse_data
arguments: label: D99
type: byte[4]
name: parse_data
arguments: label: D296
type: string
name: parse_data
arguments: label: D497
type: string
name: parse_data
arguments: label: D188
type: string
name: parse_data
arguments: label: D479
type: string
name: parse_data
arguments: label: D384
type: string
name: parse_data
arguments: label: D85
type: string
name: parse_data
arguments: label: D699
type: string
name: parse_data
arguments: label: D118
type: string
name: parse_data
arguments: label: D540
type: string
name: parse_data
arguments: label: D786
type: string
name: parse_data
arguments: label: D135
type: string
name: parse_data
arguments: label: D713
type: string
name: parse_data
arguments: label: D709
type: string
name: parse_data
arguments: label: D515
type: string
name: parse_data
arguments: label: D715
type: string
name: parse_data
arguments: label: D462
type: string
name: parse_data
arguments: label: D32
type: string
name: parse_data
arguments: label: D277
type: string
name: parse_data
arguments: label: D27
type: string
name: parse_data
arguments: label: D523
type: string
name: parse_data
arguments: label: D676
type: string
name: parse_data
arguments: label: D383
type: string
name: parse_data
arguments: label: D842
type: string
name: parse_data
arguments: label: D200
type: string
name: parse_data
arguments: label: D580
type: string
name: parse_data
arguments: label: D482
type: string
name: parse_data
arguments: label: D642
type: byte[8]
name: parse_data
arguments: label: D789
type: byte[8]
name: parse_data
arguments: label: D646
type: string

tool: D504: ui_SetName

tool: D319: ui_Name

tool: D352: name

tool: D741: ui_setRate

tool: D260: rate

tool: {"D121": [0x00,0x40,0x9c,0x45]}

tool: {"D99": [0x00,0x00,0x7a,0x45]}

tool: D296: 15

tool: D497: cl_maxpackets

tool: D188: 2

tool: D479: cl_packetdup

tool: D384: ui_GetName

tool: D85: r_colorbits

tool: D699: 30

tool: D118: 1

tool: D540: r_lodbias

tool: D786: r_subdivisions

tool: D135: r_depthbits

tool: D713: r_stencilbits

tool: D709: ui_glCustom

tool: D515: r_fullScreen

tool: D715: r_vertexlight

tool: D462: r_picmip

tool: D32: r_mode

tool: D277: r_texturebits

tool: D27: r_fastSky

tool: D523: r_inGameVideo

tool: D676: cg_brassTime

tool: D383: GL_LINEAR_MIPMAP_LINEAR

tool: D842: r_texturemode

tool: D200: cg_shadows

tool: D580: GL_LINEAR_MIPMAP_NEAREST

tool: D482: ui_mousePitch

tool: {"D642": [0x00,0x00,0x00,0x00,0x2b,0x87,0x96,0x3f]}

tool: {"D789": [0x00,0x00,0x00,0x00,0x2b,0x87,0x96,0xbf]}

tool: D646: m_pitch

assistant: ```c
void UI_Update(const char *name) {
  int val = trap_Cvar_VariableValue(name);
  if (Q_stricmp(name, "ui_SetName") == 0) {
    trap_Cvar_Set("name", UI_Cvar_VariableString("ui_Name"));
  } else if (Q_stricmp(name, "ui_setRate") == 0) {
    float rate = trap_Cvar_VariableValue("rate");
    if (rate >= 5000) {
      trap_Cvar_Set("cl_maxpackets", "30");
      trap_Cvar_Set("cl_packetdup", "1");
    } else if (rate >= 4000) {
      trap_Cvar_Set("cl_maxpackets", "15");
      trap_Cvar_Set("cl_packetdup", "2");
    } else {
      trap_Cvar_Set("cl_maxpackets", "15");
      trap_Cvar_Set("cl_packetdup", "1");
    }
  } else if (Q_stricmp(name, "ui_GetName") == 0) {
    trap_Cvar_Set("ui_Name", UI_Cvar_VariableString("name"));
  } else if (Q_stricmp(name, "r_colorbits") == 0) {
    switch (val) {
    case 0:
      trap_Cvar_SetValue("r_depthbits", 0);
      trap_Cvar_SetValue("r_stencilbits", 0);
      break;
    case 16:
      trap_Cvar_SetValue("r_depthbits", 16);
      trap_Cvar_SetValue("r_stencilbits", 0);
      break;
    case 32:
      trap_Cvar_SetValue("r_depthbits", 24);
      break;
    }
  } else if (Q_stricmp(name, "r_lodbias") == 0) {
    switch (val) {
    case 0:
      trap_Cvar_SetValue("r_subdivisions", 4);
      break;
    case 1:
      trap_Cvar_SetValue("r_subdivisions", 12);
      break;
    case 2:
      trap_Cvar_SetValue("r_subdivisions", 20);
      break;
    }
  } else if (Q_stricmp(name, "ui_glCustom") == 0) {
    switch (val) {
    case 0:
      trap_Cvar_SetValue("r_fullScreen", 1);
      trap_Cvar_SetValue("r_subdivisions", 4);
      trap_Cvar_SetValue("r_vertexlight", 0);
      trap_Cvar_SetValue("r_lodbias", 0);
      trap_Cvar_SetValue("r_colorbits", 32);
      trap_Cvar_SetValue("r_depthbits", 24);
      trap_Cvar_SetValue("r_picmip", 0);
      trap_Cvar_SetValue("r_mode", 4);
      trap_Cvar_SetValue("r_texturebits", 32);
      trap_Cvar_SetValue("r_fastSky", 0);
      trap_Cvar_SetValue("r_inGameVideo", 1);
      trap_Cvar_SetValue("cg_shadows", 1);
      trap_Cvar_SetValue("cg_brassTime", 2500);
      trap_Cvar_Set("r_texturemode", "GL_LINEAR_MIPMAP_LINEAR");
      break;
    case 1:
      trap_Cvar_SetValue("r_fullScreen", 1);
      trap_Cvar_SetValue("r_subdivisions", 12);
      trap_Cvar_SetValue("r_vertexlight", 0);
      trap_Cvar_SetValue("r_lodbias", 0);
      trap_Cvar_SetValue("r_colorbits", 0);
      trap_Cvar_SetValue("r_depthbits", 24);
      trap_Cvar_SetValue("r_picmip", 0);
      trap_Cvar_SetValue("r_mode", 3);
      trap_Cvar_SetValue("r_texturebits", 0);
      trap_Cvar_SetValue("r_fastSky", 0);
      trap_Cvar_SetValue("r_inGameVideo", 1);
      trap_Cvar_SetValue("cg_brassTime", 2500);
      trap_Cvar_Set("r_texturemode", "GL_LINEAR_MIPMAP_LINEAR");
      trap_Cvar_SetValue("cg_shadows", 0);
      break;
    case 2:
      trap_Cvar_SetValue("r_fullScreen", 1);
      trap_Cvar_SetValue("r_subdivisions", 8);
      trap_Cvar_SetValue("r_vertexlight", 0);
      trap_Cvar_SetValue("r_lodbias", 1);
      trap_Cvar_SetValue("r_colorbits", 0);
      trap_Cvar_SetValue("r_depthbits", 0);
      trap_Cvar_SetValue("r_picmip", 1);
      trap_Cvar_SetValue("r_mode", 3);
      trap_Cvar_SetValue("r_texturebits", 0);
      trap_Cvar_SetValue("cg_shadows", 0);
      trap_Cvar_SetValue("r_fastSky", 1);
      trap_Cvar_SetValue("r_inGameVideo", 0);
      trap_Cvar_SetValue("cg_brassTime", 0);
      trap_Cvar_Set("r_texturemode", "GL_LINEAR_MIPMAP_NEAREST");
      break;
    case 3:
      trap_Cvar_SetValue("r_fullScreen", 1);
      trap_Cvar_SetValue("r_subdivisions", 20);
      trap_Cvar_SetValue("r_vertexlight", 1);
      trap_Cvar_SetValue("r_lodbias", 2);
      trap_Cvar_SetValue("r_colorbits", 16);
      trap_Cvar_SetValue("r_depthbits", 16);
      trap_Cvar_SetValue("r_mode", 3);
      trap_Cvar_SetValue("r_picmip", 2);
      trap_Cvar_SetValue("r_texturebits", 16);
      trap_Cvar_SetValue("cg_shadows", 0);
      trap_Cvar_SetValue("cg_brassTime", 0);
      trap_Cvar_SetValue("r_fastSky", 1);
      trap_Cvar_SetValue("r_inGameVideo", 0);
      trap_Cvar_Set("r_texturemode", "GL_LINEAR_MIPMAP_NEAREST");
      break;
    }
  } else if (Q_stricmp(name, "ui_mousePitch") == 0) {
    if (val == 0) {
      trap_Cvar_SetValue("m_pitch", 0.022f);
    } else {
      trap_Cvar_SetValue("m_pitch", -0.022f);
    }
  }
}
```