Function at 0x101f7ec0
Capabilities:
Create service

Disassembly:
push 0xffffffffffffffff
push 0x102556b3
mov eax, dword fs:[0]
push eax
sub esp, 0x60
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1037c990]
xor eax, esp
push eax
lea eax, [esp + 0x74]
mov dword fs:[0], eax
mov edi, dword [esp + 0x84]
mov ecx, edi
call fcn.10003840
mov eax, dword [eax]
mov eax, dword [eax - 0xc]
xor ebx, ebx
cmp eax, ebx
jne 0x101f7f12
push ebx
push 0x38
push str..Service.cpp
push 0x80070057
call fcn.100048f0
mov ecx, edi
call fcn.10003840
mov ecx, dword [eax]
cmp dword [ecx - 0xc], 0x100
jl 0x101f7f36
push ebx
push 0x39
push str..Service.cpp
push 0x80070057
call fcn.100048f0
mov ecx, dword [esp + 0x88]
call fcn.10003840
mov edx, dword [eax]
cmp dword [edx - 0xc], ebx
jne 0x101f7f5b
push ebx
push 0x3a
push str..Service.cpp
push 0x80070057
call fcn.100048f0
mov ecx, dword [esp + 0x8c]
call fcn.10003840
mov eax, dword [eax]
cmp dword [eax - 0xc], ebx
jne 0x101f7f80
push ebx
push 0x3b
push str..Service.cpp
push 0x80070057
call fcn.100048f0
mov esi, dword [esp + 0x94]
mov ecx, esi
call fcn.10003a90
test al, al
jne 0x101f7faf
mov ecx, esi
call fcn.100585c0
test eax, eax
je 0x101f7faf
push ebx
push 0x3c
push str..Service.cpp
push 0x80070057
call fcn.100048f0
mov esi, dword [esp + 0x98]
mov ecx, esi
call fcn.101dc6d0
test al, al
jne 0x101f7fd3
push ebx
push 0x3d
push str..Service.cpp
push 0x80070057
call fcn.100048f0
mov ecx, esi
call fcn.101dc650
shr eax, 4
not al
and al, 1
jne 0x101f7ff5
push ebx
push 0x3e
push str..Service.cpp
push 0x80070057
call fcn.100048f0
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x20], ebx
mov byte [esp + 0x7c], 1
push 0xf003f
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov ebp, eax
cmp ebp, ebx
je 0x101f804b
push 0x103b7524
lea ecx, [esp + 0x1c]
mov dword [esp + 0x20], ebp
call fcn.10003eb0
mov byte [esp + 0x7c], 3
push 1
push 0x102b2628
lea ecx, [esp + 0x20]
call fcn.100043a0
mov ecx, dword [esi + 0x18]
cmp ecx, ebx
jne 0x101f8052
xor eax, eax
jmp 0x101f8066
push ebx
push ebx
call fcn.100563c0
mov eax, ecx
lea esi, [eax + 2]
mov dx, word [eax]
add eax, 2
cmp dx, bx
jne 0x101f8057
sub eax, esi
sar eax, 1
push eax
push ecx
lea ecx, [esp + 0x20]
call fcn.10054e60
push 1
push 0x102b2628
lea ecx, [esp + 0x20]
call fcn.10054e60
mov ecx, dword [esp + 0x94]
mov esi, dword [esp + 0x18]
push ebx
push ebx
push ebx
push ebx
call fcn.10002aa0
mov ecx, dword [esp + 0xa0]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0xb4]
mov ecx, dword [eax]
push esi
push edx
mov edx, dword [esp + 0xb8]
mov eax, dword [edx]
push ecx
mov ecx, dword [esp + 0xa8]
push eax
push 0x60096
call fcn.10002aa0
push eax
mov ecx, edi
call fcn.10002aa0
push eax
push ebp
call dword [sym.imp.ADVAPI32.dll_CreateServiceW]
mov esi, eax
cmp esi, ebx
je 0x101f804b
mov edi, esi
push 0xc
mov dword [esp + 0x24], edi
call fcn.101d2e81
add esp, 4
mov dword [esp + 0x2c], eax
mov byte [esp + 0x7c], 4
cmp eax, ebx
je 0x101f8116
xor edi, edi
push esi
mov dword [esp + 0x24], edi
push ebp
mov ecx, eax
mov dword [esp + 0x24], ebx
call fcn.101f7910
mov dword [esp + 0x24], eax
jmp 0x101f811c
mov dword [esp + 0x24], ebx
mov eax, ebx
mov byte [esp + 0x7c], 3
mov dword [esp + 0x2c], eax
mov bl, 5
mov byte [esp + 0x7c], bl
mov ecx, dword [esp + 0x8c]
push ecx
mov ecx, eax
call fcn.101f7c70
call fcn.101f60c0
test al, al
je 0x101f8237
cmp byte [esp + 0xa4], 0
je 0x101f8237
push str.HKLMSYSTEMCurrentControlSetServices
lea ecx, [esp + 0x58]
call fcn.10056640
mov byte [esp + 0x7c], 6
mov edx, dword [esp + 0x84]
push edx
lea ecx, [esp + 0x4c]
call fcn.101a5860
mov esi, eax
mov byte [esp + 0x7c], 7
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.101e5ea0
add esp, 8
mov byte [esp + 0x7c], 8
push esi
lea edx, [esp + 0x34]
push edx
mov ecx, eax
call fcn.10104ee0
mov byte [esp + 0x7c], 0xa
lea ecx, [esp + 0x3c]
call fcn.100560b0
mov byte [esp + 0x7c], 0xb
lea ecx, [esp + 0x48]
call fcn.100560b0
mov byte [esp + 0x7c], 0xc
lea ecx, [esp + 0x54]
call fcn.10002d20
push 1
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x38]
call fcn.10055e70
mov byte [esp + 0x7c], 0xd
push eax
lea ecx, [esp + 0x34]
call fcn.10056080
mov byte [esp + 0x7c], 0xc
lea ecx, [esp + 0x48]
call fcn.100560b0
push str.WOW64
lea ecx, [esp + 0x2c]
call fcn.100044a0
mov byte [esp + 0x7c], 0xe
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x34]
call fcn.101e4ed0
mov byte [esp + 0x7c], 0xc
lea ecx, [esp + 0x28]
call fcn.10004720
mov byte [esp + 0x7c], bl
lea ecx, [esp + 0x30]
call fcn.100560b0
xor esi, esi
mov dword [esp + 0x2c], esi
mov byte [esp + 0x7c], 3
mov dword [esp + 0x2c], esi
mov byte [esp + 0x7c], 1
lea ecx, [esp + 0x18]
call fcn.10004720
mov byte [esp + 0x7c], 0
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, dword [sym.imp.KERNEL32.dll_SetLastError]
cmp edi, esi
je 0x101f8292
call ebp
push 0x195
push str.c:dvsp4_build_sw_relgpu_drvinstaller_coreincHandles.h
push edi
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push eax
call fcn.100556a0
add esp, 0xc
push esi
mov dword [esp + 0x24], 0
call ebx
mov dword [esp + 0x7c], 0xffffffff
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x101f82cb
call ebp
push 0x195
push str.c:dvsp4_build_sw_relgpu_drvinstaller_coreincHandles.h
push edi
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push eax
call fcn.100556a0
add esp, 0xc
push esi
mov dword [esp + 0x20], 0
call ebx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x74]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret