Function at 0x41bf60
Capabilities:
Link many functions at runtime
Start service

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41e43e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2ac
push ebx
xor ebx, ebx
push esi
xor eax, eax
push edi
mov dword [ebp - 0x10], eax
push 4
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp + eax*4 - 0xb0]
push edx
call fcn.00405a80
mov eax, dword [ebp - 0x10]
inc eax
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp eax, 8
jb 0x41bf88
push 0x104
lea eax, [ebp - 0x2b8]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x41c078
sub esp, 0x1c
mov dword [ebp - 0x10], esp
mov esi, esp
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], ebx
push 0x42214c
mov byte [esi], bl
call fcn.00406680
mov edi, eax
add esp, 4
mov eax, 0x42214c
call fcn.00403ef0
mov ecx, 0x42213c
lea esi, [ebp - 0xac]
call fcn.00405420
mov dword [ebp - 4], ebx
cmp dword [eax + 0x14], 0x10
jb 0x41c00d
mov eax, dword [eax]
push eax
sub esp, 0x1c
mov esi, esp
mov dword [ebp - 0x18], esp
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], ebx
push 0x42216c
mov byte [esi], bl
call fcn.00406680
mov edi, eax
add esp, 4
mov eax, 0x42216c
call fcn.00403ef0
mov ecx, 0x42215c
lea esi, [ebp - 0x90]
call fcn.00405420
mov byte [ebp - 4], 1
cmp dword [eax + 0x14], 0x10
jb 0x41c057
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
push 0x423744
lea ecx, [ebp - 0x10]
push ecx
mov dword [ebp - 0x10], eax
call fcn.004093ff
xor eax, eax
mov dword [ebp - 0x10], eax
lea ecx, [ecx]
push 4
lea edx, [ebp - 0x10]
push edx
lea eax, [ebp + eax*4 - 0x1c]
push eax
call fcn.00405a80
mov eax, dword [ebp - 0x10]
inc eax
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp eax, 2
jb 0x41c080
mov ecx, dword [0x425d14]
push ecx
call fcn.00418bb0
mov edx, dword [0x425d18]
push edx
mov dword [ebp - 0x10], eax
call fcn.00418bb0
mov esi, eax
xor eax, eax
push esi
mov dword [ebp - 0x60], 7
mov dword [ebp - 0x64], ebx
mov word [ebp - 0x74], ax
call fcn.0040670b
add esp, 0xc
push eax
mov eax, esi
lea esi, [ebp - 0x74]
call fcn.004041e0
mov dword [ebp - 4], 2
cmp dword [ebp - 0x60], 8
jb 0x41c0f5
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x20], ecx
jmp 0x41c0fb
lea edx, [ebp - 0x74]
mov dword [ebp - 0x20], edx
push 3
push ebx
push ebx
sub esp, 0x1c
mov esi, esp
mov dword [ebp - 0x18], esp
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], ebx
push str.y1_x
mov byte [esi], bl
call fcn.00406680
mov edi, eax
add esp, 4
mov eax, str.y1_x
call fcn.00403ef0
mov ecx, 0x42217c
lea esi, [ebp - 0x3c]
call fcn.00405420
mov byte [ebp - 4], 3
cmp dword [eax + 0x14], 0x10
jb 0x41c145
mov eax, dword [eax]
push eax
sub esp, 0x1c
mov esi, esp
xor eax, eax
mov dword [ebp - 0x18], esp
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], ebx
push 0x4221b8
mov edi, 0x42219c
mov word [esi], ax
call fcn.0040670b
add esp, 4
push eax
mov eax, 0x4221b8
call fcn.004041e0
mov ecx, edi
lea esi, [ebp - 0x58]
call fcn.004052d0
mov edi, 8
mov byte [ebp - 4], 4
cmp dword [eax + 0x14], edi
jb 0x41c194
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
mov esi, eax
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x44], edi
jb 0x41c1ba
mov ecx, dword [ebp - 0x58]
push ecx
call fcn.004064ef
add esp, 4
xor edx, edx
mov byte [ebp - 4], 2
cmp dword [ebp - 0x28], 0x10
mov dword [ebp - 0x44], 7
mov dword [ebp - 0x48], ebx
mov word [ebp - 0x58], dx
jb 0x41c1e0
mov eax, dword [ebp - 0x3c]
push eax
call fcn.004064ef
add esp, 4
mov eax, 0xf
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], ebx
mov byte [ebp - 0x3c], bl
cmp esi, ebx
jne 0x41c209
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x423744
lea ecx, [ebp - 0x10]
push ecx
mov dword [ebp - 0x10], eax
call fcn.004093ff
mov ecx, dword [ebp - 0x10]
push ebx
push ebx
push ebx
push ebx
push ebx
lea edx, [ebp - 0x2b8]
push edx
mov edx, dword [0x426bd4]
push 1
push 2
push 0x10
push 0xf01ff
push ecx
push edx
push esi
sub esp, 0x1c
mov esi, esp
mov dword [ebp - 0x10], esp
mov dword [esi + 0x14], eax
mov dword [esi + 0x10], ebx
push 0x4221e4
mov byte [esi], bl
call fcn.00406680
mov edi, eax
add esp, 4
mov eax, 0x4221e4
call fcn.00403ef0
mov ecx, 0x4221d4
lea esi, [ebp - 0xac]
call fcn.00405420
mov byte [ebp - 4], 5
cmp dword [eax + 0x14], 0x10
jb 0x41c271
mov eax, dword [eax]
push eax
sub esp, 0x1c
mov esi, esp
xor eax, eax
mov dword [ebp - 0x10], esp
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], ebx
push 0x422210
mov edi, 0x4221f4
mov word [esi], ax
call fcn.0040670b
add esp, 4
push eax
mov eax, 0x422210
call fcn.004041e0
mov ecx, edi
lea esi, [ebp - 0x90]
call fcn.004052d0
mov edi, 8
mov byte [ebp - 4], 6
cmp dword [eax + 0x14], edi
jb 0x41c2c3
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
mov esi, eax
mov dword [ebp - 0x10], esi
cmp dword [ebp - 0x7c], edi
jb 0x41c2ec
mov ecx, dword [ebp - 0x90]
push ecx
call fcn.004064ef
add esp, 4
xor edx, edx
mov byte [ebp - 4], 2
cmp dword [ebp - 0x98], 0x10
mov dword [ebp - 0x7c], 7
mov dword [ebp - 0x80], ebx
mov word [ebp - 0x90], dx
jb 0x41c31b
mov eax, dword [ebp - 0xac]
push eax
call fcn.004064ef
add esp, 4
mov ecx, dword [ebp - 0x18]
mov edi, 0xf
push ecx
mov dword [ebp - 0x98], edi
mov dword [ebp - 0x9c], ebx
mov byte [ebp - 0xac], bl
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp esi, ebx
jne 0x41c3fa
sub esp, 0x1c
mov dword [ebp - 0x18], esp
mov esi, esp
mov dword [esi + 0x14], edi
mov dword [esi + 0x10], ebx
push 0x42223c
mov byte [esi], bl
call fcn.00406680
mov edi, eax
add esp, 4
mov eax, 0x42223c
call fcn.00403ef0
mov ecx, 0x42222c
lea esi, [ebp - 0xac]
call fcn.00405420
mov byte [ebp - 4], 7
cmp dword [eax + 0x14], 0x10
jb 0x41c389
mov eax, dword [eax]
push eax
push ebx
push ebx
sub esp, 0x1c
mov esi, esp
xor edx, edx
mov dword [ebp - 0x10], esp
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], ebx
push 0x422268
mov edi, 0x42224c
mov word [esi], dx
call fcn.0040670b
add esp, 4
push eax
mov eax, 0x422268
call fcn.004041e0
mov ecx, edi
lea esi, [ebp - 0x90]
call fcn.004052d0
mov byte [ebp - 4], 8
cmp dword [eax + 0x14], 8
jb 0x41c3d9
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
mov dword [ebp - 0x18], eax
push 0x423744
lea eax, [ebp - 0x18]
push eax
call fcn.004093ff
lea ecx, [ebp - 0x20]
push ecx
push 1
push esi
sub esp, 0x1c
mov esi, esp
mov dword [ebp - 0x18], esp
mov dword [esi + 0x14], edi
mov dword [esi + 0x10], ebx
push 0x42229c
mov byte [esi], bl
call fcn.00406680
mov edi, eax
add esp, 4
mov eax, 0x42229c
call fcn.00403ef0
mov ecx, 0x422284
lea esi, [ebp - 0x58]
call fcn.00405420
mov byte [ebp - 4], 9
cmp dword [eax + 0x14], 0x10
jb 0x41c443
mov eax, dword [eax]
push eax
sub esp, 0x1c
mov esi, esp
mov dword [ebp - 0x18], esp
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], ebx
push 0x4222c4
mov byte [esi], bl
call fcn.00406680
mov edi, eax
add esp, 4
mov eax, 0x4222c4
call fcn.00403ef0
mov ecx, str.ggp
lea esi, [ebp - 0x3c]
call fcn.00405420
mov esi, 0x10
mov byte [ebp - 4], 0xa
cmp dword [eax + 0x14], esi
jb 0x41c48e
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
cmp eax, ebx
sete byte [ebp - 0x11]
cmp dword [ebp - 0x28], esi
jb 0x41c4b5
mov edx, dword [ebp - 0x3c]
push edx
call fcn.004064ef
add esp, 4
mov edi, 0xf
mov byte [ebp - 4], 2
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x2c], ebx
mov byte [ebp - 0x3c], bl
cmp dword [ebp - 0x44], esi
jb 0x41c4d8
mov eax, dword [ebp - 0x58]
push eax
call fcn.004064ef
add esp, 4
cmp byte [ebp - 0x11], bl
je 0x41c4fe
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x423744
lea edx, [ebp - 0x18]
push edx
mov dword [ebp - 0x18], eax
call fcn.004093ff
mov esi, dword [ebp - 0x10]
push ebx
push ebx
push esi
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
push esi
test eax, eax
jne 0x41c5c3
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
sub esp, 0x1c
mov dword [ebp - 0x18], esp
mov esi, esp
mov dword [esi + 0x14], edi
mov dword [esi + 0x10], ebx
push 0x4222e4
mov byte [esi], bl
call fcn.00406680
mov edi, eax
add esp, 4
mov eax, 0x4222e4
call fcn.00403ef0
mov ecx, 0x4222d4
lea esi, [ebp - 0x3c]
call fcn.00405420
mov byte [ebp - 4], 0xb
cmp dword [eax + 0x14], 0x10
jb 0x41c55b
mov eax, dword [eax]
push eax
sub esp, 0x1c
mov esi, esp
mov dword [ebp - 0x10], esp
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], ebx
push 0x422304
mov byte [esi], bl
call fcn.00406680
mov edi, eax
add esp, 4
mov eax, 0x422304
call fcn.00403ef0
mov ecx, 0x4222f4
lea esi, [ebp - 0x58]
call fcn.00405420
mov byte [ebp - 4], 0xc
cmp dword [eax + 0x14], 0x10
jb 0x41c5a2
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
mov dword [ebp - 0x18], eax
push 0x423744
lea eax, [ebp - 0x18]
push eax
call fcn.004093ff
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp dword [ebp - 0x60], 8
jb 0x41c5db
mov ecx, dword [ebp - 0x74]
push ecx
call fcn.004064ef
add esp, 4
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret