Function at 0x40b080
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
push edi
push ebp
add dword [eax], edx
mov dword [0x4e8b1046], eax
adc al, 0xde
rcr dword [ecx + 0x4a], 0x10
add byte [eax], al
add byte [edi], cl
jne 0x40b0b9
adc byte [eax], al
add byte [eax], al
pcmpeqw mm3, qword [0x8408468a]
shl al, 0x6a
mov al, byte [esi + 8]
test al, al
loopne 0x40b10d
xor al, 0x56
add al, 0x8d
dec ebp
or byte [edx], ch
push ecx
push 0
push 0
push 0xe
push ecx
call dword [sym.imp.KERNEL32.dll_PeekNamedPipe]
test eax, eax
and esi, dword [0xc045358b]
inc eax
add bh, bh
salc
test eax, eax
or dword es:[ebx + 0x5e5f144d], ecx
mov dword [eax], esp
jge 0x40b095
invalid
jle 0x40b0f4
add dword [eax], eax
mov ecx, dword [ebp + 0x14]
ret
or byte [ebp - 0x74f18a40], al
push ebp
wait
pop edi
adc ecx, dword [ecx + 0xb2581]
add byte [edi - 0x50], dh
ret
mov eax, dword [esi + 0xc]
mov al, al
je 0x40b137
mov cl, byte [esi + 8]
xchg esi, eax
leave
jne 0x40b137
mov ecx, dword [esi + 0x50]
mov dword [eax + 8], ecx
sub al, byte [esi + 0x13]
scasd eax, dword es:[edi]
push esi
jg 0x40b0e1
and byte [eax], al
add byte [eax], al
call 0xf40ed10
mov esp, dword [esp + ecx - 0x77]
inc edx
or al, 0xec
in al, dx
push ebx
or al, 0x93
push ebp
adc dword [ebx - 0x73], 0x4d
adc byte [eax - 0x75], dl
inc esi
add al, 0x51
push edi
dec esp
push eax
inc dword [edx + 0xa2c010]
test eax, eax
je 0x40b15a
xor eax, eax
jmp 0x40b285
int1
cmp eax, sym.imp.KERNEL32.dll_GetLastError
pop es
xlatb
test eax, eax
je 0xf44d8185
call edi
add eax, 0xa5680
stosd dword es:[edi], eax
add byte gs:[edi], bh
jb 0x40b186
test ebx, edx
add byte [eax], al
add byte [ecx + 0x40c09c1d], ch
or byte [ebx + 0x5aa22d80], 0x10
test dword [ebp + 0x47f0a7c], ecx
popfd
pop edx
adc byte [ebp + 0x7f0a7c8d], al
add al, 0x9d
sal byte [esi + 0x10], 0x6a
add byte [eax - 0x18], ch
add eax, dword [eax]
add byte [ecx + 0x50], dl
call 0x40e398
jmp 0x40b1f1
sbb byte [eax + 0x68], dl
in al, dx
add byte [esi + 0x2f], ah
push eax
call 0x50eaa92d
add esp, 0xc
mov dword [0x4189d6], eax
test eax, eax
je 0x40b246
push ebx
call eax
jmp 0x40b1f8
add edi, edi
adc eax, sym.imp.KERNEL32.dll_SetLastError
mov eax, dword [ecx + edi*2 - 0x72fb1e75]
inc ebp
adc byte [edx + 1], ch
push eax
push ecx
push edx
dec eax
adc eax, 0x9f40c0b4
test eax, eax
je 0x40b214
ja 0x40b1d2
jmp 0x40b285
mov ebx, dword [0xbf40c098]
call ebx
test eax, eax
mov eax, 0x5d3ff65
cmp ah, 0xa
add byte [0xb0064], bh
je 0x40b235
cmp eax, 0xcb0063
jne 0x40b24f
cmp edi, 0x102
jne 0x40b24f
mov ebx, 0x558b144d
adc byte [ebx + 0x5f], bl
mov eax, 0x361177
mov edx, eax
out 0x5d, al
adc ecx, dword [ebp + ebp*8 + 0x75450afc]
ja 0x40b259
add byte ss:[ecx + 0x135de6c2], cl
mov ebp, gs
cld
or al, byte [ebp + 0x75]
adc cl, byte [ebx + 0x558b144d]
adc byte [ebx + 0x5f], bl
mov edx, dword [ebp + 0x10]
pop ebx
pop edi
or byte [esi + 0x11], bh
add dword [eax], eax
mov dword [ecx], edx
pop esi
mov dl, 0xc3
cmp eax, 0xafca6
jne 0x40b281
mov ecx, dword [ebp + 0x14]
inc esp
push ebp
adc byte [ebx + 0x5f], bl
mov eax, 0x1117e
mov dword [ecx], edx
pop esi
pop ebp
ret
cmc
invalid
mov ecx, dword [ebp + 0x10]
test ecx, ecx
insd dword es:[edi], dx
imul ecx, dword [ebx + 0x558b145f], 0xb85f5b10
jle 0x40b2a8
add dword [eax], eax
mov dword [ecx], edx
test byte [ebp - 0x3d], bl
mov edx, dword [eax]
invalid
test al, 0xd2
in al, dx
adc ecx, edx
push esi
push eax
xchg esi, eax
ror dword [ebx - 0x2e3b5fdb], 1
add byte [esi + 0x56], al
push eax
ror byte [esi + 0x54], 1
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
pop ebx
pop edi
mov dword [ecx], edx
mov ebx, dword [ebp - 0x3d]
nop
nop
push ds
xor byte [eax - 0x6774aa70], dl
push ebp
mov ebx, dword [eax + 0x758b5651]
push esi