Function at 0x40b876
Capabilities:
Encode data using xor

Disassembly:
jl 0x40b87a
pop esp
jmp 0x271a0d81
lcall 0xcfaa, 0x9b76e1e0
arpl word [ebx + 0x4bb17836], sp
pushal
lodsd eax, dword [esi]
pop es
out dx, eax
pop ds
xlatb
wait
stosb byte es:[edi], al
iretd
dec edx
cwde
xchg esi, ecx
jae 0x40b889
mov ah, 0xa8
pop ebp
adc ah, dl
xchg ebp, eax
xlatb
cmp al, byte [esi + ebp - 0x43]
jle 0x40b8f6
adc ch, byte [edx - 0x73]
imul ebx, dword [ebx - 0x49f0bd5b], 0x740e218b
test al, 0x58
jno 0x40b839
pop ds
jge 0x40b8b8
push ecx
cmc
pop ecx
mov dl, 0xc4
mov byte [0x5ae93e82], al
cmp edi, dword [ebp + edx*4 - 0x2d]
mul byte [ebx]
push esi
pop edx
outsb dx, byte [esi]
adc bl, byte [ebp + 0x17]
push edx
sbb al, 0x6d
popal
and dword cs:[ecx + 0x38], ecx
jmp 0x95bcf417
into
or dh, dh
rol byte [edx + 0x5657c90e], cl
rcl dword [ebx - 0x227b5929]
rcr dword [ebx + 0x77], cl
ja 0x40b904
xchg ebx, eax
mov bl, 0xbb
jns 0x40b93d
mov edi, 0xc1a47e2b
arpl bx, di
mov bl, 0x1f
int 0x26
inc edx
cli
xor al, 0xd2
jle 0x40b95d
dec edx
and byte [edx + 0x39], ch
and al, 0x11
mov ah, 0xb8
cmpsd dword [esi], dword es:[edi]
mov ch, 0xb9
lea edx, [edi - 0x2a160b64]
sub ah, ch
inc esi
mov dword [0x53dcd779], eax
xchg ebp, eax
fild dword [ecx + 0x3ca84bf5]
lodsb al, byte [esi]
or bh, byte [0x903d4343]
add dword [ecx + eax*4 - 0x1d62280c], 0x314fb275
pop ss
shr byte [edi], 1
mov al, byte [0x53801ffb]
popal
mov ah, 0x4d
xchg esp, eax
mov dh, 0xf2
cmp al, 2
dec ecx
xlatb
xchg edi, eax
pushfd
hlt
ror byte [esi], 0x83
loop 0x40b8ce
mov ebp, es
lea edi, [0x4fc54e7]
aas
lds ecx, [ebp - 0x3ab18c3]
add al, 0x3f
out 0xa3, eax
xchg ebx, eax
mov dword [ebx + 0x1c], edx
adc al, 0x94
or al, 0xa9
pop esi
sahf
mov ebp, 0xcf9a9e3a
arpl word [esp + ebx - 0x74816cce], bx
pushfd
sbb al, 0x32
xchg ebx, eax
jle 0x40b8ee
movsd dword es:[edi], dword [esi]
test al, 0x86
and ebx, dword [ebx]
popfd
xor byte [ecx], bl
jbe 0x40b941
imul edi, esp, 0x3bda7aba
sti
jns 0x40b9c7
and edi, esp
sub eax, 0x8d1719d7
adc eax, 0xaa16bdaf
movsd dword es:[edi], dword [esi]
sbb dword [ecx], esi
sar byte [edx], 1
adc eax, 0xcd233133
div bh
xor dword [ebx], esp
int 0x64
div bh
push edx
xor edx, eax
movsb byte es:[edi], byte [esi]
jmp 0x40b9ef
adc bl, byte [ecx - 0x6801fe72]
invalid
cmp cl, dh
into
shl ch, cl
xor dl, bl
adc edx, dword [ebx]
invalid
pop ds
inc esp
stc
pop eax
sub esi, dword [ebp + 0x6ea6e55a]
jne 0x40b996
push ss
popfd
bound edx, qword [ebx + ebp + 0x32]
imul ebp, dword [eax - 0x74], 0x8e9e504b
push ebp
cmp ch, byte [eax]
sub ah, ah
mov dh, 0x48
mov ss, word [ebp + 0x3a]
sub byte [edx], ch
in al, 0xb6
dec eax
dec edi
mov eax, dword [0x259c15c5]
arpl bx, dx
xlatb
xchg ecx, eax
add ah, ah
imul edx, ebx, 0x16242a46
jno 0x40b9ae
insd dword es:[edi], dx
mov eax, 0x26f875f8
loope 0x40b9a0
mov fs, word [esi - 0x5212783]
fcomp st(6)
cli
cli
wait
fnstcw word [ebx + eax*4 + 0x600d4b5]
mov dword [0xdde8027e], eax
jb 0x40b989
push esp
mov dh, 0xe9
mov byte [ebp + 0x7b], 0x6c
sub edx, dword [ecx]
pushal
and al, dh
pop esp
fbstp tbyte [ebp + ebx + 0x7a7b9052]
xchg esp, eax
adc bl, byte [edx + 0x4a]
mov esi, 0xa7672085
dec ebp
and esp, dword [edx - 0x3f88ce7a]
insd dword es:[edi], dx
into
cli
std
adc al, 0xac
test al, 0xaf
test al, 0x7d
mov eax, dword [0xfe5f18c4]
cmp dword [0x913e808f], eax
sbb eax, 0xf5ab8c42
jmp 0x4b79498