Function at 0x10fe0
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x65c
mov dword [ebp - 0x414], 0xc0000001
mov eax, 0xe
mov word [ebp - 0x424], ax
mov ecx, 0x10
mov word [ebp - 0x422], cx
mov dword [ebp - 0x420], str.Driver
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0x658], 0
mov dword [ebp - 0x448], 0
mov dword [ebp - 0x41c], 0
lea edx, [ebp - 0x410]
mov dword [ebp - 0x654], edx
mov dword [ebp - 0x418], 0
mov dword [ebp - 0x444], 0
cmp dword [ebp + 0xc], 0
jne 0x1107d
jmp 0x114de
mov dword [ebp - 0x440], 0x18
mov dword [ebp - 0x43c], 0
mov dword [ebp - 0x434], 0x40
lea eax, [ebp - 0x424]
mov dword [ebp - 0x438], eax
mov dword [ebp - 0x430], 0
mov dword [ebp - 0x42c], 0
lea ecx, [ebp - 0x440]
push ecx
push 1
lea edx, [ebp - 0xc]
push edx
call dword [sym.imp.ntoskrnl.exe_ZwOpenDirectoryObject]
mov dword [ebp - 0x414], eax
cmp dword [ebp - 0x414], 0
jge 0x110e2
jmp 0x114de
mov dword [ebp - 8], 0x1000
mov eax, 1
test eax, eax
je 0x1119a
push 0x63616f62
mov ecx, dword [ebp - 8]
push ecx
push 0
call dword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov dword [ebp - 0x428], eax
cmp dword [ebp - 0x428], 0
jne 0x1111b
jmp 0x114de
lea edx, [ebp - 0x658]
push edx
lea eax, [ebp - 4]
push eax
push 1
push 0
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x428]
push edx
mov eax, dword [ebp - 0xc]
push eax
call sub.ntoskrnl.exe_ZwQueryDirectoryObject
mov dword [ebp - 0x414], eax
cmp dword [ebp - 0x414], 0x105
je 0x1115c
cmp dword [ebp - 0x414], 0xc0000023
jne 0x11185
push 0
mov ecx, dword [ebp - 0x428]
push ecx
call dword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
mov dword [ebp - 0x428], 0
mov edx, dword [ebp - 0x658]
shl edx, 1
mov dword [ebp - 8], edx
jmp 0x110e9
cmp dword [ebp - 0x414], 0
jl 0x11190
jmp 0x1119a
jmp 0x114de
mov eax, dword [ebp - 0x428]
mov dword [ebp - 0x10], eax
mov ecx, 1
test ecx, ecx
je 0x114de
mov edx, dword [ebp - 0x10]
movzx eax, word [edx]
test eax, eax
jne 0x111bf
jmp 0x114de
mov ecx, dword [ebp - 0x10]
movzx edx, word [ecx + 8]
test edx, edx
jne 0x111cf
jmp 0x114de
push 0x200
push 0
lea eax, [ebp - 0x650]
push eax
call sub.ntoskrnl.exe_memset
add esp, 0xc
push str.Driver_
lea ecx, [ebp - 0x650]
push ecx
call sub.ntoskrnl.exe_wcscat
add esp, 8
lea edx, [ebp - 0x650]
push edx
lea eax, [ebp - 0x450]
push eax
call dword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
mov ecx, 0x200
mov word [ebp - 0x44e], cx
mov edx, dword [ebp - 0x10]
push edx
lea eax, [ebp - 0x450]
push eax
call dword [sym.imp.ntoskrnl.exe_RtlAppendUnicodeStringToString]
lea ecx, [ebp - 0x448]
push ecx
push 0
push 0
mov edx, dword [sym.imp.ntoskrnl.exe_IoDriverObjectType]
mov eax, dword [edx]
push eax
push 0
push 0
push 0x40
lea ecx, [ebp - 0x450]
push ecx
call dword [sym.imp.ntoskrnl.exe_ObReferenceObjectByName]
mov dword [ebp - 0x414], eax
cmp dword [ebp - 0x414], 0
jge 0x11265
jmp 0x114de
mov dword [ebp - 8], 0
mov dword [ebp - 0x658], 0
lea edx, [ebp - 0x658]
push edx
push 0
push 0
mov eax, dword [ebp - 0x448]
push eax
call dword [sym.imp.ntoskrnl.exe_IoEnumerateDeviceObjectList]
mov dword [ebp - 0x414], eax
cmp dword [ebp - 0x414], 0xc0000023
je 0x112e5
mov ecx, dword [ebp - 0x448]
call dword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
cmp dword [ebp - 0x414], 0
jne 0x112cc
cmp dword [ebp - 0x658], 0
jne 0x112cc
mov ecx, dword [ebp - 0x10]
add ecx, 0x10
mov dword [ebp - 0x10], ecx
jmp 0x111a3
mov edx, dword [ebp - 0x414]
push edx
push str.IoEnumerateDeviceObjectList_fail_st:0x_x_n
call sub.ntoskrnl.exe_DbgPrint
add esp, 8
jmp 0x114de
mov eax, dword [ebp - 0x658]
lea ecx, [eax*4 + 0x140]
mov dword [ebp - 8], ecx
push 0x63616f61
mov edx, dword [ebp - 8]
push edx
push 0
call dword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov dword [ebp - 0x41c], eax
cmp dword [ebp - 0x41c], 0
jne 0x11326
mov ecx, dword [ebp - 0x448]
call dword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
jmp 0x114de
lea eax, [ebp - 0x658]
push eax
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x41c]
push edx
mov eax, dword [ebp - 0x448]
push eax
call dword [sym.imp.ntoskrnl.exe_IoEnumerateDeviceObjectList]
mov dword [ebp - 0x414], eax
cmp dword [ebp - 0x414], 0
jge 0x11387
cmp dword [ebp - 0x41c], 0
je 0x11376
push 0
mov ecx, dword [ebp - 0x41c]
push ecx
call dword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
mov dword [ebp - 0x41c], 0
mov ecx, dword [ebp - 0x448]
call dword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
jmp 0x114de
mov dword [ebp - 0x418], 0
jmp 0x113a2
mov edx, dword [ebp - 0x418]
add edx, 1
mov dword [ebp - 0x418], edx
mov eax, dword [ebp - 0x418]
cmp eax, dword [ebp - 0x658]
jae 0x11476
mov dword [ebp - 0x65c], 0
lea ecx, [ebp - 0x65c]
push ecx
push 0x3fa
mov edx, dword [ebp - 0x654]
push edx
mov eax, dword [ebp - 0x418]
mov ecx, dword [ebp - 0x41c]
mov edx, dword [ecx + eax*4]
push edx
call dword [sym.imp.ntoskrnl.exe_ObQueryNameString]
mov dword [ebp - 0x414], eax
cmp dword [ebp - 0x414], 0
jl 0x1145c
mov eax, dword [ebp - 0x654]
cmp dword [eax + 4], 0
je 0x1145c
mov ecx, dword [ebp - 0x654]
movzx edx, word [ecx]
cmp edx, 2
jle 0x1145c
mov eax, dword [ebp - 0x654]
movzx eax, word [eax]
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [ebp - 0x654]
mov edx, dword [ecx + 4]
xor ecx, ecx
mov word [edx + eax*2], cx
mov edx, dword [ebp - 0x654]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call sub.ntoskrnl.exe__wcsicmp
add esp, 8
test eax, eax
jne 0x1145c
mov edx, dword [ebp - 0x418]
mov eax, dword [ebp - 0x41c]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x444], ecx
mov edx, dword [ebp - 0x418]
mov eax, dword [ebp - 0x41c]
mov ecx, dword [eax + edx*4]
call dword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
jmp 0x11393
cmp dword [ebp - 0x41c], 0
je 0x11498
push 0
mov ecx, dword [ebp - 0x41c]
push ecx
call dword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
mov dword [ebp - 0x41c], 0
mov ecx, dword [ebp - 0x448]
call dword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
cmp dword [ebp - 0x444], 0
je 0x114d0
mov dword [ebp - 0x414], 0
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x444]
mov dword [edx], eax
mov ecx, dword [ebp - 0x444]
call dword [sym.imp.ntoskrnl.exe_ObfReferenceObject]
jmp 0x114de
mov ecx, dword [ebp - 0x10]
add ecx, 0x10
mov dword [ebp - 0x10], ecx
jmp 0x111a3
cmp dword [ebp - 0xc], 0
je 0x114ee
mov edx, dword [ebp - 0xc]
push edx
call dword [sym.imp.ntoskrnl.exe_ZwClose]
cmp dword [ebp - 0x428], 0
je 0x11506
push 0
mov eax, dword [ebp - 0x428]
push eax
call dword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
mov eax, dword [ebp - 0x414]
mov esp, ebp
pop ebp
ret 8