Function at 0x40fda0
Capabilities:
Contain obfuscated stackstrings
Create a process with modified i/o handles and window
Create process on windows
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x488afb
mov eax, dword fs:[0]
push eax
sub esp, 0x228
mov eax, dword [0x4ae6e0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1e0], eax
mov ecx, dword [ebp - 0x1e0]
add ecx, 1
mov dword [ebp - 0x1f8], ecx
mov edx, dword [ebp - 0x1e0]
mov al, byte [edx]
mov byte [ebp - 0x1ce], al
add dword [ebp - 0x1e0], 1
cmp byte [ebp - 0x1ce], 0
jne 0x40fde3
mov ecx, dword [ebp - 0x1e0]
sub ecx, dword [ebp - 0x1f8]
mov dword [ebp - 0x214], ecx
jne 0x40fe1c
xor al, al
jmp 0x410257
lea ecx, [ebp - 0x174]
call fcn.004029c0
mov dword [ebp - 4], 0
mov byte [ebp - 0x50], 0x41
mov byte [ebp - 0x4f], 0x70
mov byte [ebp - 0x4e], 0x70
mov byte [ebp - 0x4d], 0x6c
mov byte [ebp - 0x4c], 0x69
mov byte [ebp - 0x4b], 0x63
mov byte [ebp - 0x4a], 0x61
mov byte [ebp - 0x49], 0x74
mov byte [ebp - 0x48], 0x69
mov byte [ebp - 0x47], 0x6f
mov byte [ebp - 0x46], 0x6e
mov byte [ebp - 0x45], 0x73
mov byte [ebp - 0x44], 0x5c
mov byte [ebp - 0x43], 0x69
mov byte [ebp - 0x42], 0x65
mov byte [ebp - 0x41], 0x78
mov byte [ebp - 0x40], 0x70
mov byte [ebp - 0x3f], 0x6c
mov byte [ebp - 0x3e], 0x6f
mov byte [ebp - 0x3d], 0x72
mov byte [ebp - 0x3c], 0x65
mov byte [ebp - 0x3b], 0x2e
mov byte [ebp - 0x3a], 0x65
mov byte [ebp - 0x39], 0x78
mov byte [ebp - 0x38], 0x65
mov byte [ebp - 0x37], 0x5c
mov byte [ebp - 0x36], 0x73
mov byte [ebp - 0x35], 0x68
mov byte [ebp - 0x34], 0x65
mov byte [ebp - 0x33], 0x6c
mov byte [ebp - 0x32], 0x6c
mov byte [ebp - 0x31], 0x5c
mov byte [ebp - 0x30], 0x6f
mov byte [ebp - 0x2f], 0x70
mov byte [ebp - 0x2e], 0x65
mov byte [ebp - 0x2d], 0x6e
mov byte [ebp - 0x2c], 0x5c
mov byte [ebp - 0x2b], 0x63
mov byte [ebp - 0x2a], 0x6f
mov byte [ebp - 0x29], 0x6d
mov byte [ebp - 0x28], 0x6d
mov byte [ebp - 0x27], 0x61
mov byte [ebp - 0x26], 0x6e
mov byte [ebp - 0x25], 0x64
mov byte [ebp - 0x24], 0
lea edx, [ebp - 0x50]
mov dword [ebp - 0x1f0], edx
mov byte [ebp - 0x154], 0
push 0x103
push 0
lea eax, [ebp - 0x153]
push eax
call fcn.0043f9d0
add esp, 0xc
mov dword [ebp - 0x15c], 0x104
mov dword [ebp - 0x1e8], 0
lea ecx, [ebp - 0x188]
push ecx
push 0x20019
push 0
mov edx, dword [ebp - 0x1f0]
push edx
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x40ff64
mov byte [ebp - 0x1d0], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x174]
call fcn.00402a80
mov al, byte [ebp - 0x1d0]
jmp 0x410257
lea eax, [ebp - 0x15c]
push eax
lea ecx, [ebp - 0x154]
push ecx
push 0
mov edx, dword [ebp - 0x188]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueA]
mov eax, dword [ebp - 0x188]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x234]
push ecx
call fcn.0040f990
add esp, 4
mov dword [ebp - 0x200], eax
mov edx, dword [ebp - 0x200]
push edx
lea ecx, [ebp - 0x174]
call fcn.00411760
lea ecx, [ebp - 0x234]
call fcn.00402a80
lea ecx, [ebp - 0x174]
call fcn.004118b0
mov dword [ebp - 0x1dc], eax
mov eax, dword [ebp - 0x1dc]
add eax, 1
mov dword [ebp - 0x1ec], eax
mov ecx, dword [ebp - 0x1dc]
mov dl, byte [ecx]
mov byte [ebp - 0x1d3], dl
add dword [ebp - 0x1dc], 1
cmp byte [ebp - 0x1d3], 0
jne 0x40ffe0
mov eax, dword [ebp - 0x1dc]
sub eax, dword [ebp - 0x1ec]
mov dword [ebp - 0x21c], eax
mov ecx, dword [ebp - 0x21c]
mov dword [ebp - 0x218], ecx
cmp dword [ebp - 0x218], 0
jle 0x410115
lea ecx, [ebp - 0x174]
call fcn.004118b0
mov dword [ebp - 0x1f4], eax
mov edx, dword [ebp - 0x1f4]
push edx
lea eax, [ebp - 0x154]
push eax
call fcn.00414060
add esp, 8
lea ecx, [ebp - 0x154]
mov dword [ebp - 0x1e4], ecx
mov edx, dword [ebp - 0x1e4]
add edx, 1
mov dword [ebp - 0x20c], edx
mov eax, dword [ebp - 0x1e4]
mov cl, byte [eax]
mov byte [ebp - 0x1d2], cl
add dword [ebp - 0x1e4], 1
cmp byte [ebp - 0x1d2], 0
jne 0x41006b
mov edx, dword [ebp - 0x1e4]
sub edx, dword [ebp - 0x20c]
mov dword [ebp - 0x204], edx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1d8], eax
mov ecx, dword [ebp - 0x1d8]
add ecx, 1
mov dword [ebp - 0x1fc], ecx
mov edx, dword [ebp - 0x1d8]
mov al, byte [edx]
mov byte [ebp - 0x1cd], al
add dword [ebp - 0x1d8], 1
cmp byte [ebp - 0x1cd], 0
jne 0x4100b3
mov ecx, dword [ebp - 0x1d8]
sub ecx, dword [ebp - 0x1fc]
mov dword [ebp - 0x210], ecx
mov edx, dword [ebp - 0x210]
mov eax, dword [ebp - 0x204]
lea ecx, [eax + edx + 1]
mov dword [ebp - 0x208], ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x208]
push eax
lea ecx, [ebp - 0x154]
push ecx
call fcn.0043d9e4
add esp, 0xc
jmp 0x410184
mov byte [ebp - 0x158], 0x25
mov byte [ebp - 0x157], 0x31
mov byte [ebp - 0x156], 0
lea edx, [ebp - 0x158]
push edx
lea eax, [ebp - 0x154]
push eax
call fcn.00416590
add esp, 8
mov dword [ebp - 0x1e8], eax
cmp dword [ebp - 0x1e8], 0
jne 0x410173
mov byte [ebp - 0x1cf], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x174]
call fcn.00402a80
mov al, byte [ebp - 0x1cf]
jmp 0x410257
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x1e8]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov dword [ebp - 0x1cc], 0
push 0x40
push 0
lea eax, [ebp - 0x1c8]
push eax
call fcn.0043f9d0
add esp, 0xc
mov dword [ebp - 0x1cc], 0x44
mov byte [ebp - 0x20], 0x57
mov byte [ebp - 0x1f], 0x69
mov byte [ebp - 0x1e], 0x6e
mov byte [ebp - 0x1d], 0x53
mov byte [ebp - 0x1c], 0x74
mov byte [ebp - 0x1b], 0x61
mov byte [ebp - 0x1a], 0x30
mov byte [ebp - 0x19], 0x5c
mov byte [ebp - 0x18], 0x44
mov byte [ebp - 0x17], 0x65
mov byte [ebp - 0x16], 0x66
mov byte [ebp - 0x15], 0x61
mov byte [ebp - 0x14], 0x75
mov byte [ebp - 0x13], 0x6c
mov byte [ebp - 0x12], 0x74
mov byte [ebp - 0x11], 0
cmp dword [ebp + 0xc], 0
jne 0x410206
mov dword [ebp - 0x1a0], 0x101
xor ecx, ecx
mov word [ebp - 0x19c], cx
jmp 0x41020f
lea edx, [ebp - 0x20]
mov dword [ebp - 0x1c4], edx
lea eax, [ebp - 0x184]
push eax
lea ecx, [ebp - 0x1cc]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
lea edx, [ebp - 0x154]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
mov byte [ebp - 0x1d1], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x174]
call fcn.00402a80
mov al, byte [ebp - 0x1d1]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0043c12e
mov esp, ebp
pop ebp
ret