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

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x30c
mov eax, dword [0x41a04c]
xor eax, ebp
mov dword [ebp + 0x74], eax
push ebx
push esi
push edi
xor eax, eax
push 0x206
mov word [ebp - 0x284], ax
xor ebx, ebx
lea eax, [ebp - 0x282]
push ebx
push eax
call fcn.00408fc0
add esp, 0xc
xor eax, eax
push 9
mov word [ebp + 0x4c], ax
pop ecx
lea edi, [ebp + 0x4e]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov edi, 0x41c9c8
mov eax, edi
mov dword [ebp - 0x28c], ebx
mov dword [ebp - 0x290], 0x104
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x401189
mov esi, dword [sym.imp.KERNEL32.dll_OpenEventW]
sub eax, edx
sar eax, 1
je 0x4011b0
push edi
push ebx
push 0x20000
call esi
test eax, eax
jne 0x401368
lea eax, [ebp - 0x288]
push eax
push 0xf003f
push ebx
push 0x415c48
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x401219
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp - 0x28c]
push eax
push ebx
push 0x415cb4
push dword [ebp - 0x288]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x40120d
lea eax, [ebp + 0x4c]
push eax
push ebx
push 0x20000
call esi
test eax, eax
jne 0x40135c
push dword [ebp - 0x288]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x284]
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 0x401231
sub eax, edx
sar eax, 1
jne 0x401270
push 0x415cc4
push 0x415cd0
mov edi, 0x41cc40
push edi
call fcn.00401a5b
add esp, 0xc
xor eax, eax
movzx ecx, word [eax + 0x415cc4]
mov word [ebp + eax + 0x4c], cx
inc eax
inc eax
cmp cx, bx
jne 0x40125b
jmp 0x401299
push edi
push 0x415cd0
mov edi, 0x41cc40
push edi
call fcn.00401a5b
add esp, 0xc
xor eax, eax
movzx ecx, word [eax + 0x41c9c8]
mov word [ebp + eax + 0x4c], cx
inc eax
inc eax
cmp cx, bx
jne 0x401286
push edi
lea eax, [ebp - 0x284]
push esi
push eax
call fcn.00405522
add esp, 0xc
cmp dword [0x41b070], 3
jne 0x4012ba
push 0x2b66
jmp 0x4012bf
push 0x2b70
call section.HDITRERW
pop ecx
cmp eax, ebx
jne 0x401368
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
push 1
push ebx
push 0x415ce0
lea eax, [ebp - 0x284]
push eax
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
push 0x1a
pop ecx
mov esi, 0x415c48
lea edi, [ebp - 0x7c]
rep movsd dword es:[edi], dword [esi]
push 0x5e
lea eax, [ebp - 0x12]
push ebx
push eax
movsw word es:[edi], word [esi]
call fcn.00408fc0
add esp, 0xc
lea eax, [ebp - 0x288]
push eax
push 3
push ebx
lea eax, [ebp - 0x7c]
push eax
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x401368
lea eax, [ebp + 0x4c]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x40132d
sub eax, edx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp + 0x4c]
push eax
push 1
push ebx
push 0x415cb4
push dword [ebp - 0x288]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jne 0x401368
push dword [ebp - 0x288]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp + 0x74]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.004054a4
add ebp, 0x78
leave
ret