#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 */
typedef scalar_t__ act_flags;

/* Variables and functions */
int /*<<< orphan*/ strcat(char *, char *);
char *act_bit_name(int act_flags) {
  static char buf[512];
  buf[0] = '\0';
  if (((act_flags) & ((1)))) {
    strcat(buf, " npc");
    if (act_flags & (2))
      strcat(buf, " sentinel");
    if (act_flags & (4))
      strcat(buf, " scavenger");
    if (act_flags & (32))
      strcat(buf, " aggressive");
    if (act_flags & (64))
      strcat(buf, " stay_area");
    if (act_flags & (128))
      strcat(buf, " wimpy");
    if (act_flags & (256))
      strcat(buf, " pet");
    if (act_flags & (512))
      strcat(buf, " train");
    if (act_flags & (1024))
      strcat(buf, " practice");
    if (act_flags & (16384))
      strcat(buf, " undead");
    if (act_flags & (65536))
      strcat(buf, " cleric");
    if (act_flags & (131072))
      strcat(buf, " mage");
    if (act_flags & (262144))
      strcat(buf, " thief");
    if (act_flags & (524288))
      strcat(buf, " warrior");
    if (act_flags & (1048576))
      strcat(buf, " no_align");
    if (act_flags & (2097152))
      strcat(buf, " no_purge");
    if (act_flags & (67108864))
      strcat(buf, " healer");
    if (act_flags & (536870912))
      strcat(buf, " changer");
    if (act_flags & (134217728))
      strcat(buf, " skill_train");
    if (act_flags & (268435456))
      strcat(buf, " update_always");
  } else {
    strcat(buf, " player");
    if (act_flags & (4))
      strcat(buf, " autoassist");
    if (act_flags & (8))
      strcat(buf, " autoexit");
    if (act_flags & (16))
      strcat(buf, " autoloot");
    if (act_flags & (32))
      strcat(buf, " autosac");
    if (act_flags & (64))
      strcat(buf, " autogold");
    if (act_flags & (128))
      strcat(buf, " autosplit");
    if (act_flags & (8192))
      strcat(buf, " holy_light");
    if (act_flags & (32768))
      strcat(buf, " loot_corpse");
    if (act_flags & (65536))
      strcat(buf, " no_summon");
    if (act_flags & (131072))
      strcat(buf, " no_follow");
    if (act_flags & (16777216))
      strcat(buf, " frozen");
    if (act_flags & (33554432))
      strcat(buf, " thief");
    if (act_flags & (67108864))
      strcat(buf, " killer");
  }
  return (buf[0] != '\0') ? buf + 1 : "none";
}


x86 assembly (clang, -O0):
<act_bit_name>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %edi,-0x4(%rbp)
movb   $0x0,0x2f1e(%rip)
mov    -0x4(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     13ed <act_bit_name+0x2dd>
lea    0x2f08(%rip),%rdi
lea    0xec1(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x2,%eax
cmp    $0x0,%eax
je     1166 <act_bit_name+0x56>
lea    0x2ee6(%rip),%rdi
lea    0xea4(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x4,%eax
cmp    $0x0,%eax
je     1188 <act_bit_name+0x78>
lea    0x2ec4(%rip),%rdi
lea    0xe8c(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x20,%eax
cmp    $0x0,%eax
je     11aa <act_bit_name+0x9a>
lea    0x2ea2(%rip),%rdi
lea    0xe75(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x40,%eax
cmp    $0x0,%eax
je     11cc <act_bit_name+0xbc>
lea    0x2e80(%rip),%rdi
lea    0xe5f(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x80,%eax
cmp    $0x0,%eax
je     11f0 <act_bit_name+0xe0>
lea    0x2e5c(%rip),%rdi
lea    0xe46(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x100,%eax
cmp    $0x0,%eax
je     1214 <act_bit_name+0x104>
lea    0x2e38(%rip),%rdi
lea    0xe29(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x200,%eax
cmp    $0x0,%eax
je     1238 <act_bit_name+0x128>
lea    0x2e14(%rip),%rdi
lea    0xe0a(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x400,%eax
cmp    $0x0,%eax
je     125c <act_bit_name+0x14c>
lea    0x2df0(%rip),%rdi
lea    0xded(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x4000,%eax
cmp    $0x0,%eax
je     1280 <act_bit_name+0x170>
lea    0x2dcc(%rip),%rdi
lea    0xdd3(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x10000,%eax
cmp    $0x0,%eax
je     12a4 <act_bit_name+0x194>
lea    0x2da8(%rip),%rdi
lea    0xdb7(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x20000,%eax
cmp    $0x0,%eax
je     12c8 <act_bit_name+0x1b8>
lea    0x2d84(%rip),%rdi
lea    0xd9b(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x40000,%eax
cmp    $0x0,%eax
je     12ec <act_bit_name+0x1dc>
lea    0x2d60(%rip),%rdi
lea    0xd7d(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x80000,%eax
cmp    $0x0,%eax
je     1310 <act_bit_name+0x200>
lea    0x2d3c(%rip),%rdi
lea    0xd60(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x100000,%eax
cmp    $0x0,%eax
je     1334 <act_bit_name+0x224>
lea    0x2d18(%rip),%rdi
lea    0xd45(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x200000,%eax
cmp    $0x0,%eax
je     1358 <act_bit_name+0x248>
lea    0x2cf4(%rip),%rdi
lea    0xd2b(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x4000000,%eax
cmp    $0x0,%eax
je     137c <act_bit_name+0x26c>
lea    0x2cd0(%rip),%rdi
lea    0xd11(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x20000000,%eax
cmp    $0x0,%eax
je     13a0 <act_bit_name+0x290>
lea    0x2cac(%rip),%rdi
lea    0xcf5(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x8000000,%eax
cmp    $0x0,%eax
je     13c4 <act_bit_name+0x2b4>
lea    0x2c88(%rip),%rdi
lea    0xcda(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x10000000,%eax
cmp    $0x0,%eax
je     13e8 <act_bit_name+0x2d8>
lea    0x2c64(%rip),%rdi
lea    0xcc3(%rip),%rsi
call   1030 <strcat@plt>
jmp    15cf <act_bit_name+0x4bf>
lea    0x2c4c(%rip),%rdi
lea    0xcba(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x4,%eax
cmp    $0x0,%eax
je     1422 <act_bit_name+0x312>
lea    0x2c2a(%rip),%rdi
lea    0xca0(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x8,%eax
cmp    $0x0,%eax
je     1444 <act_bit_name+0x334>
lea    0x2c08(%rip),%rdi
lea    0xc8a(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x10,%eax
cmp    $0x0,%eax
je     1466 <act_bit_name+0x356>
lea    0x2be6(%rip),%rdi
lea    0xc72(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x20,%eax
cmp    $0x0,%eax
je     1488 <act_bit_name+0x378>
lea    0x2bc4(%rip),%rdi
lea    0xc5a(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x40,%eax
cmp    $0x0,%eax
je     14aa <act_bit_name+0x39a>
lea    0x2ba2(%rip),%rdi
lea    0xc41(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x80,%eax
cmp    $0x0,%eax
je     14ce <act_bit_name+0x3be>
lea    0x2b7e(%rip),%rdi
lea    0xc27(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x2000,%eax
cmp    $0x0,%eax
je     14f2 <act_bit_name+0x3e2>
lea    0x2b5a(%rip),%rdi
lea    0xc0e(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x8000,%eax
cmp    $0x0,%eax
je     1516 <act_bit_name+0x406>
lea    0x2b36(%rip),%rdi
lea    0xbf6(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x10000,%eax
cmp    $0x0,%eax
je     153a <act_bit_name+0x42a>
lea    0x2b12(%rip),%rdi
lea    0xbdf(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x20000,%eax
cmp    $0x0,%eax
je     155e <act_bit_name+0x44e>
lea    0x2aee(%rip),%rdi
lea    0xbc6(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x1000000,%eax
cmp    $0x0,%eax
je     1582 <act_bit_name+0x472>
lea    0x2aca(%rip),%rdi
lea    0xbad(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x2000000,%eax
cmp    $0x0,%eax
je     15a6 <act_bit_name+0x496>
lea    0x2aa6(%rip),%rdi
lea    0xac3(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x4000000,%eax
cmp    $0x0,%eax
je     15ca <act_bit_name+0x4ba>
lea    0x2a82(%rip),%rdi
lea    0xb6d(%rip),%rsi
call   1030 <strcat@plt>
jmp    15cf <act_bit_name+0x4bf>
movsbl 0x2a6a(%rip),%edx
lea    0xb5d(%rip),%rax
lea    0x2a5c(%rip),%rcx
add    $0x1,%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<act_bit_name>:
push   %rbx
mov    %edi,%ebx
movb   $0x0,0x2f26(%rip)
lea    0x2f1f(%rip),%rdi
test   $0x1,%bl
jne    11c5 <act_bit_name+0xb5>
lea    0xf84(%rip),%rsi
call   1030 <strcat@plt>
test   $0x4,%bl
jne    12ab <act_bit_name+0x19b>
test   $0x8,%bl
jne    12c7 <act_bit_name+0x1b7>
test   $0x10,%bl
jne    12e3 <act_bit_name+0x1d3>
test   $0x20,%bl
jne    12ff <act_bit_name+0x1ef>
test   $0x40,%bl
jne    131b <act_bit_name+0x20b>
test   $0x80,%bl
jne    1337 <act_bit_name+0x227>
test   $0x2000,%ebx
jne    1356 <act_bit_name+0x246>
test   $0x8000,%ebx
jne    1375 <act_bit_name+0x265>
test   $0x10000,%ebx
jne    1394 <act_bit_name+0x284>
test   $0x20000,%ebx
jne    13b3 <act_bit_name+0x2a3>
test   $0x1000000,%ebx
jne    13d2 <act_bit_name+0x2c2>
test   $0x2000000,%ebx
jne    13f1 <act_bit_name+0x2e1>
test   $0x4000000,%ebx
jne    1410 <act_bit_name+0x300>
jmp    164d <act_bit_name+0x53d>
lea    0xe34(%rip),%rsi
call   1030 <strcat@plt>
test   $0x2,%bl
jne    141c <act_bit_name+0x30c>
test   $0x4,%bl
jne    1438 <act_bit_name+0x328>
test   $0x20,%bl
jne    1454 <act_bit_name+0x344>
test   $0x40,%bl
jne    1470 <act_bit_name+0x360>
test   $0x80,%bl
jne    148c <act_bit_name+0x37c>
test   $0x100,%ebx
jne    14ab <act_bit_name+0x39b>
test   $0x200,%ebx
jne    14ca <act_bit_name+0x3ba>
test   $0x400,%ebx
jne    14e9 <act_bit_name+0x3d9>
test   $0x4000,%ebx
jne    1508 <act_bit_name+0x3f8>
test   $0x10000,%ebx
jne    1527 <act_bit_name+0x417>
test   $0x20000,%ebx
jne    1546 <act_bit_name+0x436>
test   $0x40000,%ebx
jne    1565 <act_bit_name+0x455>
test   $0x80000,%ebx
jne    1584 <act_bit_name+0x474>
test   $0x100000,%ebx
jne    15a3 <act_bit_name+0x493>
test   $0x200000,%ebx
jne    15c2 <act_bit_name+0x4b2>
test   $0x4000000,%ebx
jne    15e1 <act_bit_name+0x4d1>
test   $0x20000000,%ebx
jne    1600 <act_bit_name+0x4f0>
test   $0x8000000,%ebx
jne    161f <act_bit_name+0x50f>
test   $0x10000000,%ebx
jne    163a <act_bit_name+0x52a>
jmp    164d <act_bit_name+0x53d>
lea    0x2d8e(%rip),%rdi
lea    0xe04(%rip),%rsi
call   1030 <strcat@plt>
test   $0x8,%bl
je     1148 <act_bit_name+0x38>
lea    0x2d72(%rip),%rdi
lea    0xdf4(%rip),%rsi
call   1030 <strcat@plt>
test   $0x10,%bl
je     1151 <act_bit_name+0x41>
lea    0x2d56(%rip),%rdi
lea    0xde2(%rip),%rsi
call   1030 <strcat@plt>
test   $0x20,%bl
je     115a <act_bit_name+0x4a>
lea    0x2d3a(%rip),%rdi
lea    0xdd0(%rip),%rsi
call   1030 <strcat@plt>
test   $0x40,%bl
je     1163 <act_bit_name+0x53>
lea    0x2d1e(%rip),%rdi
lea    0xdbd(%rip),%rsi
call   1030 <strcat@plt>
test   $0x80,%bl
je     116c <act_bit_name+0x5c>
lea    0x2d02(%rip),%rdi
lea    0xdab(%rip),%rsi
call   1030 <strcat@plt>
test   $0x2000,%ebx
je     1178 <act_bit_name+0x68>
lea    0x2ce3(%rip),%rdi
lea    0xd97(%rip),%rsi
call   1030 <strcat@plt>
test   $0x8000,%ebx
je     1184 <act_bit_name+0x74>
lea    0x2cc4(%rip),%rdi
lea    0xd84(%rip),%rsi
call   1030 <strcat@plt>
test   $0x10000,%ebx
je     1190 <act_bit_name+0x80>
lea    0x2ca5(%rip),%rdi
lea    0xd72(%rip),%rsi
call   1030 <strcat@plt>
test   $0x20000,%ebx
je     119c <act_bit_name+0x8c>
lea    0x2c86(%rip),%rdi
lea    0xd5e(%rip),%rsi
call   1030 <strcat@plt>
test   $0x1000000,%ebx
je     11a8 <act_bit_name+0x98>
lea    0x2c67(%rip),%rdi
lea    0xd4a(%rip),%rsi
call   1030 <strcat@plt>
test   $0x2000000,%ebx
je     11b4 <act_bit_name+0xa4>
lea    0x2c48(%rip),%rdi
lea    0xc65(%rip),%rsi
call   1030 <strcat@plt>
test   $0x4000000,%ebx
je     164d <act_bit_name+0x53d>
lea    0xd1b(%rip),%rsi
jmp    1641 <act_bit_name+0x531>
lea    0x2c1d(%rip),%rdi
lea    0xbdb(%rip),%rsi
call   1030 <strcat@plt>
test   $0x4,%bl
je     11e3 <act_bit_name+0xd3>
lea    0x2c01(%rip),%rdi
lea    0xbc9(%rip),%rsi
call   1030 <strcat@plt>
test   $0x20,%bl
je     11ec <act_bit_name+0xdc>
lea    0x2be5(%rip),%rdi
lea    0xbb8(%rip),%rsi
call   1030 <strcat@plt>
test   $0x40,%bl
je     11f5 <act_bit_name+0xe5>
lea    0x2bc9(%rip),%rdi
lea    0xba8(%rip),%rsi
call   1030 <strcat@plt>
test   $0x80,%bl
je     11fe <act_bit_name+0xee>
lea    0x2bad(%rip),%rdi
lea    0xb97(%rip),%rsi
call   1030 <strcat@plt>
test   $0x100,%ebx
je     120a <act_bit_name+0xfa>
lea    0x2b8e(%rip),%rdi
lea    0xb7f(%rip),%rsi
call   1030 <strcat@plt>
test   $0x200,%ebx
je     1216 <act_bit_name+0x106>
lea    0x2b6f(%rip),%rdi
lea    0xb65(%rip),%rsi
call   1030 <strcat@plt>
test   $0x400,%ebx
je     1222 <act_bit_name+0x112>
lea    0x2b50(%rip),%rdi
lea    0xb4d(%rip),%rsi
call   1030 <strcat@plt>
test   $0x4000,%ebx
je     122e <act_bit_name+0x11e>
lea    0x2b31(%rip),%rdi
lea    0xb38(%rip),%rsi
call   1030 <strcat@plt>
test   $0x10000,%ebx
je     123a <act_bit_name+0x12a>
lea    0x2b12(%rip),%rdi
lea    0xb21(%rip),%rsi
call   1030 <strcat@plt>
test   $0x20000,%ebx
je     1246 <act_bit_name+0x136>
lea    0x2af3(%rip),%rdi
lea    0xb0a(%rip),%rsi
call   1030 <strcat@plt>
test   $0x40000,%ebx
je     1252 <act_bit_name+0x142>
lea    0x2ad4(%rip),%rdi
lea    0xaf1(%rip),%rsi
call   1030 <strcat@plt>
test   $0x80000,%ebx
je     125e <act_bit_name+0x14e>
lea    0x2ab5(%rip),%rdi
lea    0xad9(%rip),%rsi
call   1030 <strcat@plt>
test   $0x100000,%ebx
je     126a <act_bit_name+0x15a>
lea    0x2a96(%rip),%rdi
lea    0xac3(%rip),%rsi
call   1030 <strcat@plt>
test   $0x200000,%ebx
je     1276 <act_bit_name+0x166>
lea    0x2a77(%rip),%rdi
lea    0xaae(%rip),%rsi
call   1030 <strcat@plt>
test   $0x4000000,%ebx
je     1282 <act_bit_name+0x172>
lea    0x2a58(%rip),%rdi
lea    0xa99(%rip),%rsi
call   1030 <strcat@plt>
test   $0x20000000,%ebx
je     128e <act_bit_name+0x17e>
lea    0x2a39(%rip),%rdi
lea    0xa82(%rip),%rsi
call   1030 <strcat@plt>
test   $0x8000000,%ebx
je     129a <act_bit_name+0x18a>
lea    0x2a1a(%rip),%rdi
lea    0xa6c(%rip),%rsi
call   1030 <strcat@plt>
test   $0x10000000,%ebx
je     164d <act_bit_name+0x53d>
lea    0xa65(%rip),%rsi
lea    0x29f8(%rip),%rdi
call   1030 <strcat@plt>
cmpb   $0x0,0x29ec(%rip)
lea    0xadf(%rip),%rcx
lea    0x29df(%rip),%rax
cmove  %rcx,%rax
pop    %rbx
ret

LLVM IR (-O0):
@act_bit_name.buf = internal global [512 x i8] zeroinitializer
@.str = [5 x i8] c" npc\00"
@.str.1 = [10 x i8] c" sentinel\00"
@.str.2 = [11 x i8] c" scavenger\00"
@.str.3 = [12 x i8] c" aggressive\00"
@.str.4 = [11 x i8] c" stay_area\00"
@.str.5 = [7 x i8] c" wimpy\00"
@.str.6 = [5 x i8] c" pet\00"
@.str.7 = [7 x i8] c" train\00"
@.str.8 = [10 x i8] c" practice\00"
@.str.9 = [8 x i8] c" undead\00"
@.str.10 = [8 x i8] c" cleric\00"
@.str.11 = [6 x i8] c" mage\00"
@.str.12 = [7 x i8] c" thief\00"
@.str.13 = [9 x i8] c" warrior\00"
@.str.14 = [10 x i8] c" no_align\00"
@.str.15 = [10 x i8] c" no_purge\00"
@.str.16 = [8 x i8] c" healer\00"
@.str.17 = [9 x i8] c" changer\00"
@.str.18 = [13 x i8] c" skill_train\00"
@.str.19 = [15 x i8] c" update_always\00"
@.str.20 = [8 x i8] c" player\00"
@.str.21 = [12 x i8] c" autoassist\00"
@.str.22 = [10 x i8] c" autoexit\00"
@.str.23 = [10 x i8] c" autoloot\00"
@.str.24 = [9 x i8] c" autosac\00"
@.str.25 = [10 x i8] c" autogold\00"
@.str.26 = [11 x i8] c" autosplit\00"
@.str.27 = [12 x i8] c" holy_light\00"
@.str.28 = [13 x i8] c" loot_corpse\00"
@.str.29 = [11 x i8] c" no_summon\00"
@.str.30 = [11 x i8] c" no_follow\00"
@.str.31 = [8 x i8] c" frozen\00"
@.str.32 = [8 x i8] c" killer\00"
@.str.33 = [5 x i8] c"none\00"
define i8* @act_bit_name(i32 %0) {
%2 = alloca i32
store i32 %0, i32* %2
store i8 0, i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0)
%3 = load i32, i32* %2
%4 = and i32 %3, 1
%5 = icmp ne i32 %4, 0
br i1 %5, label %6, label %122
6: ; preds = %1
%7 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
%8 = load i32, i32* %2
%9 = and i32 %8, 2
%10 = icmp ne i32 %9, 0
br i1 %10, label %11, label %13
11: ; preds = %6
%12 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1, i64 0, i64 0))
br label %13
13: ; preds = %11, %6
%14 = load i32, i32* %2
%15 = and i32 %14, 4
%16 = icmp ne i32 %15, 0
br i1 %16, label %17, label %19
17: ; preds = %13
%18 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.2, i64 0, i64 0))
br label %19
19: ; preds = %17, %13
%20 = load i32, i32* %2
%21 = and i32 %20, 32
%22 = icmp ne i32 %21, 0
br i1 %22, label %23, label %25
23: ; preds = %19
%24 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.3, i64 0, i64 0))
br label %25
25: ; preds = %23, %19
%26 = load i32, i32* %2
%27 = and i32 %26, 64
%28 = icmp ne i32 %27, 0
br i1 %28, label %29, label %31
29: ; preds = %25
%30 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.4, i64 0, i64 0))
br label %31
31: ; preds = %29, %25
%32 = load i32, i32* %2
%33 = and i32 %32, 128
%34 = icmp ne i32 %33, 0
br i1 %34, label %35, label %37
35: ; preds = %31
%36 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.5, i64 0, i64 0))
br label %37
37: ; preds = %35, %31
%38 = load i32, i32* %2
%39 = and i32 %38, 256
%40 = icmp ne i32 %39, 0
br i1 %40, label %41, label %43
41: ; preds = %37
%42 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
br label %43
43: ; preds = %41, %37
%44 = load i32, i32* %2
%45 = and i32 %44, 512
%46 = icmp ne i32 %45, 0
br i1 %46, label %47, label %49
47: ; preds = %43
%48 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0))
br label %49
49: ; preds = %47, %43
%50 = load i32, i32* %2
%51 = and i32 %50, 1024
%52 = icmp ne i32 %51, 0
br i1 %52, label %53, label %55
53: ; preds = %49
%54 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.8, i64 0, i64 0))
br label %55
55: ; preds = %53, %49
%56 = load i32, i32* %2
%57 = and i32 %56, 16384
%58 = icmp ne i32 %57, 0
br i1 %58, label %59, label %61
59: ; preds = %55
%60 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.9, i64 0, i64 0))
br label %61
61: ; preds = %59, %55
%62 = load i32, i32* %2
%63 = and i32 %62, 65536
%64 = icmp ne i32 %63, 0
br i1 %64, label %65, label %67
65: ; preds = %61
%66 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.10, i64 0, i64 0))
br label %67
67: ; preds = %65, %61
%68 = load i32, i32* %2
%69 = and i32 %68, 131072
%70 = icmp ne i32 %69, 0
br i1 %70, label %71, label %73
71: ; preds = %67
%72 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.11, i64 0, i64 0))
br label %73
73: ; preds = %71, %67
%74 = load i32, i32* %2
%75 = and i32 %74, 262144
%76 = icmp ne i32 %75, 0
br i1 %76, label %77, label %79
77: ; preds = %73
%78 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
br label %79
79: ; preds = %77, %73
%80 = load i32, i32* %2
%81 = and i32 %80, 524288
%82 = icmp ne i32 %81, 0
br i1 %82, label %83, label %85
83: ; preds = %79
%84 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.13, i64 0, i64 0))
br label %85
85: ; preds = %83, %79
%86 = load i32, i32* %2
%87 = and i32 %86, 1048576
%88 = icmp ne i32 %87, 0
br i1 %88, label %89, label %91
89: ; preds = %85
%90 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.14, i64 0, i64 0))
br label %91
91: ; preds = %89, %85
%92 = load i32, i32* %2
%93 = and i32 %92, 2097152
%94 = icmp ne i32 %93, 0
br i1 %94, label %95, label %97
95: ; preds = %91
%96 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.15, i64 0, i64 0))
br label %97
97: ; preds = %95, %91
%98 = load i32, i32* %2
%99 = and i32 %98, 67108864
%100 = icmp ne i32 %99, 0
br i1 %100, label %101, label %103
101: ; preds = %97
%102 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.16, i64 0, i64 0))
br label %103
103: ; preds = %101, %97
%104 = load i32, i32* %2
%105 = and i32 %104, 536870912
%106 = icmp ne i32 %105, 0
br i1 %106, label %107, label %109
107: ; preds = %103
%108 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.17, i64 0, i64 0))
br label %109
109: ; preds = %107, %103
%110 = load i32, i32* %2
%111 = and i32 %110, 134217728
%112 = icmp ne i32 %111, 0
br i1 %112, label %113, label %115
113: ; preds = %109
%114 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.18, i64 0, i64 0))
br label %115
115: ; preds = %113, %109
%116 = load i32, i32* %2
%117 = and i32 %116, 268435456
%118 = icmp ne i32 %117, 0
br i1 %118, label %119, label %121
119: ; preds = %115
%120 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.19, i64 0, i64 0))
br label %121
121: ; preds = %119, %115
br label %202
122: ; preds = %1
%123 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.20, i64 0, i64 0))
%124 = load i32, i32* %2
%125 = and i32 %124, 4
%126 = icmp ne i32 %125, 0
br i1 %126, label %127, label %129
127: ; preds = %122
%128 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.21, i64 0, i64 0))
br label %129
129: ; preds = %127, %122
%130 = load i32, i32* %2
%131 = and i32 %130, 8
%132 = icmp ne i32 %131, 0
br i1 %132, label %133, label %135
133: ; preds = %129
%134 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.22, i64 0, i64 0))
br label %135
135: ; preds = %133, %129
%136 = load i32, i32* %2
%137 = and i32 %136, 16
%138 = icmp ne i32 %137, 0
br i1 %138, label %139, label %141
139: ; preds = %135
%140 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.23, i64 0, i64 0))
br label %141
141: ; preds = %139, %135
%142 = load i32, i32* %2
%143 = and i32 %142, 32
%144 = icmp ne i32 %143, 0
br i1 %144, label %145, label %147
145: ; preds = %141
%146 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.24, i64 0, i64 0))
br label %147
147: ; preds = %145, %141
%148 = load i32, i32* %2
%149 = and i32 %148, 64
%150 = icmp ne i32 %149, 0
br i1 %150, label %151, label %153
151: ; preds = %147
%152 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
br label %153
153: ; preds = %151, %147
%154 = load i32, i32* %2
%155 = and i32 %154, 128
%156 = icmp ne i32 %155, 0
br i1 %156, label %157, label %159
157: ; preds = %153
%158 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.26, i64 0, i64 0))
br label %159
159: ; preds = %157, %153
%160 = load i32, i32* %2
%161 = and i32 %160, 8192
%162 = icmp ne i32 %161, 0
br i1 %162, label %163, label %165
163: ; preds = %159
%164 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.27, i64 0, i64 0))
br label %165
165: ; preds = %163, %159
%166 = load i32, i32* %2
%167 = and i32 %166, 32768
%168 = icmp ne i32 %167, 0
br i1 %168, label %169, label %171
169: ; preds = %165
%170 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.28, i64 0, i64 0))
br label %171
171: ; preds = %169, %165
%172 = load i32, i32* %2
%173 = and i32 %172, 65536
%174 = icmp ne i32 %173, 0
br i1 %174, label %175, label %177
175: ; preds = %171
%176 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.29, i64 0, i64 0))
br label %177
177: ; preds = %175, %171
%178 = load i32, i32* %2
%179 = and i32 %178, 131072
%180 = icmp ne i32 %179, 0
br i1 %180, label %181, label %183
181: ; preds = %177
%182 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.30, i64 0, i64 0))
br label %183
183: ; preds = %181, %177
%184 = load i32, i32* %2
%185 = and i32 %184, 16777216
%186 = icmp ne i32 %185, 0
br i1 %186, label %187, label %189
187: ; preds = %183
%188 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.31, i64 0, i64 0))
br label %189
189: ; preds = %187, %183
%190 = load i32, i32* %2
%191 = and i32 %190, 33554432
%192 = icmp ne i32 %191, 0
br i1 %192, label %193, label %195
193: ; preds = %189
%194 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
br label %195
195: ; preds = %193, %189
%196 = load i32, i32* %2
%197 = and i32 %196, 67108864
%198 = icmp ne i32 %197, 0
br i1 %198, label %199, label %201
199: ; preds = %195
%200 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.32, i64 0, i64 0))
br label %201
201: ; preds = %199, %195
br label %202
202: ; preds = %201, %121
%203 = load i8, i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0)
%204 = sext i8 %203 to i32
%205 = icmp ne i32 %204, 0
%206 = zext i1 %205 to i64
%207 = select i1 %205, i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 1), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.33, i64 0, i64 0)
ret i8* %207
}

LLVM IR (-O2):
@act_bit_name.buf = internal global [512 x i8] zeroinitializer
@.str = [5 x i8] c" npc\00"
@.str.1 = [10 x i8] c" sentinel\00"
@.str.2 = [11 x i8] c" scavenger\00"
@.str.3 = [12 x i8] c" aggressive\00"
@.str.4 = [11 x i8] c" stay_area\00"
@.str.5 = [7 x i8] c" wimpy\00"
@.str.6 = [5 x i8] c" pet\00"
@.str.7 = [7 x i8] c" train\00"
@.str.8 = [10 x i8] c" practice\00"
@.str.9 = [8 x i8] c" undead\00"
@.str.10 = [8 x i8] c" cleric\00"
@.str.11 = [6 x i8] c" mage\00"
@.str.12 = [7 x i8] c" thief\00"
@.str.13 = [9 x i8] c" warrior\00"
@.str.14 = [10 x i8] c" no_align\00"
@.str.15 = [10 x i8] c" no_purge\00"
@.str.16 = [8 x i8] c" healer\00"
@.str.17 = [9 x i8] c" changer\00"
@.str.18 = [13 x i8] c" skill_train\00"
@.str.19 = [15 x i8] c" update_always\00"
@.str.20 = [8 x i8] c" player\00"
@.str.21 = [12 x i8] c" autoassist\00"
@.str.22 = [10 x i8] c" autoexit\00"
@.str.23 = [10 x i8] c" autoloot\00"
@.str.24 = [9 x i8] c" autosac\00"
@.str.25 = [10 x i8] c" autogold\00"
@.str.26 = [11 x i8] c" autosplit\00"
@.str.27 = [12 x i8] c" holy_light\00"
@.str.28 = [13 x i8] c" loot_corpse\00"
@.str.29 = [11 x i8] c" no_summon\00"
@.str.30 = [11 x i8] c" no_follow\00"
@.str.31 = [8 x i8] c" frozen\00"
@.str.32 = [8 x i8] c" killer\00"
@.str.33 = [5 x i8] c"none\00"
define i8* @act_bit_name(i32 %0) {
store i8 0, i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0)
%2 = and i32 %0, 1
%3 = icmp eq i32 %2, 0
br i1 %3, label %98, label %4
4: ; preds = %1
%5 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
%6 = and i32 %0, 2
%7 = icmp eq i32 %6, 0
br i1 %7, label %10, label %8
8: ; preds = %4
%9 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1, i64 0, i64 0))
br label %10
10: ; preds = %8, %4
%11 = and i32 %0, 4
%12 = icmp eq i32 %11, 0
br i1 %12, label %15, label %13
13: ; preds = %10
%14 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.2, i64 0, i64 0))
br label %15
15: ; preds = %13, %10
%16 = and i32 %0, 32
%17 = icmp eq i32 %16, 0
br i1 %17, label %20, label %18
18: ; preds = %15
%19 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.3, i64 0, i64 0))
br label %20
20: ; preds = %18, %15
%21 = and i32 %0, 64
%22 = icmp eq i32 %21, 0
br i1 %22, label %25, label %23
23: ; preds = %20
%24 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.4, i64 0, i64 0))
br label %25
25: ; preds = %23, %20
%26 = and i32 %0, 128
%27 = icmp eq i32 %26, 0
br i1 %27, label %30, label %28
28: ; preds = %25
%29 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.5, i64 0, i64 0))
br label %30
30: ; preds = %28, %25
%31 = and i32 %0, 256
%32 = icmp eq i32 %31, 0
br i1 %32, label %35, label %33
33: ; preds = %30
%34 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
br label %35
35: ; preds = %33, %30
%36 = and i32 %0, 512
%37 = icmp eq i32 %36, 0
br i1 %37, label %40, label %38
38: ; preds = %35
%39 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0))
br label %40
40: ; preds = %38, %35
%41 = and i32 %0, 1024
%42 = icmp eq i32 %41, 0
br i1 %42, label %45, label %43
43: ; preds = %40
%44 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.8, i64 0, i64 0))
br label %45
45: ; preds = %43, %40
%46 = and i32 %0, 16384
%47 = icmp eq i32 %46, 0
br i1 %47, label %50, label %48
48: ; preds = %45
%49 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.9, i64 0, i64 0))
br label %50
50: ; preds = %48, %45
%51 = and i32 %0, 65536
%52 = icmp eq i32 %51, 0
br i1 %52, label %55, label %53
53: ; preds = %50
%54 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.10, i64 0, i64 0))
br label %55
55: ; preds = %53, %50
%56 = and i32 %0, 131072
%57 = icmp eq i32 %56, 0
br i1 %57, label %60, label %58
58: ; preds = %55
%59 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.11, i64 0, i64 0))
br label %60
60: ; preds = %58, %55
%61 = and i32 %0, 262144
%62 = icmp eq i32 %61, 0
br i1 %62, label %65, label %63
63: ; preds = %60
%64 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
br label %65
65: ; preds = %63, %60
%66 = and i32 %0, 524288
%67 = icmp eq i32 %66, 0
br i1 %67, label %70, label %68
68: ; preds = %65
%69 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.13, i64 0, i64 0))
br label %70
70: ; preds = %68, %65
%71 = and i32 %0, 1048576
%72 = icmp eq i32 %71, 0
br i1 %72, label %75, label %73
73: ; preds = %70
%74 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.14, i64 0, i64 0))
br label %75
75: ; preds = %73, %70
%76 = and i32 %0, 2097152
%77 = icmp eq i32 %76, 0
br i1 %77, label %80, label %78
78: ; preds = %75
%79 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.15, i64 0, i64 0))
br label %80
80: ; preds = %78, %75
%81 = and i32 %0, 67108864
%82 = icmp eq i32 %81, 0
br i1 %82, label %85, label %83
83: ; preds = %80
%84 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.16, i64 0, i64 0))
br label %85
85: ; preds = %83, %80
%86 = and i32 %0, 536870912
%87 = icmp eq i32 %86, 0
br i1 %87, label %90, label %88
88: ; preds = %85
%89 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.17, i64 0, i64 0))
br label %90
90: ; preds = %88, %85
%91 = and i32 %0, 134217728
%92 = icmp eq i32 %91, 0
br i1 %92, label %95, label %93
93: ; preds = %90
%94 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.18, i64 0, i64 0))
br label %95
95: ; preds = %93, %90
%96 = and i32 %0, 268435456
%97 = icmp eq i32 %96, 0
br i1 %97, label %165, label %162
98: ; preds = %1
%99 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.20, i64 0, i64 0))
%100 = and i32 %0, 4
%101 = icmp eq i32 %100, 0
br i1 %101, label %104, label %102
102: ; preds = %98
%103 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.21, i64 0, i64 0))
br label %104
104: ; preds = %102, %98
%105 = and i32 %0, 8
%106 = icmp eq i32 %105, 0
br i1 %106, label %109, label %107
107: ; preds = %104
%108 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.22, i64 0, i64 0))
br label %109
109: ; preds = %107, %104
%110 = and i32 %0, 16
%111 = icmp eq i32 %110, 0
br i1 %111, label %114, label %112
112: ; preds = %109
%113 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.23, i64 0, i64 0))
br label %114
114: ; preds = %112, %109
%115 = and i32 %0, 32
%116 = icmp eq i32 %115, 0
br i1 %116, label %119, label %117
117: ; preds = %114
%118 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.24, i64 0, i64 0))
br label %119
119: ; preds = %117, %114
%120 = and i32 %0, 64
%121 = icmp eq i32 %120, 0
br i1 %121, label %124, label %122
122: ; preds = %119
%123 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.25, i64 0, i64 0))
br label %124
124: ; preds = %122, %119
%125 = and i32 %0, 128
%126 = icmp eq i32 %125, 0
br i1 %126, label %129, label %127
127: ; preds = %124
%128 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.26, i64 0, i64 0))
br label %129
129: ; preds = %127, %124
%130 = and i32 %0, 8192
%131 = icmp eq i32 %130, 0
br i1 %131, label %134, label %132
132: ; preds = %129
%133 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.27, i64 0, i64 0))
br label %134
134: ; preds = %132, %129
%135 = and i32 %0, 32768
%136 = icmp eq i32 %135, 0
br i1 %136, label %139, label %137
137: ; preds = %134
%138 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.28, i64 0, i64 0))
br label %139
139: ; preds = %137, %134
%140 = and i32 %0, 65536
%141 = icmp eq i32 %140, 0
br i1 %141, label %144, label %142
142: ; preds = %139
%143 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.29, i64 0, i64 0))
br label %144
144: ; preds = %142, %139
%145 = and i32 %0, 131072
%146 = icmp eq i32 %145, 0
br i1 %146, label %149, label %147
147: ; preds = %144
%148 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.30, i64 0, i64 0))
br label %149
149: ; preds = %147, %144
%150 = and i32 %0, 16777216
%151 = icmp eq i32 %150, 0
br i1 %151, label %154, label %152
152: ; preds = %149
%153 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.31, i64 0, i64 0))
br label %154
154: ; preds = %152, %149
%155 = and i32 %0, 33554432
%156 = icmp eq i32 %155, 0
br i1 %156, label %159, label %157
157: ; preds = %154
%158 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
br label %159
159: ; preds = %157, %154
%160 = and i32 %0, 67108864
%161 = icmp eq i32 %160, 0
br i1 %161, label %165, label %162
162: ; preds = %159, %95
%163 = phi i8* [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str.19, i64 0, i64 0), %95 ], [ getelementptr inbounds ([8 x i8], [8 x i8]* @.str.32, i64 0, i64 0), %159 ]
%164 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* %163)
br label %165
165: ; preds = %162, %159, %95
%166 = load i8, i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0)
%167 = icmp eq i8 %166, 0
%168 = select i1 %167, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.33, i64 0, i64 0), i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 1)
ret i8* %168
}