#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ getpid();
int /*<<< orphan*/ ksft_print_msg(char *, int /*<<< orphan*/, int);
int /*<<< orphan*/ randomize_buffer(char *, unsigned int);
scalar_t__ strncmp(char *, char *, int);
int xfrm_fill_key(char *name, char *buf, size_t buf_len,
                  unsigned int *key_len) {
  if (strncmp(name, "digest_null", 64) == 0)
    *key_len = 0;
  else if (strncmp(name, "ecb(cipher_null)", 64) == 0)
    *key_len = 0;
  else if (strncmp(name, "cbc(des)", 64) == 0)
    *key_len = 64;
  else if (strncmp(name, "hmac(md5)", 64) == 0)
    *key_len = 128;
  else if (strncmp(name, "cmac(aes)", 64) == 0)
    *key_len = 128;
  else if (strncmp(name, "xcbc(aes)", 64) == 0)
    *key_len = 128;
  else if (strncmp(name, "cbc(cast5)", 64) == 0)
    *key_len = 128;
  else if (strncmp(name, "cbc(serpent)", 64) == 0)
    *key_len = 128;
  else if (strncmp(name, "hmac(sha1)", 64) == 0)
    *key_len = 160;
  else if (strncmp(name, "hmac(rmd160)", 64) == 0)
    *key_len = 160;
  else if (strncmp(name, "cbc(des3_ede)", 64) == 0)
    *key_len = 192;
  else if (strncmp(name, "hmac(sha256)", 64) == 0)
    *key_len = 256;
  else if (strncmp(name, "cbc(aes)", 64) == 0)
    *key_len = 256;
  else if (strncmp(name, "cbc(camellia)", 64) == 0)
    *key_len = 256;
  else if (strncmp(name, "cbc(twofish)", 64) == 0)
    *key_len = 256;
  else if (strncmp(name, "rfc3686(ctr(aes))", 64) == 0)
    *key_len = 288;
  else if (strncmp(name, "hmac(sha384)", 64) == 0)
    *key_len = 384;
  else if (strncmp(name, "cbc(blowfish)", 64) == 0)
    *key_len = 448;
  else if (strncmp(name, "hmac(sha512)", 64) == 0)
    *key_len = 512;
  else if (strncmp(name, "rfc4106(gcm(aes))-128", 64) == 0)
    *key_len = 160;
  else if (strncmp(name, "rfc4543(gcm(aes))-128", 64) == 0)
    *key_len = 160;
  else if (strncmp(name, "rfc4309(ccm(aes))-128", 64) == 0)
    *key_len = 152;
  else if (strncmp(name, "rfc4106(gcm(aes))-192", 64) == 0)
    *key_len = 224;
  else if (strncmp(name, "rfc4543(gcm(aes))-192", 64) == 0)
    *key_len = 224;
  else if (strncmp(name, "rfc4309(ccm(aes))-192", 64) == 0)
    *key_len = 216;
  else if (strncmp(name, "rfc4106(gcm(aes))-256", 64) == 0)
    *key_len = 288;
  else if (strncmp(name, "rfc4543(gcm(aes))-256", 64) == 0)
    *key_len = 288;
  else if (strncmp(name, "rfc4309(ccm(aes))-256", 64) == 0)
    *key_len = 280;
  else if (strncmp(name, "rfc7539(chacha20,poly1305)-128", 64) == 0)
    *key_len = 0;
  if (*key_len > buf_len) {
    ksft_print_msg("%d[%u] "
                   "Can't pack a key - too big for buffer"
                   "\n",
                   getpid(), 829);
    return -1;
  }
  randomize_buffer(buf, *key_len);
  return 0;
}


x86 assembly (clang, -O0):
<xfrm_fill_key>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %rdx,-0x20(%rbp)
mov    %rcx,-0x28(%rbp)
mov    -0x10(%rbp),%rdi
lea    0xe9d(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1186 <xfrm_fill_key+0x46>
mov    -0x28(%rbp),%rax
movl   $0x0,(%rax)
jmp    1715 <xfrm_fill_key+0x5d5>
mov    -0x10(%rbp),%rdi
lea    0xe7b(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    11b4 <xfrm_fill_key+0x74>
mov    -0x28(%rbp),%rax
movl   $0x0,(%rax)
jmp    1710 <xfrm_fill_key+0x5d0>
mov    -0x10(%rbp),%rdi
lea    0xe5e(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    11e2 <xfrm_fill_key+0xa2>
mov    -0x28(%rbp),%rax
movl   $0x40,(%rax)
jmp    170b <xfrm_fill_key+0x5cb>
mov    -0x10(%rbp),%rdi
lea    0xe39(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1210 <xfrm_fill_key+0xd0>
mov    -0x28(%rbp),%rax
movl   $0x80,(%rax)
jmp    1706 <xfrm_fill_key+0x5c6>
mov    -0x10(%rbp),%rdi
lea    0xe15(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    123e <xfrm_fill_key+0xfe>
mov    -0x28(%rbp),%rax
movl   $0x80,(%rax)
jmp    1701 <xfrm_fill_key+0x5c1>
mov    -0x10(%rbp),%rdi
lea    0xdf1(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    126c <xfrm_fill_key+0x12c>
mov    -0x28(%rbp),%rax
movl   $0x80,(%rax)
jmp    16fc <xfrm_fill_key+0x5bc>
mov    -0x10(%rbp),%rdi
lea    0xdcd(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    129a <xfrm_fill_key+0x15a>
mov    -0x28(%rbp),%rax
movl   $0x80,(%rax)
jmp    16f7 <xfrm_fill_key+0x5b7>
mov    -0x10(%rbp),%rdi
lea    0xdaa(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    12c8 <xfrm_fill_key+0x188>
mov    -0x28(%rbp),%rax
movl   $0x80,(%rax)
jmp    16f2 <xfrm_fill_key+0x5b2>
mov    -0x10(%rbp),%rdi
lea    0xd89(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    12f6 <xfrm_fill_key+0x1b6>
mov    -0x28(%rbp),%rax
movl   $0xa0,(%rax)
jmp    16ed <xfrm_fill_key+0x5ad>
mov    -0x10(%rbp),%rdi
lea    0xd66(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1324 <xfrm_fill_key+0x1e4>
mov    -0x28(%rbp),%rax
movl   $0xa0,(%rax)
jmp    16e8 <xfrm_fill_key+0x5a8>
mov    -0x10(%rbp),%rdi
lea    0xd45(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1352 <xfrm_fill_key+0x212>
mov    -0x28(%rbp),%rax
movl   $0xc0,(%rax)
jmp    16e3 <xfrm_fill_key+0x5a3>
mov    -0x10(%rbp),%rdi
lea    0xd25(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1380 <xfrm_fill_key+0x240>
mov    -0x28(%rbp),%rax
movl   $0x100,(%rax)
jmp    16de <xfrm_fill_key+0x59e>
mov    -0x10(%rbp),%rdi
lea    0xcb0(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    13ae <xfrm_fill_key+0x26e>
mov    -0x28(%rbp),%rax
movl   $0x100,(%rax)
jmp    16d9 <xfrm_fill_key+0x599>
mov    -0x10(%rbp),%rdi
lea    0xcd6(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    13dc <xfrm_fill_key+0x29c>
mov    -0x28(%rbp),%rax
movl   $0x100,(%rax)
jmp    16d4 <xfrm_fill_key+0x594>
mov    -0x10(%rbp),%rdi
lea    0xcb6(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    140a <xfrm_fill_key+0x2ca>
mov    -0x28(%rbp),%rax
movl   $0x100,(%rax)
jmp    16cf <xfrm_fill_key+0x58f>
mov    -0x10(%rbp),%rdi
lea    0xc95(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1438 <xfrm_fill_key+0x2f8>
mov    -0x28(%rbp),%rax
movl   $0x120,(%rax)
jmp    16ca <xfrm_fill_key+0x58a>
mov    -0x10(%rbp),%rdi
lea    0xc79(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1466 <xfrm_fill_key+0x326>
mov    -0x28(%rbp),%rax
movl   $0x180,(%rax)
jmp    16c5 <xfrm_fill_key+0x585>
mov    -0x10(%rbp),%rdi
lea    0xc58(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1494 <xfrm_fill_key+0x354>
mov    -0x28(%rbp),%rax
movl   $0x1c0,(%rax)
jmp    16c0 <xfrm_fill_key+0x580>
mov    -0x10(%rbp),%rdi
lea    0xc38(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    14c2 <xfrm_fill_key+0x382>
mov    -0x28(%rbp),%rax
movl   $0x200,(%rax)
jmp    16bb <xfrm_fill_key+0x57b>
mov    -0x10(%rbp),%rdi
lea    0xc17(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    14f0 <xfrm_fill_key+0x3b0>
mov    -0x28(%rbp),%rax
movl   $0xa0,(%rax)
jmp    16b6 <xfrm_fill_key+0x576>
mov    -0x10(%rbp),%rdi
lea    0xbff(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    151e <xfrm_fill_key+0x3de>
mov    -0x28(%rbp),%rax
movl   $0xa0,(%rax)
jmp    16b1 <xfrm_fill_key+0x571>
mov    -0x10(%rbp),%rdi
lea    0xbe7(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    154c <xfrm_fill_key+0x40c>
mov    -0x28(%rbp),%rax
movl   $0x98,(%rax)
jmp    16ac <xfrm_fill_key+0x56c>
mov    -0x10(%rbp),%rdi
lea    0xbcf(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    157a <xfrm_fill_key+0x43a>
mov    -0x28(%rbp),%rax
movl   $0xe0,(%rax)
jmp    16a7 <xfrm_fill_key+0x567>
mov    -0x10(%rbp),%rdi
lea    0xbb7(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    15a8 <xfrm_fill_key+0x468>
mov    -0x28(%rbp),%rax
movl   $0xe0,(%rax)
jmp    16a2 <xfrm_fill_key+0x562>
mov    -0x10(%rbp),%rdi
lea    0xb9f(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    15d6 <xfrm_fill_key+0x496>
mov    -0x28(%rbp),%rax
movl   $0xd8,(%rax)
jmp    169d <xfrm_fill_key+0x55d>
mov    -0x10(%rbp),%rdi
lea    0xb87(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1604 <xfrm_fill_key+0x4c4>
mov    -0x28(%rbp),%rax
movl   $0x120,(%rax)
jmp    1698 <xfrm_fill_key+0x558>
mov    -0x10(%rbp),%rdi
lea    0xb6f(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1632 <xfrm_fill_key+0x4f2>
mov    -0x28(%rbp),%rax
movl   $0x120,(%rax)
jmp    1693 <xfrm_fill_key+0x553>
mov    -0x10(%rbp),%rdi
lea    0xb57(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1660 <xfrm_fill_key+0x520>
mov    -0x28(%rbp),%rax
movl   $0x118,(%rax)
jmp    168e <xfrm_fill_key+0x54e>
mov    -0x10(%rbp),%rdi
lea    0xb3f(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1689 <xfrm_fill_key+0x549>
mov    -0x28(%rbp),%rax
movl   $0x0,(%rax)
jmp    168e <xfrm_fill_key+0x54e>
jmp    1693 <xfrm_fill_key+0x553>
jmp    1698 <xfrm_fill_key+0x558>
jmp    169d <xfrm_fill_key+0x55d>
jmp    16a2 <xfrm_fill_key+0x562>
jmp    16a7 <xfrm_fill_key+0x567>
jmp    16ac <xfrm_fill_key+0x56c>
jmp    16b1 <xfrm_fill_key+0x571>
jmp    16b6 <xfrm_fill_key+0x576>
jmp    16bb <xfrm_fill_key+0x57b>
jmp    16c0 <xfrm_fill_key+0x580>
jmp    16c5 <xfrm_fill_key+0x585>
jmp    16ca <xfrm_fill_key+0x58a>
jmp    16cf <xfrm_fill_key+0x58f>
jmp    16d4 <xfrm_fill_key+0x594>
jmp    16d9 <xfrm_fill_key+0x599>
jmp    16de <xfrm_fill_key+0x59e>
jmp    16e3 <xfrm_fill_key+0x5a3>
jmp    16e8 <xfrm_fill_key+0x5a8>
jmp    16ed <xfrm_fill_key+0x5ad>
jmp    16f2 <xfrm_fill_key+0x5b2>
jmp    16f7 <xfrm_fill_key+0x5b7>
jmp    16fc <xfrm_fill_key+0x5bc>
jmp    1701 <xfrm_fill_key+0x5c1>
jmp    1706 <xfrm_fill_key+0x5c6>
jmp    170b <xfrm_fill_key+0x5cb>
jmp    1710 <xfrm_fill_key+0x5d0>
jmp    1715 <xfrm_fill_key+0x5d5>
mov    -0x28(%rbp),%rax
mov    (%rax),%eax
cmp    -0x20(%rbp),%rax
jbe    174b <xfrm_fill_key+0x60b>
mov    $0x0,%al
call   1040 <getpid@plt>
mov    %eax,%esi
lea    0xa94(%rip),%rdi
mov    $0x33d,%edx
call   1060 <ksft_print_msg@plt>
movl   $0xffffffff,-0x4(%rbp)
jmp    1761 <xfrm_fill_key+0x621>
mov    -0x18(%rbp),%rdi
mov    -0x28(%rbp),%rax
mov    (%rax),%esi
call   1050 <randomize_buffer@plt>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<xfrm_fill_key>:
push   %rbp
push   %r15
push   %r14
push   %r12
push   %rbx
mov    %rcx,%r12
mov    %rdx,%r15
mov    %rsi,%r14
mov    %rdi,%rbx
lea    0xea5(%rip),%rsi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     14a1 <xfrm_fill_key+0x361>
lea    0xe97(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     14a1 <xfrm_fill_key+0x361>
lea    0xe8b(%rip),%rsi
mov    $0x40,%ebp
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     14bc <xfrm_fill_key+0x37c>
lea    0xe72(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     14ad <xfrm_fill_key+0x36d>
lea    0xe5f(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     14ad <xfrm_fill_key+0x36d>
lea    0xe4c(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     14ad <xfrm_fill_key+0x36d>
lea    0xe39(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     14ad <xfrm_fill_key+0x36d>
lea    0xe27(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     14ad <xfrm_fill_key+0x36d>
lea    0xe17(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1501 <xfrm_fill_key+0x3c1>
lea    0xe05(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1501 <xfrm_fill_key+0x3c1>
lea    0xdf5(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     151f <xfrm_fill_key+0x3df>
lea    0xde6(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1510 <xfrm_fill_key+0x3d0>
lea    0xd82(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1510 <xfrm_fill_key+0x3d0>
lea    0xdb9(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1510 <xfrm_fill_key+0x3d0>
lea    0xdaa(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1510 <xfrm_fill_key+0x3d0>
lea    0xd9a(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     152e <xfrm_fill_key+0x3ee>
lea    0xd8f(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     153d <xfrm_fill_key+0x3fd>
lea    0xd7f(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     154f <xfrm_fill_key+0x40f>
lea    0xd70(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1561 <xfrm_fill_key+0x421>
lea    0xd60(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1501 <xfrm_fill_key+0x3c1>
lea    0xd59(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1501 <xfrm_fill_key+0x3c1>
lea    0xd52(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1585 <xfrm_fill_key+0x445>
lea    0xd4b(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1573 <xfrm_fill_key+0x433>
lea    0xd44(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1573 <xfrm_fill_key+0x433>
lea    0xd3d(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1597 <xfrm_fill_key+0x457>
lea    0xd36(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     152e <xfrm_fill_key+0x3ee>
lea    0xd2f(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     152e <xfrm_fill_key+0x3ee>
lea    0xd28(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     15a9 <xfrm_fill_key+0x469>
lea    0xd21(%rip),%rsi
mov    %rbx,%rdi
mov    $0x40,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     14a1 <xfrm_fill_key+0x361>
mov    (%r12),%ebp
jmp    14c4 <xfrm_fill_key+0x384>
movl   $0x0,(%r12)
xor    %ebp,%ebp
jmp    14c4 <xfrm_fill_key+0x384>
movl   $0x80,(%r12)
mov    $0x80,%ebp
jmp    14c4 <xfrm_fill_key+0x384>
movl   $0x40,(%r12)
mov    %ebp,%eax
cmp    %r15,%rax
jbe    14ec <xfrm_fill_key+0x3ac>
xor    %eax,%eax
call   1040 <getpid@plt>
lea    0xcf0(%rip),%rdi
mov    %eax,%esi
mov    $0x33d,%edx
call   1060 <ksft_print_msg@plt>
mov    $0xffffffff,%eax
jmp    14f8 <xfrm_fill_key+0x3b8>
mov    %r14,%rdi
mov    %ebp,%esi
call   1050 <randomize_buffer@plt>
xor    %eax,%eax
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
pop    %rbp
ret
movl   $0xa0,(%r12)
mov    $0xa0,%ebp
jmp    14c4 <xfrm_fill_key+0x384>
movl   $0x100,(%r12)
mov    $0x100,%ebp
jmp    14c4 <xfrm_fill_key+0x384>
movl   $0xc0,(%r12)
mov    $0xc0,%ebp
jmp    14c4 <xfrm_fill_key+0x384>
movl   $0x120,(%r12)
mov    $0x120,%ebp
jmp    14c4 <xfrm_fill_key+0x384>
movl   $0x180,(%r12)
mov    $0x180,%ebp
jmp    14c4 <xfrm_fill_key+0x384>
movl   $0x1c0,(%r12)
mov    $0x1c0,%ebp
jmp    14c4 <xfrm_fill_key+0x384>
movl   $0x200,(%r12)
mov    $0x200,%ebp
jmp    14c4 <xfrm_fill_key+0x384>
movl   $0xe0,(%r12)
mov    $0xe0,%ebp
jmp    14c4 <xfrm_fill_key+0x384>
movl   $0x98,(%r12)
mov    $0x98,%ebp
jmp    14c4 <xfrm_fill_key+0x384>
movl   $0xd8,(%r12)
mov    $0xd8,%ebp
jmp    14c4 <xfrm_fill_key+0x384>
movl   $0x118,(%r12)
mov    $0x118,%ebp
jmp    14c4 <xfrm_fill_key+0x384>

LLVM IR (-O0):
@.str = [12 x i8] c"digest_null\00"
@.str.1 = [17 x i8] c"ecb(cipher_null)\00"
@.str.2 = [9 x i8] c"cbc(des)\00"
@.str.3 = [10 x i8] c"hmac(md5)\00"
@.str.4 = [10 x i8] c"cmac(aes)\00"
@.str.5 = [10 x i8] c"xcbc(aes)\00"
@.str.6 = [11 x i8] c"cbc(cast5)\00"
@.str.7 = [13 x i8] c"cbc(serpent)\00"
@.str.8 = [11 x i8] c"hmac(sha1)\00"
@.str.9 = [13 x i8] c"hmac(rmd160)\00"
@.str.10 = [14 x i8] c"cbc(des3_ede)\00"
@.str.11 = [13 x i8] c"hmac(sha256)\00"
@.str.12 = [9 x i8] c"cbc(aes)\00"
@.str.13 = [14 x i8] c"cbc(camellia)\00"
@.str.14 = [13 x i8] c"cbc(twofish)\00"
@.str.15 = [18 x i8] c"rfc3686(ctr(aes))\00"
@.str.16 = [13 x i8] c"hmac(sha384)\00"
@.str.17 = [14 x i8] c"cbc(blowfish)\00"
@.str.18 = [13 x i8] c"hmac(sha512)\00"
@.str.19 = [22 x i8] c"rfc4106(gcm(aes))-128\00"
@.str.20 = [22 x i8] c"rfc4543(gcm(aes))-128\00"
@.str.21 = [22 x i8] c"rfc4309(ccm(aes))-128\00"
@.str.22 = [22 x i8] c"rfc4106(gcm(aes))-192\00"
@.str.23 = [22 x i8] c"rfc4543(gcm(aes))-192\00"
@.str.24 = [22 x i8] c"rfc4309(ccm(aes))-192\00"
@.str.25 = [22 x i8] c"rfc4106(gcm(aes))-256\00"
@.str.26 = [22 x i8] c"rfc4543(gcm(aes))-256\00"
@.str.27 = [22 x i8] c"rfc4309(ccm(aes))-256\00"
@.str.28 = [31 x i8] c"rfc7539(chacha20,poly1305)-128\00"
@.str.29 = [46 x i8] c"%d[%u] Can't pack a key - too big for buffer\0A\00"
define i32 @xfrm_fill_key(i8* %0, i8* %1, i64 %2, i32* %3) {
%5 = alloca i32
%6 = alloca i8*
%7 = alloca i8*
%8 = alloca i64
%9 = alloca i32*
store i8* %0, i8** %6
store i8* %1, i8** %7
store i64 %2, i64* %8
store i32* %3, i32** %9
%10 = load i8*, i8** %6
%11 = call i64 @strncmp(i8* %10, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0), i32 64)
%12 = icmp eq i64 %11, 0
br i1 %12, label %13, label %15
13: ; preds = %4
%14 = load i32*, i32** %9
store i32 0, i32* %14
br label %211
15: ; preds = %4
%16 = load i8*, i8** %6
%17 = call i64 @strncmp(i8* %16, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.1, i64 0, i64 0), i32 64)
%18 = icmp eq i64 %17, 0
br i1 %18, label %19, label %21
19: ; preds = %15
%20 = load i32*, i32** %9
store i32 0, i32* %20
br label %210
21: ; preds = %15
%22 = load i8*, i8** %6
%23 = call i64 @strncmp(i8* %22, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.2, i64 0, i64 0), i32 64)
%24 = icmp eq i64 %23, 0
br i1 %24, label %25, label %27
25: ; preds = %21
%26 = load i32*, i32** %9
store i32 64, i32* %26
br label %209
27: ; preds = %21
%28 = load i8*, i8** %6
%29 = call i64 @strncmp(i8* %28, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3, i64 0, i64 0), i32 64)
%30 = icmp eq i64 %29, 0
br i1 %30, label %31, label %33
31: ; preds = %27
%32 = load i32*, i32** %9
store i32 128, i32* %32
br label %208
33: ; preds = %27
%34 = load i8*, i8** %6
%35 = call i64 @strncmp(i8* %34, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.4, i64 0, i64 0), i32 64)
%36 = icmp eq i64 %35, 0
br i1 %36, label %37, label %39
37: ; preds = %33
%38 = load i32*, i32** %9
store i32 128, i32* %38
br label %207
39: ; preds = %33
%40 = load i8*, i8** %6
%41 = call i64 @strncmp(i8* %40, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.5, i64 0, i64 0), i32 64)
%42 = icmp eq i64 %41, 0
br i1 %42, label %43, label %45
43: ; preds = %39
%44 = load i32*, i32** %9
store i32 128, i32* %44
br label %206
45: ; preds = %39
%46 = load i8*, i8** %6
%47 = call i64 @strncmp(i8* %46, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.6, i64 0, i64 0), i32 64)
%48 = icmp eq i64 %47, 0
br i1 %48, label %49, label %51
49: ; preds = %45
%50 = load i32*, i32** %9
store i32 128, i32* %50
br label %205
51: ; preds = %45
%52 = load i8*, i8** %6
%53 = call i64 @strncmp(i8* %52, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.7, i64 0, i64 0), i32 64)
%54 = icmp eq i64 %53, 0
br i1 %54, label %55, label %57
55: ; preds = %51
%56 = load i32*, i32** %9
store i32 128, i32* %56
br label %204
57: ; preds = %51
%58 = load i8*, i8** %6
%59 = call i64 @strncmp(i8* %58, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.8, i64 0, i64 0), i32 64)
%60 = icmp eq i64 %59, 0
br i1 %60, label %61, label %63
61: ; preds = %57
%62 = load i32*, i32** %9
store i32 160, i32* %62
br label %203
63: ; preds = %57
%64 = load i8*, i8** %6
%65 = call i64 @strncmp(i8* %64, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.9, i64 0, i64 0), i32 64)
%66 = icmp eq i64 %65, 0
br i1 %66, label %67, label %69
67: ; preds = %63
%68 = load i32*, i32** %9
store i32 160, i32* %68
br label %202
69: ; preds = %63
%70 = load i8*, i8** %6
%71 = call i64 @strncmp(i8* %70, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.10, i64 0, i64 0), i32 64)
%72 = icmp eq i64 %71, 0
br i1 %72, label %73, label %75
73: ; preds = %69
%74 = load i32*, i32** %9
store i32 192, i32* %74
br label %201
75: ; preds = %69
%76 = load i8*, i8** %6
%77 = call i64 @strncmp(i8* %76, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.11, i64 0, i64 0), i32 64)
%78 = icmp eq i64 %77, 0
br i1 %78, label %79, label %81
79: ; preds = %75
%80 = load i32*, i32** %9
store i32 256, i32* %80
br label %200
81: ; preds = %75
%82 = load i8*, i8** %6
%83 = call i64 @strncmp(i8* %82, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.12, i64 0, i64 0), i32 64)
%84 = icmp eq i64 %83, 0
br i1 %84, label %85, label %87
85: ; preds = %81
%86 = load i32*, i32** %9
store i32 256, i32* %86
br label %199
87: ; preds = %81
%88 = load i8*, i8** %6
%89 = call i64 @strncmp(i8* %88, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.13, i64 0, i64 0), i32 64)
%90 = icmp eq i64 %89, 0
br i1 %90, label %91, label %93
91: ; preds = %87
%92 = load i32*, i32** %9
store i32 256, i32* %92
br label %198
93: ; preds = %87
%94 = load i8*, i8** %6
%95 = call i64 @strncmp(i8* %94, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0), i32 64)
%96 = icmp eq i64 %95, 0
br i1 %96, label %97, label %99
97: ; preds = %93
%98 = load i32*, i32** %9
store i32 256, i32* %98
br label %197
99: ; preds = %93
%100 = load i8*, i8** %6
%101 = call i64 @strncmp(i8* %100, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.15, i64 0, i64 0), i32 64)
%102 = icmp eq i64 %101, 0
br i1 %102, label %103, label %105
103: ; preds = %99
%104 = load i32*, i32** %9
store i32 288, i32* %104
br label %196
105: ; preds = %99
%106 = load i8*, i8** %6
%107 = call i64 @strncmp(i8* %106, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.16, i64 0, i64 0), i32 64)
%108 = icmp eq i64 %107, 0
br i1 %108, label %109, label %111
109: ; preds = %105
%110 = load i32*, i32** %9
store i32 384, i32* %110
br label %195
111: ; preds = %105
%112 = load i8*, i8** %6
%113 = call i64 @strncmp(i8* %112, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.17, i64 0, i64 0), i32 64)
%114 = icmp eq i64 %113, 0
br i1 %114, label %115, label %117
115: ; preds = %111
%116 = load i32*, i32** %9
store i32 448, i32* %116
br label %194
117: ; preds = %111
%118 = load i8*, i8** %6
%119 = call i64 @strncmp(i8* %118, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.18, i64 0, i64 0), i32 64)
%120 = icmp eq i64 %119, 0
br i1 %120, label %121, label %123
121: ; preds = %117
%122 = load i32*, i32** %9
store i32 512, i32* %122
br label %193
123: ; preds = %117
%124 = load i8*, i8** %6
%125 = call i64 @strncmp(i8* %124, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.19, i64 0, i64 0), i32 64)
%126 = icmp eq i64 %125, 0
br i1 %126, label %127, label %129
127: ; preds = %123
%128 = load i32*, i32** %9
store i32 160, i32* %128
br label %192
129: ; preds = %123
%130 = load i8*, i8** %6
%131 = call i64 @strncmp(i8* %130, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.20, i64 0, i64 0), i32 64)
%132 = icmp eq i64 %131, 0
br i1 %132, label %133, label %135
133: ; preds = %129
%134 = load i32*, i32** %9
store i32 160, i32* %134
br label %191
135: ; preds = %129
%136 = load i8*, i8** %6
%137 = call i64 @strncmp(i8* %136, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.21, i64 0, i64 0), i32 64)
%138 = icmp eq i64 %137, 0
br i1 %138, label %139, label %141
139: ; preds = %135
%140 = load i32*, i32** %9
store i32 152, i32* %140
br label %190
141: ; preds = %135
%142 = load i8*, i8** %6
%143 = call i64 @strncmp(i8* %142, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.22, i64 0, i64 0), i32 64)
%144 = icmp eq i64 %143, 0
br i1 %144, label %145, label %147
145: ; preds = %141
%146 = load i32*, i32** %9
store i32 224, i32* %146
br label %189
147: ; preds = %141
%148 = load i8*, i8** %6
%149 = call i64 @strncmp(i8* %148, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.23, i64 0, i64 0), i32 64)
%150 = icmp eq i64 %149, 0
br i1 %150, label %151, label %153
151: ; preds = %147
%152 = load i32*, i32** %9
store i32 224, i32* %152
br label %188
153: ; preds = %147
%154 = load i8*, i8** %6
%155 = call i64 @strncmp(i8* %154, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.24, i64 0, i64 0), i32 64)
%156 = icmp eq i64 %155, 0
br i1 %156, label %157, label %159
157: ; preds = %153
%158 = load i32*, i32** %9
store i32 216, i32* %158
br label %187
159: ; preds = %153
%160 = load i8*, i8** %6
%161 = call i64 @strncmp(i8* %160, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.25, i64 0, i64 0), i32 64)
%162 = icmp eq i64 %161, 0
br i1 %162, label %163, label %165
163: ; preds = %159
%164 = load i32*, i32** %9
store i32 288, i32* %164
br label %186
165: ; preds = %159
%166 = load i8*, i8** %6
%167 = call i64 @strncmp(i8* %166, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.26, i64 0, i64 0), i32 64)
%168 = icmp eq i64 %167, 0
br i1 %168, label %169, label %171
169: ; preds = %165
%170 = load i32*, i32** %9
store i32 288, i32* %170
br label %185
171: ; preds = %165
%172 = load i8*, i8** %6
%173 = call i64 @strncmp(i8* %172, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.27, i64 0, i64 0), i32 64)
%174 = icmp eq i64 %173, 0
br i1 %174, label %175, label %177
175: ; preds = %171
%176 = load i32*, i32** %9
store i32 280, i32* %176
br label %184
177: ; preds = %171
%178 = load i8*, i8** %6
%179 = call i64 @strncmp(i8* %178, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.28, i64 0, i64 0), i32 64)
%180 = icmp eq i64 %179, 0
br i1 %180, label %181, label %183
181: ; preds = %177
%182 = load i32*, i32** %9
store i32 0, i32* %182
br label %183
183: ; preds = %181, %177
br label %184
184: ; preds = %183, %175
br label %185
185: ; preds = %184, %169
br label %186
186: ; preds = %185, %163
br label %187
187: ; preds = %186, %157
br label %188
188: ; preds = %187, %151
br label %189
189: ; preds = %188, %145
br label %190
190: ; preds = %189, %139
br label %191
191: ; preds = %190, %133
br label %192
192: ; preds = %191, %127
br label %193
193: ; preds = %192, %121
br label %194
194: ; preds = %193, %115
br label %195
195: ; preds = %194, %109
br label %196
196: ; preds = %195, %103
br label %197
197: ; preds = %196, %97
br label %198
198: ; preds = %197, %91
br label %199
199: ; preds = %198, %85
br label %200
200: ; preds = %199, %79
br label %201
201: ; preds = %200, %73
br label %202
202: ; preds = %201, %67
br label %203
203: ; preds = %202, %61
br label %204
204: ; preds = %203, %55
br label %205
205: ; preds = %204, %49
br label %206
206: ; preds = %205, %43
br label %207
207: ; preds = %206, %37
br label %208
208: ; preds = %207, %31
br label %209
209: ; preds = %208, %25
br label %210
210: ; preds = %209, %19
br label %211
211: ; preds = %210, %13
%212 = load i32*, i32** %9
%213 = load i32, i32* %212
%214 = zext i32 %213 to i64
%215 = load i64, i64* %8
%216 = icmp ugt i64 %214, %215
br i1 %216, label %217, label %220
217: ; preds = %211
%218 = call i32 (...) @getpid()
%219 = call i32 @ksft_print_msg(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.29, i64 0, i64 0), i32 %218, i32 829)
store i32 -1, i32* %5
br label %225
220: ; preds = %211
%221 = load i8*, i8** %7
%222 = load i32*, i32** %9
%223 = load i32, i32* %222
%224 = call i32 @randomize_buffer(i8* %221, i32 %223)
store i32 0, i32* %5
br label %225
225: ; preds = %220, %217
%226 = load i32, i32* %5
ret i32 %226
}

LLVM IR (-O2):
@.str = [12 x i8] c"digest_null\00"
@.str.1 = [17 x i8] c"ecb(cipher_null)\00"
@.str.2 = [9 x i8] c"cbc(des)\00"
@.str.3 = [10 x i8] c"hmac(md5)\00"
@.str.4 = [10 x i8] c"cmac(aes)\00"
@.str.5 = [10 x i8] c"xcbc(aes)\00"
@.str.6 = [11 x i8] c"cbc(cast5)\00"
@.str.7 = [13 x i8] c"cbc(serpent)\00"
@.str.8 = [11 x i8] c"hmac(sha1)\00"
@.str.9 = [13 x i8] c"hmac(rmd160)\00"
@.str.10 = [14 x i8] c"cbc(des3_ede)\00"
@.str.11 = [13 x i8] c"hmac(sha256)\00"
@.str.12 = [9 x i8] c"cbc(aes)\00"
@.str.13 = [14 x i8] c"cbc(camellia)\00"
@.str.14 = [13 x i8] c"cbc(twofish)\00"
@.str.15 = [18 x i8] c"rfc3686(ctr(aes))\00"
@.str.16 = [13 x i8] c"hmac(sha384)\00"
@.str.17 = [14 x i8] c"cbc(blowfish)\00"
@.str.18 = [13 x i8] c"hmac(sha512)\00"
@.str.19 = [22 x i8] c"rfc4106(gcm(aes))-128\00"
@.str.20 = [22 x i8] c"rfc4543(gcm(aes))-128\00"
@.str.21 = [22 x i8] c"rfc4309(ccm(aes))-128\00"
@.str.22 = [22 x i8] c"rfc4106(gcm(aes))-192\00"
@.str.23 = [22 x i8] c"rfc4543(gcm(aes))-192\00"
@.str.24 = [22 x i8] c"rfc4309(ccm(aes))-192\00"
@.str.25 = [22 x i8] c"rfc4106(gcm(aes))-256\00"
@.str.26 = [22 x i8] c"rfc4543(gcm(aes))-256\00"
@.str.27 = [22 x i8] c"rfc4309(ccm(aes))-256\00"
@.str.28 = [31 x i8] c"rfc7539(chacha20,poly1305)-128\00"
@.str.29 = [46 x i8] c"%d[%u] Can't pack a key - too big for buffer\0A\00"
define i32 @xfrm_fill_key(i8* %0, i8* %1, i64 %2, i32* %3) {
%5 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0), i32 64)
%6 = icmp eq i64 %5, 0
br i1 %6, label %7, label %8
7: ; preds = %4
store i32 0, i32* %3
br label %122
8: ; preds = %4
%9 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.1, i64 0, i64 0), i32 64)
%10 = icmp eq i64 %9, 0
br i1 %10, label %11, label %12
11: ; preds = %8
store i32 0, i32* %3
br label %122
12: ; preds = %8
%13 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.2, i64 0, i64 0), i32 64)
%14 = icmp eq i64 %13, 0
br i1 %14, label %15, label %16
15: ; preds = %12
store i32 64, i32* %3
br label %122
16: ; preds = %12
%17 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3, i64 0, i64 0), i32 64)
%18 = icmp eq i64 %17, 0
br i1 %18, label %19, label %20
19: ; preds = %16
store i32 128, i32* %3
br label %122
20: ; preds = %16
%21 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.4, i64 0, i64 0), i32 64)
%22 = icmp eq i64 %21, 0
br i1 %22, label %23, label %24
23: ; preds = %20
store i32 128, i32* %3
br label %122
24: ; preds = %20
%25 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.5, i64 0, i64 0), i32 64)
%26 = icmp eq i64 %25, 0
br i1 %26, label %27, label %28
27: ; preds = %24
store i32 128, i32* %3
br label %122
28: ; preds = %24
%29 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.6, i64 0, i64 0), i32 64)
%30 = icmp eq i64 %29, 0
br i1 %30, label %31, label %32
31: ; preds = %28
store i32 128, i32* %3
br label %122
32: ; preds = %28
%33 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.7, i64 0, i64 0), i32 64)
%34 = icmp eq i64 %33, 0
br i1 %34, label %35, label %36
35: ; preds = %32
store i32 128, i32* %3
br label %122
36: ; preds = %32
%37 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.8, i64 0, i64 0), i32 64)
%38 = icmp eq i64 %37, 0
br i1 %38, label %39, label %40
39: ; preds = %36
store i32 160, i32* %3
br label %122
40: ; preds = %36
%41 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.9, i64 0, i64 0), i32 64)
%42 = icmp eq i64 %41, 0
br i1 %42, label %43, label %44
43: ; preds = %40
store i32 160, i32* %3
br label %122
44: ; preds = %40
%45 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.10, i64 0, i64 0), i32 64)
%46 = icmp eq i64 %45, 0
br i1 %46, label %47, label %48
47: ; preds = %44
store i32 192, i32* %3
br label %122
48: ; preds = %44
%49 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.11, i64 0, i64 0), i32 64)
%50 = icmp eq i64 %49, 0
br i1 %50, label %51, label %52
51: ; preds = %48
store i32 256, i32* %3
br label %122
52: ; preds = %48
%53 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.12, i64 0, i64 0), i32 64)
%54 = icmp eq i64 %53, 0
br i1 %54, label %55, label %56
55: ; preds = %52
store i32 256, i32* %3
br label %122
56: ; preds = %52
%57 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.13, i64 0, i64 0), i32 64)
%58 = icmp eq i64 %57, 0
br i1 %58, label %59, label %60
59: ; preds = %56
store i32 256, i32* %3
br label %122
60: ; preds = %56
%61 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0), i32 64)
%62 = icmp eq i64 %61, 0
br i1 %62, label %63, label %64
63: ; preds = %60
store i32 256, i32* %3
br label %122
64: ; preds = %60
%65 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.15, i64 0, i64 0), i32 64)
%66 = icmp eq i64 %65, 0
br i1 %66, label %67, label %68
67: ; preds = %64
store i32 288, i32* %3
br label %122
68: ; preds = %64
%69 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.16, i64 0, i64 0), i32 64)
%70 = icmp eq i64 %69, 0
br i1 %70, label %71, label %72
71: ; preds = %68
store i32 384, i32* %3
br label %122
72: ; preds = %68
%73 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.17, i64 0, i64 0), i32 64)
%74 = icmp eq i64 %73, 0
br i1 %74, label %75, label %76
75: ; preds = %72
store i32 448, i32* %3
br label %122
76: ; preds = %72
%77 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.18, i64 0, i64 0), i32 64)
%78 = icmp eq i64 %77, 0
br i1 %78, label %79, label %80
79: ; preds = %76
store i32 512, i32* %3
br label %122
80: ; preds = %76
%81 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.19, i64 0, i64 0), i32 64)
%82 = icmp eq i64 %81, 0
br i1 %82, label %83, label %84
83: ; preds = %80
store i32 160, i32* %3
br label %122
84: ; preds = %80
%85 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.20, i64 0, i64 0), i32 64)
%86 = icmp eq i64 %85, 0
br i1 %86, label %87, label %88
87: ; preds = %84
store i32 160, i32* %3
br label %122
88: ; preds = %84
%89 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.21, i64 0, i64 0), i32 64)
%90 = icmp eq i64 %89, 0
br i1 %90, label %91, label %92
91: ; preds = %88
store i32 152, i32* %3
br label %122
92: ; preds = %88
%93 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.22, i64 0, i64 0), i32 64)
%94 = icmp eq i64 %93, 0
br i1 %94, label %95, label %96
95: ; preds = %92
store i32 224, i32* %3
br label %122
96: ; preds = %92
%97 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.23, i64 0, i64 0), i32 64)
%98 = icmp eq i64 %97, 0
br i1 %98, label %99, label %100
99: ; preds = %96
store i32 224, i32* %3
br label %122
100: ; preds = %96
%101 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.24, i64 0, i64 0), i32 64)
%102 = icmp eq i64 %101, 0
br i1 %102, label %103, label %104
103: ; preds = %100
store i32 216, i32* %3
br label %122
104: ; preds = %100
%105 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.25, i64 0, i64 0), i32 64)
%106 = icmp eq i64 %105, 0
br i1 %106, label %107, label %108
107: ; preds = %104
store i32 288, i32* %3
br label %122
108: ; preds = %104
%109 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.26, i64 0, i64 0), i32 64)
%110 = icmp eq i64 %109, 0
br i1 %110, label %111, label %112
111: ; preds = %108
store i32 288, i32* %3
br label %122
112: ; preds = %108
%113 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.27, i64 0, i64 0), i32 64)
%114 = icmp eq i64 %113, 0
br i1 %114, label %115, label %116
115: ; preds = %112
store i32 280, i32* %3
br label %122
116: ; preds = %112
%117 = tail call i64 @strncmp(i8* %0, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.28, i64 0, i64 0), i32 64)
%118 = icmp eq i64 %117, 0
br i1 %118, label %121, label %119
119: ; preds = %116
%120 = load i32, i32* %3
br label %122
121: ; preds = %116
store i32 0, i32* %3
br label %122
122: ; preds = %119, %11, %19, %27, %35, %43, %51, %59, %67, %75, %83, %91, %99, %107, %115, %121, %111, %103, %95, %87, %79, %71, %63, %55, %47, %39, %31, %23, %15, %7
%123 = phi i32 [ %120, %119 ], [ 0, %11 ], [ 128, %19 ], [ 128, %27 ], [ 128, %35 ], [ 160, %43 ], [ 256, %51 ], [ 256, %59 ], [ 288, %67 ], [ 448, %75 ], [ 160, %83 ], [ 152, %91 ], [ 224, %99 ], [ 288, %107 ], [ 280, %115 ], [ 0, %121 ], [ 288, %111 ], [ 216, %103 ], [ 224, %95 ], [ 160, %87 ], [ 512, %79 ], [ 384, %71 ], [ 256, %63 ], [ 256, %55 ], [ 192, %47 ], [ 160, %39 ], [ 128, %31 ], [ 128, %23 ], [ 64, %15 ], [ 0, %7 ]
%124 = zext i32 %123 to i64
%125 = icmp ugt i64 %124, %2
br i1 %125, label %126, label %129
126: ; preds = %122
%127 = tail call i32 (...) @getpid()
%128 = tail call i32 @ksft_print_msg(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.29, i64 0, i64 0), i32 %127, i32 829)
br label %131
129: ; preds = %122
%130 = tail call i32 @randomize_buffer(i8* %1, i32 %123)
br label %131
131: ; preds = %129, %126
%132 = phi i32 [ -1, %126 ], [ 0, %129 ]
ret i32 %132
}