Function at 0x4086b4
Capabilities:
Encode data using xor

Disassembly:
fadd st(4), st(0)
dec eax
add byte [ebp - 0x23ffff01], ah
les ecx, [eax]
cmpsb byte [esi], byte es:[edi]
inc dword [eax]
add ah, bl
les ecx, [eax]
cmpsd dword [esi], dword es:[edi]
inc dword [eax]
add ah, bl
fadd st(4), st(0)
dec eax
add byte [eax + 0x550000ff], ch
mov ebp, esp
xor eax, eax
push ebp
push 0x408601
push dword fs:[eax]
mov dword fs:[eax], esp
inc dword [0x48c4f0]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x408608
ret
add byte [eax], al
add byte [eax], al
pushal
xchg byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
jb 0x4085bc
inc eax
add byte [eax + eax], cl
add byte [eax], al
xor al, 0x11
inc eax
add byte [eax - 0x4bffbfd0], ch
xor byte [eax], al
mov eax, 0xbc004030
xor byte [eax], al
mov al, 0x30
inc eax
add byte [eax], bl
inc eax
add byte [esi + ebp], ch
inc eax
add byte [esi + ebp + 0x40], dh
add byte [esi], cl
push cs
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add al, bh
adc byte [eax], al
add al, 0
add byte [eax], al
or dword [ebp + 0x78], eax
js 0x4086d9
jo 0x4086ed
invalid
outsd dx, dword [esi]
outsb dx, byte [esi]
enter 0x4086, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
enter 0x4086, 0
or al, 0
add byte [eax], al
adc al, 0x86
inc eax
add byte [eax - 0x4bffbfd0], ch
xor byte [eax], al
mov eax, 0xbc004030
mov esp, 0xb0004030
xor byte [eax], al
sbb byte [esi], ch
inc eax
add byte [esi + ebp], ch
inc eax
add byte [esi + ebp + 0x40], dh
add byte [esi], al
inc ebp
inc ecx
bound ebp, qword [edi + 0x72]
je 0x408660
sbb al, 0x87
inc eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edi + eax*4], bl
inc eax
add byte [eax], dl
adc byte [eax], al
add byte [eax], al
adc al, 0x86
inc eax
add byte [eax - 0x4bffbfd0], ch
test al, 0x30
inc eax
add byte [eax + esi + 0x30b80040], dh
inc eax
add byte [eax + esi + 0x30b00040], bh
inc eax
add byte [eax], bl
inc eax
add byte [esi + eax*8 + 0x2e740040], dl
inc eax
add byte [esi], cl
inc ebp
dec eax
popal
jo 0x408768
js 0x408788
jo fcn.0040879c
imul ebp, dword [edi + 0x6e], 0x40877890
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax - 0x79], bh
inc eax
add byte [eax], dl
add byte [eax], al
add al, dl
xchg byte [eax], al
test al, 0x30
inc eax
add byte [eax + esi + 0x30b80040], dh
mov ah, 0x30
inc eax
add byte [eax - 0x43ffbfd0], bh
xor byte [eax], al
mov al, 0x30
mov al, 0x30
inc eax
add byte [eax], bl
inc eax
add byte [esi + eax*8 + 0x2e740040], dl
je 0x4087a4
inc eax
add byte [eax*2 + 0x4f74754f], cl
je 0x4087cd
dec bp
insd dword es:[edi], dx
outsd dx, dword [esi]
jb 0x4087fe
invalid
lea eax, [eax]
aam 0x87
inc eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
aam 0x87
inc eax
add byte [eax], dl
add byte [eax], al
add byte [esi + eax*4], dl