int bc_iso3166_alpha2(const char *cc) {
  static const char codes[249][2] = {
      {'A', 'D'}, {'A', 'E'}, {'A', 'F'}, {'A', 'G'}, {'A', 'I'}, {'A', 'L'},
      {'A', 'M'}, {'A', 'O'}, {'A', 'Q'}, {'A', 'R'}, {'A', 'S'}, {'A', 'T'},
      {'A', 'U'}, {'A', 'W'}, {'A', 'X'}, {'A', 'Z'}, {'B', 'A'}, {'B', 'B'},
      {'B', 'D'}, {'B', 'E'}, {'B', 'F'}, {'B', 'G'}, {'B', 'H'}, {'B', 'I'},
      {'B', 'J'}, {'B', 'L'}, {'B', 'M'}, {'B', 'N'}, {'B', 'O'}, {'B', 'Q'},
      {'B', 'R'}, {'B', 'S'}, {'B', 'T'}, {'B', 'V'}, {'B', 'W'}, {'B', 'Y'},
      {'B', 'Z'}, {'C', 'A'}, {'C', 'C'}, {'C', 'D'}, {'C', 'F'}, {'C', 'G'},
      {'C', 'H'}, {'C', 'I'}, {'C', 'K'}, {'C', 'L'}, {'C', 'M'}, {'C', 'N'},
      {'C', 'O'}, {'C', 'R'}, {'C', 'U'}, {'C', 'V'}, {'C', 'W'}, {'C', 'X'},
      {'C', 'Y'}, {'C', 'Z'}, {'D', 'E'}, {'D', 'J'}, {'D', 'K'}, {'D', 'M'},
      {'D', 'O'}, {'D', 'Z'}, {'E', 'C'}, {'E', 'E'}, {'E', 'G'}, {'E', 'H'},
      {'E', 'R'}, {'E', 'S'}, {'E', 'T'}, {'F', 'I'}, {'F', 'J'}, {'F', 'K'},
      {'F', 'M'}, {'F', 'O'}, {'F', 'R'}, {'G', 'A'}, {'G', 'B'}, {'G', 'D'},
      {'G', 'E'}, {'G', 'F'}, {'G', 'G'}, {'G', 'H'}, {'G', 'I'}, {'G', 'L'},
      {'G', 'M'}, {'G', 'N'}, {'G', 'P'}, {'G', 'Q'}, {'G', 'R'}, {'G', 'S'},
      {'G', 'T'}, {'G', 'U'}, {'G', 'W'}, {'G', 'Y'}, {'H', 'K'}, {'H', 'M'},
      {'H', 'N'}, {'H', 'R'}, {'H', 'T'}, {'H', 'U'}, {'I', 'D'}, {'I', 'E'},
      {'I', 'L'}, {'I', 'M'}, {'I', 'N'}, {'I', 'O'}, {'I', 'Q'}, {'I', 'R'},
      {'I', 'S'}, {'I', 'T'}, {'J', 'E'}, {'J', 'M'}, {'J', 'O'}, {'J', 'P'},
      {'K', 'E'}, {'K', 'G'}, {'K', 'H'}, {'K', 'I'}, {'K', 'M'}, {'K', 'N'},
      {'K', 'P'}, {'K', 'R'}, {'K', 'W'}, {'K', 'Y'}, {'K', 'Z'}, {'L', 'A'},
      {'L', 'B'}, {'L', 'C'}, {'L', 'I'}, {'L', 'K'}, {'L', 'R'}, {'L', 'S'},
      {'L', 'T'}, {'L', 'U'}, {'L', 'V'}, {'L', 'Y'}, {'M', 'A'}, {'M', 'C'},
      {'M', 'D'}, {'M', 'E'}, {'M', 'F'}, {'M', 'G'}, {'M', 'H'}, {'M', 'K'},
      {'M', 'L'}, {'M', 'M'}, {'M', 'N'}, {'M', 'O'}, {'M', 'P'}, {'M', 'Q'},
      {'M', 'R'}, {'M', 'S'}, {'M', 'T'}, {'M', 'U'}, {'M', 'V'}, {'M', 'W'},
      {'M', 'X'}, {'M', 'Y'}, {'M', 'Z'}, {'N', 'A'}, {'N', 'C'}, {'N', 'E'},
      {'N', 'F'}, {'N', 'G'}, {'N', 'I'}, {'N', 'L'}, {'N', 'O'}, {'N', 'P'},
      {'N', 'R'}, {'N', 'U'}, {'N', 'Z'}, {'O', 'M'}, {'P', 'A'}, {'P', 'E'},
      {'P', 'F'}, {'P', 'G'}, {'P', 'H'}, {'P', 'K'}, {'P', 'L'}, {'P', 'M'},
      {'P', 'N'}, {'P', 'R'}, {'P', 'S'}, {'P', 'T'}, {'P', 'W'}, {'P', 'Y'},
      {'Q', 'A'}, {'R', 'E'}, {'R', 'O'}, {'R', 'S'}, {'R', 'U'}, {'R', 'W'},
      {'S', 'A'}, {'S', 'B'}, {'S', 'C'}, {'S', 'D'}, {'S', 'E'}, {'S', 'G'},
      {'S', 'H'}, {'S', 'I'}, {'S', 'J'}, {'S', 'K'}, {'S', 'L'}, {'S', 'M'},
      {'S', 'N'}, {'S', 'O'}, {'S', 'R'}, {'S', 'S'}, {'S', 'T'}, {'S', 'V'},
      {'S', 'X'}, {'S', 'Y'}, {'S', 'Z'}, {'T', 'C'}, {'T', 'D'}, {'T', 'F'},
      {'T', 'G'}, {'T', 'H'}, {'T', 'J'}, {'T', 'K'}, {'T', 'L'}, {'T', 'M'},
      {'T', 'N'}, {'T', 'O'}, {'T', 'R'}, {'T', 'T'}, {'T', 'V'}, {'T', 'W'},
      {'T', 'Z'}, {'U', 'A'}, {'U', 'G'}, {'U', 'M'}, {'U', 'S'}, {'U', 'Y'},
      {'U', 'Z'}, {'V', 'A'}, {'V', 'C'}, {'V', 'E'}, {'V', 'G'}, {'V', 'I'},
      {'V', 'N'}, {'V', 'U'}, {'W', 'F'}, {'W', 'S'}, {'Y', 'E'}, {'Y', 'T'},
      {'Z', 'A'}, {'Z', 'M'}, {'Z', 'W'},
  };
  int s = 0, e = sizeof(codes) / sizeof(codes[0]) - 1;
  while (s <= e) {
    int m = (s + e) / 2;
    int cmp = strncmp(codes[m], cc, 2);
    if (cmp < 0) {
      s = m + 1;
    } else if (cmp > 0) {
      e = m - 1;
    } else {
      return 1;
    }
  }
  return 0;
}


x86 assembly (clang, -O0):
<bc_iso3166_alpha2>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
mov    %rdi,-0x10(%rbp)
movl   $0x0,-0x14(%rbp)
movl   $0xf8,-0x18(%rbp)
mov    -0x14(%rbp),%eax
cmp    -0x18(%rbp),%eax
jg     11b0 <bc_iso3166_alpha2+0xa0>
mov    -0x14(%rbp),%eax
add    -0x18(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,-0x1c(%rbp)
movslq -0x1c(%rbp),%rax
lea    0xeae(%rip),%rdi
shl    $0x1,%rax
add    %rax,%rdi
mov    -0x10(%rbp),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
mov    %eax,-0x20(%rbp)
cmpl   $0x0,-0x20(%rbp)
jge    1182 <bc_iso3166_alpha2+0x72>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    11ab <bc_iso3166_alpha2+0x9b>
cmpl   $0x0,-0x20(%rbp)
jle    119a <bc_iso3166_alpha2+0x8a>
mov    -0x1c(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    11a6 <bc_iso3166_alpha2+0x96>
movl   $0x1,-0x4(%rbp)
jmp    11b7 <bc_iso3166_alpha2+0xa7>
jmp    11ab <bc_iso3166_alpha2+0x9b>
jmp    112a <bc_iso3166_alpha2+0x1a>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<bc_iso3166_alpha2>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
push   %rax
mov    %rdi,%r12
xor    %r14d,%r14d
mov    $0xf8,%r13d
lea    0xed2(%rip),%r15
xor    %ebx,%ebx
cmp    %r13d,%ebx
jg     1180 <bc_iso3166_alpha2+0x70>
cs nopw 0x0(%rax,%rax,1)
nop
lea    (%rbx,%r13,1),%eax
mov    %eax,%ebp
shr    $0x1f,%ebp
add    %eax,%ebp
sar    %ebp
movslq %ebp,%rax
lea    (%r15,%rax,2),%rdi
mov    $0x2,%edx
mov    %r12,%rsi
call   1030 <strncmp@plt>
test   %eax,%eax
jns    1170 <bc_iso3166_alpha2+0x60>
lea    0x1(%rbp),%ebx
cmp    %r13d,%ebp
jl     1140 <bc_iso3166_alpha2+0x30>
jmp    1180 <bc_iso3166_alpha2+0x70>
nop
add    $0xffffffff,%ebp
mov    %ebp,%r13d
test   %eax,%eax
jne    1130 <bc_iso3166_alpha2+0x20>
mov    $0x1,%r14d
mov    %r14d,%eax
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@bc_iso3166_alpha2.codes = internal constant [249 x [2 x i8]] [[2 x i8] c"AD", [2 x i8] c"AE", [2 x i8] c"AF", [2 x i8] c"AG", [2 x i8] c"AI", [2 x i8] c"AL", [2 x i8] c"AM", [2 x i8] c"AO", [2 x i8] c"AQ", [2 x i8] c"AR", [2 x i8] c"AS", [2 x i8] c"AT", [2 x i8] c"AU", [2 x i8] c"AW", [2 x i8] c"AX", [2 x i8] c"AZ", [2 x i8] c"BA", [2 x i8] c"BB", [2 x i8] c"BD", [2 x i8] c"BE", [2 x i8] c"BF", [2 x i8] c"BG", [2 x i8] c"BH", [2 x i8] c"BI", [2 x i8] c"BJ", [2 x i8] c"BL", [2 x i8] c"BM", [2 x i8] c"BN", [2 x i8] c"BO", [2 x i8] c"BQ", [2 x i8] c"BR", [2 x i8] c"BS", [2 x i8] c"BT", [2 x i8] c"BV", [2 x i8] c"BW", [2 x i8] c"BY", [2 x i8] c"BZ", [2 x i8] c"CA", [2 x i8] c"CC", [2 x i8] c"CD", [2 x i8] c"CF", [2 x i8] c"CG", [2 x i8] c"CH", [2 x i8] c"CI", [2 x i8] c"CK", [2 x i8] c"CL", [2 x i8] c"CM", [2 x i8] c"CN", [2 x i8] c"CO", [2 x i8] c"CR", [2 x i8] c"CU", [2 x i8] c"CV", [2 x i8] c"CW", [2 x i8] c"CX", [2 x i8] c"CY", [2 x i8] c"CZ", [2 x i8] c"DE", [2 x i8] c"DJ", [2 x i8] c"DK", [2 x i8] c"DM", [2 x i8] c"DO", [2 x i8] c"DZ", [2 x i8] c"EC", [2 x i8] c"EE", [2 x i8] c"EG", [2 x i8] c"EH", [2 x i8] c"ER", [2 x i8] c"ES", [2 x i8] c"ET", [2 x i8] c"FI", [2 x i8] c"FJ", [2 x i8] c"FK", [2 x i8] c"FM", [2 x i8] c"FO", [2 x i8] c"FR", [2 x i8] c"GA", [2 x i8] c"GB", [2 x i8] c"GD", [2 x i8] c"GE", [2 x i8] c"GF", [2 x i8] c"GG", [2 x i8] c"GH", [2 x i8] c"GI", [2 x i8] c"GL", [2 x i8] c"GM", [2 x i8] c"GN", [2 x i8] c"GP", [2 x i8] c"GQ", [2 x i8] c"GR", [2 x i8] c"GS", [2 x i8] c"GT", [2 x i8] c"GU", [2 x i8] c"GW", [2 x i8] c"GY", [2 x i8] c"HK", [2 x i8] c"HM", [2 x i8] c"HN", [2 x i8] c"HR", [2 x i8] c"HT", [2 x i8] c"HU", [2 x i8] c"ID", [2 x i8] c"IE", [2 x i8] c"IL", [2 x i8] c"IM", [2 x i8] c"IN", [2 x i8] c"IO", [2 x i8] c"IQ", [2 x i8] c"IR", [2 x i8] c"IS", [2 x i8] c"IT", [2 x i8] c"JE", [2 x i8] c"JM", [2 x i8] c"JO", [2 x i8] c"JP", [2 x i8] c"KE", [2 x i8] c"KG", [2 x i8] c"KH", [2 x i8] c"KI", [2 x i8] c"KM", [2 x i8] c"KN", [2 x i8] c"KP", [2 x i8] c"KR", [2 x i8] c"KW", [2 x i8] c"KY", [2 x i8] c"KZ", [2 x i8] c"LA", [2 x i8] c"LB", [2 x i8] c"LC", [2 x i8] c"LI", [2 x i8] c"LK", [2 x i8] c"LR", [2 x i8] c"LS", [2 x i8] c"LT", [2 x i8] c"LU", [2 x i8] c"LV", [2 x i8] c"LY", [2 x i8] c"MA", [2 x i8] c"MC", [2 x i8] c"MD", [2 x i8] c"ME", [2 x i8] c"MF", [2 x i8] c"MG", [2 x i8] c"MH", [2 x i8] c"MK", [2 x i8] c"ML", [2 x i8] c"MM", [2 x i8] c"MN", [2 x i8] c"MO", [2 x i8] c"MP", [2 x i8] c"MQ", [2 x i8] c"MR", [2 x i8] c"MS", [2 x i8] c"MT", [2 x i8] c"MU", [2 x i8] c"MV", [2 x i8] c"MW", [2 x i8] c"MX", [2 x i8] c"MY", [2 x i8] c"MZ", [2 x i8] c"NA", [2 x i8] c"NC", [2 x i8] c"NE", [2 x i8] c"NF", [2 x i8] c"NG", [2 x i8] c"NI", [2 x i8] c"NL", [2 x i8] c"NO", [2 x i8] c"NP", [2 x i8] c"NR", [2 x i8] c"NU", [2 x i8] c"NZ", [2 x i8] c"OM", [2 x i8] c"PA", [2 x i8] c"PE", [2 x i8] c"PF", [2 x i8] c"PG", [2 x i8] c"PH", [2 x i8] c"PK", [2 x i8] c"PL", [2 x i8] c"PM", [2 x i8] c"PN", [2 x i8] c"PR", [2 x i8] c"PS", [2 x i8] c"PT", [2 x i8] c"PW", [2 x i8] c"PY", [2 x i8] c"QA", [2 x i8] c"RE", [2 x i8] c"RO", [2 x i8] c"RS", [2 x i8] c"RU", [2 x i8] c"RW", [2 x i8] c"SA", [2 x i8] c"SB", [2 x i8] c"SC", [2 x i8] c"SD", [2 x i8] c"SE", [2 x i8] c"SG", [2 x i8] c"SH", [2 x i8] c"SI", [2 x i8] c"SJ", [2 x i8] c"SK", [2 x i8] c"SL", [2 x i8] c"SM", [2 x i8] c"SN", [2 x i8] c"SO", [2 x i8] c"SR", [2 x i8] c"SS", [2 x i8] c"ST", [2 x i8] c"SV", [2 x i8] c"SX", [2 x i8] c"SY", [2 x i8] c"SZ", [2 x i8] c"TC", [2 x i8] c"TD", [2 x i8] c"TF", [2 x i8] c"TG", [2 x i8] c"TH", [2 x i8] c"TJ", [2 x i8] c"TK", [2 x i8] c"TL", [2 x i8] c"TM", [2 x i8] c"TN", [2 x i8] c"TO", [2 x i8] c"TR", [2 x i8] c"TT", [2 x i8] c"TV", [2 x i8] c"TW", [2 x i8] c"TZ", [2 x i8] c"UA", [2 x i8] c"UG", [2 x i8] c"UM", [2 x i8] c"US", [2 x i8] c"UY", [2 x i8] c"UZ", [2 x i8] c"VA", [2 x i8] c"VC", [2 x i8] c"VE", [2 x i8] c"VG", [2 x i8] c"VI", [2 x i8] c"VN", [2 x i8] c"VU", [2 x i8] c"WF", [2 x i8] c"WS", [2 x i8] c"YE", [2 x i8] c"YT", [2 x i8] c"ZA", [2 x i8] c"ZM", [2 x i8] c"ZW"]
define i32 @bc_iso3166_alpha2(i8* %0) {
%2 = alloca i32
%3 = alloca i8*
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
store i8* %0, i8** %3
store i32 0, i32* %4
store i32 248, i32* %5
br label %8
8: ; preds = %36, %1
%9 = load i32, i32* %4
%10 = load i32, i32* %5
%11 = icmp sle i32 %9, %10
br i1 %11, label %12, label %37
12: ; preds = %8
%13 = load i32, i32* %4
%14 = load i32, i32* %5
%15 = add nsw i32 %13, %14
%16 = sdiv i32 %15, 2
store i32 %16, i32* %6
%17 = load i32, i32* %6
%18 = sext i32 %17 to i64
%19 = getelementptr inbounds [249 x [2 x i8]], [249 x [2 x i8]]* @bc_iso3166_alpha2.codes, i64 0, i64 %18
%20 = getelementptr inbounds [2 x i8], [2 x i8]* %19, i64 0, i64 0
%21 = load i8*, i8** %3
%22 = call i32 @strncmp(i8* %20, i8* %21, i64 2)
store i32 %22, i32* %7
%23 = load i32, i32* %7
%24 = icmp slt i32 %23, 0
br i1 %24, label %25, label %28
25: ; preds = %12
%26 = load i32, i32* %6
%27 = add nsw i32 %26, 1
store i32 %27, i32* %4
br label %36
28: ; preds = %12
%29 = load i32, i32* %7
%30 = icmp sgt i32 %29, 0
br i1 %30, label %31, label %34
31: ; preds = %28
%32 = load i32, i32* %6
%33 = sub nsw i32 %32, 1
store i32 %33, i32* %5
br label %35
34: ; preds = %28
store i32 1, i32* %2
br label %38
35: ; preds = %31
br label %36
36: ; preds = %35, %25
br label %8
37: ; preds = %8
store i32 0, i32* %2
br label %38
38: ; preds = %37, %34
%39 = load i32, i32* %2
ret i32 %39
}

LLVM IR (-O2):
@bc_iso3166_alpha2.codes = internal constant [249 x [2 x i8]] [[2 x i8] c"AD", [2 x i8] c"AE", [2 x i8] c"AF", [2 x i8] c"AG", [2 x i8] c"AI", [2 x i8] c"AL", [2 x i8] c"AM", [2 x i8] c"AO", [2 x i8] c"AQ", [2 x i8] c"AR", [2 x i8] c"AS", [2 x i8] c"AT", [2 x i8] c"AU", [2 x i8] c"AW", [2 x i8] c"AX", [2 x i8] c"AZ", [2 x i8] c"BA", [2 x i8] c"BB", [2 x i8] c"BD", [2 x i8] c"BE", [2 x i8] c"BF", [2 x i8] c"BG", [2 x i8] c"BH", [2 x i8] c"BI", [2 x i8] c"BJ", [2 x i8] c"BL", [2 x i8] c"BM", [2 x i8] c"BN", [2 x i8] c"BO", [2 x i8] c"BQ", [2 x i8] c"BR", [2 x i8] c"BS", [2 x i8] c"BT", [2 x i8] c"BV", [2 x i8] c"BW", [2 x i8] c"BY", [2 x i8] c"BZ", [2 x i8] c"CA", [2 x i8] c"CC", [2 x i8] c"CD", [2 x i8] c"CF", [2 x i8] c"CG", [2 x i8] c"CH", [2 x i8] c"CI", [2 x i8] c"CK", [2 x i8] c"CL", [2 x i8] c"CM", [2 x i8] c"CN", [2 x i8] c"CO", [2 x i8] c"CR", [2 x i8] c"CU", [2 x i8] c"CV", [2 x i8] c"CW", [2 x i8] c"CX", [2 x i8] c"CY", [2 x i8] c"CZ", [2 x i8] c"DE", [2 x i8] c"DJ", [2 x i8] c"DK", [2 x i8] c"DM", [2 x i8] c"DO", [2 x i8] c"DZ", [2 x i8] c"EC", [2 x i8] c"EE", [2 x i8] c"EG", [2 x i8] c"EH", [2 x i8] c"ER", [2 x i8] c"ES", [2 x i8] c"ET", [2 x i8] c"FI", [2 x i8] c"FJ", [2 x i8] c"FK", [2 x i8] c"FM", [2 x i8] c"FO", [2 x i8] c"FR", [2 x i8] c"GA", [2 x i8] c"GB", [2 x i8] c"GD", [2 x i8] c"GE", [2 x i8] c"GF", [2 x i8] c"GG", [2 x i8] c"GH", [2 x i8] c"GI", [2 x i8] c"GL", [2 x i8] c"GM", [2 x i8] c"GN", [2 x i8] c"GP", [2 x i8] c"GQ", [2 x i8] c"GR", [2 x i8] c"GS", [2 x i8] c"GT", [2 x i8] c"GU", [2 x i8] c"GW", [2 x i8] c"GY", [2 x i8] c"HK", [2 x i8] c"HM", [2 x i8] c"HN", [2 x i8] c"HR", [2 x i8] c"HT", [2 x i8] c"HU", [2 x i8] c"ID", [2 x i8] c"IE", [2 x i8] c"IL", [2 x i8] c"IM", [2 x i8] c"IN", [2 x i8] c"IO", [2 x i8] c"IQ", [2 x i8] c"IR", [2 x i8] c"IS", [2 x i8] c"IT", [2 x i8] c"JE", [2 x i8] c"JM", [2 x i8] c"JO", [2 x i8] c"JP", [2 x i8] c"KE", [2 x i8] c"KG", [2 x i8] c"KH", [2 x i8] c"KI", [2 x i8] c"KM", [2 x i8] c"KN", [2 x i8] c"KP", [2 x i8] c"KR", [2 x i8] c"KW", [2 x i8] c"KY", [2 x i8] c"KZ", [2 x i8] c"LA", [2 x i8] c"LB", [2 x i8] c"LC", [2 x i8] c"LI", [2 x i8] c"LK", [2 x i8] c"LR", [2 x i8] c"LS", [2 x i8] c"LT", [2 x i8] c"LU", [2 x i8] c"LV", [2 x i8] c"LY", [2 x i8] c"MA", [2 x i8] c"MC", [2 x i8] c"MD", [2 x i8] c"ME", [2 x i8] c"MF", [2 x i8] c"MG", [2 x i8] c"MH", [2 x i8] c"MK", [2 x i8] c"ML", [2 x i8] c"MM", [2 x i8] c"MN", [2 x i8] c"MO", [2 x i8] c"MP", [2 x i8] c"MQ", [2 x i8] c"MR", [2 x i8] c"MS", [2 x i8] c"MT", [2 x i8] c"MU", [2 x i8] c"MV", [2 x i8] c"MW", [2 x i8] c"MX", [2 x i8] c"MY", [2 x i8] c"MZ", [2 x i8] c"NA", [2 x i8] c"NC", [2 x i8] c"NE", [2 x i8] c"NF", [2 x i8] c"NG", [2 x i8] c"NI", [2 x i8] c"NL", [2 x i8] c"NO", [2 x i8] c"NP", [2 x i8] c"NR", [2 x i8] c"NU", [2 x i8] c"NZ", [2 x i8] c"OM", [2 x i8] c"PA", [2 x i8] c"PE", [2 x i8] c"PF", [2 x i8] c"PG", [2 x i8] c"PH", [2 x i8] c"PK", [2 x i8] c"PL", [2 x i8] c"PM", [2 x i8] c"PN", [2 x i8] c"PR", [2 x i8] c"PS", [2 x i8] c"PT", [2 x i8] c"PW", [2 x i8] c"PY", [2 x i8] c"QA", [2 x i8] c"RE", [2 x i8] c"RO", [2 x i8] c"RS", [2 x i8] c"RU", [2 x i8] c"RW", [2 x i8] c"SA", [2 x i8] c"SB", [2 x i8] c"SC", [2 x i8] c"SD", [2 x i8] c"SE", [2 x i8] c"SG", [2 x i8] c"SH", [2 x i8] c"SI", [2 x i8] c"SJ", [2 x i8] c"SK", [2 x i8] c"SL", [2 x i8] c"SM", [2 x i8] c"SN", [2 x i8] c"SO", [2 x i8] c"SR", [2 x i8] c"SS", [2 x i8] c"ST", [2 x i8] c"SV", [2 x i8] c"SX", [2 x i8] c"SY", [2 x i8] c"SZ", [2 x i8] c"TC", [2 x i8] c"TD", [2 x i8] c"TF", [2 x i8] c"TG", [2 x i8] c"TH", [2 x i8] c"TJ", [2 x i8] c"TK", [2 x i8] c"TL", [2 x i8] c"TM", [2 x i8] c"TN", [2 x i8] c"TO", [2 x i8] c"TR", [2 x i8] c"TT", [2 x i8] c"TV", [2 x i8] c"TW", [2 x i8] c"TZ", [2 x i8] c"UA", [2 x i8] c"UG", [2 x i8] c"UM", [2 x i8] c"US", [2 x i8] c"UY", [2 x i8] c"UZ", [2 x i8] c"VA", [2 x i8] c"VC", [2 x i8] c"VE", [2 x i8] c"VG", [2 x i8] c"VI", [2 x i8] c"VN", [2 x i8] c"VU", [2 x i8] c"WF", [2 x i8] c"WS", [2 x i8] c"YE", [2 x i8] c"YT", [2 x i8] c"ZA", [2 x i8] c"ZM", [2 x i8] c"ZW"]
define i32 @bc_iso3166_alpha2(i8* nocapture %0) {
br label %2
2: ; preds = %17, %1
%3 = phi i32 [ %19, %17 ], [ 248, %1 ]
%4 = phi i32 [ %7, %17 ], [ 0, %1 ]
%5 = icmp sgt i32 %4, %3
br i1 %5, label %20, label %6
6: ; preds = %2, %14
%7 = phi i32 [ %15, %14 ], [ %4, %2 ]
%8 = add nsw i32 %7, %3
%9 = sdiv i32 %8, 2
%10 = sext i32 %9 to i64
%11 = getelementptr inbounds [249 x [2 x i8]], [249 x [2 x i8]]* @bc_iso3166_alpha2.codes, i64 0, i64 %10, i64 0
%12 = tail call i32 @strncmp(i8* %11, i8* dereferenceable(1) %0, i64 2)
%13 = icmp slt i32 %12, 0
br i1 %13, label %14, label %17
14: ; preds = %6
%15 = add nsw i32 %9, 1
%16 = icmp slt i32 %9, %3
br i1 %16, label %6, label %20
17: ; preds = %6
%18 = icmp eq i32 %12, 0
%19 = add nsw i32 %9, -1
br i1 %18, label %20, label %2
20: ; preds = %17, %2, %14
%21 = phi i32 [ 0, %14 ], [ 0, %2 ], [ 1, %17 ]
ret i32 %21
}