Function at 0x106e6
Capabilities:
Create device object

Disassembly:
push 0x17
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
ja 0x105e9
add cl, byte [eax]
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [eax + eax], ah
add byte [eax], al
mov esp, 0xbc000006
push es
add byte [eax], al
add byte [eax], al
add byte [eax], al
pop esp
add byte [eax + eax + 0x6f], al
add byte [ebx], dh
inc esp
add byte [ebp], ah
jbe 0x105be
imul eax, dword [eax], 0x650063
jae 0x105c6
add byte [eax], al
jnp 0x105ca
xor eax, dword [eax]
inc ebx
add byte [eax], dh
add byte [eax + eax + 0x35], al
add byte [eax], dh
add byte [ecx], dh
add byte [ecx], al
sub eax, 0x34003100
add byte [eax], dh
add byte [edx], al
sub eax, 0x31003100
add byte [eax + eax + 0x31], al
add byte [0x34004200], ch
add byte [eax], dh
add byte [esi], al
sub eax, 0x30003000
add byte [ecx], al
xor byte [eax], al
inc ebx
add byte [ecx], bh
add byte [edx], dh
add byte [edx], dh
add byte [ebx], dh
add byte [ecx], dh
add byte [ecx], bh
add byte [esi], dh
add byte [ebp], bh
add byte [eax], al
add byte [eax], al
jo 0x1062b
add dword [eax], eax
add byte [eax], al
add byte [eax], al
dec esp
add byte [esi], cl
enter 0x105, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
outsb dx, byte [esi]
adc al, byte [ecx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], ah
adc al, byte [ecx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], bl
add byte [eax], al
add byte [edx], cl
add byte [eax], al
add byte [esi + 0xe], dl
add byte [eax], al
add byte [eax], al
add byte [esi + 0x12], ch
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
and dl, byte [edx]
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
sbb byte [eax], al
add byte [eax], al
or al, byte [eax]
add byte [eax], al
push esi
push cs
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
sbb byte [eax], al
add byte [eax], al
push cs
add byte [eax], al
add byte [esi + 0xe], dl
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
mov al, 0x12
add dword [eax], eax
add al, byte [eax]
add byte [eax], al
pop eax
push es
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
push edx
push ebx
inc esp
push ebx
adc eax, 0xb5a4d230
mov cl, 0
inc eax
mov bh, 0x36
cmp dh, byte [edx - 6]
cdq
and esi, esi
add dword [eax], eax
add byte [eax], al
insd dword es:[edi], dx
jae 0x10742
jae 0x1074c
jb 0x10751
jo 0x10742
bound eax, qword [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
mov edi, edi
push ebp
mov ebp, esp
lea eax, [ebp + 8]
push eax
push 0
push 0
push 0x2f
push 0
push 4
push dword [ebp + 8]
call dword [sym.imp.NTOSKRNL.EXE_IoCreateDevice]
test eax, eax
jl 0x10767
mov eax, dword [ebp + 8]
push esi
push edi
mov edi, dword [eax + 0x28]
push 0x10618
push 1
push edi
call dword [sym.imp.ks.sys_KsAllocateDeviceHeader]
push dword [ebp + 8]
mov esi, eax
test esi, esi
jl 0x1075d
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.NTOSKRNL.EXE_IoAttachDeviceToDeviceStack]
push eax
push dword [edi]
call dword [sym.imp.ks.sys_KsSetDevicePnpAndBaseObject]
mov esi, dword [ebp + 8]
push dword [edi]
add esi, 0x1c
call dword [sym.imp.ks.sys_KsQueryDevicePnpObject]
mov eax, dword [eax + 0x1c]
and eax, 0x2000
add byte [eax], ah
add byte [eax], al
or dword [esi], eax
push es
mov eax, dword [ebp + 8]
and byte [eax + 0x1c], 0x7f
xor eax, eax
jmp 0x10765
call dword [sym.imp.NTOSKRNL.EXE_IoDeleteDevice]
mov eax, esi
pop edi
pop esi
pop ebp
ret 8