Function at 0x14000311b
Capabilities:
Terminate process

Disassembly:
jmp 0x140029f50
mov byte [rsp + 0x18], r8b
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xe8
mov qword [rbp + 0xf], 0xfffffffffffffffe
movzx eax, r8b
mov edi, edx
mov r13, rcx
cmp byte [0x14007ca60], 0
je 0x140029fb0
lea rcx, [0x140060386]
lea r8, str._wait
test al, al
cmovne r8, rcx
lea rcx, str.KillDriver:_session__i_s_n
call fcn.1400031a2
mov dword [rbp - 0x39], edi
lea rsi, [r13 + 0x40]
lea rdx, [rbp - 0x39]
mov rcx, rsi
call fcn.140003a08
test rax, rax
je 0x14002a6c3
mov rax, qword [r13 + 0x30]
mov qword [rbp - 1], rax
mov rax, qword [r13 + 0x38]
mov qword [rbp + 7], rax
test rax, rax
je 0x140029fe8
lock inc dword [rax + 8]
mov edi, dword [rbp + 0x6f]
lea rax, [rbp - 1]
mov qword [rbp + 0x7f], rax
xor r15d, r15d
mov qword [rsp + 0x20], r15
mov qword [rsp + 0x28], r15
lea rdx, [rbp - 1]
lea rcx, [rsp + 0x20]
call fcn.140001168
mov r12, qword [rsp + 0x20]
test r12, r12
je 0x14002a020
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 8]
nop
mov rbx, qword [rbp + 7]
test rbx, rbx
je 0x14002a04f
lock dec dword [rbx + 8]
jne 0x14002a047
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
lock dec dword [rbx + 0xc]
jne 0x14002a047
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
mov r12, qword [rsp + 0x20]
mov edi, dword [rbp + 0x6f]
mov dword [rbp - 0x41], edi
mov dword [rbp - 0x31], edi
lea rdx, [rbp - 0x31]
mov rcx, rsi
call fcn.140003a08
test rax, rax
je 0x14002a076
lea rdx, [rbp - 0x41]
mov rcx, rsi
call fcn.140002d88
mov r15d, dword [rax + 0x10]
mov dword [rbp - 0x29], edi
mov dword [rsp + 0x48], edi
lea rdx, [rsp + 0x48]
mov rcx, rsi
call fcn.140003a08
test rax, rax
je 0x14002a0aa
lea rdx, [rbp - 0x29]
mov rcx, rsi
call fcn.140002d88
mov rcx, qword [rax + 8]
mov qword [rbp - 0x11], rcx
mov r14d, ecx
xor ebx, ebx
jmp 0x14002a0b2
xor ebx, ebx
mov r14d, ebx
mov dword [rbp - 0x11], ebx
mov dword [rbp - 0x19], edi
mov dword [rbp - 0x71], edi
lea rdx, [rbp - 0x71]
mov rcx, rsi
call fcn.140003a08
test rax, rax
je 0x14002a244
lea rdx, [rbp - 0x19]
mov rcx, rsi
call fcn.140002d88
mov eax, dword [rax + 4]
mov dword [rbp + 0x7f], eax
test eax, eax
je 0x14002a247
mov r8d, eax
xor edx, edx
mov ecx, 0x100000
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov qword [rbp - 9], rax
test rax, rax
jne 0x14002a125
cmp byte [0x14007ca60], al
je 0x14002a244
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.Kill_Touch___OpenProcess_failed__i_n
call fcn.1400031a2
jmp 0x14002a244
mov dword [rbp - 0x21], edi
mov dword [rbp - 0x61], edi
lea rdx, [rbp - 0x61]
mov rcx, rsi
call fcn.140003a08
test rax, rax
je 0x14002a14d
lea rdx, [rbp - 0x21]
mov rcx, rsi
call fcn.140002d88
movzx ebx, byte [rax]
jmp 0x14002a14f
xor bl, bl
mov dword [rsp + 0x30], edi
mov dword [rbp - 0x51], edi
lea rdx, [rbp - 0x51]
mov rcx, rsi
call fcn.140003a08
test rax, rax
je 0x14002a179
lea rdx, [rsp + 0x30]
mov rcx, rsi
call fcn.140002d88
movzx ecx, byte [rax]
jmp 0x14002a17b
xor cl, cl
test bl, bl
sete dl
mov r9d, 0x201
mov r8d, edi
call fcn.140003611
test al, al
jne 0x14002a1b0
cmp byte [0x14007ca60], al
je 0x14002a238
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.Kill_Touch___Failed_to_open_event___d__n
jmp 0x14002a231
cmp byte [0x14007ca60], 0
je 0x14002a1c5
lea rcx, str.Kill_Touch___Sent_event_n
call fcn.1400031a2
mov edx, 0x1388
movzx ebx, byte [rbp + 0x77]
test bl, bl
mov eax, 0
cmovne edx, eax
mov rcx, qword [rbp - 9]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x14002a201
cmp byte [0x14007ca60], al
je 0x14002a21a
lea rcx, str.Kill_Touch___success_n
call fcn.1400031a2
xor eax, eax
mov dword [rbp + 0x7f], eax
jmp 0x14002a238
test bl, bl
je 0x14002a221
cmp byte [0x14007ca60], 0
je 0x14002a21a
lea rcx, str.Kill_Touch___No_wait_n
call fcn.1400031a2
xor eax, eax
mov dword [rbp + 0x7f], eax
jmp 0x14002a238
cmp byte [0x14007ca60], 0
je 0x14002a238
lea rcx, str.Kill_Touch___wait_returned__i_n
mov edx, eax
call fcn.1400031a2
mov rcx, qword [rbp - 9]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14002a247
mov dword [rbp + 0x7f], ebx
test r15d, r15d
je 0x14002a408
cmp byte [0x14007ca62], 0
je 0x14002a2a5
mov dword [rsp + 0x40], edi
mov dword [rsp + 0x38], edi
lea rdx, [rsp + 0x38]
mov rcx, rsi
call fcn.140003a08
test rax, rax
je 0x14002a2a5
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.140002d88
cmp byte [rax], 0
je 0x14002a2a5
mov r9d, 0x4ce
lea r8, str.ServiceMain.cpp
lea rdx, str._IsDriverSystem_sessionID_I_
lea rcx, str.Assert:__s__in__s_at__i_n
call fcn.1400031a2
mov r8d, r15d
xor edx, edx
mov ecx, 0x100000
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rbx, rax
test rax, rax
jne 0x14002a2e6
cmp byte [0x14007ca60], al
je 0x14002a2d9
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.Kill_Pen__User____OpenProcess_failed__i_n
call fcn.1400031a2
xor eax, eax
mov r15d, eax
mov r14d, eax
jmp 0x14002a561
mov dword [rbp - 0x69], edi
mov dword [rbp - 0x79], edi
lea rdx, [rbp - 0x79]
mov rcx, rsi
call fcn.140003a08
test rax, rax
je 0x14002a30f
lea rdx, [rbp - 0x69]
mov rcx, rsi
call fcn.140002d88
movzx r13d, byte [rax]
jmp 0x14002a312
xor r13b, r13b
mov dword [rbp - 0x49], edi
mov dword [rbp - 0x59], edi
lea rdx, [rbp - 0x59]
mov rcx, rsi
call fcn.140003a08
test rax, rax
je 0x14002a33a
lea rdx, [rbp - 0x49]
mov rcx, rsi
call fcn.140002d88
movzx ecx, byte [rax]
jmp 0x14002a33c
xor cl, cl
test r13b, r13b
sete dl
mov r9d, 0x101
mov r8d, edi
call fcn.140003611
test al, al
jne 0x14002a372
cmp byte [0x14007ca60], al
je 0x14002a400
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.Kill_Pen__User____Failed_to_open_event___d__n
jmp 0x14002a3f9
cmp byte [0x14007ca60], 0
je 0x14002a387
lea rcx, str.Kill_Pen__User____Sent_event_n
call fcn.1400031a2
movzx edi, byte [rbp + 0x77]
test dil, dil
mov edx, 0x1388
mov r13d, 0
cmovne edx, r13d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x14002a3c7
cmp byte [0x14007ca60], r13b
je 0x14002a3e1
lea rcx, str.Kill_Pen__User____success_n
call fcn.1400031a2
mov r15d, r13d
mov r14d, r13d
jmp 0x14002a400
test dil, dil
je 0x14002a3e9
cmp byte [0x14007ca60], r13b
je 0x14002a3e1
lea rcx, str.Kill_Pen__User____No_wait_n
call fcn.1400031a2
mov r15d, r13d
mov r14d, r13d
jmp 0x14002a400
cmp byte [0x14007ca60], r13b
je 0x14002a400
lea rcx, str.Kill_Pen__User____wait_returned__i_n
mov edx, eax
call fcn.1400031a2
mov rcx, rbx
jmp 0x14002a55b
test r14d, r14d
je 0x14002a561
cmp byte [0x14007ca62], 0
je 0x14002a448
mov edx, edi
mov rcx, r13
call fcn.1400014c9
test al, al
jne 0x14002a448
mov r9d, 0x4f8
lea r8, str.ServiceMain.cpp
lea rdx, str.IsDriverSystem_sessionID_I_
lea rcx, str.Assert:__s__in__s_at__i_n
call fcn.1400031a2
mov r8d, r14d
xor edx, edx
mov ecx, 0x100000
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov r13, rax
test rax, rax
jne 0x14002a486
cmp byte [0x14007ca60], al
je 0x14002a47c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.Kill_Pen___OpenProcess_failed__i_n
call fcn.1400031a2
xor eax, eax
mov r14d, eax
jmp 0x14002a561
mov edx, edi
mov rcx, qword [rbp + 0x67]
call fcn.1400014c9
test al, al
sete bl
mov edx, edi
mov rcx, qword [rbp + 0x67]
call fcn.1400014c9
movzx ecx, al
mov r9d, 0x101
mov r8d, edi
movzx edx, bl
call fcn.140003611
test al, al
jne 0x14002a4d4
cmp byte [0x14007ca60], al
je 0x14002a558
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.Kill_Pen___Failed_to_open_event___d__n
jmp 0x14002a551
cmp byte [0x14007ca60], 0
je 0x14002a4e9
lea rcx, str.Kill_Pen___Sent_event_n
call fcn.1400031a2
movzx ebx, byte [rbp + 0x77]
test bl, bl
mov edx, 0x1388
mov edi, 0
cmovne edx, edi
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x14002a523
cmp byte [0x14007ca60], dil
je 0x14002a53c
lea rcx, str.Kill_Pen___success_n
call fcn.1400031a2
mov r14d, edi
jmp 0x14002a558
test bl, bl
je 0x14002a541
cmp byte [0x14007ca60], dil
je 0x14002a53c
lea rcx, str.Kill_Pen___No_wait_n
call fcn.1400031a2
mov r14d, edi
jmp 0x14002a558
cmp byte [0x14007ca60], dil
je 0x14002a558
lea rcx, str.Kill_Pen___wait_returned__i_n
mov edx, eax
call fcn.1400031a2
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rbp + 0x7f]
test eax, eax
je 0x14002a5bf
mov r8d, eax
xor edx, edx
lea ecx, [rdx + 1]
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rbx, rax
test rax, rax
je 0x14002a5bf
cmp byte [0x14007ca60], 0
je 0x14002a593
lea rcx, str.Kill_Touch___Terminate_Process_n
call fcn.1400031a2
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
test eax, eax
jne 0x14002a5b6
cmp byte [0x14007ca60], al
je 0x14002a5b6
lea rcx, str.Kill_Touch___Terminate_Process_Failed_n
call fcn.1400031a2
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test r15d, r15d
je 0x14002a61b
mov r8d, r15d
xor edx, edx
lea ecx, [rdx + 1]
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rbx, rax
test rax, rax
je 0x14002a61b
cmp byte [0x14007ca60], 0
je 0x14002a5ef
lea rcx, str.Kill_Pen__User____Terminate_Process_n
call fcn.1400031a2
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
test eax, eax
jne 0x14002a612
cmp byte [0x14007ca60], al
je 0x14002a612
lea rcx, str.Kill_Pen__User____Terminate_Process_Failed_n
call fcn.1400031a2
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test r14d, r14d
je 0x14002a677
mov r8d, r14d
xor edx, edx
lea ecx, [rdx + 1]
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rbx, rax
test rax, rax
je 0x14002a677
cmp byte [0x14007ca60], 0
je 0x14002a64b
lea rcx, str.Kill_Pen___Terminate_Process_n
call fcn.1400031a2
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
test eax, eax
jne 0x14002a66e
cmp byte [0x14007ca60], al
je 0x14002a66e
lea rcx, str.Kill_Pen___Terminate_Process_Failed_n
call fcn.1400031a2
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, [rbp + 0x6f]
mov rcx, rsi
call fcn.14000272a
nop
test r12, r12
je 0x14002a694
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x14002a6c3
lock dec dword [rcx + 8]
jne 0x14002a6c3
mov rbx, qword [rsp + 0x28]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
lock dec dword [rbx + 0xc]
jne 0x14002a6c3
mov rcx, qword [rsp + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x10]
cmp byte [0x14007ca60], 0
je 0x14002a6d8
lea rcx, str.KillDriver:_complete_n
call fcn.1400031a2
add rsp, 0xe8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret