#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 & (16))
      strcat(buf, " ranger");
    if (act_flags & (2048))
      strcat(buf, " druid");
    if (act_flags & (32768))
      strcat(buf, " vampire");
    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 & (8388608))
      strcat(buf, " evil_priest");
    if (act_flags & (33554432))
      strcat(buf, " priest");
    if (act_flags & (536870912))
      strcat(buf, " banker");
    if (act_flags & (4096))
      strcat(buf, " no_body");
    if (act_flags & (8192))
      strcat(buf, " nobd_drop");
    if (act_flags & (134217728))
      strcat(buf, " skill_train");
    if (act_flags & (268435456))
      strcat(buf, " update_always");
  } else {
    strcat(buf, " player");
    if (act_flags & (2))
      strcat(buf, " colour");
    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 & (256))
      strcat(buf, " no_transport");
    if (act_flags & (1024))
      strcat(buf, " no_cancel");
    if (act_flags & (16777216))
      strcat(buf, " frozen");
    if (act_flags & (33554432))
      strcat(buf, " twit");
  }
  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     14e7 <act_bit_name+0x3d7>
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    $0x10,%eax
cmp    $0x0,%eax
je     1332 <act_bit_name+0x222>
lea    0x2d1a(%rip),%rdi
lea    0xd47(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x800,%eax
cmp    $0x0,%eax
je     1356 <act_bit_name+0x246>
lea    0x2cf6(%rip),%rdi
lea    0xd2b(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x8000,%eax
cmp    $0x0,%eax
je     137a <act_bit_name+0x26a>
lea    0x2cd2(%rip),%rdi
lea    0xd0e(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x100000,%eax
cmp    $0x0,%eax
je     139e <act_bit_name+0x28e>
lea    0x2cae(%rip),%rdi
lea    0xcf3(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x200000,%eax
cmp    $0x0,%eax
je     13c2 <act_bit_name+0x2b2>
lea    0x2c8a(%rip),%rdi
lea    0xcd9(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x4000000,%eax
cmp    $0x0,%eax
je     13e6 <act_bit_name+0x2d6>
lea    0x2c66(%rip),%rdi
lea    0xcbf(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x800000,%eax
cmp    $0x0,%eax
je     140a <act_bit_name+0x2fa>
lea    0x2c42(%rip),%rdi
lea    0xca3(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x2000000,%eax
cmp    $0x0,%eax
je     142e <act_bit_name+0x31e>
lea    0x2c1e(%rip),%rdi
lea    0xc8c(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x20000000,%eax
cmp    $0x0,%eax
je     1452 <act_bit_name+0x342>
lea    0x2bfa(%rip),%rdi
lea    0xc70(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x1000,%eax
cmp    $0x0,%eax
je     1476 <act_bit_name+0x366>
lea    0x2bd6(%rip),%rdi
lea    0xc54(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x2000,%eax
cmp    $0x0,%eax
je     149a <act_bit_name+0x38a>
lea    0x2bb2(%rip),%rdi
lea    0xc39(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x8000000,%eax
cmp    $0x0,%eax
je     14be <act_bit_name+0x3ae>
lea    0x2b8e(%rip),%rdi
lea    0xc20(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x10000000,%eax
cmp    $0x0,%eax
je     14e2 <act_bit_name+0x3d2>
lea    0x2b6a(%rip),%rdi
lea    0xc09(%rip),%rsi
call   1030 <strcat@plt>
jmp    170f <act_bit_name+0x5ff>
lea    0x2b52(%rip),%rdi
lea    0xc00(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x2,%eax
cmp    $0x0,%eax
je     151c <act_bit_name+0x40c>
lea    0x2b30(%rip),%rdi
lea    0xbe6(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x4,%eax
cmp    $0x0,%eax
je     153e <act_bit_name+0x42e>
lea    0x2b0e(%rip),%rdi
lea    0xbcc(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x8,%eax
cmp    $0x0,%eax
je     1560 <act_bit_name+0x450>
lea    0x2aec(%rip),%rdi
lea    0xbb6(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x10,%eax
cmp    $0x0,%eax
je     1582 <act_bit_name+0x472>
lea    0x2aca(%rip),%rdi
lea    0xb9e(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x20,%eax
cmp    $0x0,%eax
je     15a4 <act_bit_name+0x494>
lea    0x2aa8(%rip),%rdi
lea    0xb86(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x40,%eax
cmp    $0x0,%eax
je     15c6 <act_bit_name+0x4b6>
lea    0x2a86(%rip),%rdi
lea    0xb6d(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x80,%eax
cmp    $0x0,%eax
je     15ea <act_bit_name+0x4da>
lea    0x2a62(%rip),%rdi
lea    0xb53(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x2000,%eax
cmp    $0x0,%eax
je     160e <act_bit_name+0x4fe>
lea    0x2a3e(%rip),%rdi
lea    0xb3a(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x8000,%eax
cmp    $0x0,%eax
je     1632 <act_bit_name+0x522>
lea    0x2a1a(%rip),%rdi
lea    0xb22(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x10000,%eax
cmp    $0x0,%eax
je     1656 <act_bit_name+0x546>
lea    0x29f6(%rip),%rdi
lea    0xb0b(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x20000,%eax
cmp    $0x0,%eax
je     167a <act_bit_name+0x56a>
lea    0x29d2(%rip),%rdi
lea    0xaf2(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x100,%eax
cmp    $0x0,%eax
je     169e <act_bit_name+0x58e>
lea    0x29ae(%rip),%rdi
lea    0xad9(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x400,%eax
cmp    $0x0,%eax
je     16c2 <act_bit_name+0x5b2>
lea    0x298a(%rip),%rdi
lea    0xac3(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x1000000,%eax
cmp    $0x0,%eax
je     16e6 <act_bit_name+0x5d6>
lea    0x2966(%rip),%rdi
lea    0xaaa(%rip),%rsi
call   1030 <strcat@plt>
mov    -0x4(%rbp),%eax
and    $0x2000000,%eax
cmp    $0x0,%eax
je     170a <act_bit_name+0x5fa>
lea    0x2942(%rip),%rdi
lea    0xa8e(%rip),%rsi
call   1030 <strcat@plt>
jmp    170f <act_bit_name+0x5ff>
movsbl 0x292a(%rip),%edx
lea    0xa7c(%rip),%rax
lea    0x291c(%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    11da <act_bit_name+0xca>
lea    0xfc4(%rip),%rsi
call   1030 <strcat@plt>
test   $0x2,%bl
jne    1311 <act_bit_name+0x201>
test   $0x4,%bl
jne    132d <act_bit_name+0x21d>
test   $0x8,%bl
jne    1349 <act_bit_name+0x239>
test   $0x10,%bl
jne    1365 <act_bit_name+0x255>
test   $0x20,%bl
jne    1381 <act_bit_name+0x271>
test   $0x40,%bl
jne    139d <act_bit_name+0x28d>
test   $0x80,%bl
jne    13b9 <act_bit_name+0x2a9>
test   $0x2000,%ebx
jne    13d8 <act_bit_name+0x2c8>
test   $0x8000,%ebx
jne    13f7 <act_bit_name+0x2e7>
test   $0x10000,%ebx
jne    1416 <act_bit_name+0x306>
test   $0x20000,%ebx
jne    1435 <act_bit_name+0x325>
test   $0x100,%ebx
jne    1454 <act_bit_name+0x344>
test   $0x400,%ebx
jne    1473 <act_bit_name+0x363>
test   $0x1000000,%ebx
jne    1492 <act_bit_name+0x382>
test   $0x2000000,%ebx
jne    14b1 <act_bit_name+0x3a1>
jmp    17c4 <act_bit_name+0x6b4>
lea    0xe1f(%rip),%rsi
call   1030 <strcat@plt>
test   $0x2,%bl
jne    14bd <act_bit_name+0x3ad>
test   $0x4,%bl
jne    14d9 <act_bit_name+0x3c9>
test   $0x20,%bl
jne    14f5 <act_bit_name+0x3e5>
test   $0x40,%bl
jne    1511 <act_bit_name+0x401>
test   $0x80,%bl
jne    152d <act_bit_name+0x41d>
test   $0x100,%ebx
jne    154c <act_bit_name+0x43c>
test   $0x200,%ebx
jne    156b <act_bit_name+0x45b>
test   $0x400,%ebx
jne    158a <act_bit_name+0x47a>
test   $0x4000,%ebx
jne    15a9 <act_bit_name+0x499>
test   $0x10000,%ebx
jne    15c8 <act_bit_name+0x4b8>
test   $0x20000,%ebx
jne    15e7 <act_bit_name+0x4d7>
test   $0x40000,%ebx
jne    1606 <act_bit_name+0x4f6>
test   $0x80000,%ebx
jne    1625 <act_bit_name+0x515>
test   $0x10,%bl
jne    1641 <act_bit_name+0x531>
test   $0x800,%ebx
jne    1660 <act_bit_name+0x550>
test   $0x8000,%ebx
jne    167f <act_bit_name+0x56f>
test   $0x100000,%ebx
jne    169e <act_bit_name+0x58e>
test   $0x200000,%ebx
jne    16bd <act_bit_name+0x5ad>
test   $0x4000000,%ebx
jne    16dc <act_bit_name+0x5cc>
test   $0x800000,%ebx
jne    16fb <act_bit_name+0x5eb>
test   $0x2000000,%ebx
jne    171a <act_bit_name+0x60a>
test   $0x20000000,%ebx
jne    1739 <act_bit_name+0x629>
test   $0x1000,%ebx
jne    1758 <act_bit_name+0x648>
test   $0x2000,%ebx
jne    1777 <act_bit_name+0x667>
test   $0x8000000,%ebx
jne    1796 <act_bit_name+0x686>
test   $0x10000000,%ebx
jne    17b1 <act_bit_name+0x6a1>
jmp    17c4 <act_bit_name+0x6b4>
lea    0x2d28(%rip),%rdi
lea    0xdde(%rip),%rsi
call   1030 <strcat@plt>
test   $0x4,%bl
je     1148 <act_bit_name+0x38>
lea    0x2d0c(%rip),%rdi
lea    0xdca(%rip),%rsi
call   1030 <strcat@plt>
test   $0x8,%bl
je     1151 <act_bit_name+0x41>
lea    0x2cf0(%rip),%rdi
lea    0xdba(%rip),%rsi
call   1030 <strcat@plt>
test   $0x10,%bl
je     115a <act_bit_name+0x4a>
lea    0x2cd4(%rip),%rdi
lea    0xda8(%rip),%rsi
call   1030 <strcat@plt>
test   $0x20,%bl
je     1163 <act_bit_name+0x53>
lea    0x2cb8(%rip),%rdi
lea    0xd96(%rip),%rsi
call   1030 <strcat@plt>
test   $0x40,%bl
je     116c <act_bit_name+0x5c>
lea    0x2c9c(%rip),%rdi
lea    0xd83(%rip),%rsi
call   1030 <strcat@plt>
test   $0x80,%bl
je     1175 <act_bit_name+0x65>
lea    0x2c80(%rip),%rdi
lea    0xd71(%rip),%rsi
call   1030 <strcat@plt>
test   $0x2000,%ebx
je     1181 <act_bit_name+0x71>
lea    0x2c61(%rip),%rdi
lea    0xd5d(%rip),%rsi
call   1030 <strcat@plt>
test   $0x8000,%ebx
je     118d <act_bit_name+0x7d>
lea    0x2c42(%rip),%rdi
lea    0xd4a(%rip),%rsi
call   1030 <strcat@plt>
test   $0x10000,%ebx
je     1199 <act_bit_name+0x89>
lea    0x2c23(%rip),%rdi
lea    0xd38(%rip),%rsi
call   1030 <strcat@plt>
test   $0x20000,%ebx
je     11a5 <act_bit_name+0x95>
lea    0x2c04(%rip),%rdi
lea    0xd24(%rip),%rsi
call   1030 <strcat@plt>
test   $0x100,%ebx
je     11b1 <act_bit_name+0xa1>
lea    0x2be5(%rip),%rdi
lea    0xd10(%rip),%rsi
call   1030 <strcat@plt>
test   $0x400,%ebx
je     11bd <act_bit_name+0xad>
lea    0x2bc6(%rip),%rdi
lea    0xcff(%rip),%rsi
call   1030 <strcat@plt>
test   $0x1000000,%ebx
je     11c9 <act_bit_name+0xb9>
lea    0x2ba7(%rip),%rdi
lea    0xceb(%rip),%rsi
call   1030 <strcat@plt>
test   $0x2000000,%ebx
je     17c4 <act_bit_name+0x6b4>
lea    0xcdb(%rip),%rsi
jmp    17b8 <act_bit_name+0x6a8>
lea    0x2b7c(%rip),%rdi
lea    0xb3a(%rip),%rsi
call   1030 <strcat@plt>
test   $0x4,%bl
je     11f8 <act_bit_name+0xe8>
lea    0x2b60(%rip),%rdi
lea    0xb28(%rip),%rsi
call   1030 <strcat@plt>
test   $0x20,%bl
je     1201 <act_bit_name+0xf1>
lea    0x2b44(%rip),%rdi
lea    0xb17(%rip),%rsi
call   1030 <strcat@plt>
test   $0x40,%bl
je     120a <act_bit_name+0xfa>
lea    0x2b28(%rip),%rdi
lea    0xb07(%rip),%rsi
call   1030 <strcat@plt>
test   $0x80,%bl
je     1213 <act_bit_name+0x103>
lea    0x2b0c(%rip),%rdi
lea    0xaf6(%rip),%rsi
call   1030 <strcat@plt>
test   $0x100,%ebx
je     121f <act_bit_name+0x10f>
lea    0x2aed(%rip),%rdi
lea    0xade(%rip),%rsi
call   1030 <strcat@plt>
test   $0x200,%ebx
je     122b <act_bit_name+0x11b>
lea    0x2ace(%rip),%rdi
lea    0xac4(%rip),%rsi
call   1030 <strcat@plt>
test   $0x400,%ebx
je     1237 <act_bit_name+0x127>
lea    0x2aaf(%rip),%rdi
lea    0xaac(%rip),%rsi
call   1030 <strcat@plt>
test   $0x4000,%ebx
je     1243 <act_bit_name+0x133>
lea    0x2a90(%rip),%rdi
lea    0xa97(%rip),%rsi
call   1030 <strcat@plt>
test   $0x10000,%ebx
je     124f <act_bit_name+0x13f>
lea    0x2a71(%rip),%rdi
lea    0xa80(%rip),%rsi
call   1030 <strcat@plt>
test   $0x20000,%ebx
je     125b <act_bit_name+0x14b>
lea    0x2a52(%rip),%rdi
lea    0xa69(%rip),%rsi
call   1030 <strcat@plt>
test   $0x40000,%ebx
je     1267 <act_bit_name+0x157>
lea    0x2a33(%rip),%rdi
lea    0xa50(%rip),%rsi
call   1030 <strcat@plt>
test   $0x80000,%ebx
je     1273 <act_bit_name+0x163>
lea    0x2a14(%rip),%rdi
lea    0xa38(%rip),%rsi
call   1030 <strcat@plt>
test   $0x10,%bl
je     127c <act_bit_name+0x16c>
lea    0x29f8(%rip),%rdi
lea    0xa25(%rip),%rsi
call   1030 <strcat@plt>
test   $0x800,%ebx
je     1288 <act_bit_name+0x178>
lea    0x29d9(%rip),%rdi
lea    0xa0e(%rip),%rsi
call   1030 <strcat@plt>
test   $0x8000,%ebx
je     1294 <act_bit_name+0x184>
lea    0x29ba(%rip),%rdi
lea    0x9f6(%rip),%rsi
call   1030 <strcat@plt>
test   $0x100000,%ebx
je     12a0 <act_bit_name+0x190>
lea    0x299b(%rip),%rdi
lea    0x9e0(%rip),%rsi
call   1030 <strcat@plt>
test   $0x200000,%ebx
je     12ac <act_bit_name+0x19c>
lea    0x297c(%rip),%rdi
lea    0x9cb(%rip),%rsi
call   1030 <strcat@plt>
test   $0x4000000,%ebx
je     12b8 <act_bit_name+0x1a8>
lea    0x295d(%rip),%rdi
lea    0x9b6(%rip),%rsi
call   1030 <strcat@plt>
test   $0x800000,%ebx
je     12c4 <act_bit_name+0x1b4>
lea    0x293e(%rip),%rdi
lea    0x99f(%rip),%rsi
call   1030 <strcat@plt>
test   $0x2000000,%ebx
je     12d0 <act_bit_name+0x1c0>
lea    0x291f(%rip),%rdi
lea    0x98d(%rip),%rsi
call   1030 <strcat@plt>
test   $0x20000000,%ebx
je     12dc <act_bit_name+0x1cc>
lea    0x2900(%rip),%rdi
lea    0x976(%rip),%rsi
call   1030 <strcat@plt>
test   $0x1000,%ebx
je     12e8 <act_bit_name+0x1d8>
lea    0x28e1(%rip),%rdi
lea    0x95f(%rip),%rsi
call   1030 <strcat@plt>
test   $0x2000,%ebx
je     12f4 <act_bit_name+0x1e4>
lea    0x28c2(%rip),%rdi
lea    0x949(%rip),%rsi
call   1030 <strcat@plt>
test   $0x8000000,%ebx
je     1300 <act_bit_name+0x1f0>
lea    0x28a3(%rip),%rdi
lea    0x935(%rip),%rsi
call   1030 <strcat@plt>
test   $0x10000000,%ebx
je     17c4 <act_bit_name+0x6b4>
lea    0x92e(%rip),%rsi
lea    0x2881(%rip),%rdi
call   1030 <strcat@plt>
cmpb   $0x0,0x2875(%rip)
lea    0x9c7(%rip),%rcx
lea    0x2868(%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 = [8 x i8] c" ranger\00"
@.str.15 = [7 x i8] c" druid\00"
@.str.16 = [9 x i8] c" vampire\00"
@.str.17 = [10 x i8] c" no_align\00"
@.str.18 = [10 x i8] c" no_purge\00"
@.str.19 = [8 x i8] c" healer\00"
@.str.20 = [13 x i8] c" evil_priest\00"
@.str.21 = [8 x i8] c" priest\00"
@.str.22 = [8 x i8] c" banker\00"
@.str.23 = [9 x i8] c" no_body\00"
@.str.24 = [11 x i8] c" nobd_drop\00"
@.str.25 = [13 x i8] c" skill_train\00"
@.str.26 = [15 x i8] c" update_always\00"
@.str.27 = [8 x i8] c" player\00"
@.str.28 = [8 x i8] c" colour\00"
@.str.29 = [12 x i8] c" autoassist\00"
@.str.30 = [10 x i8] c" autoexit\00"
@.str.31 = [10 x i8] c" autoloot\00"
@.str.32 = [9 x i8] c" autosac\00"
@.str.33 = [10 x i8] c" autogold\00"
@.str.34 = [11 x i8] c" autosplit\00"
@.str.35 = [12 x i8] c" holy_light\00"
@.str.36 = [13 x i8] c" loot_corpse\00"
@.str.37 = [11 x i8] c" no_summon\00"
@.str.38 = [11 x i8] c" no_follow\00"
@.str.39 = [14 x i8] c" no_transport\00"
@.str.40 = [11 x i8] c" no_cancel\00"
@.str.41 = [8 x i8] c" frozen\00"
@.str.42 = [6 x i8] c" twit\00"
@.str.43 = [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 %164
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, 16
%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 ([8 x i8], [8 x i8]* @.str.14, i64 0, i64 0))
br label %91
91: ; preds = %89, %85
%92 = load i32, i32* %2
%93 = and i32 %92, 2048
%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 ([7 x i8], [7 x i8]* @.str.15, i64 0, i64 0))
br label %97
97: ; preds = %95, %91
%98 = load i32, i32* %2
%99 = and i32 %98, 32768
%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 ([9 x i8], [9 x i8]* @.str.16, i64 0, i64 0))
br label %103
103: ; preds = %101, %97
%104 = load i32, i32* %2
%105 = and i32 %104, 1048576
%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 ([10 x i8], [10 x i8]* @.str.17, i64 0, i64 0))
br label %109
109: ; preds = %107, %103
%110 = load i32, i32* %2
%111 = and i32 %110, 2097152
%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 ([10 x i8], [10 x i8]* @.str.18, i64 0, i64 0))
br label %115
115: ; preds = %113, %109
%116 = load i32, i32* %2
%117 = and i32 %116, 67108864
%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 ([8 x i8], [8 x i8]* @.str.19, i64 0, i64 0))
br label %121
121: ; preds = %119, %115
%122 = load i32, i32* %2
%123 = and i32 %122, 8388608
%124 = icmp ne i32 %123, 0
br i1 %124, label %125, label %127
125: ; preds = %121
%126 = 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.20, i64 0, i64 0))
br label %127
127: ; preds = %125, %121
%128 = load i32, i32* %2
%129 = and i32 %128, 33554432
%130 = icmp ne i32 %129, 0
br i1 %130, label %131, label %133
131: ; preds = %127
%132 = 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.21, i64 0, i64 0))
br label %133
133: ; preds = %131, %127
%134 = load i32, i32* %2
%135 = and i32 %134, 536870912
%136 = icmp ne i32 %135, 0
br i1 %136, label %137, label %139
137: ; preds = %133
%138 = 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.22, i64 0, i64 0))
br label %139
139: ; preds = %137, %133
%140 = load i32, i32* %2
%141 = and i32 %140, 4096
%142 = icmp ne i32 %141, 0
br i1 %142, label %143, label %145
143: ; preds = %139
%144 = 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.23, i64 0, i64 0))
br label %145
145: ; preds = %143, %139
%146 = load i32, i32* %2
%147 = and i32 %146, 8192
%148 = icmp ne i32 %147, 0
br i1 %148, label %149, label %151
149: ; preds = %145
%150 = 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.24, i64 0, i64 0))
br label %151
151: ; preds = %149, %145
%152 = load i32, i32* %2
%153 = and i32 %152, 134217728
%154 = icmp ne i32 %153, 0
br i1 %154, label %155, label %157
155: ; preds = %151
%156 = 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.25, i64 0, i64 0))
br label %157
157: ; preds = %155, %151
%158 = load i32, i32* %2
%159 = and i32 %158, 268435456
%160 = icmp ne i32 %159, 0
br i1 %160, label %161, label %163
161: ; preds = %157
%162 = 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.26, i64 0, i64 0))
br label %163
163: ; preds = %161, %157
br label %256
164: ; preds = %1
%165 = 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.27, i64 0, i64 0))
%166 = load i32, i32* %2
%167 = and i32 %166, 2
%168 = icmp ne i32 %167, 0
br i1 %168, label %169, label %171
169: ; preds = %164
%170 = 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.28, i64 0, i64 0))
br label %171
171: ; preds = %169, %164
%172 = load i32, i32* %2
%173 = and i32 %172, 4
%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 ([12 x i8], [12 x i8]* @.str.29, i64 0, i64 0))
br label %177
177: ; preds = %175, %171
%178 = load i32, i32* %2
%179 = and i32 %178, 8
%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 ([10 x i8], [10 x i8]* @.str.30, i64 0, i64 0))
br label %183
183: ; preds = %181, %177
%184 = load i32, i32* %2
%185 = and i32 %184, 16
%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 ([10 x i8], [10 x i8]* @.str.31, i64 0, i64 0))
br label %189
189: ; preds = %187, %183
%190 = load i32, i32* %2
%191 = and i32 %190, 32
%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 ([9 x i8], [9 x i8]* @.str.32, i64 0, i64 0))
br label %195
195: ; preds = %193, %189
%196 = load i32, i32* %2
%197 = and i32 %196, 64
%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 ([10 x i8], [10 x i8]* @.str.33, i64 0, i64 0))
br label %201
201: ; preds = %199, %195
%202 = load i32, i32* %2
%203 = and i32 %202, 128
%204 = icmp ne i32 %203, 0
br i1 %204, label %205, label %207
205: ; preds = %201
%206 = 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.34, i64 0, i64 0))
br label %207
207: ; preds = %205, %201
%208 = load i32, i32* %2
%209 = and i32 %208, 8192
%210 = icmp ne i32 %209, 0
br i1 %210, label %211, label %213
211: ; preds = %207
%212 = 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.35, i64 0, i64 0))
br label %213
213: ; preds = %211, %207
%214 = load i32, i32* %2
%215 = and i32 %214, 32768
%216 = icmp ne i32 %215, 0
br i1 %216, label %217, label %219
217: ; preds = %213
%218 = 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.36, i64 0, i64 0))
br label %219
219: ; preds = %217, %213
%220 = load i32, i32* %2
%221 = and i32 %220, 65536
%222 = icmp ne i32 %221, 0
br i1 %222, label %223, label %225
223: ; preds = %219
%224 = 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.37, i64 0, i64 0))
br label %225
225: ; preds = %223, %219
%226 = load i32, i32* %2
%227 = and i32 %226, 131072
%228 = icmp ne i32 %227, 0
br i1 %228, label %229, label %231
229: ; preds = %225
%230 = 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.38, i64 0, i64 0))
br label %231
231: ; preds = %229, %225
%232 = load i32, i32* %2
%233 = and i32 %232, 256
%234 = icmp ne i32 %233, 0
br i1 %234, label %235, label %237
235: ; preds = %231
%236 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.39, i64 0, i64 0))
br label %237
237: ; preds = %235, %231
%238 = load i32, i32* %2
%239 = and i32 %238, 1024
%240 = icmp ne i32 %239, 0
br i1 %240, label %241, label %243
241: ; preds = %237
%242 = 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.40, i64 0, i64 0))
br label %243
243: ; preds = %241, %237
%244 = load i32, i32* %2
%245 = and i32 %244, 16777216
%246 = icmp ne i32 %245, 0
br i1 %246, label %247, label %249
247: ; preds = %243
%248 = 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.41, i64 0, i64 0))
br label %249
249: ; preds = %247, %243
%250 = load i32, i32* %2
%251 = and i32 %250, 33554432
%252 = icmp ne i32 %251, 0
br i1 %252, label %253, label %255
253: ; preds = %249
%254 = 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.42, i64 0, i64 0))
br label %255
255: ; preds = %253, %249
br label %256
256: ; preds = %255, %163
%257 = load i8, i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0)
%258 = sext i8 %257 to i32
%259 = icmp ne i32 %258, 0
%260 = zext i1 %259 to i64
%261 = select i1 %259, 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.43, i64 0, i64 0)
ret i8* %261
}

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 = [8 x i8] c" ranger\00"
@.str.15 = [7 x i8] c" druid\00"
@.str.16 = [9 x i8] c" vampire\00"
@.str.17 = [10 x i8] c" no_align\00"
@.str.18 = [10 x i8] c" no_purge\00"
@.str.19 = [8 x i8] c" healer\00"
@.str.20 = [13 x i8] c" evil_priest\00"
@.str.21 = [8 x i8] c" priest\00"
@.str.22 = [8 x i8] c" banker\00"
@.str.23 = [9 x i8] c" no_body\00"
@.str.24 = [11 x i8] c" nobd_drop\00"
@.str.25 = [13 x i8] c" skill_train\00"
@.str.26 = [15 x i8] c" update_always\00"
@.str.27 = [8 x i8] c" player\00"
@.str.28 = [8 x i8] c" colour\00"
@.str.29 = [12 x i8] c" autoassist\00"
@.str.30 = [10 x i8] c" autoexit\00"
@.str.31 = [10 x i8] c" autoloot\00"
@.str.32 = [9 x i8] c" autosac\00"
@.str.33 = [10 x i8] c" autogold\00"
@.str.34 = [11 x i8] c" autosplit\00"
@.str.35 = [12 x i8] c" holy_light\00"
@.str.36 = [13 x i8] c" loot_corpse\00"
@.str.37 = [11 x i8] c" no_summon\00"
@.str.38 = [11 x i8] c" no_follow\00"
@.str.39 = [14 x i8] c" no_transport\00"
@.str.40 = [11 x i8] c" no_cancel\00"
@.str.41 = [8 x i8] c" frozen\00"
@.str.42 = [6 x i8] c" twit\00"
@.str.43 = [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 %133, 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, 16
%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 ([8 x i8], [8 x i8]* @.str.14, i64 0, i64 0))
br label %75
75: ; preds = %73, %70
%76 = and i32 %0, 2048
%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 ([7 x i8], [7 x i8]* @.str.15, i64 0, i64 0))
br label %80
80: ; preds = %78, %75
%81 = and i32 %0, 32768
%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 ([9 x i8], [9 x i8]* @.str.16, i64 0, i64 0))
br label %85
85: ; preds = %83, %80
%86 = and i32 %0, 1048576
%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 ([10 x i8], [10 x i8]* @.str.17, i64 0, i64 0))
br label %90
90: ; preds = %88, %85
%91 = and i32 %0, 2097152
%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 ([10 x i8], [10 x i8]* @.str.18, i64 0, i64 0))
br label %95
95: ; preds = %93, %90
%96 = and i32 %0, 67108864
%97 = icmp eq i32 %96, 0
br i1 %97, label %100, label %98
98: ; preds = %95
%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.19, i64 0, i64 0))
br label %100
100: ; preds = %98, %95
%101 = and i32 %0, 8388608
%102 = icmp eq i32 %101, 0
br i1 %102, label %105, label %103
103: ; preds = %100
%104 = 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.20, i64 0, i64 0))
br label %105
105: ; preds = %103, %100
%106 = and i32 %0, 33554432
%107 = icmp eq i32 %106, 0
br i1 %107, label %110, label %108
108: ; preds = %105
%109 = 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.21, i64 0, i64 0))
br label %110
110: ; preds = %108, %105
%111 = and i32 %0, 536870912
%112 = icmp eq i32 %111, 0
br i1 %112, label %115, label %113
113: ; preds = %110
%114 = 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.22, i64 0, i64 0))
br label %115
115: ; preds = %113, %110
%116 = and i32 %0, 4096
%117 = icmp eq i32 %116, 0
br i1 %117, label %120, label %118
118: ; preds = %115
%119 = 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.23, i64 0, i64 0))
br label %120
120: ; preds = %118, %115
%121 = and i32 %0, 8192
%122 = icmp eq i32 %121, 0
br i1 %122, label %125, label %123
123: ; preds = %120
%124 = 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.24, i64 0, i64 0))
br label %125
125: ; preds = %123, %120
%126 = and i32 %0, 134217728
%127 = icmp eq i32 %126, 0
br i1 %127, label %130, label %128
128: ; preds = %125
%129 = 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.25, i64 0, i64 0))
br label %130
130: ; preds = %128, %125
%131 = and i32 %0, 268435456
%132 = icmp eq i32 %131, 0
br i1 %132, label %210, label %207
133: ; preds = %1
%134 = 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.27, i64 0, i64 0))
%135 = and i32 %0, 2
%136 = icmp eq i32 %135, 0
br i1 %136, label %139, label %137
137: ; preds = %133
%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 ([8 x i8], [8 x i8]* @.str.28, i64 0, i64 0))
br label %139
139: ; preds = %137, %133
%140 = and i32 %0, 4
%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 ([12 x i8], [12 x i8]* @.str.29, i64 0, i64 0))
br label %144
144: ; preds = %142, %139
%145 = and i32 %0, 8
%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 ([10 x i8], [10 x i8]* @.str.30, i64 0, i64 0))
br label %149
149: ; preds = %147, %144
%150 = and i32 %0, 16
%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 ([10 x i8], [10 x i8]* @.str.31, i64 0, i64 0))
br label %154
154: ; preds = %152, %149
%155 = and i32 %0, 32
%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 ([9 x i8], [9 x i8]* @.str.32, i64 0, i64 0))
br label %159
159: ; preds = %157, %154
%160 = and i32 %0, 64
%161 = icmp eq i32 %160, 0
br i1 %161, label %164, label %162
162: ; preds = %159
%163 = 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.33, i64 0, i64 0))
br label %164
164: ; preds = %162, %159
%165 = and i32 %0, 128
%166 = icmp eq i32 %165, 0
br i1 %166, label %169, label %167
167: ; preds = %164
%168 = 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.34, i64 0, i64 0))
br label %169
169: ; preds = %167, %164
%170 = and i32 %0, 8192
%171 = icmp eq i32 %170, 0
br i1 %171, label %174, label %172
172: ; preds = %169
%173 = 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.35, i64 0, i64 0))
br label %174
174: ; preds = %172, %169
%175 = and i32 %0, 32768
%176 = icmp eq i32 %175, 0
br i1 %176, label %179, label %177
177: ; preds = %174
%178 = 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.36, i64 0, i64 0))
br label %179
179: ; preds = %177, %174
%180 = and i32 %0, 65536
%181 = icmp eq i32 %180, 0
br i1 %181, label %184, label %182
182: ; preds = %179
%183 = 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.37, i64 0, i64 0))
br label %184
184: ; preds = %182, %179
%185 = and i32 %0, 131072
%186 = icmp eq i32 %185, 0
br i1 %186, label %189, label %187
187: ; preds = %184
%188 = 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.38, i64 0, i64 0))
br label %189
189: ; preds = %187, %184
%190 = and i32 %0, 256
%191 = icmp eq i32 %190, 0
br i1 %191, label %194, label %192
192: ; preds = %189
%193 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.39, i64 0, i64 0))
br label %194
194: ; preds = %192, %189
%195 = and i32 %0, 1024
%196 = icmp eq i32 %195, 0
br i1 %196, label %199, label %197
197: ; preds = %194
%198 = 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.40, i64 0, i64 0))
br label %199
199: ; preds = %197, %194
%200 = and i32 %0, 16777216
%201 = icmp eq i32 %200, 0
br i1 %201, label %204, label %202
202: ; preds = %199
%203 = 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.41, i64 0, i64 0))
br label %204
204: ; preds = %202, %199
%205 = and i32 %0, 33554432
%206 = icmp eq i32 %205, 0
br i1 %206, label %210, label %207
207: ; preds = %204, %130
%208 = phi i8* [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str.26, i64 0, i64 0), %130 ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str.42, i64 0, i64 0), %204 ]
%209 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0), i8* %208)
br label %210
210: ; preds = %207, %204, %130
%211 = load i8, i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 0)
%212 = icmp eq i8 %211, 0
%213 = select i1 %212, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.43, i64 0, i64 0), i8* getelementptr inbounds ([512 x i8], [512 x i8]* @act_bit_name.buf, i64 0, i64 1)
ret i8* %213
}