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

```asm
<getDomainRegexlst>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x130,%rsp
  mov    %rdi,-0x128(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    D61(%rip),%rax
  mov    %rax,-0x110(%rbp)
  lea    D141(%rip),%rax
  mov    %rax,-0x108(%rbp)
  lea    D100(%rip),%rax
  mov    %rax,-0x100(%rbp)
  lea    D100(%rip),%rax
  mov    %rax,-0xf8(%rbp)
  lea    D28(%rip),%rax
  mov    %rax,-0xf0(%rbp)
  lea    D202(%rip),%rax
  mov    %rax,-0xe8(%rbp)
  lea    D175(%rip),%rax
  mov    %rax,-0xe0(%rbp)
  lea    D175(%rip),%rax
  mov    %rax,-0xd8(%rbp)
  lea    D266(%rip),%rax
  mov    %rax,-0xd0(%rbp)
  lea    D316(%rip),%rax
  mov    %rax,-0xc8(%rbp)
  lea    D239(%rip),%rax
  mov    %rax,-0xc0(%rbp)
  lea    D22(%rip),%rax
  mov    %rax,-0xb8(%rbp)
  lea    D138(%rip),%rax
  mov    %rax,-0xb0(%rbp)
  lea    D33(%rip),%rax
  mov    %rax,-0xa8(%rbp)
  lea    D148(%rip),%rax
  mov    %rax,-0xa0(%rbp)
  lea    D33(%rip),%rax
  mov    %rax,-0x98(%rbp)
  lea    D39(%rip),%rax
  mov    %rax,-0x90(%rbp)
  lea    D59(%rip),%rax
  mov    %rax,-0x88(%rbp)
  lea    D91(%rip),%rax
  mov    %rax,-0x80(%rbp)
  lea    D145(%rip),%rax
  mov    %rax,-0x78(%rbp)
  lea    D195(%rip),%rax
  mov    %rax,-0x70(%rbp)
  lea    D124(%rip),%rax
  mov    %rax,-0x68(%rbp)
  lea    D180(%rip),%rax
  mov    %rax,-0x60(%rbp)
  lea    D83(%rip),%rax
  mov    %rax,-0x58(%rbp)
  lea    D212(%rip),%rax
  mov    %rax,-0x50(%rbp)
  lea    D122(%rip),%rax
  mov    %rax,-0x48(%rbp)
  lea    D319(%rip),%rax
  mov    %rax,-0x40(%rbp)
  lea    D60(%rip),%rax
  mov    %rax,-0x38(%rbp)
  lea    D229(%rip),%rax
  mov    %rax,-0x30(%rbp)
  lea    D184(%rip),%rax
  mov    %rax,-0x28(%rbp)
  lea    D287(%rip),%rax
  mov    %rax,-0x20(%rbp)
  lea    D57(%rip),%rax
  mov    %rax,-0x18(%rbp)
  mov    $0x64,%edi
  call   <malloc@plt>
  mov    %rax,-0x118(%rbp)
  mov    -0x118(%rbp),%rax
  mov    $0x64,%edx
  mov    $0x0,%esi
  mov    %rax,%rdi
  call   <memset@plt>
  movl   $0x0,-0x11c(%rbp)
  jmp    L34
L46:
  mov    -0x11c(%rbp),%eax
  cltq
  shl    $0x4,%rax
  add    %rbp,%rax
  sub    $0x110,%rax
  mov    (%rax),%rdx
  mov    -0x128(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L36
  mov    -0x11c(%rbp),%eax
  cltq
  shl    $0x4,%rax
  add    %rbp,%rax
  sub    $0x108,%rax
  mov    (%rax),%rdx
  mov    -0x118(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  mov    -0x118(%rbp),%rax
  jmp    L37
L36:
  addl   $0x1,-0x11c(%rbp)
L34:
  cmpl   $0xf,-0x11c(%rbp)
  jle    L46
  mov    $0x0,%eax
L37:
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L30
  call   <__stack_chk_fail@plt>
L30:
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: label: D61
type_guessed: string
name: retrieve_data
arguments: label: D141
type_guessed: string
name: retrieve_data
arguments: label: D100
type_guessed: string
name: retrieve_data
arguments: label: D28
type_guessed: string
name: retrieve_data
arguments: label: D202
type_guessed: string
name: retrieve_data
arguments: label: D175
type_guessed: string
name: retrieve_data
arguments: label: D266
type_guessed: string
name: retrieve_data
arguments: label: D316
type_guessed: string
name: retrieve_data
arguments: label: D239
type_guessed: string
name: retrieve_data
arguments: label: D22
type_guessed: string
name: retrieve_data
arguments: label: D138
type_guessed: string
name: retrieve_data
arguments: label: D33
type_guessed: string
name: retrieve_data
arguments: label: D148
type_guessed: string
name: retrieve_data
arguments: label: D39
type_guessed: string
name: retrieve_data
arguments: label: D59
type_guessed: string
name: retrieve_data
arguments: label: D91
type_guessed: string
name: retrieve_data
arguments: label: D145
type_guessed: string
name: retrieve_data
arguments: label: D195
type_guessed: string
name: retrieve_data
arguments: label: D124
type_guessed: string
name: retrieve_data
arguments: label: D180
type_guessed: string
name: retrieve_data
arguments: label: D83
type_guessed: string
name: retrieve_data
arguments: label: D212
type_guessed: string
name: retrieve_data
arguments: label: D122
type_guessed: string
name: retrieve_data
arguments: label: D319
type_guessed: string
name: retrieve_data
arguments: label: D60
type_guessed: string
name: retrieve_data
arguments: label: D229
type_guessed: string
name: retrieve_data
arguments: label: D184
type_guessed: string
name: retrieve_data
arguments: label: D287
type_guessed: string
name: retrieve_data
arguments: label: D57
type_guessed: string

tool: D61: mediafire

tool: D141: 205\.196\.|199\.91

tool: D100: fbcdn

tool: D28: aol

tool: D202: avideos

tool: D175: pornhub

tool: D266: porntube_vid

tool: D316: video.{0,5}\.porntube

tool: D239: porntube_img

tool: D22: thumbnails.{0,5}\.porntube

tool: D138: socialpg_dragoncity

tool: D33: socialpointgames\.com

tool: D148: socialpg

tool: D39: mercadolibre_img

tool: D59: mlstatic\.com

tool: D91: GAMESF_wooga

tool: D145: wooga\.com

tool: D195: GAMESF_popcap

tool: D124: popcap\.com

tool: D180: GAMESF_llnwd

tool: D83: llnwd\.net

tool: D212: GAMESF_cloudfront

tool: D122: cloudfront\.net

tool: D319: GAMESF_amazonaws

tool: D60: amazonaws\.com

tool: D229: GAMESF_akamaihd

tool: D184: akamaihd\.net

tool: D287: FrivIntro

tool: D57: \.friv\.com

assistant: ```c
char *getDomainRegexlst(char *domain) {
  char *domain2regex[16][2] = {{"mediafire", "205\\.196\\.|199\\.91"}, {"fbcdn", "fbcdn"}, {"aol", "avideos"}, {"pornhub", "pornhub"}, {"porntube_vid", "video.{0,5}\\.porntube"}, {"porntube_img", "thumbnails.{0,5}\\.porntube"}, {"socialpg_dragoncity", "socialpointgames\\.com"}, {"socialpg", "socialpointgames\\.com"}, {"mercadolibre_img", "mlstatic\\.com"}, {"GAMESF_wooga", "wooga\\.com"}, {"GAMESF_popcap", "popcap\\.com"}, {"GAMESF_llnwd", "llnwd\\.net"}, {"GAMESF_cloudfront", "cloudfront\\.net"}, {"GAMESF_amazonaws", "amazonaws\\.com"}, {"GAMESF_akamaihd", "akamaihd\\.net"}, {"FrivIntro", "\\.friv\\.com"}};
  char *d = (char *)malloc(sizeof(char) * 100);
  memset(d, '\0', 100);
  int i;
  for (i = 0; i < 16; i++) {
    if (strstr(domain, domain2regex[i][0])) {
      strcpy(d, domain2regex[i][1]);
      return d;
    }
  }
  return NULL;
}
```