Function at 0x4013ae
Capabilities:
Create process on windows
Get common file path
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x314
mov eax, dword [0x42cc20]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor eax, eax
push 0x206
mov word [ebp - 0x300], ax
xor ebx, ebx
lea eax, [ebp - 0x2fe]
push ebx
push eax
call fcn.00410670
add esp, 0xc
xor eax, eax
push 9
mov word [ebp - 0x2c], ax
pop ecx
lea edi, [ebp - 0x2a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov edi, 0x431778
mov eax, edi
mov dword [ebp - 0x308], ebx
mov dword [ebp - 0x30c], 0x104
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x40140e
mov esi, dword [sym.imp.KERNEL32.dll_OpenEventW]
sub eax, edx
sar eax, 1
je 0x401435
push edi
push ebx
push 0x20000
call esi
test eax, eax
jne 0x4015f6
lea eax, [ebp - 0x304]
push eax
push 0xf003f
push ebx
push 0x427830
push connect
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x40149e
lea eax, [ebp - 0x30c]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x308]
push eax
push ebx
push 0x42789c
push dword [ebp - 0x304]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x401492
lea eax, [ebp - 0x2c]
push eax
push ebx
push 0x20000
call esi
test eax, eax
jne 0x4015ea
push dword [ebp - 0x304]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x300]
push eax
mov esi, 0x104
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x4014b6
sub eax, edx
sar eax, 1
jne 0x4014f5
push 0x4278ac
push 0x4278b8
mov edi, 0x4319f0
push edi
call fcn.00401ae6
add esp, 0xc
xor eax, eax
movzx ecx, word [eax + 0x4278ac]
mov word [ebp + eax - 0x2c], cx
inc eax
inc eax
cmp cx, bx
jne 0x4014e0
jmp 0x40151e
push edi
push 0x4278b8
mov edi, 0x4319f0
push edi
call fcn.00401ae6
add esp, 0xc
xor eax, eax
movzx ecx, word [eax + 0x431778]
mov word [ebp + eax - 0x2c], cx
inc eax
inc eax
cmp cx, bx
jne 0x40150b
push edi
lea eax, [ebp - 0x300]
push esi
push eax
call fcn.0040e5f5
add esp, 0xc
cmp dword [0x42df90], 3
jne 0x40153f
push 0x2b66
jmp 0x401544
push 0x2b70
call fcn.004016a2
pop ecx
cmp eax, ebx
jne 0x4015f6
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
push 1
push ebx
push 0x4277c4
lea eax, [ebp - 0x300]
push eax
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
push 0x1a
pop ecx
mov esi, 0x427830
lea edi, [ebp - 0xf8]
rep movsd dword es:[edi], dword [esi]
push 0x5e
lea eax, [ebp - 0x8e]
push ebx
push eax
movsw word es:[edi], word [esi]
call fcn.00410670
add esp, 0xc
lea eax, [ebp - 0x304]
push eax
push 3
push ebx
lea eax, [ebp - 0xf8]
push eax
push connect
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4015f6
lea eax, [ebp - 0x2c]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x4015bb
sub eax, edx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp - 0x2c]
push eax
push 1
push ebx
push 0x42789c
push dword [ebp - 0x304]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jne 0x4015f6
push dword [ebp - 0x304]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.0040e5e6
leave
ret