Function at 0x419000
Capabilities:
Create service
Query or enumerate registry value
Query service configuration
Set registry value

Disassembly:
sub esp, 0xacc
mov eax, dword [0x4382c4]
xor eax, esp
mov dword [esp + 0xac4], eax
push ebx
push ebp
push esi
push edi
xor ebp, ebp
push 0x18c
lea eax, [esp + 0x40]
push ebp
push eax
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x44], ebp
call fcn.00420f50
add esp, 0xc
push 0x7ff
lea ecx, [esp + 0x2d5]
push ebp
push ecx
mov dword [esp + 0x40], ebp
mov byte [esp + 0x2dc], 0
call fcn.00420f50
add esp, 0xc
push 0x103
lea edx, [esp + 0x1cd]
push ebp
push edx
mov dword [esp + 0x20], ebp
mov byte [esp + 0x1d4], 0
call fcn.00420f50
add esp, 0xc
call fcn.00419a70
test eax, eax
jne 0x41946a
lea esi, [esp + 0x1c8]
call fcn.00418f30
push 0xf003f
push ebp
push ebp
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov ebx, eax
cmp ebx, ebp
mov dword [esp + 0x24], ebx
jne 0x4190cf
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CTDIInstaller::InstallDriver:OpenSCManager:__d_n
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 8
jmp 0x419415
push ebp
push ebp
push 0x434158
lea eax, [esp + 0x24]
push eax
push str.PNP_TDI
lea ecx, [esp + 0x1dc]
push ecx
push 1
push 1
push 1
push 0xf01ff
push str.tdisvn
push str.tdisvn
push ebx
call dword [sym.imp.ADVAPI32.dll_CreateServiceA]
mov edi, eax
cmp edi, ebp
mov dword [esp + 0x1c], edi
jne 0x41912c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CTDIInstaller::InstallDriver:CreateService:__d_n
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 8
jmp 0x4193fa
mov esi, dword [sym.imp.ADVAPI32.dll_OpenServiceA]
push 1
push str.tcpip
push ebx
call esi
cmp eax, ebp
mov dword [esp + 0x2c], eax
jne 0x419162
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CTDIInstaller::InstallDriver:OpenService_tcpip_:__d_n
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 8
jmp 0x4193df
mov edi, dword [sym.imp.ADVAPI32.dll_QueryServiceConfigA]
lea edx, [esp + 0x10]
push edx
push 0x800
lea ecx, [esp + 0x2d8]
push ecx
push eax
call edi
test eax, eax
jne 0x41919f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.QueryServiceConfig_tcpip_:__d_n
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 8
jmp 0x4193df
mov ebp, dword [esp + 0x2e4]
push 0xf01ff
push str.netbt
push ebx
call esi
test eax, eax
mov dword [esp + 0x20], eax
jne 0x4191d9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CTDIInstaller::InstallDriver:OpenService_netbt_:__d_n
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 8
jmp 0x4193dd
lea edx, [esp + 0x10]
push edx
push 0x800
lea ecx, [esp + 0x2d8]
push ecx
push eax
call edi
test eax, eax
jne 0x419210
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CTDIInstaller::InstallDriver:QueryServiceConfig_tcpip_:__d_n
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 8
jmp 0x4193dd
mov ebx, dword [esp + 0x2e4]
lea edx, [esp + 0x14]
push edx
push str.SYSTEMCurrentControlSetControlGroupOrderList
push reloc.WS2_32.dll_bind
mov dword [esp + 0x34], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
xor edi, edi
cmp eax, edi
je 0x41924e
push eax
push str.CTDIInstaller::InstallDriver:RegOpenKey:__d_n
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 8
jmp 0x4193d9
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x3c]
push edx
push edi
push str.PNP_TDI
push eax
mov dword [esp + 0x28], 0x184
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp eax, edi
je 0x419285
push eax
push str.CTDIInstaller::InstallDriver:RegQueryValueEx:__d_n
jmp 0x4193c1
mov eax, dword [esp + 0x10]
shr eax, 2
mov ecx, 1
cmp eax, ecx
mov dword [esp + 0x10], eax
jbe 0x4192b1
lea esp, [esp]
mov edx, dword [esp + ecx*4 + 0x38]
cmp edx, dword [esp + 0x18]
je 0x4192c0
add ecx, 1
cmp ecx, eax
jb 0x4192a0
mov ecx, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x38], ecx
add eax, 1
mov dword [esp + 0x10], eax
mov esi, 1
cmp eax, esi
mov dword [esp + 0x30], edi
mov edx, esi
jbe 0x419326
nop
mov ecx, dword [esp + edx*4 + 0x38]
cmp ecx, ebp
je 0x4192e6
cmp ecx, ebx
je 0x4192e6
cmp ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
jne 0x41931b
mov ecx, esi
sub ecx, 1
je 0x41930f
sub ecx, 1
je 0x419305
sub ecx, 1
jne 0x419318
mov dword [esp + edx*4 + 0x38], ebx
mov dword [esp + 0x30], 1
jmp 0x419318
mov ecx, dword [esp + 0x18]
mov dword [esp + edx*4 + 0x38], ecx
jmp 0x419318
mov dword [esp + edx*4 + 0x38], ebp
mov edi, 1
add esi, 1
add edx, 1
cmp edx, eax
jb 0x4192d0
test edi, edi
jne 0x419363
push ebp
push str.Warning__tcpip_with_tag__d_not_found__Trying_to_restore_registry_GroupOrderList_key..._n
mov ecx, 0x43b48c
call fcn.0040a090
mov edx, dword [esp + 0x18]
lea eax, [edx*4 - 4]
push eax
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0x4c]
push edx
call fcn.0041d730
mov eax, dword [esp + 0x24]
add esp, 0x14
add eax, 1
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x10], eax
cmp dword [esp + 0x30], 0
jne 0x41938c
push ebx
push str.Warning__netbt_with_tag__d_not_found__Trying_to_restore_registry_GroupOrderList_key..._n
mov ecx, 0x43b48c
call fcn.0040a090
mov eax, dword [esp + 0x18]
add esp, 8
mov dword [esp + eax*4 + 0x38], ebx
add eax, 1
mov dword [esp + 0x10], eax
lea edx, [eax*4]
push edx
mov edx, dword [esp + 0x18]
lea ecx, [eax - 1]
lea eax, [esp + 0x3c]
push eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x3c]
push ecx
push 0
push str.PNP_TDI
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x41942b
push eax
push str.CTDIInstaller::InstallDriver:RegSetValueEx:__d_n
mov ecx, 0x43b48c
call fcn.0040a090
mov eax, dword [esp + 0x1c]
add esp, 8
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, dword [esp + 0x24]
xor ebp, ebp
mov eax, dword [esp + 0x2c]
cmp eax, ebp
je 0x4193f6
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push eax
call esi
mov edi, dword [esp + 0x1c]
jmp 0x419400
mov edi, dword [esp + 0x1c]
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp edi, ebp
je 0x419407
push edi
call esi
mov eax, dword [esp + 0x20]
cmp eax, ebp
je 0x419412
push eax
call esi
push ebx
call esi
push str.CTDIInstaller::InstallDriver:Error_occurred.
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 4
xor eax, eax
jmp 0x41946f
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [esp + 0x2c]
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push edx
call esi
mov eax, dword [esp + 0x1c]
push eax
call esi
mov ecx, dword [esp + 0x20]
push ecx
call esi
mov edx, dword [esp + 0x24]
push edx
call esi
push str.CTDIInstaller::InstallDriver:success_n
mov ecx, 0x43b48c
call fcn.0040a090
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0xad4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0041aec3
add esp, 0xacc
ret