Function at 0x10c10
Capabilities:
Create device object
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x454
mov dword [ebp - 4], 0
mov byte [ebp - 0x445], 0
mov eax, dword [section..data]
mov dword [ebp - 0x44c], eax
mov dword [ebp - 0x2c], 0
mov ecx, 0x1a
mov word [ebp - 0x438], cx
mov edx, 0x1c
mov word [ebp - 0x436], dx
mov dword [ebp - 0x434], str.DriverVersion
mov dword [ebp - 0x454], 0
mov eax, 0x1e
mov word [ebp - 0x28], ax
mov ecx, 0x20
mov word [ebp - 0x26], cx
mov dword [ebp - 0x24], str.ModuleTimeStamp
mov edx, 0x16
mov word [ebp - 0x14], dx
mov eax, 0x18
mov word [ebp - 0x12], ax
mov dword [ebp - 0x10], str.RunningTime
lea ecx, [ebp - 0x454]
push ecx
call fcn.000105c0
push 4
lea edx, [ebp - 0x454]
push edx
push 4
lea eax, [ebp - 0x28]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00010500
push 0x400
push 0
lea edx, [ebp - 0x430]
push edx
call sub.ntoskrnl.exe_memset
add esp, 0xc
push 0x1ff
mov eax, dword [ebp - 0x44c]
push eax
lea ecx, [ebp - 0x430]
push ecx
call sub.ntoskrnl.exe_mbstowcs
add esp, 0xc
lea edx, [ebp - 0x430]
push edx
call sub.ntoskrnl.exe_wcslen
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea ecx, [ebp - 0x430]
push ecx
push 1
lea edx, [ebp - 0x438]
push edx
mov eax, dword [ebp + 0xc]
push eax
call fcn.00010500
lea ecx, [ebp - 0x20]
push ecx
call dword [sym.imp.ntoskrnl.exe_KeQuerySystemTime]
push 8
lea edx, [ebp - 0x20]
push edx
push 0xb
lea eax, [ebp - 0x14]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00010500
xor edx, edx
je 0x10d4d
mov eax, dword [ebp + 0xc]
push eax
push str._BCameraProtect__DriverEntry:__wZ_n
call sub.ntoskrnl.exe_DbgPrint
add esp, 8
mov ecx, dword [ebp + 8]
mov dword [0x124c4], ecx
push str.DeviceBCameraProtect
lea edx, [ebp - 0x440]
push edx
call dword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
lea eax, [ebp - 4]
push eax
push 0
push 0
push 0x8000
lea ecx, [ebp - 0x440]
push ecx
push 0x40c
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.ntoskrnl.exe_IoCreateDevice]
mov dword [ebp - 0x450], eax
cmp dword [ebp - 0x450], 0
jge 0x10db7
xor eax, eax
je 0x10db2
mov ecx, dword [ebp - 0x450]
push ecx
push str._BCameraProtect__IoCreateDevice_failed_0x_x_._n
call sub.ntoskrnl.exe_DbgPrint
add esp, 8
jmp 0x10ece
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x28]
mov dword [ebp - 0x444], eax
push 0x40c
push 0
mov ecx, dword [ebp - 0x444]
push ecx
call sub.ntoskrnl.exe_memset
add esp, 0xc
push str.DosDevicesBCameraProtect
lea edx, [ebp - 0xc]
push edx
call dword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
lea eax, [ebp - 0x440]
push eax
lea ecx, [ebp - 0xc]
push ecx
call dword [sym.imp.ntoskrnl.exe_IoCreateSymbolicLink]
mov dword [ebp - 0x450], eax
cmp dword [ebp - 0x450], 0
jge 0x10e25
xor edx, edx
je 0x10e20
mov eax, dword [ebp - 0x450]
push eax
push str._BCameraProtect__IoCreateSymbolicLink_failed_0x_x_._n
call sub.ntoskrnl.exe_DbgPrint
add esp, 8
jmp 0x10ece
mov byte [ebp - 0x445], 1
mov dword [ebp - 0x2c], 0
jmp 0x10e3e
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x2c], 0x1b
jg 0x10e54
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp + 8]
mov dword [eax + edx*4 + 0x38], 0x108d0
jmp 0x10e35
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x38], 0x109b0
mov edx, dword [ebp + 8]
mov dword [edx + 0x40], 0x10930
mov eax, dword [ebp + 8]
mov dword [eax + 0x90], 0x10a30
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x70], 0x10b20
mov edx, dword [ebp + 8]
mov dword [edx + 0x34], 0x107f0
mov eax, dword [ebp + 8]
mov dword [eax + 0x28], 0x124e0
push 0x70
push 0
push 0x124e0
call sub.ntoskrnl.exe_memset
add esp, 0xc
mov dword [0x124e0], 0x70
mov dword [0x12514], 0x10900
call fcn.00011c80
cmp dword [ebp - 0x450], 0
jl 0x10ece
mov eax, dword [ebp - 0x450]
jmp 0x10ef9
movzx ecx, byte [ebp - 0x445]
test ecx, ecx
je 0x10ee3
lea edx, [ebp - 0xc]
push edx
call dword [sym.imp.ntoskrnl.exe_IoDeleteSymbolicLink]
cmp dword [ebp - 4], 0
je 0x10ef3
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.ntoskrnl.exe_IoDeleteDevice]
mov eax, dword [ebp - 0x450]
mov esp, ebp
pop ebp
ret 8