Function at 0x408b30
Capabilities:
Check if file exists
Modify service

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x105c
call fcn.00414550
mov eax, dword [0x41e008]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [0x41e8e0]
push ebx
push esi
push edi
test ecx, ecx
je 0x408e8d
cmp byte [0x41e8ec], 0
xorps xmm0, xmm0
movq qword [ebp - 0xc], xmm0
movups xmm0, xmmword [str.CIUMonServiceStartup]
je 0x408b96
mov eax, dword [0x418304]
mov dword [ebp - 0x1c], eax
mov al, byte [0x418308]
mov byte [ebp - 0x18], al
mov eax, dword [str.MonServ]
mov dword [ebp - 0x4c], eax
mov eax, dword [0x4182f0]
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0x48], eax
jmp 0x408bba
mov eax, dword [str.MonServ]
mov dword [ebp - 0x2c], eax
mov eax, dword [0x4182f0]
mov dword [ebp - 0x28], eax
mov eax, dword [0x418304]
mov dword [ebp - 0x3c], eax
mov al, byte [0x418308]
movups xmmword [ebp - 0x4c], xmm0
mov byte [ebp - 0x38], al
call fcn.0040e0c0
mov ecx, eax
mov dword [ebp - 0x105c], eax
call fcn.004092d0
mov dword [ebp - 0x1058], eax
test eax, eax
je 0x408e82
nop word [eax + eax]
mov ecx, eax
call fcn.00409990
mov ecx, dword [0x41e8e0]
mov edx, eax
call fcn.0040a560
mov edi, eax
mov dword [ebp - 0x1054], edi
test edi, edi
je 0x408e69
mov edx, str.binary
mov ecx, edi
call fcn.0040a560
mov ecx, eax
call fcn.00409990
mov esi, eax
push 0x2f
push esi
call dword [sym.imp.VCRUNTIME140.dll_strchr]
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x408c5d
mov edi, ebx
lea eax, [ebp - 0x450]
sub edi, esi
push edi
push esi
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
add esp, 0xc
cmp edi, 0x400
jae 0x408e9e
mov byte [ebp + edi - 0x450], 0
mov edi, dword [ebp - 0x1054]
jmp 0x408c72
lea ecx, [ebp - 0x450]
sub ecx, esi
mov al, byte [esi]
lea esi, [esi + 1]
mov byte [ecx + esi - 1], al
test al, al
jne 0x408c65
push 0x4185a8
lea eax, [ebp - 0x450]
push eax
call dword [sym.imp.SHLWAPI.dll_StrTrimA]
lea ecx, [ebp - 0x2c]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408c90
sub ecx, edx
lea eax, [ebp - 0x2c]
push ecx
push eax
lea eax, [ebp - 0x450]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameA]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x408e69
lea eax, [ebp - 0x450]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x450]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
lea ecx, [ebp - 0x450]
dec ecx
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x408ce2
mov eax, dword [str..exe]
mov dword [ecx], eax
mov al, byte [0x41a278]
mov byte [ecx + 4], al
lea eax, [ebp - 0x450]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x408e69
test ebx, ebx
mov dword [ebp - 0x1054], 0
mov ecx, 0x418cf3
mov eax, 0x41925c
cmove eax, ecx
push eax
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x850]
push str.__s__s
push eax
call fcn.004010e0
lea ecx, [ebp - 0x850]
add esp, 0x10
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408d50
sub ecx, edx
lea edx, [ebp - 0x850]
push ecx
lea ecx, [ebp - 0x1054]
call fcn.004015c0
add esp, 4
test ebx, ebx
je 0x408d91
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408d77
sub ecx, edx
mov edx, ebx
push ecx
lea ecx, [ebp - 0x1054]
call fcn.004015c0
add esp, 4
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov ebx, eax
test ebx, ebx
jne 0x408dba
mov eax, dword [ebp - 0x1054]
test eax, eax
je 0x408e69
push eax
jmp 0x408e60
mov edx, str.Name
mov ecx, edi
call fcn.0040a560
mov ecx, eax
call fcn.00409990
lea edx, [ebp - 0xc50]
sub edx, eax
mov cl, byte [eax]
lea eax, [eax + 1]
mov byte [edx + eax - 1], cl
test cl, cl
jne 0x408dd5
mov edx, str.displayname
mov ecx, edi
call fcn.0040a560
mov ecx, eax
call fcn.00409990
lea edx, [ebp - 0x1050]
sub edx, eax
nop dword [eax]
mov cl, byte [eax]
lea eax, [eax + 1]
mov byte [edx + eax - 1], cl
test cl, cl
jne 0x408e00
push 0xf01ff
lea eax, [ebp - 0xc50]
push eax
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
mov esi, dword [ebp - 0x1054]
mov edi, eax
test edi, edi
je 0x408e54
lea eax, [ebp - 0x1050]
push eax
lea eax, [ebp - 0xc]
push eax
push 0
push 0
push 0
push 0
push esi
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigA]
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push ebx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
test esi, esi
je 0x408e69
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov ecx, dword [ebp - 0x1058]
call fcn.00409310
mov dword [ebp - 0x1058], eax
test eax, eax
jne 0x408be0
mov ecx, dword [ebp - 0x105c]
call fcn.00409420
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00412814
mov esp, ebp
pop ebp
ret
call fcn.0041294b
int3