Function at 0x155e4
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x48
cmp dword [0x1803c], 1
jne 0x155fa
call fcn.0001534e
push ebx
push 0x16856
call fcn.00015172
xor ebx, ebx
mov dword [ebp - 4], eax
cmp eax, ebx
jne 0x15618
mov eax, 0xc0000001
jmp 0x15982
mov eax, dword [sym.imp.ntoskrnl.exe_KeServiceDescriptorTable]
xor ecx, ecx
push esi
mov word [0x17e38], cx
mov ecx, 0x31676154
push edi
mov dword [0x17ddc], eax
mov dword [0x18040], ebx
mov dword [0x18050], ebx
mov dword [0x17de8], ebx
mov dword [0x18044], ebx
mov dword [0x17df0], ecx
mov eax, dword [eax + 8]
push ecx
lea eax, [eax*4 + 4]
push eax
push ebx
call dword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
mov dword [0x18040], eax
cmp eax, ebx
je 0x15943
mov esi, dword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
push 0x16696
lea eax, [ebp - 0xc]
push eax
call esi
mov edi, dword [sym.imp.ntoskrnl.exe_MmGetSystemRoutineAddress]
lea eax, [ebp - 0xc]
push eax
call edi
mov dword [0x17de4], eax
cmp eax, ebx
je 0x15925
xor ecx, ecx
push 0x18044
mov ebx, 0x1808c
mov word [0x1808c], cx
push ebx
mov ecx, 0x200
push eax
mov word [0x1808e], cx
mov dword [0x18090], 0x17e38
call fcn.000146bc
test eax, eax
jl 0x15925
push ebx
push dword [0x18044]
push dword [0x17ddc]
push dword [0x18040]
call fcn.00012008
test eax, eax
jl 0x15925
push 0x16652
lea eax, [ebp - 0xc]
push eax
call esi
lea eax, [ebp - 0xc]
push eax
call edi
mov dword [0x17e30], eax
test eax, eax
je 0x15925
push 0x1683a
lea eax, [ebp - 0xc]
push eax
call esi
lea eax, [ebp - 0xc]
push eax
call edi
mov dword [0x17de0], eax
test eax, eax
je 0x15925
mov ebx, eax
jmp 0x1576a
add ebx, dword [ebp - 0x46]
cmp byte [ebp - 0x31], 0xe8
jne 0x15757
cmp dword [ebp - 0x46], 5
jne 0x15757
mov eax, dword [ebx - 4]
mov ecx, dword [ebp - 4]
add eax, ebx
cmp eax, ecx
jbe 0x15757
add ecx, 0x5000
cmp eax, ecx
jb 0x1577a
mov eax, ebx
sub eax, dword [0x17de0]
cmp eax, 0x300
ja 0x15925
lea eax, [ebp - 0x48]
push eax
push ebx
call fcn.00010736
test eax, eax
jne 0x15732
jmp 0x15783
add ebx, 0xfffffffc
mov dword [0x17dd8], ebx
cmp dword [0x17dd8], 0
je 0x15925
push 0x16820
lea eax, [ebp - 0xc]
push eax
call esi
lea eax, [ebp - 0xc]
push eax
call edi
mov dword [0x17e04], eax
test eax, eax
je 0x15925
mov ebx, eax
jmp 0x157ea
add ebx, dword [ebp - 0x46]
cmp byte [ebp - 0x31], 0xe8
jne 0x157d7
cmp dword [ebp - 0x46], 5
jne 0x157d7
mov eax, dword [ebx - 4]
mov ecx, dword [ebp - 4]
add eax, ebx
cmp eax, ecx
jbe 0x157d7
add ecx, 0x5000
cmp eax, ecx
jb 0x157fa
mov eax, ebx
sub eax, dword [0x17e04]
cmp eax, 0x300
ja 0x15925
lea eax, [ebp - 0x48]
push eax
push ebx
call fcn.00010736
test eax, eax
jne 0x157b2
jmp 0x15803
add ebx, 0xfffffffc
mov dword [0x17dec], ebx
cmp dword [0x17dec], 0
je 0x15925
push 0x16738
lea eax, [ebp - 0xc]
push eax
call esi
lea eax, [ebp - 0xc]
push eax
call edi
mov dword [0x18048], eax
test eax, eax
je 0x15925
mov edi, eax
jmp 0x15854
add edi, dword [ebp - 0x46]
cmp byte [ebp - 0x31], 0xe8
jne 0x15841
cmp dword [ebp - 0x46], 5
je 0x15864
mov eax, edi
sub eax, dword [0x18048]
cmp eax, 0x150
ja 0x15925
lea eax, [ebp - 0x48]
push eax
push edi
call fcn.00010736
test eax, eax
jne 0x15832
jmp 0x1586e
mov eax, dword [edi - 4]
add eax, edi
mov dword [0x17e2c], eax
cmp dword [0x17e2c], 0
je 0x15925
push 0x167dc
lea eax, [ebp - 0x14]
push eax
call esi
push 0x167c8
lea eax, [ebp - 0x14]
push eax
call fcn.000121b8
mov ecx, dword [0x18040]
mov eax, dword [ecx + eax*4]
xor edi, edi
mov dword [0x17e0c], eax
cmp eax, edi
je 0x15925
push 0x167b2
lea eax, [ebp - 0x14]
push eax
call fcn.000121b8
mov ecx, dword [0x18040]
mov eax, dword [ecx + eax*4]
mov dword [0x17e24], eax
cmp eax, edi
je 0x15925
call fcn.00011fac
mov dword [0x18050], eax
cmp eax, edi
je 0x15925
push dword [0x17df0]
mov eax, dword [eax + 8]
mov esi, dword [sym.imp.ntoskrnl.exe_ExAllocatePoolWithTag]
shl eax, 2
push eax
push edi
call esi
push dword [0x17df0]
mov dword [0x17de8], eax
mov eax, dword [0x18050]
mov eax, dword [eax + 8]
shl eax, 2
push eax
push edi
call esi
mov dword [0x18074], eax
cmp dword [0x17de8], edi
je 0x15925
cmp eax, edi
je 0x15925
mov dword [0x1803c], 1
xor eax, eax
jmp 0x15980
mov eax, dword [0x18040]
xor ebx, ebx
cmp eax, ebx
je 0x15943
push dword [0x17df0]
push eax
call dword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
mov dword [0x18040], ebx
mov eax, dword [0x17de8]
cmp eax, ebx
je 0x1595f
push dword [0x17df0]
push eax
call dword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
mov dword [0x17de8], ebx
mov eax, dword [0x18074]
cmp eax, ebx
je 0x1597b
push dword [0x17df0]
push eax
call dword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
mov dword [0x18074], ebx
mov eax, 0xc0000001
pop edi
pop esi
pop ebx
leave
ret