Function at 0x40112a
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 [0x41904c]
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.004080b0
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, 0x41b9c8
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 0x40118a
mov esi, dword [sym.imp.KERNEL32.dll_OpenEventW]
sub eax, edx
sar eax, 1
je 0x4011b1
push edi
push ebx
push 0x20000
call esi
test eax, eax
jne 0x401372
lea eax, [ebp - 0x304]
push eax
push 0xf003f
push ebx
push 0x414c48
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x40121a
lea eax, [ebp - 0x30c]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x308]
push eax
push ebx
push 0x414cb4
push dword [ebp - 0x304]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x40120e
lea eax, [ebp - 0x2c]
push eax
push ebx
push 0x20000
call esi
test eax, eax
jne 0x401366
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 0x401232
sub eax, edx
sar eax, 1
jne 0x401271
push 0x414cc4
push 0x414cd0
mov edi, 0x41bc40
push edi
call fcn.00401a53
add esp, 0xc
xor eax, eax
movzx ecx, word [eax + 0x414cc4]
mov word [ebp + eax - 0x2c], cx
inc eax
inc eax
cmp cx, bx
jne 0x40125c
jmp 0x40129a
push edi
push 0x414cd0
mov edi, 0x41bc40
push edi
call fcn.00401a53
add esp, 0xc
xor eax, eax
movzx ecx, word [eax + 0x41b9c8]
mov word [ebp + eax - 0x2c], cx
inc eax
inc eax
cmp cx, bx
jne 0x401287
push edi
lea eax, [ebp - 0x300]
push esi
push eax
call fcn.00404604
add esp, 0xc
cmp dword [0x41a070], 3
jne 0x4012bb
push 0x2b66
jmp 0x4012c0
push 0x2b70
call section..text
pop ecx
cmp eax, ebx
jne 0x401372
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
push 1
push ebx
push 0x414ce0
lea eax, [ebp - 0x300]
push eax
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
push 0x1a
pop ecx
mov esi, 0x414c48
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.004080b0
add esp, 0xc
lea eax, [ebp - 0x304]
push eax
push 3
push ebx
lea eax, [ebp - 0xf8]
push eax
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x401372
lea eax, [ebp - 0x2c]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x401337
sub eax, edx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp - 0x2c]
push eax
push 1
push ebx
push 0x414cb4
push dword [ebp - 0x304]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jne 0x401372
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.00404586
leave
ret