Function at 0x4097b0
Capabilities:
Create process on windows
Encode data using xor

Disassembly:
sub esp, 0x220
push ebp
push esi
mov ebp, ecx
push edi
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x2d]
mov byte [esp + 0x2c], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
cmp dword [0x44bf54], 1
jne 0x4098ff
mov ecx, ebp
call fcn.00409a70
test eax, eax
je 0x409861
mov al, 0x34
mov byte [esp + 0xc], 0xb6
mov byte [esp + 0x14], al
mov byte [esp + 0x24], al
mov byte [esp + 0xd], 0x48
mov byte [esp + 0xe], 0x15
mov byte [esp + 0xf], 0xc4
mov byte [esp + 0x10], 0x7d
mov byte [esp + 0x11], 0x16
mov byte [esp + 0x12], 0xf3
mov byte [esp + 0x13], 0x8f
mov byte [esp + 0x1c], 0xdb
mov byte [esp + 0x1d], 0x29
mov byte [esp + 0x1e], 0x7c
mov byte [esp + 0x1f], 0xaa
mov byte [esp + 0x20], 0x53
mov byte [esp + 0x21], 0x73
mov byte [esp + 0x22], 0x8b
mov byte [esp + 0x23], 0xea
xor eax, eax
mov cl, byte [esp + eax + 0x1c]
mov dl, byte [esp + eax + 0xc]
xor dl, cl
mov byte [esp + eax + 0xc], dl
inc eax
cmp eax, 9
jb 0x409844
lea edi, [esp + 0xc]
jmp 0x409973
mov al, 0x34
mov cl, 0x73
mov byte [esp + 0x28], al
mov byte [esp + 0x18], al
mov byte [esp + 0x1c], 0xb6
mov byte [esp + 0x1d], 0x48
mov byte [esp + 0x1e], 0x15
mov byte [esp + 0x1f], 0xc4
mov byte [esp + 0x20], 0xec
mov byte [esp + 0x21], 0x62
mov byte [esp + 0x22], 0
mov byte [esp + 0x23], 0x99
mov byte [esp + 0x24], 0x7d
mov byte [esp + 0x25], 0x16
mov byte [esp + 0x26], 0xf3
mov byte [esp + 0x27], 0x8f
mov byte [esp + 0xc], 0xdb
mov byte [esp + 0xd], 0x29
mov byte [esp + 0xe], 0x7c
mov byte [esp + 0xf], 0xaa
mov byte [esp + 0x10], 0x98
mov byte [esp + 0x11], 7
mov byte [esp + 0x12], cl
mov byte [esp + 0x13], 0xed
mov byte [esp + 0x14], 0x53
mov byte [esp + 0x15], cl
mov byte [esp + 0x16], 0x8b
mov byte [esp + 0x17], 0xea
xor eax, eax
mov cl, byte [esp + eax + 0xc]
mov dl, byte [esp + eax + 0x1c]
xor dl, cl
mov byte [esp + eax + 0x1c], dl
inc eax
cmp eax, 0xd
jb 0x4098e5
lea edi, [esp + 0x1c]
jmp 0x409973
mov al, 0x34
mov byte [esp + 0xc], 0xb6
mov byte [esp + 0x14], al
mov byte [esp + 0x24], al
mov byte [esp + 0xd], 0x48
mov byte [esp + 0xe], 0x15
mov byte [esp + 0xf], 0xc4
mov byte [esp + 0x10], 0x7d
mov byte [esp + 0x11], 0x16
mov byte [esp + 0x12], 0xf3
mov byte [esp + 0x13], 0x8f
mov byte [esp + 0x1c], 0xdb
mov byte [esp + 0x1d], 0x29
mov byte [esp + 0x1e], 0x7c
mov byte [esp + 0x1f], 0xaa
mov byte [esp + 0x20], 0x53
mov byte [esp + 0x21], 0x73
mov byte [esp + 0x22], 0x8b
mov byte [esp + 0x23], 0xea
xor eax, eax
mov cl, byte [esp + eax + 0x1c]
mov dl, byte [esp + eax + 0xc]
xor dl, cl
mov byte [esp + eax + 0xc], dl
inc eax
cmp eax, 9
jb 0x40995b
lea edi, [esp + 0xc]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x2c]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x46c138
call fcn.00409f30
mov ecx, ebp
call fcn.00406ba0
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
lea ecx, [esp + 0x2c]
push 0x44bf38
push ecx
lea edx, [esp + 0x134]
push str.connect__s
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [esp + 0x12c]
lea ecx, [esp + 0x2c]
push 5
push 0
push eax
push ecx
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
cmp eax, 0xb
ja case.0x4099f8.297
xor edx, edx
mov dl, byte [eax + 0x409a5c]
jmp dword [edx*4 + 0x409a4c]
push 0
push 0x10
push 0x83
jmp 0x409a1e
push 0
push 0x10
push 0x84
jmp 0x409a1e
push 0
push 0x10
push 0x85
mov ecx, 0x44c0d8
call dword [sym.imp.mumsg.dll_public:_char____thiscall_CMsg::Get_int_]
push eax
call fcn.00432515
mov eax, dword [ebp + 0x1c]
push 0
push 0
push 0x10
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop esi
pop ebp
add esp, 0x220
ret