void test_str_center() {
  {
    if (strcmp(str_center("abc", 0, '*'), "abc") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               887);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             887, str_center("abc", 0, '*'), "abc");
  };
  {
    if (strcmp(str_center("abc", 1, '*'), "abc") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               888);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             888, str_center("abc", 1, '*'), "abc");
  };
  {
    if (strcmp(str_center("abc", 2, '*'), "abc") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               889);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             889, str_center("abc", 2, '*'), "abc");
  };
  {
    if (strcmp(str_center("abc", 3, '*'), "abc") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               890);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             890, str_center("abc", 3, '*'), "abc");
  };
  {
    if (strcmp(str_center("abc", 4, '*'), "abc*") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               891);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             891, str_center("abc", 4, '*'), "abc*");
  };
  {
    if (strcmp(str_center("abc", 5, '*'), "*abc*") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               892);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             892, str_center("abc", 5, '*'), "*abc*");
  };
  {
    if (strcmp(str_center("abc", 6, '*'), "*abc**") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               893);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             893, str_center("abc", 6, '*'), "*abc**");
  };
  {
    if (strcmp(str_center("abc", 7, '*'), "**abc**") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               894);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             894, str_center("abc", 7, '*'), "**abc**");
  };
  {
    if (strcmp(str_center("", 7, '-'), "-------") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               895);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             895, str_center("", 7, '-'), "-------");
  };
  {
    if (strcmp(str_center("1", 10, '!'), "!!!!1!!!!!") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               896);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             896, str_center("1", 10, '!'), "!!!!1!!!!!");
  };
  {
    if (strcmp(str_center("simple text", 10, '&'), "simple text") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               897);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             897, str_center("simple text", 10, '&'), "simple text");
  };
  {
    if (strcmp(str_center("simple text", 15, '&'), "&&simple text&&") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               898);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             898, str_center("simple text", 15, '&'), "&&simple text&&");
  };
  {
    if (strcmp(str_center("A", 0, '-'), "A") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               899);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             899, str_center("A", 0, '-'), "A");
  };
  {
    if (strcmp(str_center("A", 1, '-'), "A") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               900);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             900, str_center("A", 1, '-'), "A");
  };
  {
    if (strcmp(str_center("A", 10, '-'), "----A-----") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               901);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             901, str_center("A", 10, '-'), "----A-----");
  };
  {
    if (strcmp(str_center("text", 10, '*'), "***text***") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               902);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             902, str_center("text", 10, '*'), "***text***");
  };
  {
    if (strcmp(str_center("The C programming language", 26, '!'),
               "The C programming language") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               903);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             903, str_center("The C programming language", 26, '!'),
             "The C programming language");
  };
  {
    if (strcmp(str_center("The C programming language", 27, '!'),
               "The C programming language!") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               904);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             904, str_center("The C programming language", 27, '!'),
             "The C programming language!");
  };
  {
    if (strcmp(str_center("The C programming language", 28, '!'),
               "!The C programming language!") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               905);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             905, str_center("The C programming language", 28, '!'),
             "!The C programming language!");
  };
  {
    if (strcmp(str_center("The C programming language", 29, '!'),
               "!The C programming language!!") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               906);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             906, str_center("The C programming language", 29, '!'),
             "!The C programming language!!");
  };
  {
    if (strcmp(str_center("The C programming language", 30, '!'),
               "!!The C programming language!!") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               907);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             907, str_center("The C programming language", 30, '!'),
             "!!The C programming language!!");
  };
  {
    if (strcmp(str_center("The C programming language", 31, '!'),
               "!!The C programming language!!!") == 0) {
      if (0 == 1)
        printf((0 == 1) ? "\033[1;37;42mOK\033[00m: %s (%s, %d)\n"
                        : "OK: %s (%s, %d)\n",
               __func__,
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/"
               "heads/master/utils/str.h",
               908);
    } else
      printf("%s (%s %d): \"%s\" != \"%s\"\n", __func__,
             "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
             "2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/"
             "master/utils/str.h",
             908, str_center("The C programming language", 31, '!'),
             "!!The C programming language!!!");
  };
}


x86 assembly (clang, -O0):
<test_str_center>:
push   %rbp
mov    %rsp,%rbp
lea    0xec5(%rip),%rdi
xor    %esi,%esi
mov    $0x2a,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0xead(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1166 <test_str_center+0x36>
jmp    11a6 <test_str_center+0x76>
lea    0xe93(%rip),%rdi
xor    %esi,%esi
mov    $0x2a,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0xe7f(%rip),%rdi
lea    0xe92(%rip),%rsi
lea    0xe9b(%rip),%rdx
mov    $0x377,%ecx
lea    0xe61(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xe53(%rip),%rdi
mov    $0x1,%esi
mov    $0x2a,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0xe38(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    11db <test_str_center+0xab>
jmp    121e <test_str_center+0xee>
lea    0xe1e(%rip),%rdi
mov    $0x1,%esi
mov    $0x2a,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0xe07(%rip),%rdi
lea    0xe1a(%rip),%rsi
lea    0xe23(%rip),%rdx
mov    $0x378,%ecx
lea    0xde9(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xddb(%rip),%rdi
mov    $0x2,%esi
mov    $0x2a,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0xdc0(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1253 <test_str_center+0x123>
jmp    1296 <test_str_center+0x166>
lea    0xda6(%rip),%rdi
mov    $0x2,%esi
mov    $0x2a,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0xd8f(%rip),%rdi
lea    0xda2(%rip),%rsi
lea    0xdab(%rip),%rdx
mov    $0x379,%ecx
lea    0xd71(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xd63(%rip),%rdi
mov    $0x3,%esi
mov    $0x2a,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0xd48(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    12cb <test_str_center+0x19b>
jmp    130e <test_str_center+0x1de>
lea    0xd2e(%rip),%rdi
mov    $0x3,%esi
mov    $0x2a,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0xd17(%rip),%rdi
lea    0xd2a(%rip),%rsi
lea    0xd33(%rip),%rdx
mov    $0x37a,%ecx
lea    0xcf9(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xceb(%rip),%rdi
mov    $0x4,%esi
mov    $0x2a,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0xd8d(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1343 <test_str_center+0x213>
jmp    1386 <test_str_center+0x256>
lea    0xcb6(%rip),%rdi
mov    $0x4,%esi
mov    $0x2a,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0xc9f(%rip),%rdi
lea    0xcb2(%rip),%rsi
lea    0xcbb(%rip),%rdx
mov    $0x37b,%ecx
lea    0xd3e(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xc73(%rip),%rdi
mov    $0x5,%esi
mov    $0x2a,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0xd14(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    13bb <test_str_center+0x28b>
jmp    13fe <test_str_center+0x2ce>
lea    0xc3e(%rip),%rdi
mov    $0x5,%esi
mov    $0x2a,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0xc27(%rip),%rdi
lea    0xc3a(%rip),%rsi
lea    0xc43(%rip),%rdx
mov    $0x37c,%ecx
lea    0xcc5(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xbfb(%rip),%rdi
mov    $0x6,%esi
mov    $0x2a,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0xca3(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1433 <test_str_center+0x303>
jmp    1476 <test_str_center+0x346>
lea    0xbc6(%rip),%rdi
mov    $0x6,%esi
mov    $0x2a,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0xbaf(%rip),%rdi
lea    0xbc2(%rip),%rsi
lea    0xbcb(%rip),%rdx
mov    $0x37d,%ecx
lea    0xc54(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xb83(%rip),%rdi
mov    $0x7,%esi
mov    $0x2a,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0xc2a(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    14ab <test_str_center+0x37b>
jmp    14ee <test_str_center+0x3be>
lea    0xb4e(%rip),%rdi
mov    $0x7,%esi
mov    $0x2a,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0xb37(%rip),%rdi
lea    0xb4a(%rip),%rsi
lea    0xb53(%rip),%rdx
mov    $0x37e,%ecx
lea    0xbdb(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xb28(%rip),%rdi
mov    $0x7,%esi
mov    $0x2d,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0xbba(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1523 <test_str_center+0x3f3>
jmp    1566 <test_str_center+0x436>
lea    0xaf3(%rip),%rdi
mov    $0x7,%esi
mov    $0x2d,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0xabf(%rip),%rdi
lea    0xad2(%rip),%rsi
lea    0xadb(%rip),%rdx
mov    $0x37f,%ecx
lea    0xb6b(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xb65(%rip),%rdi
mov    $0xa,%esi
mov    $0x21,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0xb4c(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    159b <test_str_center+0x46b>
jmp    15de <test_str_center+0x4ae>
lea    0xb30(%rip),%rdi
mov    $0xa,%esi
mov    $0x21,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0xa47(%rip),%rdi
lea    0xa5a(%rip),%rsi
lea    0xa63(%rip),%rdx
mov    $0x380,%ecx
lea    0xafd(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xafa(%rip),%rdi
mov    $0xa,%esi
mov    $0x26,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0xadf(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1613 <test_str_center+0x4e3>
jmp    1656 <test_str_center+0x526>
lea    0xac5(%rip),%rdi
mov    $0xa,%esi
mov    $0x26,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0x9cf(%rip),%rdi
lea    0x9e2(%rip),%rsi
lea    0x9eb(%rip),%rdx
mov    $0x381,%ecx
lea    0xa90(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xa82(%rip),%rdi
mov    $0xf,%esi
mov    $0x26,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0xa73(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    168b <test_str_center+0x55b>
jmp    16ce <test_str_center+0x59e>
lea    0xa4d(%rip),%rdi
mov    $0xf,%esi
mov    $0x26,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0x957(%rip),%rdi
lea    0x96a(%rip),%rsi
lea    0x973(%rip),%rdx
mov    $0x382,%ecx
lea    0xa24(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xa26(%rip),%rdi
xor    %esi,%esi
mov    $0x2d,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0xa0e(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1700 <test_str_center+0x5d0>
jmp    1740 <test_str_center+0x610>
lea    0x9f4(%rip),%rdi
xor    %esi,%esi
mov    $0x2d,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0x8e5(%rip),%rdi
lea    0x8f8(%rip),%rsi
lea    0x901(%rip),%rdx
mov    $0x383,%ecx
lea    0x9c2(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x9b4(%rip),%rdi
mov    $0x1,%esi
mov    $0x2d,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0x999(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1775 <test_str_center+0x645>
jmp    17b8 <test_str_center+0x688>
lea    0x97f(%rip),%rdi
mov    $0x1,%esi
mov    $0x2d,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0x86d(%rip),%rdi
lea    0x880(%rip),%rsi
lea    0x889(%rip),%rdx
mov    $0x384,%ecx
lea    0x94a(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x93c(%rip),%rdi
mov    $0xa,%esi
mov    $0x2d,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0x923(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    17ed <test_str_center+0x6bd>
jmp    1830 <test_str_center+0x700>
lea    0x907(%rip),%rdi
mov    $0xa,%esi
mov    $0x2d,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0x7f5(%rip),%rdi
lea    0x808(%rip),%rsi
lea    0x811(%rip),%rdx
mov    $0x385,%ecx
lea    0x8d4(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x8af(%rip),%rdi
mov    $0xa,%esi
mov    $0x2a,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0x8b6(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1865 <test_str_center+0x735>
jmp    18a8 <test_str_center+0x778>
lea    0x87a(%rip),%rdi
mov    $0xa,%esi
mov    $0x2a,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0x77d(%rip),%rdi
lea    0x790(%rip),%rsi
lea    0x799(%rip),%rdx
mov    $0x386,%ecx
lea    0x867(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x864(%rip),%rdi
mov    $0x1a,%esi
mov    $0x21,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0x849(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    18dd <test_str_center+0x7ad>
jmp    1920 <test_str_center+0x7f0>
lea    0x82f(%rip),%rdi
mov    $0x1a,%esi
mov    $0x21,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0x705(%rip),%rdi
lea    0x718(%rip),%rsi
lea    0x721(%rip),%rdx
mov    $0x387,%ecx
lea    0x7fa(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x7ec(%rip),%rdi
mov    $0x1b,%esi
mov    $0x21,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0x7ed(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1955 <test_str_center+0x825>
jmp    1998 <test_str_center+0x868>
lea    0x7b7(%rip),%rdi
mov    $0x1b,%esi
mov    $0x21,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0x68d(%rip),%rdi
lea    0x6a0(%rip),%rsi
lea    0x6a9(%rip),%rdx
mov    $0x388,%ecx
lea    0x79e(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x774(%rip),%rdi
mov    $0x1c,%esi
mov    $0x21,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0x774(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    19cd <test_str_center+0x89d>
jmp    1a10 <test_str_center+0x8e0>
lea    0x73f(%rip),%rdi
mov    $0x1c,%esi
mov    $0x21,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0x615(%rip),%rdi
lea    0x628(%rip),%rsi
lea    0x631(%rip),%rdx
mov    $0x389,%ecx
lea    0x725(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x6fc(%rip),%rdi
mov    $0x1d,%esi
mov    $0x21,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0x71a(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1a45 <test_str_center+0x915>
jmp    1a88 <test_str_center+0x958>
lea    0x6c7(%rip),%rdi
mov    $0x1d,%esi
mov    $0x21,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0x59d(%rip),%rdi
lea    0x5b0(%rip),%rsi
lea    0x5b9(%rip),%rdx
mov    $0x38a,%ecx
lea    0x6cb(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x684(%rip),%rdi
mov    $0x1e,%esi
mov    $0x21,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0x6a1(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1abd <test_str_center+0x98d>
jmp    1b00 <test_str_center+0x9d0>
lea    0x64f(%rip),%rdi
mov    $0x1e,%esi
mov    $0x21,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0x525(%rip),%rdi
lea    0x538(%rip),%rsi
lea    0x541(%rip),%rdx
mov    $0x38b,%ecx
lea    0x652(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x60c(%rip),%rdi
mov    $0x1f,%esi
mov    $0x21,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0x648(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1b35 <test_str_center+0xa05>
jmp    1b78 <test_str_center+0xa48>
lea    0x5d7(%rip),%rdi
mov    $0x1f,%esi
mov    $0x21,%edx
mov    $0x0,%al
call   1050 <str_center@plt>
mov    %eax,%r8d
lea    0x4ad(%rip),%rdi
lea    0x4c0(%rip),%rsi
lea    0x4c9(%rip),%rdx
mov    $0x38c,%ecx
lea    0x5f9(%rip),%r9
mov    $0x0,%al
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<test_str_center>:
push   %rbx
lea    0xec8(%rip),%rbx
mov    %rbx,%rdi
xor    %esi,%esi
mov    $0x2a,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
mov    %rbx,%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1197 <test_str_center+0x67>
lea    0xea1(%rip),%rbx
mov    %rbx,%rdi
xor    %esi,%esi
mov    $0x2a,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0xe8d(%rip),%rdi
lea    0xea0(%rip),%rsi
lea    0xea9(%rip),%rdx
mov    $0x377,%ecx
mov    %eax,%r8d
mov    %rbx,%r9
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xe62(%rip),%rbx
mov    %rbx,%rdi
mov    $0x1,%esi
mov    $0x2a,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
mov    %rbx,%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1203 <test_str_center+0xd3>
lea    0xe38(%rip),%rbx
mov    %rbx,%rdi
mov    $0x1,%esi
mov    $0x2a,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0xe21(%rip),%rdi
lea    0xe34(%rip),%rsi
lea    0xe3d(%rip),%rdx
mov    $0x378,%ecx
mov    %eax,%r8d
mov    %rbx,%r9
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xdf6(%rip),%rbx
mov    %rbx,%rdi
mov    $0x2,%esi
mov    $0x2a,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
mov    %rbx,%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     126f <test_str_center+0x13f>
lea    0xdcc(%rip),%rbx
mov    %rbx,%rdi
mov    $0x2,%esi
mov    $0x2a,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0xdb5(%rip),%rdi
lea    0xdc8(%rip),%rsi
lea    0xdd1(%rip),%rdx
mov    $0x379,%ecx
mov    %eax,%r8d
mov    %rbx,%r9
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xd8a(%rip),%rbx
mov    %rbx,%rdi
mov    $0x3,%esi
mov    $0x2a,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
mov    %rbx,%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     12db <test_str_center+0x1ab>
lea    0xd60(%rip),%rbx
mov    %rbx,%rdi
mov    $0x3,%esi
mov    $0x2a,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0xd49(%rip),%rdi
lea    0xd5c(%rip),%rsi
lea    0xd65(%rip),%rdx
mov    $0x37a,%ecx
mov    %eax,%r8d
mov    %rbx,%r9
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xd1e(%rip),%rdi
mov    $0x4,%esi
mov    $0x2a,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0xdc0(%rip),%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1349 <test_str_center+0x219>
lea    0xcf3(%rip),%rdi
mov    $0x4,%esi
mov    $0x2a,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0xcdf(%rip),%rdi
lea    0xcf2(%rip),%rsi
lea    0xcfb(%rip),%rdx
lea    0xd83(%rip),%r9
mov    $0x37b,%ecx
mov    %eax,%r8d
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xcb0(%rip),%rdi
mov    $0x5,%esi
mov    $0x2a,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0xd51(%rip),%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     13b7 <test_str_center+0x287>
lea    0xc85(%rip),%rdi
mov    $0x5,%esi
mov    $0x2a,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0xc71(%rip),%rdi
lea    0xc84(%rip),%rsi
lea    0xc8d(%rip),%rdx
lea    0xd14(%rip),%r9
mov    $0x37c,%ecx
mov    %eax,%r8d
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xc42(%rip),%rdi
mov    $0x6,%esi
mov    $0x2a,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0xcea(%rip),%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1425 <test_str_center+0x2f5>
lea    0xc17(%rip),%rdi
mov    $0x6,%esi
mov    $0x2a,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0xc03(%rip),%rdi
lea    0xc16(%rip),%rsi
lea    0xc1f(%rip),%rdx
lea    0xcad(%rip),%r9
mov    $0x37d,%ecx
mov    %eax,%r8d
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xbd4(%rip),%rdi
mov    $0x7,%esi
mov    $0x2a,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0xc7b(%rip),%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1493 <test_str_center+0x363>
lea    0xba9(%rip),%rdi
mov    $0x7,%esi
mov    $0x2a,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0xb95(%rip),%rdi
lea    0xba8(%rip),%rsi
lea    0xbb1(%rip),%rdx
lea    0xc3e(%rip),%r9
mov    $0x37e,%ecx
mov    %eax,%r8d
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xb83(%rip),%rdi
mov    $0x7,%esi
mov    $0x2d,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0xc15(%rip),%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1501 <test_str_center+0x3d1>
lea    0xb58(%rip),%rdi
mov    $0x7,%esi
mov    $0x2d,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0xb27(%rip),%rdi
lea    0xb3a(%rip),%rsi
lea    0xb43(%rip),%rdx
lea    0xbd8(%rip),%r9
mov    $0x37f,%ecx
mov    %eax,%r8d
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xbca(%rip),%rdi
mov    $0xa,%esi
mov    $0x21,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0xbb1(%rip),%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     156f <test_str_center+0x43f>
lea    0xb9f(%rip),%rdi
mov    $0xa,%esi
mov    $0x21,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0xab9(%rip),%rdi
lea    0xacc(%rip),%rsi
lea    0xad5(%rip),%rdx
lea    0xb74(%rip),%r9
mov    $0x380,%ecx
mov    %eax,%r8d
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xb69(%rip),%rbx
mov    %rbx,%rdi
mov    $0xa,%esi
mov    $0x26,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
mov    %rbx,%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     15db <test_str_center+0x4ab>
lea    0xb3f(%rip),%rbx
mov    %rbx,%rdi
mov    $0xa,%esi
mov    $0x26,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0xa49(%rip),%rdi
lea    0xa5c(%rip),%rsi
lea    0xa65(%rip),%rdx
mov    $0x381,%ecx
mov    %eax,%r8d
mov    %rbx,%r9
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xafd(%rip),%rdi
mov    $0xf,%esi
mov    $0x26,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0xaee(%rip),%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1649 <test_str_center+0x519>
lea    0xad2(%rip),%rdi
mov    $0xf,%esi
mov    $0x26,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0x9df(%rip),%rdi
lea    0x9f2(%rip),%rsi
lea    0x9fb(%rip),%rdx
lea    0xab1(%rip),%r9
mov    $0x382,%ecx
mov    %eax,%r8d
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xaab(%rip),%rbx
mov    %rbx,%rdi
xor    %esi,%esi
mov    $0x2d,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
mov    %rbx,%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     16af <test_str_center+0x57f>
lea    0xa84(%rip),%rbx
mov    %rbx,%rdi
xor    %esi,%esi
mov    $0x2d,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0x975(%rip),%rdi
lea    0x988(%rip),%rsi
lea    0x991(%rip),%rdx
mov    $0x383,%ecx
mov    %eax,%r8d
mov    %rbx,%r9
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xa45(%rip),%rbx
mov    %rbx,%rdi
mov    $0x1,%esi
mov    $0x2d,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
mov    %rbx,%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     171b <test_str_center+0x5eb>
lea    0xa1b(%rip),%rbx
mov    %rbx,%rdi
mov    $0x1,%esi
mov    $0x2d,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0x909(%rip),%rdi
lea    0x91c(%rip),%rsi
lea    0x925(%rip),%rdx
mov    $0x384,%ecx
mov    %eax,%r8d
mov    %rbx,%r9
xor    %eax,%eax
call   1030 <printf@plt>
lea    0x9d9(%rip),%rdi
mov    $0xa,%esi
mov    $0x2d,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0x9c0(%rip),%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1789 <test_str_center+0x659>
lea    0x9ae(%rip),%rdi
mov    $0xa,%esi
mov    $0x2d,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0x89f(%rip),%rdi
lea    0x8b2(%rip),%rsi
lea    0x8bb(%rip),%rdx
lea    0x983(%rip),%r9
mov    $0x385,%ecx
mov    %eax,%r8d
xor    %eax,%eax
call   1030 <printf@plt>
lea    0x956(%rip),%rdi
mov    $0xa,%esi
mov    $0x2a,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0x95d(%rip),%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     17f7 <test_str_center+0x6c7>
lea    0x92b(%rip),%rdi
mov    $0xa,%esi
mov    $0x2a,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0x831(%rip),%rdi
lea    0x844(%rip),%rsi
lea    0x84d(%rip),%rdx
lea    0x920(%rip),%r9
mov    $0x386,%ecx
mov    %eax,%r8d
xor    %eax,%eax
call   1030 <printf@plt>
lea    0x915(%rip),%rbx
mov    %rbx,%rdi
mov    $0x1a,%esi
mov    $0x21,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
mov    %rbx,%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1863 <test_str_center+0x733>
lea    0x8eb(%rip),%rbx
mov    %rbx,%rdi
mov    $0x1a,%esi
mov    $0x21,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0x7c1(%rip),%rdi
lea    0x7d4(%rip),%rsi
lea    0x7dd(%rip),%rdx
mov    $0x387,%ecx
mov    %eax,%r8d
mov    %rbx,%r9
xor    %eax,%eax
call   1030 <printf@plt>
lea    0x8a9(%rip),%rdi
mov    $0x1b,%esi
mov    $0x21,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0x8aa(%rip),%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     18d1 <test_str_center+0x7a1>
lea    0x87e(%rip),%rdi
mov    $0x1b,%esi
mov    $0x21,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0x757(%rip),%rdi
lea    0x76a(%rip),%rsi
lea    0x773(%rip),%rdx
lea    0x86d(%rip),%r9
mov    $0x388,%ecx
mov    %eax,%r8d
xor    %eax,%eax
call   1030 <printf@plt>
lea    0x83b(%rip),%rdi
mov    $0x1c,%esi
mov    $0x21,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0x83b(%rip),%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     193f <test_str_center+0x80f>
lea    0x810(%rip),%rdi
mov    $0x1c,%esi
mov    $0x21,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0x6e9(%rip),%rdi
lea    0x6fc(%rip),%rsi
lea    0x705(%rip),%rdx
lea    0x7fe(%rip),%r9
mov    $0x389,%ecx
mov    %eax,%r8d
xor    %eax,%eax
call   1030 <printf@plt>
lea    0x7cd(%rip),%rdi
mov    $0x1d,%esi
mov    $0x21,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0x7eb(%rip),%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     19ad <test_str_center+0x87d>
lea    0x7a2(%rip),%rdi
mov    $0x1d,%esi
mov    $0x21,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0x67b(%rip),%rdi
lea    0x68e(%rip),%rsi
lea    0x697(%rip),%rdx
lea    0x7ae(%rip),%r9
mov    $0x38a,%ecx
mov    %eax,%r8d
xor    %eax,%eax
call   1030 <printf@plt>
lea    0x75f(%rip),%rdi
mov    $0x1e,%esi
mov    $0x21,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0x77c(%rip),%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1a1b <test_str_center+0x8eb>
lea    0x734(%rip),%rdi
mov    $0x1e,%esi
mov    $0x21,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0x60d(%rip),%rdi
lea    0x620(%rip),%rsi
lea    0x629(%rip),%rdx
lea    0x73f(%rip),%r9
mov    $0x38b,%ecx
mov    %eax,%r8d
xor    %eax,%eax
call   1030 <printf@plt>
lea    0x6f1(%rip),%rdi
mov    $0x1f,%esi
mov    $0x21,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
movslq %eax,%rdi
lea    0x72d(%rip),%rsi
call   1040 <strcmp@plt>
test   %eax,%eax
je     1a8a <test_str_center+0x95a>
lea    0x6c6(%rip),%rdi
mov    $0x1f,%esi
mov    $0x21,%edx
xor    %eax,%eax
call   1050 <str_center@plt>
lea    0x59f(%rip),%rdi
lea    0x5b2(%rip),%rsi
lea    0x5bb(%rip),%rdx
lea    0x6f0(%rip),%r9
mov    $0x38c,%ecx
mov    %eax,%r8d
xor    %eax,%eax
pop    %rbx
jmp    1030 <printf@plt>
pop    %rbx
ret

LLVM IR (-O0):
@.str = [4 x i8] c"abc\00"
@.str.1 = [26 x i8] c"%s (%s %d): \22%s\22 != \22%s\22\0A\00"
@__func__.test_str_center = [16 x i8] c"test_str_center\00"
@.str.2 = [142 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/master/utils/str.h\00"
@.str.3 = [5 x i8] c"abc*\00"
@.str.4 = [6 x i8] c"*abc*\00"
@.str.5 = [7 x i8] c"*abc**\00"
@.str.6 = [8 x i8] c"**abc**\00"
@.str.7 = [1 x i8] zeroinitializer
@.str.8 = [8 x i8] c"-------\00"
@.str.9 = [2 x i8] c"1\00"
@.str.10 = [11 x i8] c"!!!!1!!!!!\00"
@.str.11 = [12 x i8] c"simple text\00"
@.str.12 = [16 x i8] c"&&simple text&&\00"
@.str.13 = [2 x i8] c"A\00"
@.str.14 = [11 x i8] c"----A-----\00"
@.str.15 = [5 x i8] c"text\00"
@.str.16 = [11 x i8] c"***text***\00"
@.str.17 = [27 x i8] c"The C programming language\00"
@.str.18 = [28 x i8] c"The C programming language!\00"
@.str.19 = [29 x i8] c"!The C programming language!\00"
@.str.20 = [30 x i8] c"!The C programming language!!\00"
@.str.21 = [31 x i8] c"!!The C programming language!!\00"
@.str.22 = [32 x i8] c"!!The C programming language!!!\00"
define void @test_str_center() {
%1 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 0, i32 42)
%2 = sext i32 %1 to i64
%3 = inttoptr i64 %2 to i8*
%4 = call i32 @strcmp(i8* %3, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%5 = icmp eq i32 %4, 0
br i1 %5, label %6, label %7
6: ; preds = %0
br label %10
7: ; preds = %0
%8 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 0, i32 42)
%9 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 887, i32 %8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
br label %10
10: ; preds = %7, %6
%11 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 1, i32 42)
%12 = sext i32 %11 to i64
%13 = inttoptr i64 %12 to i8*
%14 = call i32 @strcmp(i8* %13, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%15 = icmp eq i32 %14, 0
br i1 %15, label %16, label %17
16: ; preds = %10
br label %20
17: ; preds = %10
%18 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 1, i32 42)
%19 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 888, i32 %18, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
br label %20
20: ; preds = %17, %16
%21 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 2, i32 42)
%22 = sext i32 %21 to i64
%23 = inttoptr i64 %22 to i8*
%24 = call i32 @strcmp(i8* %23, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%25 = icmp eq i32 %24, 0
br i1 %25, label %26, label %27
26: ; preds = %20
br label %30
27: ; preds = %20
%28 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 2, i32 42)
%29 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 889, i32 %28, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
br label %30
30: ; preds = %27, %26
%31 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 3, i32 42)
%32 = sext i32 %31 to i64
%33 = inttoptr i64 %32 to i8*
%34 = call i32 @strcmp(i8* %33, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%35 = icmp eq i32 %34, 0
br i1 %35, label %36, label %37
36: ; preds = %30
br label %40
37: ; preds = %30
%38 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 3, i32 42)
%39 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 890, i32 %38, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
br label %40
40: ; preds = %37, %36
%41 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 4, i32 42)
%42 = sext i32 %41 to i64
%43 = inttoptr i64 %42 to i8*
%44 = call i32 @strcmp(i8* %43, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%45 = icmp eq i32 %44, 0
br i1 %45, label %46, label %47
46: ; preds = %40
br label %50
47: ; preds = %40
%48 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 4, i32 42)
%49 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 891, i32 %48, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
br label %50
50: ; preds = %47, %46
%51 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 5, i32 42)
%52 = sext i32 %51 to i64
%53 = inttoptr i64 %52 to i8*
%54 = call i32 @strcmp(i8* %53, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.4, i64 0, i64 0))
%55 = icmp eq i32 %54, 0
br i1 %55, label %56, label %57
56: ; preds = %50
br label %60
57: ; preds = %50
%58 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 5, i32 42)
%59 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 892, i32 %58, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.4, i64 0, i64 0))
br label %60
60: ; preds = %57, %56
%61 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 6, i32 42)
%62 = sext i32 %61 to i64
%63 = inttoptr i64 %62 to i8*
%64 = call i32 @strcmp(i8* %63, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.5, i64 0, i64 0))
%65 = icmp eq i32 %64, 0
br i1 %65, label %66, label %67
66: ; preds = %60
br label %70
67: ; preds = %60
%68 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 6, i32 42)
%69 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 893, i32 %68, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.5, i64 0, i64 0))
br label %70
70: ; preds = %67, %66
%71 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 7, i32 42)
%72 = sext i32 %71 to i64
%73 = inttoptr i64 %72 to i8*
%74 = call i32 @strcmp(i8* %73, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.6, i64 0, i64 0))
%75 = icmp eq i32 %74, 0
br i1 %75, label %76, label %77
76: ; preds = %70
br label %80
77: ; preds = %70
%78 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 7, i32 42)
%79 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 894, i32 %78, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.6, i64 0, i64 0))
br label %80
80: ; preds = %77, %76
%81 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.7, i64 0, i64 0), i32 7, i32 45)
%82 = sext i32 %81 to i64
%83 = inttoptr i64 %82 to i8*
%84 = call i32 @strcmp(i8* %83, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.8, i64 0, i64 0))
%85 = icmp eq i32 %84, 0
br i1 %85, label %86, label %87
86: ; preds = %80
br label %90
87: ; preds = %80
%88 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.7, i64 0, i64 0), i32 7, i32 45)
%89 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 895, i32 %88, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.8, i64 0, i64 0))
br label %90
90: ; preds = %87, %86
%91 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.9, i64 0, i64 0), i32 10, i32 33)
%92 = sext i32 %91 to i64
%93 = inttoptr i64 %92 to i8*
%94 = call i32 @strcmp(i8* %93, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.10, i64 0, i64 0))
%95 = icmp eq i32 %94, 0
br i1 %95, label %96, label %97
96: ; preds = %90
br label %100
97: ; preds = %90
%98 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.9, i64 0, i64 0), i32 10, i32 33)
%99 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 896, i32 %98, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.10, i64 0, i64 0))
br label %100
100: ; preds = %97, %96
%101 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.11, i64 0, i64 0), i32 10, i32 38)
%102 = sext i32 %101 to i64
%103 = inttoptr i64 %102 to i8*
%104 = call i32 @strcmp(i8* %103, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.11, i64 0, i64 0))
%105 = icmp eq i32 %104, 0
br i1 %105, label %106, label %107
106: ; preds = %100
br label %110
107: ; preds = %100
%108 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.11, i64 0, i64 0), i32 10, i32 38)
%109 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 897, i32 %108, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.11, i64 0, i64 0))
br label %110
110: ; preds = %107, %106
%111 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.11, i64 0, i64 0), i32 15, i32 38)
%112 = sext i32 %111 to i64
%113 = inttoptr i64 %112 to i8*
%114 = call i32 @strcmp(i8* %113, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.12, i64 0, i64 0))
%115 = icmp eq i32 %114, 0
br i1 %115, label %116, label %117
116: ; preds = %110
br label %120
117: ; preds = %110
%118 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.11, i64 0, i64 0), i32 15, i32 38)
%119 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 898, i32 %118, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.12, i64 0, i64 0))
br label %120
120: ; preds = %117, %116
%121 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0), i32 0, i32 45)
%122 = sext i32 %121 to i64
%123 = inttoptr i64 %122 to i8*
%124 = call i32 @strcmp(i8* %123, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0))
%125 = icmp eq i32 %124, 0
br i1 %125, label %126, label %127
126: ; preds = %120
br label %130
127: ; preds = %120
%128 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0), i32 0, i32 45)
%129 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 899, i32 %128, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0))
br label %130
130: ; preds = %127, %126
%131 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0), i32 1, i32 45)
%132 = sext i32 %131 to i64
%133 = inttoptr i64 %132 to i8*
%134 = call i32 @strcmp(i8* %133, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0))
%135 = icmp eq i32 %134, 0
br i1 %135, label %136, label %137
136: ; preds = %130
br label %140
137: ; preds = %130
%138 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0), i32 1, i32 45)
%139 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 900, i32 %138, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0))
br label %140
140: ; preds = %137, %136
%141 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0), i32 10, i32 45)
%142 = sext i32 %141 to i64
%143 = inttoptr i64 %142 to i8*
%144 = call i32 @strcmp(i8* %143, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.14, i64 0, i64 0))
%145 = icmp eq i32 %144, 0
br i1 %145, label %146, label %147
146: ; preds = %140
br label %150
147: ; preds = %140
%148 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0), i32 10, i32 45)
%149 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 901, i32 %148, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.14, i64 0, i64 0))
br label %150
150: ; preds = %147, %146
%151 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), i32 10, i32 42)
%152 = sext i32 %151 to i64
%153 = inttoptr i64 %152 to i8*
%154 = call i32 @strcmp(i8* %153, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.16, i64 0, i64 0))
%155 = icmp eq i32 %154, 0
br i1 %155, label %156, label %157
156: ; preds = %150
br label %160
157: ; preds = %150
%158 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), i32 10, i32 42)
%159 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 902, i32 %158, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.16, i64 0, i64 0))
br label %160
160: ; preds = %157, %156
%161 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 26, i32 33)
%162 = sext i32 %161 to i64
%163 = inttoptr i64 %162 to i8*
%164 = call i32 @strcmp(i8* %163, i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0))
%165 = icmp eq i32 %164, 0
br i1 %165, label %166, label %167
166: ; preds = %160
br label %170
167: ; preds = %160
%168 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 26, i32 33)
%169 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 903, i32 %168, i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0))
br label %170
170: ; preds = %167, %166
%171 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 27, i32 33)
%172 = sext i32 %171 to i64
%173 = inttoptr i64 %172 to i8*
%174 = call i32 @strcmp(i8* %173, i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.18, i64 0, i64 0))
%175 = icmp eq i32 %174, 0
br i1 %175, label %176, label %177
176: ; preds = %170
br label %180
177: ; preds = %170
%178 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 27, i32 33)
%179 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 904, i32 %178, i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.18, i64 0, i64 0))
br label %180
180: ; preds = %177, %176
%181 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 28, i32 33)
%182 = sext i32 %181 to i64
%183 = inttoptr i64 %182 to i8*
%184 = call i32 @strcmp(i8* %183, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.19, i64 0, i64 0))
%185 = icmp eq i32 %184, 0
br i1 %185, label %186, label %187
186: ; preds = %180
br label %190
187: ; preds = %180
%188 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 28, i32 33)
%189 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 905, i32 %188, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.19, i64 0, i64 0))
br label %190
190: ; preds = %187, %186
%191 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 29, i32 33)
%192 = sext i32 %191 to i64
%193 = inttoptr i64 %192 to i8*
%194 = call i32 @strcmp(i8* %193, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.20, i64 0, i64 0))
%195 = icmp eq i32 %194, 0
br i1 %195, label %196, label %197
196: ; preds = %190
br label %200
197: ; preds = %190
%198 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 29, i32 33)
%199 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 906, i32 %198, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.20, i64 0, i64 0))
br label %200
200: ; preds = %197, %196
%201 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 30, i32 33)
%202 = sext i32 %201 to i64
%203 = inttoptr i64 %202 to i8*
%204 = call i32 @strcmp(i8* %203, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.21, i64 0, i64 0))
%205 = icmp eq i32 %204, 0
br i1 %205, label %206, label %207
206: ; preds = %200
br label %210
207: ; preds = %200
%208 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 30, i32 33)
%209 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 907, i32 %208, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.21, i64 0, i64 0))
br label %210
210: ; preds = %207, %206
%211 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 31, i32 33)
%212 = sext i32 %211 to i64
%213 = inttoptr i64 %212 to i8*
%214 = call i32 @strcmp(i8* %213, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.22, i64 0, i64 0))
%215 = icmp eq i32 %214, 0
br i1 %215, label %216, label %217
216: ; preds = %210
br label %220
217: ; preds = %210
%218 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 31, i32 33)
%219 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 908, i32 %218, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.22, i64 0, i64 0))
br label %220
220: ; preds = %217, %216
ret void
}

LLVM IR (-O2):
@.str = [4 x i8] c"abc\00"
@.str.1 = [26 x i8] c"%s (%s %d): \22%s\22 != \22%s\22\0A\00"
@__func__.test_str_center = [16 x i8] c"test_str_center\00"
@.str.2 = [142 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/setivolkylany/c-utils/refs/heads/master/utils/str.h\00"
@.str.3 = [5 x i8] c"abc*\00"
@.str.4 = [6 x i8] c"*abc*\00"
@.str.5 = [7 x i8] c"*abc**\00"
@.str.6 = [8 x i8] c"**abc**\00"
@.str.7 = [1 x i8] zeroinitializer
@.str.8 = [8 x i8] c"-------\00"
@.str.9 = [2 x i8] c"1\00"
@.str.10 = [11 x i8] c"!!!!1!!!!!\00"
@.str.11 = [12 x i8] c"simple text\00"
@.str.12 = [16 x i8] c"&&simple text&&\00"
@.str.13 = [2 x i8] c"A\00"
@.str.14 = [11 x i8] c"----A-----\00"
@.str.15 = [5 x i8] c"text\00"
@.str.16 = [11 x i8] c"***text***\00"
@.str.17 = [27 x i8] c"The C programming language\00"
@.str.18 = [28 x i8] c"The C programming language!\00"
@.str.19 = [29 x i8] c"!The C programming language!\00"
@.str.20 = [30 x i8] c"!The C programming language!!\00"
@.str.21 = [31 x i8] c"!!The C programming language!!\00"
@.str.22 = [32 x i8] c"!!The C programming language!!!\00"
define void @test_str_center() {
%1 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 0, i32 42)
%2 = sext i32 %1 to i64
%3 = inttoptr i64 %2 to i8*
%4 = tail call i32 @strcmp(i8* dereferenceable(1) %3, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%5 = icmp eq i32 %4, 0
br i1 %5, label %9, label %6
6: ; preds = %0
%7 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 0, i32 42)
%8 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 887, i32 %7, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
br label %9
9: ; preds = %0, %6
%10 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 1, i32 42)
%11 = sext i32 %10 to i64
%12 = inttoptr i64 %11 to i8*
%13 = tail call i32 @strcmp(i8* dereferenceable(1) %12, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%14 = icmp eq i32 %13, 0
br i1 %14, label %18, label %15
15: ; preds = %9
%16 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 1, i32 42)
%17 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 888, i32 %16, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
br label %18
18: ; preds = %9, %15
%19 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 2, i32 42)
%20 = sext i32 %19 to i64
%21 = inttoptr i64 %20 to i8*
%22 = tail call i32 @strcmp(i8* dereferenceable(1) %21, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%23 = icmp eq i32 %22, 0
br i1 %23, label %27, label %24
24: ; preds = %18
%25 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 2, i32 42)
%26 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 889, i32 %25, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
br label %27
27: ; preds = %18, %24
%28 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 3, i32 42)
%29 = sext i32 %28 to i64
%30 = inttoptr i64 %29 to i8*
%31 = tail call i32 @strcmp(i8* dereferenceable(1) %30, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%32 = icmp eq i32 %31, 0
br i1 %32, label %36, label %33
33: ; preds = %27
%34 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 3, i32 42)
%35 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 890, i32 %34, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
br label %36
36: ; preds = %27, %33
%37 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 4, i32 42)
%38 = sext i32 %37 to i64
%39 = inttoptr i64 %38 to i8*
%40 = tail call i32 @strcmp(i8* dereferenceable(1) %39, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%41 = icmp eq i32 %40, 0
br i1 %41, label %45, label %42
42: ; preds = %36
%43 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 4, i32 42)
%44 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 891, i32 %43, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
br label %45
45: ; preds = %36, %42
%46 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 5, i32 42)
%47 = sext i32 %46 to i64
%48 = inttoptr i64 %47 to i8*
%49 = tail call i32 @strcmp(i8* dereferenceable(1) %48, i8* dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.4, i64 0, i64 0))
%50 = icmp eq i32 %49, 0
br i1 %50, label %54, label %51
51: ; preds = %45
%52 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 5, i32 42)
%53 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 892, i32 %52, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.4, i64 0, i64 0))
br label %54
54: ; preds = %45, %51
%55 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 6, i32 42)
%56 = sext i32 %55 to i64
%57 = inttoptr i64 %56 to i8*
%58 = tail call i32 @strcmp(i8* dereferenceable(1) %57, i8* dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.5, i64 0, i64 0))
%59 = icmp eq i32 %58, 0
br i1 %59, label %63, label %60
60: ; preds = %54
%61 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 6, i32 42)
%62 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 893, i32 %61, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.5, i64 0, i64 0))
br label %63
63: ; preds = %54, %60
%64 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 7, i32 42)
%65 = sext i32 %64 to i64
%66 = inttoptr i64 %65 to i8*
%67 = tail call i32 @strcmp(i8* dereferenceable(1) %66, i8* dereferenceable(8) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.6, i64 0, i64 0))
%68 = icmp eq i32 %67, 0
br i1 %68, label %72, label %69
69: ; preds = %63
%70 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 7, i32 42)
%71 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 894, i32 %70, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.6, i64 0, i64 0))
br label %72
72: ; preds = %63, %69
%73 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.7, i64 0, i64 0), i32 7, i32 45)
%74 = sext i32 %73 to i64
%75 = inttoptr i64 %74 to i8*
%76 = tail call i32 @strcmp(i8* dereferenceable(1) %75, i8* dereferenceable(8) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.8, i64 0, i64 0))
%77 = icmp eq i32 %76, 0
br i1 %77, label %81, label %78
78: ; preds = %72
%79 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.7, i64 0, i64 0), i32 7, i32 45)
%80 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 895, i32 %79, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.8, i64 0, i64 0))
br label %81
81: ; preds = %72, %78
%82 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.9, i64 0, i64 0), i32 10, i32 33)
%83 = sext i32 %82 to i64
%84 = inttoptr i64 %83 to i8*
%85 = tail call i32 @strcmp(i8* dereferenceable(1) %84, i8* dereferenceable(11) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.10, i64 0, i64 0))
%86 = icmp eq i32 %85, 0
br i1 %86, label %90, label %87
87: ; preds = %81
%88 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.9, i64 0, i64 0), i32 10, i32 33)
%89 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 896, i32 %88, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.10, i64 0, i64 0))
br label %90
90: ; preds = %81, %87
%91 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.11, i64 0, i64 0), i32 10, i32 38)
%92 = sext i32 %91 to i64
%93 = inttoptr i64 %92 to i8*
%94 = tail call i32 @strcmp(i8* dereferenceable(1) %93, i8* dereferenceable(12) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.11, i64 0, i64 0))
%95 = icmp eq i32 %94, 0
br i1 %95, label %99, label %96
96: ; preds = %90
%97 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.11, i64 0, i64 0), i32 10, i32 38)
%98 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 897, i32 %97, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.11, i64 0, i64 0))
br label %99
99: ; preds = %90, %96
%100 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.11, i64 0, i64 0), i32 15, i32 38)
%101 = sext i32 %100 to i64
%102 = inttoptr i64 %101 to i8*
%103 = tail call i32 @strcmp(i8* dereferenceable(1) %102, i8* dereferenceable(16) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.12, i64 0, i64 0))
%104 = icmp eq i32 %103, 0
br i1 %104, label %108, label %105
105: ; preds = %99
%106 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.11, i64 0, i64 0), i32 15, i32 38)
%107 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 898, i32 %106, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.12, i64 0, i64 0))
br label %108
108: ; preds = %99, %105
%109 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0), i32 0, i32 45)
%110 = sext i32 %109 to i64
%111 = inttoptr i64 %110 to i8*
%112 = tail call i32 @strcmp(i8* dereferenceable(1) %111, i8* dereferenceable(2) getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0))
%113 = icmp eq i32 %112, 0
br i1 %113, label %117, label %114
114: ; preds = %108
%115 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0), i32 0, i32 45)
%116 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 899, i32 %115, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0))
br label %117
117: ; preds = %108, %114
%118 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0), i32 1, i32 45)
%119 = sext i32 %118 to i64
%120 = inttoptr i64 %119 to i8*
%121 = tail call i32 @strcmp(i8* dereferenceable(1) %120, i8* dereferenceable(2) getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0))
%122 = icmp eq i32 %121, 0
br i1 %122, label %126, label %123
123: ; preds = %117
%124 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0), i32 1, i32 45)
%125 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 900, i32 %124, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0))
br label %126
126: ; preds = %117, %123
%127 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0), i32 10, i32 45)
%128 = sext i32 %127 to i64
%129 = inttoptr i64 %128 to i8*
%130 = tail call i32 @strcmp(i8* dereferenceable(1) %129, i8* dereferenceable(11) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.14, i64 0, i64 0))
%131 = icmp eq i32 %130, 0
br i1 %131, label %135, label %132
132: ; preds = %126
%133 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.13, i64 0, i64 0), i32 10, i32 45)
%134 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 901, i32 %133, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.14, i64 0, i64 0))
br label %135
135: ; preds = %126, %132
%136 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), i32 10, i32 42)
%137 = sext i32 %136 to i64
%138 = inttoptr i64 %137 to i8*
%139 = tail call i32 @strcmp(i8* dereferenceable(1) %138, i8* dereferenceable(11) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.16, i64 0, i64 0))
%140 = icmp eq i32 %139, 0
br i1 %140, label %144, label %141
141: ; preds = %135
%142 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), i32 10, i32 42)
%143 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 902, i32 %142, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.16, i64 0, i64 0))
br label %144
144: ; preds = %135, %141
%145 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 26, i32 33)
%146 = sext i32 %145 to i64
%147 = inttoptr i64 %146 to i8*
%148 = tail call i32 @strcmp(i8* dereferenceable(1) %147, i8* dereferenceable(27) getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0))
%149 = icmp eq i32 %148, 0
br i1 %149, label %153, label %150
150: ; preds = %144
%151 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 26, i32 33)
%152 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 903, i32 %151, i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0))
br label %153
153: ; preds = %144, %150
%154 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 27, i32 33)
%155 = sext i32 %154 to i64
%156 = inttoptr i64 %155 to i8*
%157 = tail call i32 @strcmp(i8* dereferenceable(1) %156, i8* dereferenceable(28) getelementptr inbounds ([28 x i8], [28 x i8]* @.str.18, i64 0, i64 0))
%158 = icmp eq i32 %157, 0
br i1 %158, label %162, label %159
159: ; preds = %153
%160 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 27, i32 33)
%161 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 904, i32 %160, i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.18, i64 0, i64 0))
br label %162
162: ; preds = %153, %159
%163 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 28, i32 33)
%164 = sext i32 %163 to i64
%165 = inttoptr i64 %164 to i8*
%166 = tail call i32 @strcmp(i8* dereferenceable(1) %165, i8* dereferenceable(29) getelementptr inbounds ([29 x i8], [29 x i8]* @.str.19, i64 0, i64 0))
%167 = icmp eq i32 %166, 0
br i1 %167, label %171, label %168
168: ; preds = %162
%169 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 28, i32 33)
%170 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 905, i32 %169, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.19, i64 0, i64 0))
br label %171
171: ; preds = %162, %168
%172 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 29, i32 33)
%173 = sext i32 %172 to i64
%174 = inttoptr i64 %173 to i8*
%175 = tail call i32 @strcmp(i8* dereferenceable(1) %174, i8* dereferenceable(30) getelementptr inbounds ([30 x i8], [30 x i8]* @.str.20, i64 0, i64 0))
%176 = icmp eq i32 %175, 0
br i1 %176, label %180, label %177
177: ; preds = %171
%178 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 29, i32 33)
%179 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 906, i32 %178, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.20, i64 0, i64 0))
br label %180
180: ; preds = %171, %177
%181 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 30, i32 33)
%182 = sext i32 %181 to i64
%183 = inttoptr i64 %182 to i8*
%184 = tail call i32 @strcmp(i8* dereferenceable(1) %183, i8* dereferenceable(31) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.21, i64 0, i64 0))
%185 = icmp eq i32 %184, 0
br i1 %185, label %189, label %186
186: ; preds = %180
%187 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 30, i32 33)
%188 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 907, i32 %187, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.21, i64 0, i64 0))
br label %189
189: ; preds = %180, %186
%190 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 31, i32 33)
%191 = sext i32 %190 to i64
%192 = inttoptr i64 %191 to i8*
%193 = tail call i32 @strcmp(i8* dereferenceable(1) %192, i8* dereferenceable(32) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.22, i64 0, i64 0))
%194 = icmp eq i32 %193, 0
br i1 %194, label %198, label %195
195: ; preds = %189
%196 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @str_center to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), i32 31, i32 33)
%197 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @__func__.test_str_center, i64 0, i64 0), i8* getelementptr inbounds ([142 x i8], [142 x i8]* @.str.2, i64 0, i64 0), i32 908, i32 %196, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.22, i64 0, i64 0))
br label %198
198: ; preds = %189, %195
ret void
}