Function at 0x489274
Capabilities:
Encode data using xor

Disassembly:
neg al
dec di
clc
ror cx, 1
xor eax, eax
xchg cx, di
mov edi, eax
pushal
lea ecx, [ebp*8 + 0x3956ab90]
mov ecx, 4
lea esp, [esp + 0x2c]
mov al, 0x8d
je 0x4c842c
push edi
pushfd
lodsb al, byte [esi]
cmp al, al
sub al, 0x25
clc
rol al, 4
mov word [esp], 0x8fac
call fcn.00488cd5
pushal
lea esp, [esp + 0x40]
jae 0x4c832a
cmc
sub edx, eax
setbe ah
setp al
pushfd
cwde
lea eax, [ebx + edx*4 + 0xabc]
call fcn.004c8308
add byte [eax], al
inc ebx
jb 0x483dd7
popal
je 0x483dda
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x483ddb
je 0x483de5
bound ebp, qword [ebp + 0x44]
inc ebx
add byte [ebp + 0xf0c2464], cl
lea esp, [esp + 0xc]
jne 0x4d3778
bsr ax, bx
movsx ax, dl
sub al, bl
dec eax
sub edx, edx
or al, 0xd1
mov eax, edx
inc al
call fcn.00495cdf
push ebx
pushal
xchg dword [ebp - 0x28], eax
push esp
call fcn.004889c1
int 0xc6
insb byte es:[edi], dx
invalid
cmp dword fs:[eax + 0x4d], esp
aam 0x86
fcomp dword [ecx + edx*4 - 0x60]
in eax, dx
sub al, 0x21
sal dl, 0xe
or eax, 0xa9f3598b
pop ebx
jns 0x483e7b
invalid
cmc
test byte [ebx], bl
inc ecx
jmp 0x45a02291
push edi
pushfd
lea esp, [esp + 0x10]
call fcn.00486604
pushal
add dword [ebp - 0x20], eax
stc
call fcn.004c703d
arpl word [edi + 0x6d], bp
arpl word [esp + ebp*2 + 0x33], si
xor ch, byte [esi]
insb byte es:[edi], dx
insb byte es:[edi], dx
add byte [eax], al
add byte [eax], al
add ch, dh
mov dword [esp], eax
stc
pushal
call fcn.004c5422
add byte [eax], al
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x4892e7
jb 0x4892ed
push ebx
je 0x4892fd
imul ebp, dword [esi + 0x67], 0x24a10041
mov bl, byte [esi]
sbb eax, 0x76e9b1ab
lds edi, [esi]
clc
in eax, 0xc
xor eax, 0x6ddf66c7
popal
or al, 0x11
xchg ebx, eax
pop es
test byte [ebx], 0xa
cmpsd dword [esi], dword es:[edi]
sbb esi, dword es:[edx - 0x2d]
mov byte [edx + 0x1b], al
outsb dx, byte [esi]
pop ds
scasb al, byte es:[edi]
cmp al, 0x65
imul esi, dword [edi + 0x45], 0xffffffad
or al, 0x46
invalid
aaa
mov dword [edi], eax
pop es
sti
xchg esp, eax
add cl, byte [eax]
iretd
or bh, cl
les esp, [ebx - 1]
in eax, 0xbf
adc al, 0x62
invalid
cmp dword [ebp - 0x4dd8acc4], edi
xor dword [edi], ebx
jle 0x489303
sub dl, byte [ecx - 0x33c16ec2]
sal byte [ebx + 0x784620c9], cl
cmpsb byte [esi], byte es:[edi]
outsd dx, dword [esi]
stosd dword es:[edi], eax
test eax, 0x53952fc1
dec dword [ecx - 0x6f]
inc ecx
jnp 0x4892e9
and byte [esi - 0x36], dl
pushal
std
xlatb
pop edx
or al, 1
out 0xea, eax
retf 0x126d
call fcn.00483fe0
add byte [eax], al
push ebx
outsb dx, byte gs:[esi]
dec ebp
jae 0x4c7564
popal
inc ecx
add al, ch
invalid
cmc
invalid
add byte [eax], al
cmc
cmp dl, dh
sub ecx, 4
jae 0x4c74e2
call fcn.004c664f
pushal
neg cl
mov cl, 4
cmp esi, 0x789c2934
cmc
cmc
shl eax, cl
lea esp, [esp + 0x20]
jl 0x4d3998
push 0x28ec3d7b
push esi
test cl, 0xda
add dword [ebp - 0x20], eax
call fcn.00493097
add byte [eax], al
dec ebp
jae 0x4c83d1
push edi
popal
imul esi, dword [esi + eax*2 + 0x6f], 0x6c754d72
je 0x4c83df
jo 0x4c83e4
dec edi
bound ebp, qword [edx + 0x65]
arpl word [ebx + esi*2], si
add dword [ebp - 0x20], eax
pushal
call fcn.00488624
add byte [eax], al
inc edi
je 0x4c83d4
dec ecx
inc edx
imul esi, dword [ebx + esi*2], 0x65470000
je 0x4c83df
insb byte es:[edi], dx
popal
jae 0x4c8413
dec esi
popal
insd dword es:[edi], dx
inc ecx
add byte [eax], al
add byte [esi + 0x69], dl
jb 0x4c8420
jne 0x4c840f
insb byte es:[edi], dx
push eax
jb 0x4c8421
je 0x4c8419
arpl word [ebp + eax*2 + 0x78], si
add byte [0xe], bh
call fcn.0048938c
add byte [eax], al
inc edx
or byte [eax - 0x3a], ah
inc esp
and al, 0x1c
stosd dword es:[edi], eax
sub cl, ch
cmp byte [edx], cl
cld
dec dword [eax + 0xc88243c]
and al, 0x8d
and al, 0x48
jne 0x4d3778
aaa
sal ax, 6
lahf
mov al, 0x6f
sub edx, edx
shrd eax, edi, 1
mov eax, edx
not al
add edi, 1
rol al, 1
rcr al, cl
push ecx
ror al, 2
mov al, byte [edi]
pop es
push dword [esp]
test al, al
push dword [esp]
push edx
call fcn.00487dc9
sti
jmp dword [esi - 0x77]
cmc
cmp cl, bl
bt ax, bx
push 0x2f52f511
add dword [ebp - 0x20], eax
push 0xb8c1fe74
lea eax, [esi*2 - 0x358e737f]
lea eax, [eax*2 - 0x4ec82b5e]
cwde
lea eax, [ebx + 0xc88]
jmp 0x48924e