Function at 0x403cfc
Capabilities:
Create service
Print debug messages

Disassembly:
push 0xac
mov eax, 0x450fe4
call fcn.00414323
mov ebx, ecx
mov dword [ebp - 0xac], ebx
push 0
lea eax, [ebp - 0xa1]
mov dword [ebp - 0x18], 0x453410
mov edi, 0x453408
lea ecx, [ebp - 0x40]
push eax
mov dword [ebp - 0x40], edi
call fcn.00401519
and dword [ebp - 4], 0
lea eax, [ebp - 0xb8]
mov esi, 0x208
lea ecx, [ebp - 0x40]
push esi
push eax
call fcn.004046d2
mov ecx, dword [eax]
mov byte [ebp - 4], 1
mov byte [eax + 4], 1
call fcn.00404677
push esi
push dword [eax]
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0
call fcn.00403999
push 0
push 0
lea eax, [ebp - 0xa0]
push eax
lea ecx, [ebp - 0x40]
call fcn.00404816
push eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 2
call fcn.00401abb
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0
call fcn.00401a1b
lea eax, [ebp - 0xa0]
mov ecx, ebx
push eax
call fcn.00403c9a
push eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 3
call fcn.00403a66
lea ecx, [ebp - 0xa0]
call fcn.00401a1b
xor ebx, ebx
mov dword [ebp - 0x70], edi
push ebx
lea eax, [ebp - 0xa1]
mov dword [ebp - 0x48], 0x453410
push eax
lea ecx, [ebp - 0x70]
call fcn.00401519
cmp dword [ebp - 0x28], 8
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 4
cmovae eax, dword [ebp - 0x3c]
push eax
lea eax, [ebp - 0x70]
push str.InstallFilterDriver:_installing_driver__s_n
push eax
call fcn.00404604
add esp, 0xc
lea eax, [ebp - 0x6c]
cmp dword [ebp - 0x58], 8
cmovae eax, dword [ebp - 0x6c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push 0xf003f
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov edi, eax
test edi, edi
jne 0x403e39
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x403f31
cmp dword [ebp - 0x28], 8
lea eax, [ebp - 0x3c]
push ebx
cmovae eax, dword [ebp - 0x3c]
push ebx
push ebx
push ebx
push ebx
push eax
push 1
push 3
push 1
push 0xf01ff
mov eax, str.ISRegFlt
push eax
push eax
push edi
call dword [sym.imp.ADVAPI32.dll_CreateServiceW]
mov ebx, eax
mov dword [ebp - 0xa8], ebx
test ebx, ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jne 0x403eaf
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
cmp eax, 0x431
je 0x403eaf
call esi
push edi
mov esi, eax
call ebx
push esi
lea eax, [ebp - 0x70]
push str.InstallFilterDriver:_failed_to_create_service__error__d_n
push eax
call fcn.00404604
add esp, 0xc
lea eax, [ebp - 0x6c]
cmp dword [ebp - 0x58], 8
cmovae eax, dword [ebp - 0x6c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push dword [ebp - 0xa8]
call ebx
push 0
lea eax, [ebp - 0xa1]
mov dword [ebp - 0xa0], 0x453408
push eax
push str.ISRegFlt
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0x78], 0x453410
call fcn.0040157a
mov ecx, dword [ebp - 0xac]
lea eax, [ebp - 0xa0]
push eax
push edi
mov byte [ebp - 4], 5
call fcn.00403f49
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 4
mov esi, eax
call fcn.00401a1b
test esi, esi
je 0x403f24
push esi
lea eax, [ebp - 0x70]
push str.InstallFilterDriver:_failed_to_load_driver__error__d_n
push eax
call fcn.00404604
add esp, 0xc
push edi
call ebx
jmp 0x403f31
push str.InstallFilterDriver:_successfully_installed_and_loaded_driver_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
xor esi, esi
lea ecx, [ebp - 0x70]
call fcn.00401a1b
lea ecx, [ebp - 0x40]
call fcn.00401a1b
mov eax, esi
call fcn.004142cd
ret