ylfeng/ReF-Decompile-dataset huggingface dataset:
user: 请将以下的汇编代码转换成C语言代码:

```asm
<count_dir>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x438,%rsp
  mov    %rdx,0x8(%rsp)
  mov    %fs:0x28,%rax
  mov    %rax,0x428(%rsp)
  xor    %eax,%eax
  test   %rsi,%rsi
  je     L4
  test   %rdx,%rdx
  je     L4
  mov    %rdi,%r12
  mov    %rsi,%r13
  call   <opendir@plt>
  mov    %rax,%rbp
  test   %rax,%rax
  je     L4
  mov    0x8(%rsp),%rax
  lea    D8(%rip),%r15
  movl   $0x0,(%rax)
  movl   $0x0,0x0(%r13)
L68:
  mov    %rbp,%rdi
  call   <readdir@plt>
  mov    %rax,%rbx
  test   %rax,%rax
  je     L27
L8:
  mov    (%rbx),%rax
  cmpb   $0x2e,(%rax)
  je     L68
  lea    0x20(%rsp),%r14
  xor    %esi,%esi
  mov    $0x400,%edx
  mov    %r14,%rdi
  call   <memset@plt>
  mov    (%rbx),%r8
  mov    $0x400,%esi
  mov    %r14,%rdi
  mov    %r12,%rcx
  mov    %r15,%rdx
  call   <snprintf@plt>
  lea    0x1c(%rsp),%rsi
  mov    %r14,%rdi
  call   <stat@plt>
  test   %rax,%rax
  js     L68
  mov    0x1c(%rsp),%edi
  call   <S_ISDIR@plt>
  test   %eax,%eax
  jne    L10
  mov    0x8(%rsp),%rax
  mov    %rbp,%rdi
  addl   $0x1,(%rax)
  call   <readdir@plt>
  mov    %rax,%rbx
  test   %rax,%rax
  jne    L8
  nopl   0x0(%rax)
L27:
  mov    %rbp,%rdi
  call   <closedir@plt>
  xor    %eax,%eax
L76:
  mov    0x428(%rsp),%rdx
  sub    %fs:0x28,%rdx
  jne    L70
  add    $0x438,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nop
L10:
  addl   $0x1,0x0(%r13)
  jmp    L68
L4:
  mov    $0xffffffff,%eax
  jmp    L76
L70:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: read_data
arguments: data_label: D8
type_guessed: string

tool: D8: %s/%s

assistant: ```c
int count_dir(const char *src_path, int *num_folders, int *num_files) {
  struct dirent *ds;
  struct stat st;
  char wpath[1024];
  DIR *dr;
  if (!num_folders || !num_files || (dr = opendir(src_path)) == NULL)
    return -1;
  (*num_files) = 0;
  (*num_folders) = 0;
  while ((ds = readdir(dr))) {
    if (*(ds->d_name) == '.')
      continue;
    memset(wpath, 0, sizeof(wpath));
    snprintf(wpath, sizeof(wpath), "%s/%s", src_path, ds->d_name);
    if (stat(wpath, &st) < 0)
      continue;
    if (!S_ISDIR(st.st_mode))
      (*num_files)++;
    else
      (*num_folders)++;
  }
  closedir(dr);
  return 0;
}
```
user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<count_dir>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x438,%rsp
  mov    %rdx,0x8(%rsp)
  mov    %fs:0x28,%rax
  mov    %rax,0x428(%rsp)
  xor    %eax,%eax
  test   %rsi,%rsi
  je     L66
  test   %rdx,%rdx
  je     L66
  mov    %rdi,%r12
  mov    %rsi,%r13
  call   <opendir@plt>
  mov    %rax,%rbp
  test   %rax,%rax
  je     L66
  mov    0x8(%rsp),%rax
  lea    D5(%rip),%r15
  movl   $0x0,(%rax)
  movl   $0x0,0x0(%r13)
L77:
  mov    %rbp,%rdi
  call   <readdir@plt>
  mov    %rax,%rbx
  test   %rax,%rax
  je     L15
L19:
  mov    (%rbx),%rax
  cmpb   $0x2e,(%rax)
  je     L77
  lea    0x20(%rsp),%r14
  xor    %esi,%esi
  mov    $0x400,%edx
  mov    %r14,%rdi
  call   <memset@plt>
  mov    (%rbx),%r8
  mov    $0x400,%esi
  mov    %r14,%rdi
  mov    %r12,%rcx
  mov    %r15,%rdx
  call   <snprintf@plt>
  lea    0x1c(%rsp),%rsi
  mov    %r14,%rdi
  call   <stat@plt>
  test   %rax,%rax
  js     L77
  mov    0x1c(%rsp),%edi
  call   <S_ISDIR@plt>
  test   %eax,%eax
  jne    L3
  mov    0x8(%rsp),%rax
  mov    %rbp,%rdi
  addl   $0x1,(%rax)
  call   <readdir@plt>
  mov    %rax,%rbx
  test   %rax,%rax
  jne    L19
  nopl   0x0(%rax)
L15:
  mov    %rbp,%rdi
  call   <closedir@plt>
  xor    %eax,%eax
L36:
  mov    0x428(%rsp),%rdx
  sub    %fs:0x28,%rdx
  jne    L59
  add    $0x438,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nop
L3:
  addl   $0x1,0x0(%r13)
  jmp    L77
L66:
  mov    $0xffffffff,%eax
  jmp    L36
L59:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: read_data
arguments: tag: D5
type_infered: string

tool: D5: %s/%s

assistant: ```c
int count_dir(const char *src_path, int *num_folders, int *num_files) {
  struct dirent *ds;
  struct stat st;
  char wpath[1024];
  DIR *dr;
  if (!num_folders || !num_files || (dr = opendir(src_path)) == NULL)
    return -1;
  (*num_files) = 0;
  (*num_folders) = 0;
  while ((ds = readdir(dr))) {
    if (*(ds->d_name) == '.')
      continue;
    memset(wpath, 0, sizeof(wpath));
    snprintf(wpath, sizeof(wpath), "%s/%s", src_path, ds->d_name);
    if (stat(wpath, &st) < 0)
      continue;
    if (!S_ISDIR(st.st_mode))
      (*num_files)++;
    else
      (*num_folders)++;
  }
  closedir(dr);
  return 0;
}
```
user: Please show me the C implementation that matches the assembly code listed below:

```asm
<ReportUsage>:
  endbr64
  sub    $0x8,%rsp
  lea    D5(%rip),%rdi
  call   <printf@plt>
  lea    D27(%rip),%rdi
  call   <printf@plt>
  lea    D118(%rip),%rdi
  call   <printf@plt>
  lea    D88(%rip),%rdi
  call   <printf@plt>
  lea    D101(%rip),%rdi
  call   <printf@plt>
  lea    D106(%rip),%rdi
  call   <printf@plt>
  lea    D93(%rip),%rdi
  call   <printf@plt>
  lea    D70(%rip),%rdi
  call   <printf@plt>
  lea    D78(%rip),%rdi
  call   <printf@plt>
  lea    D104(%rip),%rdi
  call   <printf@plt>
  lea    D7(%rip),%rdi
  call   <printf@plt>
  lea    D11(%rip),%rdi
  call   <PrintStdOpts@plt>
  lea    D92(%rip),%rdi
  call   <printf@plt>
  add    $0x8,%rsp
  ret
```

tool_calls: name: read_data
arguments: label: D5
type_infered: string
name: read_data
arguments: label: D27
type_infered: string
name: read_data
arguments: label: D118
type_infered: string
name: read_data
arguments: label: D88
type_infered: string
name: read_data
arguments: label: D101
type_infered: string
name: read_data
arguments: label: D106
type_infered: string
name: read_data
arguments: label: D93
type_infered: string
name: read_data
arguments: label: D70
type_infered: string
name: read_data
arguments: label: D78
type_infered: string
name: read_data
arguments: label: D104
type_infered: string
name: read_data
arguments: label: D7
type_infered: string
name: read_data
arguments: label: D11
type_infered: string
name: read_data
arguments: label: D92
type_infered: string

tool: D5: 
USAGE: HBuild [options] wordList latFile



tool: D27:  Option                                       Default



tool: D118:  -b      binary lattice output                ASCII


tool: D88:  -m s    load matrix bigram from s            off


tool: D101:  -n s    load back-off bigram from s          off


tool: D106:  -s s1 s2 s1/s2 are bigram start/end labels   !ENTER !EXIT


tool: D93:  -t s1 s2 bracket word-loop/pair with s1 s2   off


tool: D70:  -u s    set unknown symbol to s              !NULL


tool: D78:  -w s    load word-pair grammar from s        off


tool: D104:  -x s    load multi-level lattice from s      off


tool: D7:  -z      ignore ngrams with unknown symbol    off


tool: 

tool: D92: 



assistant: ```c
void ReportUsage(void) {
  printf("\nUSAGE: HBuild [options] wordList latFile\n\n");
  printf(" Option                                       Default\n\n");
  printf(" -b      binary lattice output                ASCII\n");
  printf(" -m s    load matrix bigram from s            off\n");
  printf(" -n s    load back-off bigram from s          off\n");
  printf(" -s s1 s2 s1/s2 are bigram start/end labels   !ENTER !EXIT\n");
  printf(" -t s1 s2 bracket word-loop/pair with s1 s2   off\n");
  printf(" -u s    set unknown symbol to s              !NULL\n");
  printf(" -w s    load word-pair grammar from s        off\n");
  printf(" -x s    load multi-level lattice from s      off\n");
  printf(" -z      ignore ngrams with unknown symbol    off\n");
  PrintStdOpts("");
  printf("\n\n");
}
```
user: Converte this assembly snippet into its equivalent C code:

```asm
<ReportUsage>:
  endbr64
  sub    $0x8,%rsp
  lea    D121(%rip),%rdi
  call   <printf@plt>
  lea    D81(%rip),%rdi
  call   <printf@plt>
  lea    D63(%rip),%rdi
  call   <printf@plt>
  lea    D129(%rip),%rdi
  call   <printf@plt>
  lea    D37(%rip),%rdi
  call   <printf@plt>
  lea    D85(%rip),%rdi
  call   <printf@plt>
  lea    D3(%rip),%rdi
  call   <printf@plt>
  lea    D4(%rip),%rdi
  call   <printf@plt>
  lea    D0(%rip),%rdi
  call   <printf@plt>
  lea    D107(%rip),%rdi
  call   <printf@plt>
  lea    D90(%rip),%rdi
  call   <printf@plt>
  lea    D97(%rip),%rdi
  call   <PrintStdOpts@plt>
  lea    D8(%rip),%rdi
  add    $0x8,%rsp
  jmp    1060 <printf@plt>
```

tool_calls: name: retrieve_data
arguments: label: D121
type_guessed: string
name: retrieve_data
arguments: label: D81
type_guessed: string
name: retrieve_data
arguments: label: D63
type_guessed: string
name: retrieve_data
arguments: label: D129
type_guessed: string
name: retrieve_data
arguments: label: D37
type_guessed: string
name: retrieve_data
arguments: label: D85
type_guessed: string
name: retrieve_data
arguments: label: D3
type_guessed: string
name: retrieve_data
arguments: label: D4
type_guessed: string
name: retrieve_data
arguments: label: D0
type_guessed: string
name: retrieve_data
arguments: label: D107
type_guessed: string
name: retrieve_data
arguments: label: D90
type_guessed: string
name: retrieve_data
arguments: label: D97
type_guessed: string
name: retrieve_data
arguments: label: D8
type_guessed: string

tool: D121: 
USAGE: HBuild [options] wordList latFile



tool: D81:  Option                                       Default



tool: D63:  -b      binary lattice output                ASCII


tool: D129:  -m s    load matrix bigram from s            off


tool: D37:  -n s    load back-off bigram from s          off


tool: D85:  -s s1 s2 s1/s2 are bigram start/end labels   !ENTER !EXIT


tool: D3:  -t s1 s2 bracket word-loop/pair with s1 s2   off


tool: D4:  -u s    set unknown symbol to s              !NULL


tool: D0:  -w s    load word-pair grammar from s        off


tool: D107:  -x s    load multi-level lattice from s      off


tool: D90:  -z      ignore ngrams with unknown symbol    off


tool: 

tool: D8: 



assistant: ```c
void ReportUsage(void) {
  printf("\nUSAGE: HBuild [options] wordList latFile\n\n");
  printf(" Option                                       Default\n\n");
  printf(" -b      binary lattice output                ASCII\n");
  printf(" -m s    load matrix bigram from s            off\n");
  printf(" -n s    load back-off bigram from s          off\n");
  printf(" -s s1 s2 s1/s2 are bigram start/end labels   !ENTER !EXIT\n");
  printf(" -t s1 s2 bracket word-loop/pair with s1 s2   off\n");
  printf(" -u s    set unknown symbol to s              !NULL\n");
  printf(" -w s    load word-pair grammar from s        off\n");
  printf(" -x s    load multi-level lattice from s      off\n");
  printf(" -z      ignore ngrams with unknown symbol    off\n");
  PrintStdOpts("");
  printf("\n\n");
}
```
user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<ReportUsage>:
  endbr64
  sub    $0x8,%rsp
  lea    D125(%rip),%rdi
  call   <printf@plt>
  lea    D63(%rip),%rdi
  call   <printf@plt>
  lea    D81(%rip),%rdi
  call   <printf@plt>
  lea    D9(%rip),%rdi
  call   <printf@plt>
  lea    D21(%rip),%rdi
  call   <printf@plt>
  lea    D87(%rip),%rdi
  call   <printf@plt>
  lea    D23(%rip),%rdi
  call   <printf@plt>
  lea    D62(%rip),%rdi
  call   <printf@plt>
  lea    D40(%rip),%rdi
  call   <printf@plt>
  lea    D89(%rip),%rdi
  call   <printf@plt>
  lea    D55(%rip),%rdi
  call   <printf@plt>
  lea    D31(%rip),%rdi
  call   <PrintStdOpts@plt>
  lea    D126(%rip),%rdi
  add    $0x8,%rsp
  jmp    1060 <printf@plt>
```

tool_calls: name: retrieve_data
arguments: label: D125
type_infered: string
name: retrieve_data
arguments: label: D63
type_infered: string
name: retrieve_data
arguments: label: D81
type_infered: string
name: retrieve_data
arguments: label: D9
type_infered: string
name: retrieve_data
arguments: label: D21
type_infered: string
name: retrieve_data
arguments: label: D87
type_infered: string
name: retrieve_data
arguments: label: D23
type_infered: string
name: retrieve_data
arguments: label: D62
type_infered: string
name: retrieve_data
arguments: label: D40
type_infered: string
name: retrieve_data
arguments: label: D89
type_infered: string
name: retrieve_data
arguments: label: D55
type_infered: string
name: retrieve_data
arguments: label: D31
type_infered: string
name: retrieve_data
arguments: label: D126
type_infered: string

tool: D125: 
USAGE: HBuild [options] wordList latFile



tool: D63:  Option                                       Default



tool: D81:  -b      binary lattice output                ASCII


tool: D9:  -m s    load matrix bigram from s            off


tool: D21:  -n s    load back-off bigram from s          off


tool: D87:  -s s1 s2 s1/s2 are bigram start/end labels   !ENTER !EXIT


tool: D23:  -t s1 s2 bracket word-loop/pair with s1 s2   off


tool: D62:  -u s    set unknown symbol to s              !NULL


tool: D40:  -w s    load word-pair grammar from s        off


tool: D89:  -x s    load multi-level lattice from s      off


tool: D55:  -z      ignore ngrams with unknown symbol    off


tool: 

tool: D126: 



assistant: ```c
void ReportUsage(void) {
  printf("\nUSAGE: HBuild [options] wordList latFile\n\n");
  printf(" Option                                       Default\n\n");
  printf(" -b      binary lattice output                ASCII\n");
  printf(" -m s    load matrix bigram from s            off\n");
  printf(" -n s    load back-off bigram from s          off\n");
  printf(" -s s1 s2 s1/s2 are bigram start/end labels   !ENTER !EXIT\n");
  printf(" -t s1 s2 bracket word-loop/pair with s1 s2   off\n");
  printf(" -u s    set unknown symbol to s              !NULL\n");
  printf(" -w s    load word-pair grammar from s        off\n");
  printf(" -x s    load multi-level lattice from s      off\n");
  printf(" -z      ignore ngrams with unknown symbol    off\n");
  PrintStdOpts("");
  printf("\n\n");
}
```
user: 请将以下的汇编代码转换成C语言代码:

```asm
<set_pmu_sleep_clk_init>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    $0xc204,%edx
  mov    $0x17,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0xc204,%edx
  mov    $0x17,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0xc24a,%edx
  mov    $0x18,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0x221,%edx
  mov    $0x19,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0x1088,%edx
  mov    $0x1a,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0xc226,%edx
  mov    $0x15,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0xd10f,%edx
  mov    $0x16,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0x82c,%edx
  mov    $0x5,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0xaac,%edx
  mov    $0x5,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0x111,%edx
  mov    $0x36,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  nop
  pop    %rbp
  ret
```

assistant: ```c
void set_pmu_sleep_clk_init() {
  mbus_remote_register_write(0x6, 0x17, ((3 << 14) | (0 << 13) | (1 << 9) | (0 << 5) | (4)));
  delay(100);
  mbus_remote_register_write(0x6, 0x17, ((3 << 14) | (0 << 13) | (1 << 9) | (0 << 5) | (4)));
  delay(100);
  mbus_remote_register_write(0x6, 0x18, ((3 << 14) | (0 << 13) | (1 << 9) | (2 << 5) | (10)));
  delay(100);
  mbus_remote_register_write(0x6, 0x19, ((0 << 13) | (1 << 9) | (1 << 5) | (1)));
  delay(100);
  mbus_remote_register_write(0x6, 0x1A, ((0 << 13) | (8 << 9) | (4 << 5) | (8)));
  delay(100);
  mbus_remote_register_write(0x6, 0x15, ((0 << 19) | (0 << 18) | (0 << 17) | (3 << 14) | (0 << 13) | (1 << 9) | (1 << 5) | (6)));
  delay(100);
  mbus_remote_register_write(0x6, 0x16, ((0 << 19) | (0 << 18) | (0 << 17) | (3 << 14) | (0 << 13) | (8 << 9) | (8 << 5) | (15)));
  delay(100);
  mbus_remote_register_write(0x6, 0x05, ((0 << 13) | (0 << 12) | (1 << 11) | (0 << 10) | (0 << 9) | (0 << 8) | (0 << 7) | (44)));
  delay(100);
  mbus_remote_register_write(0x6, 0x05, ((0 << 13) | (0 << 12) | (1 << 11) | (0 << 10) | (1 << 9) | (0 << 8) | (1 << 7) | (44)));
  delay(100);
  mbus_remote_register_write(0x6, 0x36, 0x000111);
  delay(100);
}
```
user: 下面的汇编指令对应的C源代码是什么:

```asm
<set_pmu_sleep_clk_init>:
  endbr64
  sub    $0x8,%rsp
  mov    $0xc204,%edx
  mov    $0x17,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0xc204,%edx
  mov    $0x17,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0xc24a,%edx
  mov    $0x18,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0x221,%edx
  mov    $0x19,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0x1088,%edx
  mov    $0x1a,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0xc226,%edx
  mov    $0x15,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0xd10f,%edx
  mov    $0x16,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0x82c,%edx
  mov    $0x5,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0xaac,%edx
  mov    $0x5,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0x111,%edx
  mov    $0x36,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  add    $0x8,%rsp
  ret
```

assistant: ```c
void set_pmu_sleep_clk_init() {
  mbus_remote_register_write(0x6, 0x17, ((3 << 14) | (0 << 13) | (1 << 9) | (0 << 5) | (4)));
  delay(100);
  mbus_remote_register_write(0x6, 0x17, ((3 << 14) | (0 << 13) | (1 << 9) | (0 << 5) | (4)));
  delay(100);
  mbus_remote_register_write(0x6, 0x18, ((3 << 14) | (0 << 13) | (1 << 9) | (2 << 5) | (10)));
  delay(100);
  mbus_remote_register_write(0x6, 0x19, ((0 << 13) | (1 << 9) | (1 << 5) | (1)));
  delay(100);
  mbus_remote_register_write(0x6, 0x1A, ((0 << 13) | (8 << 9) | (4 << 5) | (8)));
  delay(100);
  mbus_remote_register_write(0x6, 0x15, ((0 << 19) | (0 << 18) | (0 << 17) | (3 << 14) | (0 << 13) | (1 << 9) | (1 << 5) | (6)));
  delay(100);
  mbus_remote_register_write(0x6, 0x16, ((0 << 19) | (0 << 18) | (0 << 17) | (3 << 14) | (0 << 13) | (8 << 9) | (8 << 5) | (15)));
  delay(100);
  mbus_remote_register_write(0x6, 0x05, ((0 << 13) | (0 << 12) | (1 << 11) | (0 << 10) | (0 << 9) | (0 << 8) | (0 << 7) | (44)));
  delay(100);
  mbus_remote_register_write(0x6, 0x05, ((0 << 13) | (0 << 12) | (1 << 11) | (0 << 10) | (1 << 9) | (0 << 8) | (1 << 7) | (44)));
  delay(100);
  mbus_remote_register_write(0x6, 0x36, 0x000111);
  delay(100);
}
```
user: What would the C source look like for the assembly code provided here:

```asm
<set_pmu_sleep_clk_init>:
  endbr64
  sub    $0x8,%rsp
  mov    $0xc204,%edx
  mov    $0x17,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0xc204,%edx
  mov    $0x17,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0xc24a,%edx
  mov    $0x18,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0x221,%edx
  mov    $0x19,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0x1088,%edx
  mov    $0x1a,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0xc226,%edx
  mov    $0x15,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0xd10f,%edx
  mov    $0x16,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0x82c,%edx
  mov    $0x5,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0xaac,%edx
  mov    $0x5,%esi
  mov    $0x6,%edi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  call   <delay@plt>
  mov    $0x6,%edi
  mov    $0x111,%edx
  mov    $0x36,%esi
  call   <mbus_remote_register_write@plt>
  mov    $0x64,%edi
  add    $0x8,%rsp
  jmp    1070 <delay@plt>
```

assistant: ```c
void set_pmu_sleep_clk_init() {
  mbus_remote_register_write(0x6, 0x17, ((3 << 14) | (0 << 13) | (1 << 9) | (0 << 5) | (4)));
  delay(100);
  mbus_remote_register_write(0x6, 0x17, ((3 << 14) | (0 << 13) | (1 << 9) | (0 << 5) | (4)));
  delay(100);
  mbus_remote_register_write(0x6, 0x18, ((3 << 14) | (0 << 13) | (1 << 9) | (2 << 5) | (10)));
  delay(100);
  mbus_remote_register_write(0x6, 0x19, ((0 << 13) | (1 << 9) | (1 << 5) | (1)));
  delay(100);
  mbus_remote_register_write(0x6, 0x1A, ((0 << 13) | (8 << 9) | (4 << 5) | (8)));
  delay(100);
  mbus_remote_register_write(0x6, 0x15, ((0 << 19) | (0 << 18) | (0 << 17) | (3 << 14) | (0 << 13) | (1 << 9) | (1 << 5) | (6)));
  delay(100);
  mbus_remote_register_write(0x6, 0x16, ((0 << 19) | (0 << 18) | (0 << 17) | (3 << 14) | (0 << 13) | (8 << 9) | (8 << 5) | (15)));
  delay(100);
  mbus_remote_register_write(0x6, 0x05, ((0 << 13) | (0 << 12) | (1 << 11) | (0 << 10) | (0 << 9) | (0 << 8) | (0 << 7) | (44)));
  delay(100);
  mbus_remote_register_write(0x6, 0x05, ((0 << 13) | (0 << 12) | (1 << 11) | (0 << 10) | (1 << 9) | (0 << 8) | (1 << 7) | (44)));
  delay(100);
  mbus_remote_register_write(0x6, 0x36, 0x000111);
  delay(100);
}
```