Function at 0x4048a0
Capabilities:
Connect pipe
Encode data using xor
Read pipe
Write pipe

Disassembly:
mov eax, dword [esp + 8]
push ebx
mov ebx, dword [esp + 0x14]
push ebp
lea ecx, [eax - 0x1801]
add ebx, 0xfffff2e7
mov dword [esp + 0x10], ecx
lea edx, [eax - 0xd0e]
mov ecx, dword [esp + 0x24]
mov eax, edx
push esi
push edi
mov edi, dword [esp + 0x14]
xor eax, 0x1371
lea ebp, [ecx - 0xd98]
add edi, 0xfffffce6
cmp ebp, eax
jg 0x404ae8
cmp edx, ecx
jge 0x404b62
mov ecx, dword [0x4ac344]
mov eax, dword [ecx + 0x90]
cmp eax, dword [ecx + 0x9c]
mov eax, dword [esp + 0x28]
jbe 0x404913
mov ecx, dword [ecx + 8]
sub ecx, dword [eax + 0x74]
xor dword [eax + 0x90], ecx
jmp 0x40491d
mov dword [eax + 0xa4], 0x43d668
xor ebp, ebp
nop
mov ecx, dword [0x4ae068]
add ecx, 0xfffffffd
add ecx, dword [eax + 0x78]
mov dword [0x4ae068], ecx
mov ecx, dword [eax + 0xc0]
xor ecx, dword [0x4ae0ac]
sub ecx, 0x12d146
mov edx, dword [eax + 0x50]
or dword [eax + 0xf4], ecx
mov ecx, dword [eax + 0x90]
xor ecx, dword [0x4ae07c]
add edx, dword [eax + 0xb4]
xor ecx, 2
mov dword [eax + 0x90], ecx
xor edx, 0x18aa27
mov ecx, 0x1bd938
mov ebx, dword [eax + 0x5c]
sub ecx, dword [eax + 0x80]
sub ecx, dword [0x4ae108]
add dword [eax + 0x4c], ecx
mov ecx, dword [eax + 0xa4]
mov esi, dword [ecx + ebp]
add ebp, 4
mov ecx, dword [eax + 0x14]
xor ecx, 0x167029
imul ebx, esi
or dword [eax + 0x90], ecx
mov ecx, dword [eax + 0xc]
inc ecx
imul edx, ecx
imul edx, dword [eax + 0x1c]
mov dword [eax + 0x1c], edx
mov edx, 0x539ab4
mov ecx, dword [0x4ac344]
sub edx, dword [ecx + 0x3c]
sub edx, dword [eax + 0xb0]
add dword [eax + 0x9c], edx
mov ecx, dword [0x4ae0b0]
add dword [eax + 0xd0], ecx
mov ecx, dword [0x4ae150]
add ecx, 0xffe732a5
add ecx, dword [eax + 0xf4]
mov dword [0x4ae150], ecx
mov ecx, dword [0x4ac344]
mov edx, dword [ecx + 0x60]
mov ecx, dword [0x4ae10c]
mov byte [ecx + edx], bl
mov ecx, dword [0x4ac344]
inc dword [ecx + 0x60]
mov ecx, dword [0x4ac344]
mov edx, dword [0x4ae108]
sub edx, dword [ecx + 0x50]
mov ecx, dword [eax + 0xd0]
sub edx, 0x1bd938
add dword [eax + 0x2c], edx
dec ecx
mov edx, dword [0x4ac344]
xor dword [edx + 0xf4], ecx
mov ecx, 0x167029
mov edx, dword [eax + 0x14]
xor edx, dword [0x4ae08c]
mov esi, dword [0x4ac344]
sub ecx, edx
add dword [esi + 0xa0], ecx
mov edx, dword [0x4ac344]
mov ecx, dword [eax + 8]
xor ecx, 7
add dword [edx + 0xa0], ecx
cmp ebp, 0x38bb0
jl 0x404920
mov ecx, dword [eax + 0xc4]
cmp ecx, dword [eax + 0xb4]
jb 0x404a89
xor dword [eax + 0xa8], 0x2aa21
jmp 0x404aa1
mov ecx, dword [0x4ac344]
mov edx, dword [eax + 0x2c]
sub edx, dword [ecx + 0xf8]
add edx, 0x424
mov dword [eax + 0x5c], edx
mov ecx, dword [eax + 0x48]
cmp ecx, dword [0x4ae0fc]
je 0x404acd
mov ecx, 0xb6f742cc
sub ecx, dword [eax + 0xa8]
sub ecx, dword [0x4ae124]
add dword [eax + 0x5c], ecx
xor edi, 0x1833
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
ret
mov ecx, 0x189a3
sub ecx, dword [eax + 8]
add dword [eax + 0x9c], ecx
xor edi, 0x1833
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
ret
mov esi, dword [esp + 0x28]
and edx, 0x10b2
imul eax, dword [esi + 0x7c], 0x1715
push eax
mov eax, ebp
xor eax, dword [esp + 0x1c]
or eax, 0x10b2
push eax
mov eax, dword [0x4ae08c]
add eax, 0x1d6b
add eax, ebx
push eax
mov eax, dword [0x4ac344]
mov ecx, dword [eax + 0x88]
or ecx, dword [eax + 0x78]
mov eax, dword [esi + 0x90]
and ecx, edi
xor eax, 0x1e54
push ecx
push eax
mov eax, ebx
or eax, 0x1d6b
add eax, ebp
push eax
push edx
call dword [sym.imp.KERNEL32.dll_CallNamedPipeA]
mov ecx, dword [0x4ac344]
mov eax, dword [esi + 0xe4]
or eax, ebx
sub eax, dword [esi + 0x64]
mov ecx, dword [ecx + 0x3c]
sub ecx, dword [esi + 0x10]
push eax
add ecx, ebx
push ecx
call dword [sym.imp.KERNEL32.dll_DeactivateActCtx]
xor edi, 0x1833
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
ret