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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x6c
mov eax, dword [0x160b4]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov dword [ebp - 0x3c], eax
xor eax, eax
xor edx, edx
cmp ebx, 0x1a
lea edi, [ebp - 0x48]
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x4c], edx
stosd dword es:[edi], eax
lea edi, [ebp - 0x60]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 8
pop ecx
mov esi, 0x139a0
lea edi, [ebp - 0x24]
mov dword [ebp - 0x28], edx
rep movsd dword es:[edi], dword [esi]
jae 0x13d1c
lea eax, [ebx*4 + 0x16628]
mov dword [ebp - 0x44], eax
mov eax, dword [eax]
cmp eax, edx
je 0x13b8f
mov eax, dword [eax + 0x28]
mov byte [eax + 0xc], 1
jmp 0x13d79
mov al, bl
add al, 0x41
movsx ax, al
mov word [ebp - 0xc], ax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x6c]
push eax
call dword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
xor esi, esi
push esi
push esi
push 0x21
push 1
push 3
push esi
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x5c], eax
push esi
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x64]
push eax
push 0x100000
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 0x64], 0x18
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x58], 0x40
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x50], esi
call dword [sym.imp.ntoskrnl.exe_ZwCreateFile]
cmp eax, esi
jge 0x13c04
push eax
add ebx, 0x41
push ebx
push 0x139c0
call sub.ntoskrnl.exe_DbgPrint
add esp, 0xc
jmp 0x13d1c
push esi
lea eax, [ebp - 0x2c]
push eax
push esi
push esi
push 1
push dword [ebp - 0x28]
call dword [sym.imp.ntoskrnl.exe_ObReferenceObjectByHandle]
test eax, eax
jge 0x13c38
add ebx, 0x41
push ebx
push 0x13a00
call sub.ntoskrnl.exe_DbgPrint
pop ecx
pop ecx
push dword [ebp - 0x28]
call dword [sym.imp.ntoskrnl.exe_ZwClose]
jmp 0x13d1c
push dword [ebp - 0x2c]
call dword [sym.imp.ntoskrnl.exe_IoGetRelatedDeviceObject]
cmp eax, esi
mov dword [ebp - 0x38], eax
jne 0x13c63
add ebx, 0x41
push ebx
push 0x13a48
call sub.ntoskrnl.exe_DbgPrint
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2c]
call dword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
jmp 0x13c2a
mov edi, dword [sym.imp.ntoskrnl.exe_ZwClose]
mov dword [ebp - 0x30], esi
mov ecx, dword [ebp - 0x30]
cmp dword [ecx*4 + 0x16628], eax
jne 0x13c9a
mov ecx, dword [ebp - 0x2c]
call dword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
push dword [ebp - 0x28]
call edi
push dword [ebp - 0x30]
call fcn.00013958
push dword [ebp - 0x3c]
push ebx
call fcn.00013b28
mov eax, dword [ebp - 0x38]
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0x1a
jb 0x13c6c
lea ecx, [ebp - 0x34]
push ecx
push esi
push esi
push dword [eax + 0x2c]
push esi
push 0x14
push dword [ebp - 0x3c]
call dword [sym.imp.ntoskrnl.exe_IoCreateDevice]
add ebx, 0x41
test eax, eax
jge 0x13cce
push ebx
push 0x13a90
call sub.ntoskrnl.exe_DbgPrint
pop ecx
pop ecx
jmp 0x13d0e
mov eax, dword [ebp - 0x34]
and byte [eax + 0x1c], 0x7f
mov eax, dword [ebp - 0x34]
mov esi, dword [eax + 0x28]
mov eax, dword [ebp - 0x38]
push eax
mov dword [esi + 8], ebx
mov dword [esi + 4], eax
mov byte [esi + 0xc], 1
mov dword [esi], 1
push dword [ebp - 0x34]
call dword [sym.imp.ntoskrnl.exe_IoAttachDeviceByPointer]
test eax, eax
jge 0x13d20
push eax
push dword [ebp - 0x38]
push ebx
push 0x13ad8
call sub.ntoskrnl.exe_DbgPrint
add esp, 0x10
mov ecx, dword [ebp - 0x2c]
call dword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
push dword [ebp - 0x28]
call edi
xor al, al
jmp 0x13d7b
mov eax, 0x110
push 0x206b6444
push eax
push 0
mov dword [ebp - 0x40], eax
call dword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
test eax, eax
mov dword [esi + 0x10], eax
je 0x13d63
lea ecx, [ebp - 0x40]
push ecx
push eax
push dword [ebp - 0x40]
push 5
push dword [ebp - 0x2c]
call dword [sym.imp.ntoskrnl.exe_IoQueryVolumeInformation]
test eax, eax
jge 0x13d63
push 0
push dword [esi + 0x10]
call dword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
and dword [esi + 0x10], 0
mov ecx, dword [ebp - 0x2c]
call dword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
push dword [ebp - 0x28]
call edi
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x44]
mov dword [ecx], eax
mov al, 1
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.00014d59
leave
ret 8