user: Converte this assembly snippet into its equivalent C code:

```asm
<main>:
  endbr64
  push   %r13
  push   %r12
  mov    %rdx,%r12
  push   %rbp
  push   %rbx
  mov    %esi,%ebx
  sub    $0x8,%rsp
L30:
  cmp    $0x1,%edi
  jg     L48
L131:
  test   %edi,%edi
  jns    L118
  cmp    $0xffffffb8,%edi
  jge    L21
  mov    %edi,%eax
  mov    %ebx,%edi
  lea    D0(%rip),%r12
  mov    %eax,%ebx
  cmp    $0x1,%edi
  jle    L131
L48:
  cmp    $0x2,%edi
  je     L98
  lea    -0x1b(%rdi),%ebp
  cmp    %ebx,%edi
  jl     L104
  mov    %r12,%rdx
  mov    %ebp,%esi
  mov    $0xffffffa2,%edi
  call   <main>
  mov    $0x10,%eax
  jmp    L42
L21:
  movzbl (%r12),%eax
  cmp    $0xffffffce,%edi
  jl     L32
  add    $0x1,%r12
  cmp    $0x2f,%al
  sete   %al
  movzbl %al,%eax
  add    %eax,%edi
  jmp    L30
L118:
  sub    $0x1,%edi
  jne    L62
  lea    D45(%rip),%rdx
  xor    %esi,%esi
  mov    $0xffffffaa,%edi
  mov    $0x2,%ebx
  call   <main>
  lea    D5(%rip),%r12
  or     $0xffffffff,%esi
  mov    $0xffffffa9,%edi
  movslq %eax,%rdx
  add    %r12,%rdx
  call   <main>
  mov    $0xfffffff3,%esi
  mov    $0xffffffb1,%edi
  movslq %eax,%rdx
  add    %r12,%rdx
  call   <main>
  mov    %r12,%rdx
  mov    $0xffffffe7,%esi
  mov    $0xffffffa2,%edi
  call   <main>
  test   %eax,%eax
  je     L34
  nopl   0x0(%rax,%rax,1)
L72:
  add    $0x1,%ebx
  lea    D21(%rip),%r12
L98:
  lea    0x1(%r12),%rdx
  xor    %esi,%esi
  mov    $0xffffffaa,%edi
  mov    $0x1,%r13d
  call   <main>
  mov    $0x1,%esi
  mov    $0xffffffa9,%edi
  mov    $0xffffffe7,%ebp
  movslq %eax,%rdx
  sub    %ebx,%esi
  add    %r12,%rdx
  call   <main>
  mov    $0xfffffff3,%esi
  mov    $0xffffffb1,%edi
  movslq %eax,%rdx
  add    %r12,%rdx
  call   <main>
  cmp    $0x2,%ebx
  jg     L138
L198:
  mov    %r12,%rdx
  mov    %ebp,%esi
  mov    $0xffffffa2,%edi
  call   <main>
  test   %eax,%eax
  je     L34
  test   %r13b,%r13b
  je     L34
  cmp    $0xc,%ebx
  jle    L72
  mov    $0x9,%eax
L42:
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  ret
  nopl   0x0(%rax)
L138:
  mov    $0x3,%edi
L9:
  mov    %r12,%rdx
  mov    %ebx,%esi
  call   <main>
  jmp    L198
L137:
  add    $0x1,%r12
L32:
  movsbl (%r12),%eax
  cmp    %ebx,%eax
  jne    L137
  movsbl 0x1f(%r12),%edi
  pop    %rax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  jmp    1050 <putchar@plt>
L34:
  mov    $0x10,%eax
  jmp    L42
L62:
  movzbl (%r12),%edx
  mov    $0x1,%eax
  cmp    $0x2f,%dl
  je     L42
  movsbl %dl,%esi
  mov    $0xffffffc3,%edi
  lea    D34(%rip),%rdx
  call   <main>
  xor    %edi,%edi
  lea    0x1(%r12),%rdx
  mov    %eax,%esi
  call   <main>
  test   %eax,%eax
  setne  %al
  movzbl %al,%eax
  jmp    L42
L104:
  add    $0x1,%edi
  xor    %r13d,%r13d
  jmp    L9
```

tool_calls: name: unpack_data
arguments: data_label: D0
type: string
name: unpack_data
arguments: data_label: D45
type: string
name: unpack_data
arguments: data_label: D5
type: string
name: unpack_data
arguments: data_label: D21
type: string
name: unpack_data
arguments: data_label: D34
type: string

tool: D0: @n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/

tool: D45: s

tool: D5: %s

tool: D21: %s %d %d


tool: D34: !ek;dc i@bK'(q)-[w]*%n+r3#l,{}:
uwloca-O;m .vpbks,fxntdCeghiry

assistant: ```c
main(int t, int _, char *a) {
  return !0 < t ? t < 3 ? main(-79, -13, a + main(-87, 1 - _, main(-86, 0, a + 1) + a)) : 1, t < _ ? main(t + 1, _, a) : 3,
         main(-94, -27 + t, a) && t == 2 ? _ < 13 ? main(2, _ + 1, "%s %d %d\n") : 9 : 16
     : t < 0 ? t < -72   ? main(_, t, "@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")
               : t < -50 ? _ == *a ? putchar(32 [a - 1]) : main(-65, _, a + 1)
                         : main((*a == '/') + t, _, a + 1)
     : 0 < t ? main(2, 2, "%s")
             : *a == '/' || main(0, main(-61, *a, "!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"), a + 1);
}
```