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

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
unsigned int KEY_POWER;
unsigned int KEY_VOLUMEDOWN;
unsigned int KEY_VOLUMEUP;
int /*<<< orphan*/ oem_get_download_mode();
int /*<<< orphan*/ panic(char *);
void oem_check_force_dump_key(unsigned int code, int value) {
  static enum {
    NONE,
    STEP1,
    STEP2,
    STEP3,
    STEP4,
    STEP5,
    STEP6,
    STEP7,
    STEP8,
    STEP9,
    STEP10,
    STEP11
  } state = NONE;
  if (!oem_get_download_mode())
    return;
  switch (state) {
  case NONE:
    if (code == KEY_VOLUMEUP && value) {
      state = STEP1;
    } else {
      state = NONE;
    }
    break;
  case STEP1:
    if (code == KEY_VOLUMEUP && !value) {
      state = STEP2;
    } else {
      state = NONE;
    }
    break;
  case STEP2:
    if (code == KEY_VOLUMEDOWN && value) {
      state = STEP3;
    } else {
      state = NONE;
    }
    break;
  case STEP3:
    if (code == KEY_VOLUMEDOWN && !value) {
      state = STEP4;
    } else {
      state = NONE;
    }
    break;
  case STEP4:
    if (code == KEY_VOLUMEUP && value) {
      state = STEP5;
    } else {
      state = NONE;
    }
    break;
  case STEP5:
    if (code == KEY_POWER && value) {
      state = STEP6;
    } else {
      state = NONE;
    }
    break;
  case STEP6:
    if (code == KEY_POWER && !value) {
      state = STEP7;
    } else {
      state = NONE;
    }
    break;
  case STEP7:
    if (code == KEY_POWER && value) {
      state = STEP8;
    } else {
      state = NONE;
    }
    break;
  case STEP8:
    if (code == KEY_POWER && !value) {
      state = STEP9;
    } else {
      state = NONE;
    }
    break;
  case STEP9:
    if (code == KEY_VOLUMEUP && !value) {
      state = STEP10;
    } else {
      state = NONE;
    }
    break;
  case STEP10:
    if (code == KEY_VOLUMEUP && value) {
      state = STEP11;
    } else {
      state = NONE;
    }
    break;
  case STEP11:
    if (code == KEY_POWER && value) {
      panic("Force Dump");
    } else {
      state = NONE;
    }
    break;
  }
}


x86 assembly (clang, -O0):
<oem_check_force_dump_key>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    $0x0,%al
call   1030 <oem_get_download_mode@plt>
cmp    $0x0,%eax
jne    1143 <oem_check_force_dump_key+0x23>
jmp    1425 <oem_check_force_dump_key+0x305>
mov    0x2eeb(%rip),%eax
mov    %rax,-0x10(%rbp)
sub    $0xb,%rax
ja     1425 <oem_check_force_dump_key+0x305>
mov    -0x10(%rbp),%rax
lea    0xe9e(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x4(%rbp),%eax
mov    0x2e53(%rip),%rcx
cmp    (%rcx),%eax
jne    1196 <oem_check_force_dump_key+0x76>
cmpl   $0x0,-0x8(%rbp)
je     1196 <oem_check_force_dump_key+0x76>
movl   $0x1,0x2ea3(%rip)
jmp    11a0 <oem_check_force_dump_key+0x80>
movl   $0x0,0x2e94(%rip)
jmp    1425 <oem_check_force_dump_key+0x305>
mov    -0x4(%rbp),%eax
mov    0x2e19(%rip),%rcx
cmp    (%rcx),%eax
jne    11d0 <oem_check_force_dump_key+0xb0>
cmpl   $0x0,-0x8(%rbp)
jne    11d0 <oem_check_force_dump_key+0xb0>
movl   $0x2,0x2e69(%rip)
jmp    11da <oem_check_force_dump_key+0xba>
movl   $0x0,0x2e5a(%rip)
jmp    1425 <oem_check_force_dump_key+0x305>
mov    -0x4(%rbp),%eax
mov    0x2df7(%rip),%rcx
cmp    (%rcx),%eax
jne    120a <oem_check_force_dump_key+0xea>
cmpl   $0x0,-0x8(%rbp)
je     120a <oem_check_force_dump_key+0xea>
movl   $0x3,0x2e2f(%rip)
jmp    1214 <oem_check_force_dump_key+0xf4>
movl   $0x0,0x2e20(%rip)
jmp    1425 <oem_check_force_dump_key+0x305>
mov    -0x4(%rbp),%eax
mov    0x2dbd(%rip),%rcx
cmp    (%rcx),%eax
jne    1244 <oem_check_force_dump_key+0x124>
cmpl   $0x0,-0x8(%rbp)
jne    1244 <oem_check_force_dump_key+0x124>
movl   $0x4,0x2df5(%rip)
jmp    124e <oem_check_force_dump_key+0x12e>
movl   $0x0,0x2de6(%rip)
jmp    1425 <oem_check_force_dump_key+0x305>
mov    -0x4(%rbp),%eax
mov    0x2d6b(%rip),%rcx
cmp    (%rcx),%eax
jne    127e <oem_check_force_dump_key+0x15e>
cmpl   $0x0,-0x8(%rbp)
je     127e <oem_check_force_dump_key+0x15e>
movl   $0x5,0x2dbb(%rip)
jmp    1288 <oem_check_force_dump_key+0x168>
movl   $0x0,0x2dac(%rip)
jmp    1425 <oem_check_force_dump_key+0x305>
mov    -0x4(%rbp),%eax
mov    0x2d61(%rip),%rcx
cmp    (%rcx),%eax
jne    12b8 <oem_check_force_dump_key+0x198>
cmpl   $0x0,-0x8(%rbp)
je     12b8 <oem_check_force_dump_key+0x198>
movl   $0x6,0x2d81(%rip)
jmp    12c2 <oem_check_force_dump_key+0x1a2>
movl   $0x0,0x2d72(%rip)
jmp    1425 <oem_check_force_dump_key+0x305>
mov    -0x4(%rbp),%eax
mov    0x2d27(%rip),%rcx
cmp    (%rcx),%eax
jne    12f2 <oem_check_force_dump_key+0x1d2>
cmpl   $0x0,-0x8(%rbp)
jne    12f2 <oem_check_force_dump_key+0x1d2>
movl   $0x7,0x2d47(%rip)
jmp    12fc <oem_check_force_dump_key+0x1dc>
movl   $0x0,0x2d38(%rip)
jmp    1425 <oem_check_force_dump_key+0x305>
mov    -0x4(%rbp),%eax
mov    0x2ced(%rip),%rcx
cmp    (%rcx),%eax
jne    132c <oem_check_force_dump_key+0x20c>
cmpl   $0x0,-0x8(%rbp)
je     132c <oem_check_force_dump_key+0x20c>
movl   $0x8,0x2d0d(%rip)
jmp    1336 <oem_check_force_dump_key+0x216>
movl   $0x0,0x2cfe(%rip)
jmp    1425 <oem_check_force_dump_key+0x305>
mov    -0x4(%rbp),%eax
mov    0x2cb3(%rip),%rcx
cmp    (%rcx),%eax
jne    1366 <oem_check_force_dump_key+0x246>
cmpl   $0x0,-0x8(%rbp)
jne    1366 <oem_check_force_dump_key+0x246>
movl   $0x9,0x2cd3(%rip)
jmp    1370 <oem_check_force_dump_key+0x250>
movl   $0x0,0x2cc4(%rip)
jmp    1425 <oem_check_force_dump_key+0x305>
mov    -0x4(%rbp),%eax
mov    0x2c49(%rip),%rcx
cmp    (%rcx),%eax
jne    13a0 <oem_check_force_dump_key+0x280>
cmpl   $0x0,-0x8(%rbp)
jne    13a0 <oem_check_force_dump_key+0x280>
movl   $0xa,0x2c99(%rip)
jmp    13aa <oem_check_force_dump_key+0x28a>
movl   $0x0,0x2c8a(%rip)
jmp    1425 <oem_check_force_dump_key+0x305>
mov    -0x4(%rbp),%eax
mov    0x2c0f(%rip),%rcx
cmp    (%rcx),%eax
jne    13da <oem_check_force_dump_key+0x2ba>
cmpl   $0x0,-0x8(%rbp)
je     13da <oem_check_force_dump_key+0x2ba>
movl   $0xb,0x2c5f(%rip)
jmp    13e4 <oem_check_force_dump_key+0x2c4>
movl   $0x0,0x2c50(%rip)
jmp    1425 <oem_check_force_dump_key+0x305>
mov    -0x4(%rbp),%eax
mov    0x2c05(%rip),%rcx
cmp    (%rcx),%eax
jne    1416 <oem_check_force_dump_key+0x2f6>
cmpl   $0x0,-0x8(%rbp)
je     1416 <oem_check_force_dump_key+0x2f6>
lea    0xc24(%rip),%rdi
call   1040 <panic@plt>
jmp    1420 <oem_check_force_dump_key+0x300>
movl   $0x0,0x2c14(%rip)
jmp    1425 <oem_check_force_dump_key+0x305>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<oem_check_force_dump_key>:
push   %rbp
push   %rbx
push   %rax
mov    %esi,%ebp
mov    %edi,%ebx
xor    %eax,%eax
call   1030 <oem_get_download_mode@plt>
test   %eax,%eax
je     12fb <oem_check_force_dump_key+0x1db>
mov    0x2ef8(%rip),%eax
cmp    $0xb,%rax
ja     12fb <oem_check_force_dump_key+0x1db>
lea    0xeb3(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
test   %ebp,%ebp
je     12f1 <oem_check_force_dump_key+0x1d1>
mov    0x2e63(%rip),%rax
cmp    %ebx,(%rax)
jne    12f1 <oem_check_force_dump_key+0x1d1>
movl   $0x1,0x2ebd(%rip)
jmp    12fb <oem_check_force_dump_key+0x1db>
test   %ebp,%ebp
jne    12f1 <oem_check_force_dump_key+0x1d1>
mov    0x2e3d(%rip),%rax
cmp    %ebx,(%rax)
jne    12f1 <oem_check_force_dump_key+0x1d1>
movl   $0x2,0x2e97(%rip)
jmp    12fb <oem_check_force_dump_key+0x1db>
test   %ebp,%ebp
je     12f1 <oem_check_force_dump_key+0x1d1>
mov    0x2e2f(%rip),%rax
cmp    %ebx,(%rax)
jne    12f1 <oem_check_force_dump_key+0x1d1>
movl   $0x3,0x2e71(%rip)
jmp    12fb <oem_check_force_dump_key+0x1db>
test   %ebp,%ebp
jne    12f1 <oem_check_force_dump_key+0x1d1>
mov    0x2e09(%rip),%rax
cmp    %ebx,(%rax)
jne    12f1 <oem_check_force_dump_key+0x1d1>
movl   $0x4,0x2e4b(%rip)
jmp    12fb <oem_check_force_dump_key+0x1db>
test   %ebp,%ebp
je     12f1 <oem_check_force_dump_key+0x1d1>
mov    0x2dcb(%rip),%rax
cmp    %ebx,(%rax)
jne    12f1 <oem_check_force_dump_key+0x1d1>
movl   $0x5,0x2e25(%rip)
jmp    12fb <oem_check_force_dump_key+0x1db>
test   %ebp,%ebp
je     12f1 <oem_check_force_dump_key+0x1d1>
mov    0x2dd5(%rip),%rax
cmp    %ebx,(%rax)
jne    12f1 <oem_check_force_dump_key+0x1d1>
movl   $0x6,0x2dff(%rip)
jmp    12fb <oem_check_force_dump_key+0x1db>
test   %ebp,%ebp
jne    12f1 <oem_check_force_dump_key+0x1d1>
mov    0x2daf(%rip),%rax
cmp    %ebx,(%rax)
jne    12f1 <oem_check_force_dump_key+0x1d1>
movl   $0x7,0x2dd9(%rip)
jmp    12fb <oem_check_force_dump_key+0x1db>
test   %ebp,%ebp
je     12f1 <oem_check_force_dump_key+0x1d1>
mov    0x2d89(%rip),%rax
cmp    %ebx,(%rax)
jne    12f1 <oem_check_force_dump_key+0x1d1>
movl   $0x8,0x2db7(%rip)
jmp    12fb <oem_check_force_dump_key+0x1db>
test   %ebp,%ebp
jne    12f1 <oem_check_force_dump_key+0x1d1>
mov    0x2d6e(%rip),%rax
cmp    %ebx,(%rax)
jne    12f1 <oem_check_force_dump_key+0x1d1>
movl   $0x9,0x2d9c(%rip)
jmp    12fb <oem_check_force_dump_key+0x1db>
test   %ebp,%ebp
jne    12f1 <oem_check_force_dump_key+0x1d1>
mov    0x2d23(%rip),%rax
cmp    %ebx,(%rax)
jne    12f1 <oem_check_force_dump_key+0x1d1>
movl   $0xa,0x2d81(%rip)
jmp    12fb <oem_check_force_dump_key+0x1db>
test   %ebp,%ebp
je     12f1 <oem_check_force_dump_key+0x1d1>
mov    0x2d08(%rip),%rax
cmp    %ebx,(%rax)
jne    12f1 <oem_check_force_dump_key+0x1d1>
movl   $0xb,0x2d66(%rip)
jmp    12fb <oem_check_force_dump_key+0x1db>
test   %ebp,%ebp
je     12f1 <oem_check_force_dump_key+0x1d1>
mov    0x2d1d(%rip),%rax
cmp    %ebx,(%rax)
jne    12f1 <oem_check_force_dump_key+0x1d1>
lea    0xd4a(%rip),%rdi
add    $0x8,%rsp
pop    %rbx
pop    %rbp
jmp    1040 <panic@plt>
movl   $0x0,0x2d39(%rip)
add    $0x8,%rsp
pop    %rbx
pop    %rbp
ret

LLVM IR (-O0):
@oem_check_force_dump_key.state = internal global i32 0
@KEY_VOLUMEUP = global i32 0
@KEY_VOLUMEDOWN = global i32 0
@KEY_POWER = global i32 0
@.str = [11 x i8] c"Force Dump\00"
define void @oem_check_force_dump_key(i32 %0, i32 %1) {
%3 = alloca i32
%4 = alloca i32
store i32 %0, i32* %3
store i32 %1, i32* %4
%5 = call i32 (...) @oem_get_download_mode()
%6 = icmp ne i32 %5, 0
br i1 %6, label %8, label %7
7: ; preds = %2
br label %131
8: ; preds = %2
%9 = load i32, i32* @oem_check_force_dump_key.state
switch i32 %9, label %131 [
i32 0, label %10
i32 1, label %20
i32 2, label %30
i32 3, label %40
i32 4, label %50
i32 5, label %60
i32 6, label %70
i32 7, label %80
i32 8, label %90
i32 9, label %100
i32 10, label %110
i32 11, label %120
]
10: ; preds = %8
%11 = load i32, i32* %3
%12 = load i32, i32* @KEY_VOLUMEUP
%13 = icmp eq i32 %11, %12
br i1 %13, label %14, label %18
14: ; preds = %10
%15 = load i32, i32* %4
%16 = icmp ne i32 %15, 0
br i1 %16, label %17, label %18
17: ; preds = %14
store i32 1, i32* @oem_check_force_dump_key.state
br label %19
18: ; preds = %14, %10
store i32 0, i32* @oem_check_force_dump_key.state
br label %19
19: ; preds = %18, %17
br label %131
20: ; preds = %8
%21 = load i32, i32* %3
%22 = load i32, i32* @KEY_VOLUMEUP
%23 = icmp eq i32 %21, %22
br i1 %23, label %24, label %28
24: ; preds = %20
%25 = load i32, i32* %4
%26 = icmp ne i32 %25, 0
br i1 %26, label %28, label %27
27: ; preds = %24
store i32 2, i32* @oem_check_force_dump_key.state
br label %29
28: ; preds = %24, %20
store i32 0, i32* @oem_check_force_dump_key.state
br label %29
29: ; preds = %28, %27
br label %131
30: ; preds = %8
%31 = load i32, i32* %3
%32 = load i32, i32* @KEY_VOLUMEDOWN
%33 = icmp eq i32 %31, %32
br i1 %33, label %34, label %38
34: ; preds = %30
%35 = load i32, i32* %4
%36 = icmp ne i32 %35, 0
br i1 %36, label %37, label %38
37: ; preds = %34
store i32 3, i32* @oem_check_force_dump_key.state
br label %39
38: ; preds = %34, %30
store i32 0, i32* @oem_check_force_dump_key.state
br label %39
39: ; preds = %38, %37
br label %131
40: ; preds = %8
%41 = load i32, i32* %3
%42 = load i32, i32* @KEY_VOLUMEDOWN
%43 = icmp eq i32 %41, %42
br i1 %43, label %44, label %48
44: ; preds = %40
%45 = load i32, i32* %4
%46 = icmp ne i32 %45, 0
br i1 %46, label %48, label %47
47: ; preds = %44
store i32 4, i32* @oem_check_force_dump_key.state
br label %49
48: ; preds = %44, %40
store i32 0, i32* @oem_check_force_dump_key.state
br label %49
49: ; preds = %48, %47
br label %131
50: ; preds = %8
%51 = load i32, i32* %3
%52 = load i32, i32* @KEY_VOLUMEUP
%53 = icmp eq i32 %51, %52
br i1 %53, label %54, label %58
54: ; preds = %50
%55 = load i32, i32* %4
%56 = icmp ne i32 %55, 0
br i1 %56, label %57, label %58
57: ; preds = %54
store i32 5, i32* @oem_check_force_dump_key.state
br label %59
58: ; preds = %54, %50
store i32 0, i32* @oem_check_force_dump_key.state
br label %59
59: ; preds = %58, %57
br label %131
60: ; preds = %8
%61 = load i32, i32* %3
%62 = load i32, i32* @KEY_POWER
%63 = icmp eq i32 %61, %62
br i1 %63, label %64, label %68
64: ; preds = %60
%65 = load i32, i32* %4
%66 = icmp ne i32 %65, 0
br i1 %66, label %67, label %68
67: ; preds = %64
store i32 6, i32* @oem_check_force_dump_key.state
br label %69
68: ; preds = %64, %60
store i32 0, i32* @oem_check_force_dump_key.state
br label %69
69: ; preds = %68, %67
br label %131
70: ; preds = %8
%71 = load i32, i32* %3
%72 = load i32, i32* @KEY_POWER
%73 = icmp eq i32 %71, %72
br i1 %73, label %74, label %78
74: ; preds = %70
%75 = load i32, i32* %4
%76 = icmp ne i32 %75, 0
br i1 %76, label %78, label %77
77: ; preds = %74
store i32 7, i32* @oem_check_force_dump_key.state
br label %79
78: ; preds = %74, %70
store i32 0, i32* @oem_check_force_dump_key.state
br label %79
79: ; preds = %78, %77
br label %131
80: ; preds = %8
%81 = load i32, i32* %3
%82 = load i32, i32* @KEY_POWER
%83 = icmp eq i32 %81, %82
br i1 %83, label %84, label %88
84: ; preds = %80
%85 = load i32, i32* %4
%86 = icmp ne i32 %85, 0
br i1 %86, label %87, label %88
87: ; preds = %84
store i32 8, i32* @oem_check_force_dump_key.state
br label %89
88: ; preds = %84, %80
store i32 0, i32* @oem_check_force_dump_key.state
br label %89
89: ; preds = %88, %87
br label %131
90: ; preds = %8
%91 = load i32, i32* %3
%92 = load i32, i32* @KEY_POWER
%93 = icmp eq i32 %91, %92
br i1 %93, label %94, label %98
94: ; preds = %90
%95 = load i32, i32* %4
%96 = icmp ne i32 %95, 0
br i1 %96, label %98, label %97
97: ; preds = %94
store i32 9, i32* @oem_check_force_dump_key.state
br label %99
98: ; preds = %94, %90
store i32 0, i32* @oem_check_force_dump_key.state
br label %99
99: ; preds = %98, %97
br label %131
100: ; preds = %8
%101 = load i32, i32* %3
%102 = load i32, i32* @KEY_VOLUMEUP
%103 = icmp eq i32 %101, %102
br i1 %103, label %104, label %108
104: ; preds = %100
%105 = load i32, i32* %4
%106 = icmp ne i32 %105, 0
br i1 %106, label %108, label %107
107: ; preds = %104
store i32 10, i32* @oem_check_force_dump_key.state
br label %109
108: ; preds = %104, %100
store i32 0, i32* @oem_check_force_dump_key.state
br label %109
109: ; preds = %108, %107
br label %131
110: ; preds = %8
%111 = load i32, i32* %3
%112 = load i32, i32* @KEY_VOLUMEUP
%113 = icmp eq i32 %111, %112
br i1 %113, label %114, label %118
114: ; preds = %110
%115 = load i32, i32* %4
%116 = icmp ne i32 %115, 0
br i1 %116, label %117, label %118
117: ; preds = %114
store i32 11, i32* @oem_check_force_dump_key.state
br label %119
118: ; preds = %114, %110
store i32 0, i32* @oem_check_force_dump_key.state
br label %119
119: ; preds = %118, %117
br label %131
120: ; preds = %8
%121 = load i32, i32* %3
%122 = load i32, i32* @KEY_POWER
%123 = icmp eq i32 %121, %122
br i1 %123, label %124, label %129
124: ; preds = %120
%125 = load i32, i32* %4
%126 = icmp ne i32 %125, 0
br i1 %126, label %127, label %129
127: ; preds = %124
%128 = call i32 @panic(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i64 0, i64 0))
br label %130
129: ; preds = %124, %120
store i32 0, i32* @oem_check_force_dump_key.state
br label %130
130: ; preds = %129, %127
br label %131
131: ; preds = %7, %8, %130, %119, %109, %99, %89, %79, %69, %59, %49, %39, %29, %19
ret void
}

LLVM IR (-O2):
@oem_check_force_dump_key.state = internal unnamed_addr global i32 0
@KEY_VOLUMEUP = global i32 0
@KEY_VOLUMEDOWN = global i32 0
@KEY_POWER = global i32 0
@.str = [11 x i8] c"Force Dump\00"
define void @oem_check_force_dump_key(i32 %0, i32 %1) {
%3 = tail call i32 (...) @oem_get_download_mode()
%4 = icmp eq i32 %3, 0
br i1 %4, label %92, label %5
5: ; preds = %2
%6 = load i32, i32* @oem_check_force_dump_key.state
switch i32 %6, label %92 [
i32 0, label %7
i32 1, label %14
i32 2, label %21
i32 3, label %28
i32 4, label %35
i32 5, label %42
i32 6, label %49
i32 7, label %56
i32 8, label %63
i32 9, label %70
i32 10, label %77
i32 11, label %84
]
7: ; preds = %5
%8 = load i32, i32* @KEY_VOLUMEUP
%9 = icmp eq i32 %8, %0
%10 = icmp ne i32 %1, 0
%11 = and i1 %10, %9
br i1 %11, label %12, label %13
12: ; preds = %7
store i32 1, i32* @oem_check_force_dump_key.state
br label %92
13: ; preds = %7
store i32 0, i32* @oem_check_force_dump_key.state
br label %92
14: ; preds = %5
%15 = load i32, i32* @KEY_VOLUMEUP
%16 = icmp ne i32 %15, %0
%17 = icmp ne i32 %1, 0
%18 = or i1 %17, %16
br i1 %18, label %20, label %19
19: ; preds = %14
store i32 2, i32* @oem_check_force_dump_key.state
br label %92
20: ; preds = %14
store i32 0, i32* @oem_check_force_dump_key.state
br label %92
21: ; preds = %5
%22 = load i32, i32* @KEY_VOLUMEDOWN
%23 = icmp eq i32 %22, %0
%24 = icmp ne i32 %1, 0
%25 = and i1 %24, %23
br i1 %25, label %26, label %27
26: ; preds = %21
store i32 3, i32* @oem_check_force_dump_key.state
br label %92
27: ; preds = %21
store i32 0, i32* @oem_check_force_dump_key.state
br label %92
28: ; preds = %5
%29 = load i32, i32* @KEY_VOLUMEDOWN
%30 = icmp ne i32 %29, %0
%31 = icmp ne i32 %1, 0
%32 = or i1 %31, %30
br i1 %32, label %34, label %33
33: ; preds = %28
store i32 4, i32* @oem_check_force_dump_key.state
br label %92
34: ; preds = %28
store i32 0, i32* @oem_check_force_dump_key.state
br label %92
35: ; preds = %5
%36 = load i32, i32* @KEY_VOLUMEUP
%37 = icmp eq i32 %36, %0
%38 = icmp ne i32 %1, 0
%39 = and i1 %38, %37
br i1 %39, label %40, label %41
40: ; preds = %35
store i32 5, i32* @oem_check_force_dump_key.state
br label %92
41: ; preds = %35
store i32 0, i32* @oem_check_force_dump_key.state
br label %92
42: ; preds = %5
%43 = load i32, i32* @KEY_POWER
%44 = icmp eq i32 %43, %0
%45 = icmp ne i32 %1, 0
%46 = and i1 %45, %44
br i1 %46, label %47, label %48
47: ; preds = %42
store i32 6, i32* @oem_check_force_dump_key.state
br label %92
48: ; preds = %42
store i32 0, i32* @oem_check_force_dump_key.state
br label %92
49: ; preds = %5
%50 = load i32, i32* @KEY_POWER
%51 = icmp ne i32 %50, %0
%52 = icmp ne i32 %1, 0
%53 = or i1 %52, %51
br i1 %53, label %55, label %54
54: ; preds = %49
store i32 7, i32* @oem_check_force_dump_key.state
br label %92
55: ; preds = %49
store i32 0, i32* @oem_check_force_dump_key.state
br label %92
56: ; preds = %5
%57 = load i32, i32* @KEY_POWER
%58 = icmp eq i32 %57, %0
%59 = icmp ne i32 %1, 0
%60 = and i1 %59, %58
br i1 %60, label %61, label %62
61: ; preds = %56
store i32 8, i32* @oem_check_force_dump_key.state
br label %92
62: ; preds = %56
store i32 0, i32* @oem_check_force_dump_key.state
br label %92
63: ; preds = %5
%64 = load i32, i32* @KEY_POWER
%65 = icmp ne i32 %64, %0
%66 = icmp ne i32 %1, 0
%67 = or i1 %66, %65
br i1 %67, label %69, label %68
68: ; preds = %63
store i32 9, i32* @oem_check_force_dump_key.state
br label %92
69: ; preds = %63
store i32 0, i32* @oem_check_force_dump_key.state
br label %92
70: ; preds = %5
%71 = load i32, i32* @KEY_VOLUMEUP
%72 = icmp ne i32 %71, %0
%73 = icmp ne i32 %1, 0
%74 = or i1 %73, %72
br i1 %74, label %76, label %75
75: ; preds = %70
store i32 10, i32* @oem_check_force_dump_key.state
br label %92
76: ; preds = %70
store i32 0, i32* @oem_check_force_dump_key.state
br label %92
77: ; preds = %5
%78 = load i32, i32* @KEY_VOLUMEUP
%79 = icmp eq i32 %78, %0
%80 = icmp ne i32 %1, 0
%81 = and i1 %80, %79
br i1 %81, label %82, label %83
82: ; preds = %77
store i32 11, i32* @oem_check_force_dump_key.state
br label %92
83: ; preds = %77
store i32 0, i32* @oem_check_force_dump_key.state
br label %92
84: ; preds = %5
%85 = load i32, i32* @KEY_POWER
%86 = icmp eq i32 %85, %0
%87 = icmp ne i32 %1, 0
%88 = and i1 %87, %86
br i1 %88, label %89, label %91
89: ; preds = %84
%90 = tail call i32 @panic(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i64 0, i64 0))
br label %92
91: ; preds = %84
store i32 0, i32* @oem_check_force_dump_key.state
br label %92
92: ; preds = %89, %91, %82, %83, %75, %76, %68, %69, %61, %62, %54, %55, %47, %48, %40, %41, %33, %34, %26, %27, %19, %20, %12, %13, %2, %5
ret void
}