Function at 0x4148e0
Capabilities:
Start service

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff80
push ebx
push esi
push edi
lea ebx, [ebp - 0x7c]
mov eax, 0x4df678
call fcn.004c0cc0
mov word [ebx + 0x10], 8
mov edx, str.StartWinIoDriver_1__r_n
lea eax, [ebp - 4]
call fcn.004cc624
inc dword [ebx + 0x1c]
mov edx, dword [eax]
push edx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 4]
mov edx, 2
call fcn.004cc874
push 0xf003f
push 0
push 0
call sub.ADVAPI32.DLL_OpenSCManagerA
mov word [ebx + 0x10], 0x14
mov esi, eax
lea eax, [ebp - 8]
mov edx, str.StartWinIoDriver_1.0__r_n
call fcn.004cc624
inc dword [ebx + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 8]
mov edx, 2
call fcn.004cc874
test esi, esi
je 0x414e74
mov word [ebx + 0x10], 0x20
mov edx, str.StartWinIoDriver_1.1__r_n
lea eax, [ebp - 0xc]
call fcn.004cc624
inc dword [ebx + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.004cc874
push 0xf01ff
mov ecx, dword [ebp + 8]
push ecx
push esi
call sub.ADVAPI32.DLL_OpenServiceA
mov edi, eax
push esi
call sub.ADVAPI32.DLL_CloseServiceHandle
test edi, edi
je 0x414e38
mov word [ebx + 0x10], 0x2c
mov edx, str.StartWinIoDriver_1.2__r_n
lea eax, [ebp - 0x10]
call fcn.004cc624
inc dword [ebx + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.004cc874
push 0
push 0
push edi
call sub.ADVAPI32.DLL_StartServiceA
test eax, eax
setne cl
and ecx, 1
mov byte [ebp - 0x7e], cl
call sub.KERNEL32.DLL_GetLastError
cmp byte [ebp - 0x7e], 0
mov esi, eax
jne case.0x414a9f.1059
mov word [ebx + 0x10], 0x38
mov edx, str.StartWinIoDriver_1.2.1__r_n
lea eax, [ebp - 0x14]
call fcn.004cc624
inc dword [ebx + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.004cc874
cmp esi, 0x420
jg 0x414a90
je 0x414b8a
cmp esi, 0x41d
jg 0x414a78
je 0x414d24
sub esi, 3
je 0x414b56
sub esi, 2
je 0x414aee
dec esi
je 0x414b22
jmp case.0x414a9f.1059
sub esi, 0x41e
je 0x414cf3
dec esi
je 0x414bbe
jmp case.0x414a9f.1059
add esi, 0xfffffbde
cmp esi, 0x11
ja case.0x414a9f.1059
jmp dword [esi*4 + 0x414aa6]
mov word [ebx + 0x10], 0x44
mov edx, str.StartWinIoDriver_ERROR_ACCESS_DENIED_1.2.1_r_n
lea eax, [ebp - 0x18]
call fcn.004cc624
inc dword [ebx + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.004cc874
jmp case.0x414a9f.1059
mov word [ebx + 0x10], 0x50
mov edx, str.StartWinIoDriver_ERROR_INVALID_HANDLE_1.2.1_r_n
lea eax, [ebp - 0x1c]
call fcn.004cc624
inc dword [ebx + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.004cc874
jmp case.0x414a9f.1059
mov word [ebx + 0x10], 0x5c
mov edx, str.StartWinIoDriver_ERROR_PATH_NOT_FOUND_1.2.1_r_n
lea eax, [ebp - 0x20]
call fcn.004cc624
inc dword [ebx + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x20]
mov edx, 2
call fcn.004cc874
jmp case.0x414a9f.1059
mov word [ebx + 0x10], 0x68
mov edx, str.StartWinIoDriver_ERROR_SERVICE_ALREADY_RUNNING_1.2.1_r_n
lea eax, [ebp - 0x24]
call fcn.004cc624
inc dword [ebx + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x24]
mov edx, 2
call fcn.004cc874
jmp case.0x414a9f.1059
mov word [ebx + 0x10], 0x74
mov edx, str.StartWinIoDriver_ERROR_SERVICE_DATABASE_LOCKED_1.2.1_r_n
lea eax, [ebp - 0x28]
call fcn.004cc624
inc dword [ebx + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x28]
mov edx, 2
call fcn.004cc874
jmp case.0x414a9f.1059
mov word [ebx + 0x10], 0x80
mov edx, str.StartWinIoDriver_ERROR_SERVICE_DEPENDENCY_DELETED_1.2.1_r_n
lea eax, [ebp - 0x2c]
call fcn.004cc624
inc dword [ebx + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x2c]
mov edx, 2
call fcn.004cc874
jmp case.0x414a9f.1059
mov word [ebx + 0x10], 0x8c
mov edx, str.StartWinIoDriver_ERROR_SERVICE_DEPENDENCY_FAIL_1.2.1_r_n
lea eax, [ebp - 0x30]
call fcn.004cc624
inc dword [ebx + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x30]
mov edx, 2
call fcn.004cc874
jmp case.0x414a9f.1059
mov word [ebx + 0x10], 0x98
mov edx, str.StartWinIoDriver_ERROR_SERVICE_DISABLED_1.2.1_r_n
lea eax, [ebp - 0x34]
call fcn.004cc624
inc dword [ebx + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x34]
mov edx, 2
call fcn.004cc874
jmp case.0x414a9f.1059
mov word [ebx + 0x10], 0xa4
mov edx, str.StartWinIoDriver_ERROR_SERVICE_LOGON_FAILED_1.2.1_r_n
lea eax, [ebp - 0x38]
call fcn.004cc624
inc dword [ebx + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x38]
mov edx, 2
call fcn.004cc874
jmp case.0x414a9f.1059
mov word [ebx + 0x10], 0xb0
mov edx, str.StartWinIoDriver_ERROR_SERVICE_MARKED_FOR_DELETE_1.2.1_r_n
lea eax, [ebp - 0x3c]
call fcn.004cc624
inc dword [ebx + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x3c]
mov edx, 2
call fcn.004cc874
jmp case.0x414a9f.1059
mov word [ebx + 0x10], 0xbc
mov edx, str.StartWinIoDriver_ERROR_SERVICE_NO_THREAD_1.2.1_r_n
lea eax, [ebp - 0x40]
call fcn.004cc624
inc dword [ebx + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x40]
mov edx, 2
call fcn.004cc874
jmp case.0x414a9f.1059
mov word [ebx + 0x10], 0xc8
mov edx, str.StartWinIoDriver_ERROR_SERVICE_REQUEST_TIMEOUT_1.2.1_r_n
lea eax, [ebp - 0x44]
call fcn.004cc624
inc dword [ebx + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x44]
mov edx, 2
call fcn.004cc874
call sub.KERNEL32.DLL_GetLastError
cmp eax, 0x420
sete cl
and ecx, 1
mov byte [ebp - 0x7f], cl
cmp byte [ebp - 0x7f], 0
jne 0x414d9b
mov word [ebx + 0x10], 0xd4
mov edx, str.StartWinIoDriver_1.2.2__r_n
lea eax, [ebp - 0x48]
call fcn.004cc624
inc dword [ebx + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x48]
mov edx, 2
call fcn.004cc874
call sub.KERNEL32.DLL_GetLastError
cmp eax, 0x422
sete cl
and ecx, 1
mov byte [ebp - 0x80], cl
cmp byte [ebp - 0x80], 0
jne 0x414de3
mov word [ebx + 0x10], 0xe0
mov edx, str.StartWinIoDriver_1.2.3__r_n
lea eax, [ebp - 0x4c]
call fcn.004cc624
inc dword [ebx + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x4c]
mov edx, 2
call fcn.004cc874
cmp byte [ebp - 0x7e], 0
jne 0x414df9
cmp byte [ebp - 0x7f], 0
jne 0x414df9
cmp byte [ebp - 0x80], 0
jne 0x414df9
xor ecx, ecx
jmp 0x414dfe
mov ecx, 1
mov byte [ebp - 0x7d], cl
push edi
call sub.ADVAPI32.DLL_CloseServiceHandle
mov word [ebx + 0x10], 0xec
mov edx, str.StartWinIoDriver_1.3__r_n
lea eax, [ebp - 0x50]
call fcn.004cc624
inc dword [ebx + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x50]
mov edx, 2
call fcn.004cc874
jmp 0x414eb0
mov word [ebx + 0x10], 0xf8
mov edx, str.StartWinIoDriver_1.4__r_n
lea eax, [ebp - 0x54]
call fcn.004cc624
inc dword [ebx + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x54]
mov edx, 2
call fcn.004cc874
xor eax, eax
mov edx, dword [ebx]
mov dword fs:[0], edx
jmp 0x414ebc
mov word [ebx + 0x10], 0x104
mov edx, str.StartWinIoDriver_1.5__r_n
lea eax, [ebp - 0x58]
call fcn.004cc624
inc dword [ebx + 0x1c]
mov ecx, dword [eax]
push ecx
call fcn.0043e29c
pop ecx
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x58]
mov edx, 2
call fcn.004cc874
xor eax, eax
mov edx, dword [ebx]
mov dword fs:[0], edx
jmp 0x414ebc
mov al, byte [ebp - 0x7d]
mov edx, dword [ebx]
mov dword fs:[0], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret