int map_parameter_landsurface(int center, int disc, int param_cat,
                              int param_num) {
  (void)(disc);
  switch (param_cat) {
  case 0:
    switch (param_num) {
    case 0:
      return 81;
    case 1:
      return 83;
    case 2:
      return 85;
    case 3:
      return 86;
    case 4:
      return 87;
    case 5:
      return 90;
    case 192:
      switch (center) {
      case 7:
        return 144;
      default:
        break;
      }
    case 193:
      switch (center) {
      case 7:
        return 155;
      default:
        break;
      }
    case 194:
      switch (center) {
      case 7:
        return 207;
      default:
        break;
      }
    case 195:
      switch (center) {
      case 7:
        return 208;
      default:
        break;
      }
    case 196:
      switch (center) {
      case 7:
        return 223;
      default:
        break;
      }
    case 197:
      switch (center) {
      case 7:
        return 226;
      default:
        break;
      }
    case 198:
      switch (center) {
      case 7:
        return 225;
      default:
        break;
      }
    case 207:
      switch (center) {
      case 7:
        return 201;
      default:
        break;
      }
    default:
      break;
    }
    break;
  default:
    break;
  }
  return -1;
}


x86 assembly (clang, -O0):
<map_parameter_landsurface>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    %edx,-0x10(%rbp)
mov    %ecx,-0x14(%rbp)
mov    -0x10(%rbp),%eax
test   %eax,%eax
jne    13aa <map_parameter_landsurface+0x2aa>
jmp    1120 <map_parameter_landsurface+0x20>
mov    -0x14(%rbp),%eax
mov    %eax,-0x18(%rbp)
test   %eax,%eax
je     1220 <map_parameter_landsurface+0x120>
jmp    1133 <map_parameter_landsurface+0x33>
mov    -0x18(%rbp),%eax
sub    $0x1,%eax
je     122c <map_parameter_landsurface+0x12c>
jmp    1144 <map_parameter_landsurface+0x44>
mov    -0x18(%rbp),%eax
sub    $0x2,%eax
je     1238 <map_parameter_landsurface+0x138>
jmp    1155 <map_parameter_landsurface+0x55>
mov    -0x18(%rbp),%eax
sub    $0x3,%eax
je     1244 <map_parameter_landsurface+0x144>
jmp    1166 <map_parameter_landsurface+0x66>
mov    -0x18(%rbp),%eax
sub    $0x4,%eax
je     1250 <map_parameter_landsurface+0x150>
jmp    1177 <map_parameter_landsurface+0x77>
mov    -0x18(%rbp),%eax
sub    $0x5,%eax
je     125c <map_parameter_landsurface+0x15c>
jmp    1188 <map_parameter_landsurface+0x88>
mov    -0x18(%rbp),%eax
sub    $0xc0,%eax
je     1268 <map_parameter_landsurface+0x168>
jmp    119b <map_parameter_landsurface+0x9b>
mov    -0x18(%rbp),%eax
sub    $0xc1,%eax
je     128f <map_parameter_landsurface+0x18f>
jmp    11ae <map_parameter_landsurface+0xae>
mov    -0x18(%rbp),%eax
sub    $0xc2,%eax
je     12b6 <map_parameter_landsurface+0x1b6>
jmp    11c1 <map_parameter_landsurface+0xc1>
mov    -0x18(%rbp),%eax
sub    $0xc3,%eax
je     12dd <map_parameter_landsurface+0x1dd>
jmp    11d4 <map_parameter_landsurface+0xd4>
mov    -0x18(%rbp),%eax
sub    $0xc4,%eax
je     1304 <map_parameter_landsurface+0x204>
jmp    11e7 <map_parameter_landsurface+0xe7>
mov    -0x18(%rbp),%eax
sub    $0xc5,%eax
je     132b <map_parameter_landsurface+0x22b>
jmp    11fa <map_parameter_landsurface+0xfa>
mov    -0x18(%rbp),%eax
sub    $0xc6,%eax
je     1352 <map_parameter_landsurface+0x252>
jmp    120d <map_parameter_landsurface+0x10d>
mov    -0x18(%rbp),%eax
sub    $0xcf,%eax
je     1379 <map_parameter_landsurface+0x279>
jmp    13a0 <map_parameter_landsurface+0x2a0>
movl   $0x51,-0x4(%rbp)
jmp    13b6 <map_parameter_landsurface+0x2b6>
movl   $0x53,-0x4(%rbp)
jmp    13b6 <map_parameter_landsurface+0x2b6>
movl   $0x55,-0x4(%rbp)
jmp    13b6 <map_parameter_landsurface+0x2b6>
movl   $0x56,-0x4(%rbp)
jmp    13b6 <map_parameter_landsurface+0x2b6>
movl   $0x57,-0x4(%rbp)
jmp    13b6 <map_parameter_landsurface+0x2b6>
movl   $0x5a,-0x4(%rbp)
jmp    13b6 <map_parameter_landsurface+0x2b6>
mov    -0x8(%rbp),%eax
sub    $0x7,%eax
jne    1285 <map_parameter_landsurface+0x185>
jmp    1279 <map_parameter_landsurface+0x179>
movl   $0x90,-0x4(%rbp)
jmp    13b6 <map_parameter_landsurface+0x2b6>
jmp    128a <map_parameter_landsurface+0x18a>
jmp    128f <map_parameter_landsurface+0x18f>
mov    -0x8(%rbp),%eax
sub    $0x7,%eax
jne    12ac <map_parameter_landsurface+0x1ac>
jmp    12a0 <map_parameter_landsurface+0x1a0>
movl   $0x9b,-0x4(%rbp)
jmp    13b6 <map_parameter_landsurface+0x2b6>
jmp    12b1 <map_parameter_landsurface+0x1b1>
jmp    12b6 <map_parameter_landsurface+0x1b6>
mov    -0x8(%rbp),%eax
sub    $0x7,%eax
jne    12d3 <map_parameter_landsurface+0x1d3>
jmp    12c7 <map_parameter_landsurface+0x1c7>
movl   $0xcf,-0x4(%rbp)
jmp    13b6 <map_parameter_landsurface+0x2b6>
jmp    12d8 <map_parameter_landsurface+0x1d8>
jmp    12dd <map_parameter_landsurface+0x1dd>
mov    -0x8(%rbp),%eax
sub    $0x7,%eax
jne    12fa <map_parameter_landsurface+0x1fa>
jmp    12ee <map_parameter_landsurface+0x1ee>
movl   $0xd0,-0x4(%rbp)
jmp    13b6 <map_parameter_landsurface+0x2b6>
jmp    12ff <map_parameter_landsurface+0x1ff>
jmp    1304 <map_parameter_landsurface+0x204>
mov    -0x8(%rbp),%eax
sub    $0x7,%eax
jne    1321 <map_parameter_landsurface+0x221>
jmp    1315 <map_parameter_landsurface+0x215>
movl   $0xdf,-0x4(%rbp)
jmp    13b6 <map_parameter_landsurface+0x2b6>
jmp    1326 <map_parameter_landsurface+0x226>
jmp    132b <map_parameter_landsurface+0x22b>
mov    -0x8(%rbp),%eax
sub    $0x7,%eax
jne    1348 <map_parameter_landsurface+0x248>
jmp    133c <map_parameter_landsurface+0x23c>
movl   $0xe2,-0x4(%rbp)
jmp    13b6 <map_parameter_landsurface+0x2b6>
jmp    134d <map_parameter_landsurface+0x24d>
jmp    1352 <map_parameter_landsurface+0x252>
mov    -0x8(%rbp),%eax
sub    $0x7,%eax
jne    136f <map_parameter_landsurface+0x26f>
jmp    1363 <map_parameter_landsurface+0x263>
movl   $0xe1,-0x4(%rbp)
jmp    13b6 <map_parameter_landsurface+0x2b6>
jmp    1374 <map_parameter_landsurface+0x274>
jmp    1379 <map_parameter_landsurface+0x279>
mov    -0x8(%rbp),%eax
sub    $0x7,%eax
jne    1396 <map_parameter_landsurface+0x296>
jmp    138a <map_parameter_landsurface+0x28a>
movl   $0xc9,-0x4(%rbp)
jmp    13b6 <map_parameter_landsurface+0x2b6>
jmp    139b <map_parameter_landsurface+0x29b>
jmp    13a0 <map_parameter_landsurface+0x2a0>
jmp    13a5 <map_parameter_landsurface+0x2a5>
jmp    13af <map_parameter_landsurface+0x2af>
jmp    13af <map_parameter_landsurface+0x2af>
movl   $0xffffffff,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<map_parameter_landsurface>:
test   %edx,%edx
je     110a <map_parameter_landsurface+0xa>
mov    $0xffffffff,%eax
ret
lea    -0xc0(%rcx),%eax
cmp    $0xf,%eax
ja     1131 <map_parameter_landsurface+0x31>
lea    0xefc(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    $0x90,%eax
cmp    $0x7,%edi
jne    1104 <map_parameter_landsurface+0x4>
jmp    1109 <map_parameter_landsurface+0x9>
cmp    $0x5,%ecx
ja     1104 <map_parameter_landsurface+0x4>
mov    $0x51,%eax
mov    %ecx,%ecx
lea    0xebc(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    $0x53,%eax
ret
mov    $0x9b,%eax
cmp    $0x7,%edi
jne    1104 <map_parameter_landsurface+0x4>
jmp    1109 <map_parameter_landsurface+0x9>
mov    $0xcf,%eax
cmp    $0x7,%edi
jne    1104 <map_parameter_landsurface+0x4>
jmp    1109 <map_parameter_landsurface+0x9>
mov    $0xd0,%eax
cmp    $0x7,%edi
jne    1104 <map_parameter_landsurface+0x4>
jmp    1109 <map_parameter_landsurface+0x9>
mov    $0xdf,%eax
cmp    $0x7,%edi
jne    1104 <map_parameter_landsurface+0x4>
jmp    1109 <map_parameter_landsurface+0x9>
mov    $0xe2,%eax
cmp    $0x7,%edi
jne    1104 <map_parameter_landsurface+0x4>
jmp    1109 <map_parameter_landsurface+0x9>
mov    $0xe1,%eax
cmp    $0x7,%edi
jne    1104 <map_parameter_landsurface+0x4>
jmp    1109 <map_parameter_landsurface+0x9>
mov    $0xc9,%eax
cmp    $0x7,%edi
jne    1104 <map_parameter_landsurface+0x4>
jmp    1109 <map_parameter_landsurface+0x9>
mov    $0x55,%eax
ret
mov    $0x56,%eax
ret
mov    $0x57,%eax
ret
mov    $0x5a,%eax
ret

LLVM IR (-O0):
define i32 @map_parameter_landsurface(i32 %0, i32 %1, i32 %2, i32 %3) {
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
store i32 %0, i32* %6
store i32 %1, i32* %7
store i32 %2, i32* %8
store i32 %3, i32* %9
%10 = load i32, i32* %7
%11 = load i32, i32* %8
switch i32 %11, label %62 [
i32 0, label %12
]
12: ; preds = %4
%13 = load i32, i32* %9
switch i32 %13, label %60 [
i32 0, label %14
i32 1, label %15
i32 2, label %16
i32 3, label %17
i32 4, label %18
i32 5, label %19
i32 192, label %20
i32 193, label %25
i32 194, label %30
i32 195, label %35
i32 196, label %40
i32 197, label %45
i32 198, label %50
i32 207, label %55
]
14: ; preds = %12
store i32 81, i32* %5
br label %64
15: ; preds = %12
store i32 83, i32* %5
br label %64
16: ; preds = %12
store i32 85, i32* %5
br label %64
17: ; preds = %12
store i32 86, i32* %5
br label %64
18: ; preds = %12
store i32 87, i32* %5
br label %64
19: ; preds = %12
store i32 90, i32* %5
br label %64
20: ; preds = %12
%21 = load i32, i32* %6
switch i32 %21, label %23 [
i32 7, label %22
]
22: ; preds = %20
store i32 144, i32* %5
br label %64
23: ; preds = %20
br label %24
24: ; preds = %23
br label %25
25: ; preds = %12, %24
%26 = load i32, i32* %6
switch i32 %26, label %28 [
i32 7, label %27
]
27: ; preds = %25
store i32 155, i32* %5
br label %64
28: ; preds = %25
br label %29
29: ; preds = %28
br label %30
30: ; preds = %12, %29
%31 = load i32, i32* %6
switch i32 %31, label %33 [
i32 7, label %32
]
32: ; preds = %30
store i32 207, i32* %5
br label %64
33: ; preds = %30
br label %34
34: ; preds = %33
br label %35
35: ; preds = %12, %34
%36 = load i32, i32* %6
switch i32 %36, label %38 [
i32 7, label %37
]
37: ; preds = %35
store i32 208, i32* %5
br label %64
38: ; preds = %35
br label %39
39: ; preds = %38
br label %40
40: ; preds = %12, %39
%41 = load i32, i32* %6
switch i32 %41, label %43 [
i32 7, label %42
]
42: ; preds = %40
store i32 223, i32* %5
br label %64
43: ; preds = %40
br label %44
44: ; preds = %43
br label %45
45: ; preds = %12, %44
%46 = load i32, i32* %6
switch i32 %46, label %48 [
i32 7, label %47
]
47: ; preds = %45
store i32 226, i32* %5
br label %64
48: ; preds = %45
br label %49
49: ; preds = %48
br label %50
50: ; preds = %12, %49
%51 = load i32, i32* %6
switch i32 %51, label %53 [
i32 7, label %52
]
52: ; preds = %50
store i32 225, i32* %5
br label %64
53: ; preds = %50
br label %54
54: ; preds = %53
br label %55
55: ; preds = %12, %54
%56 = load i32, i32* %6
switch i32 %56, label %58 [
i32 7, label %57
]
57: ; preds = %55
store i32 201, i32* %5
br label %64
58: ; preds = %55
br label %59
59: ; preds = %58
br label %60
60: ; preds = %12, %59
br label %61
61: ; preds = %60
br label %63
62: ; preds = %4
br label %63
63: ; preds = %62, %61
store i32 -1, i32* %5
br label %64
64: ; preds = %63, %57, %52, %47, %42, %37, %32, %27, %22, %19, %18, %17, %16, %15, %14
%65 = load i32, i32* %5
ret i32 %65
}

LLVM IR (-O2):
define i32 @map_parameter_landsurface(i32 %0, i32 %1, i32 %2, i32 %3) {
%5 = icmp eq i32 %2, 0
br i1 %5, label %6, label %28
6: ; preds = %4
switch i32 %3, label %28 [
i32 0, label %29
i32 1, label %7
i32 2, label %8
i32 3, label %9
i32 4, label %10
i32 5, label %11
i32 192, label %12
i32 193, label %14
i32 194, label %16
i32 195, label %18
i32 196, label %20
i32 197, label %22
i32 198, label %24
i32 207, label %26
]
7: ; preds = %6
br label %29
8: ; preds = %6
br label %29
9: ; preds = %6
br label %29
10: ; preds = %6
br label %29
11: ; preds = %6
br label %29
12: ; preds = %6
%13 = icmp eq i32 %0, 7
br i1 %13, label %29, label %28
14: ; preds = %6
%15 = icmp eq i32 %0, 7
br i1 %15, label %29, label %28
16: ; preds = %6
%17 = icmp eq i32 %0, 7
br i1 %17, label %29, label %28
18: ; preds = %6
%19 = icmp eq i32 %0, 7
br i1 %19, label %29, label %28
20: ; preds = %6
%21 = icmp eq i32 %0, 7
br i1 %21, label %29, label %28
22: ; preds = %6
%23 = icmp eq i32 %0, 7
br i1 %23, label %29, label %28
24: ; preds = %6
%25 = icmp eq i32 %0, 7
br i1 %25, label %29, label %28
26: ; preds = %6
%27 = icmp eq i32 %0, 7
br i1 %27, label %29, label %28
28: ; preds = %24, %22, %20, %18, %16, %14, %12, %4, %26, %6
br label %29
29: ; preds = %24, %22, %20, %18, %16, %14, %12, %26, %6, %28, %11, %10, %9, %8, %7
%30 = phi i32 [ -1, %28 ], [ 90, %11 ], [ 87, %10 ], [ 86, %9 ], [ 85, %8 ], [ 83, %7 ], [ 81, %6 ], [ 144, %12 ], [ 155, %14 ], [ 207, %16 ], [ 208, %18 ], [ 223, %20 ], [ 226, %22 ], [ 225, %24 ], [ 201, %26 ]
ret i32 %30
}