Function at 0x55ac50
Capabilities:
Encode data using xor

Disassembly:
add byte [ecx + 0x59], dh
add al, byte [eax - 0xc686f93]
daa
or eax, dword [eax]
add byte [eax], dh
mul byte [ebx + 0x3b]
xor dh, dh
arpl word [ebx], di
inc ebx
stosb byte es:[edi], al
in al, 0x39
pop edi
je 0x55ac8f
jecxz 0x55ac20
sar byte [esi], cl
or dh, byte [ebp + 0xcab4ff]
add byte [eax], al
add byte [eax], al
add byte [eax], al
sbb eax, 0x1003f40
add byte [eax], al
add al, cl
enter 0x4221, 0x61
enter 0x4221, 0x61
popal
outsb dx, byte [esi]
imul esp, dword [ebp + 0x72], 0x2e
push ecx
push ecx
add byte [edx], al
add byte [eax], al
add byte [ecx + ebx*2 + 2], dh
add byte [edi + 0x52], 0xe7
pop esp
add al, byte [eax]
add byte [eax], al
je 0x55acbb
add al, byte [eax + 0x5ce75247]
js 0x55ac2d
add byte [eax], al
jnp 0x55ac53
push ss
int1
inc esi
inc esp
or eax, 0x791d76d7
aad 0x71
jbe 0x55ac5c
mov ebx, 0x5c5f14a3
bound esp, qword [ebx + 0x6b]
bound esp, qword cs:[ebx + 0x6b]
nop
add ah, byte [eax]
pop esp
nop
add dl, byte [eax]
js 0x55acf8
add byte [eax + 0x64616400], dl
outsd dx, dword [esi]
jae 0x55acbc
and byte gs:[ecx + 0x70], ah
insb byte es:[edi], dx
imul esp, dword [ebx + 0x61], 0x6f766974
jae 0x55ad07
nop
add dl, byte [eax]
jo 0x55ad20
insb byte es:[edi], dx
imul esp, dword [ebx + 0x61], 0x6e6f6974
and byte [ecx + 0x74], ah
je 0x55ad1e
popal
pop esp
nop
add dl, byte [eax]
jne 0x55ad36
jb 0x55ad36
jb 0x55ad37
imul bp, word [ebp - 0x70], 0x1002
jo 0x55ad41
popal
je 0x55ad36
pop esp
nop
add dl, byte [eax]
ja 0x55ad40
bound ebp, qword [ebp + 0x61]
outsd dx, dword [esi]
nop
add byte [ebp - 0x749a8325], al
inc ebp
nop
add dword [ecx], eax
shl eax, 0x90
add dword [ecx], eax
add ebx, eax
mov dword [ebp - 0x70], ebx
add dword [ecx], eax
add edi, 0xffffff90
nop
add dword [ecx], eax
cmp edi, 8
jl 0x55ad48
sub edi, 8
mov ecx, edi
nop
add byte [ebp - 0x41d48125], al
add dword [eax], eax
add byte [eax], al
test ebx, ebx
jle 0x55ad36
mov esi, 1
lea eax, [ebp - 0x70]
add dword [ecx], eax
mov edx, edi
push edx
mov edx, dword [ebp - 0x70]
add dword [ecx], eax
mov dl, byte [edx + esi - 0x70]
push esp
xor dl, byte [eax + 0x2a590101]
sal esi, 1
rcl byte [eax + 0x42218800], cl
popal
nop
add dword [ecx], eax
pop ecx
sub dl, cl
not dl
nop
add byte [eax + 0x6e614221], cl
outsb dx, byte [esi]
insb byte es:[edi], dx
outsd dx, dword [esi]
popal
push eax
push eax
add byte [ecx + 0x72617453], ch
je 0x55adaf
lodsb al, byte [esi]
and dword [ebx + 0x74], edx
popal
jb 0x55adb2
jo 0x55ada1
popal
dec esp
dec esp
dec ebp
add byte [edx], al
add byte [eax], al
add byte [esi + 0x59], dh
add byte [eax], al
jbe 0x55ada5
add al, byte [eax - 0x1df9b14a]
inc eax
push ebp
add byte [eax], al
test eax, 0x49ffa7fc
sbb ah, byte [0x5dd95b8e]
adc ah, byte [ebx]
inc ebp
invalid
outsb dx, byte [esi]
push ebx
add byte [edx], al
add byte [eax], al
add byte [eax + 0x59], bh
add al, byte [eax + 0x67c8197a]
sub byte [esi], cl
add byte [eax], al
pop ebp
sar dword [esi + 0x5f], 1
imul esp, edi, 0xbc617c6c
jno 0x55adfb
cmc
hlt
jecxz 0x55ad2e
xchg dword [ebx + 2], ebx
adc byte [eax], al
add byte [eax + 0x59], bh
pop ebx
add dl, byte [eax]
add byte [eax], al
js 0x55ae07
add al, byte [eax + 0x1b2371ca]
or dl, 0x71
and ebx, dword [ebx]
sub byte [esi], cl
add byte [eax], al
fadd dword [ebx - 0x6231f529]
leave
int 8
scasb al, byte es:[edi]
pop eax
sbb ecx, dword [ebx - 0x1e9278f7]
inc edx
out 0xa4, al
mov al, byte [0x70515121]
popal
jae 0x55ae47
inc esp
push esp
add byte [eax + 0x6c654421], cl
dec bx
pop ecx
add byte [edx], al
add byte [eax], al
add byte [edx + 0x59], bh
add al, byte [eax - 0x4c8f0a7a]
js 0x55ae61
add byte [eax], al
dec esp
insd dword es:[edi], dx
pop ecx
cmp al, 0xf5
jl 0x55ad80
mov ebp, 0x8c6c1d90
pop esp
pop edi
sbb eax, 0x5f5c8c6c
mov ebx, 0x5eec7a86
les esi, [ebx]
sal byte [ebp + 0x68], 0x90
add dword [esp], eax
push dword [eax]
mov dword fs:[eax], esp
test ebx, ebx
je 0x55ada7
add dword [ecx], eax
jae 0x55ada6
invalid
jb 0x55aec2
jae 0x55aeb4
insb byte es:[edi], dx
outsb dx, byte gs:[esi]
je 0x55aebb
jne 0x55aec1
outsd dx, dword fs:[esi]
jne 0x55aec9
je 0x55aece
jo 0x55ae07
and dword [esi + 0x42], edx
inc ecx
inc edx
push edx
add byte [edx], al
add byte [eax], al
add byte [ebx + 0x59], bh
add al, byte [eax + 0x2d49ca4e]
js 0x55ae76
add dword [eax], eax
arpl word [esi - 0x159e3afa], sp
lds esp, [ecx - 0x16]
out dx, eax
inc edx
push ebx
daa
xchg ebp, eax
call 0x32bc6104
mov edi, 0x71b1ddb2
add byte [esi], dh
sub eax, 0x71007100
add byte [esi], ch
add byte [ebx], ah
outsd dx, dword [esi]
add byte [ebp], ch
das
add byte [edi], al
add byte gs:[eax + eax + 0x55], dh
add byte [ecx], cl
inc esp
add byte [esi], ch
add byte [ecx], ah
jae 0x55aead
jo 0x55aeaf
add byte [bp + si], bh
push 0x63007400
add byte [eax + eax + 0x63], dh
add byte [ebp], ch
jae 0x55aebd
popal
add byte [ebp], dh
add byte cs:[edx], ah
add byte [edx], ah
insb byte es:[edi], dx
add byte [edi], ch
add byte [0x3100], ch
add byte [esi], dh
add byte [ebx], dh
add byte [esi], ch
add byte [ebx], ah
outsd dx, dword [esi]
add byte [ebp], ch
das
add byte [esi], dh
outsd dx, dword [esi]
add byte [eax + eax + 0x65], dh
add byte [edi], ch
add byte [ebx], dh
add byte [eax + eax], dh
xor dword [eax], eax
xor al, 0
xor byte [eax], al
xor dword [eax], eax
add byte ss:[edi], ch
add byte [ecx], al
insb byte es:[edi], dx
add byte [ecx], ch
dec ecx
add byte [ebp], cl
add byte cs:[ebp], ah
js 0x55af07
add byte gs:[edi], ch
add byte [edx], ah
add byte gs:[eax + eax + 0x61], dh
add byte [edi], ch
add byte [ecx], dh
jno 0x55af19
add byte cs:[ebp], ah
js 0x55af1f
add byte gs:[esi], bh
add byte [ecx], ah
bound eax, qword [eax]
arpl word [eax], ax
add byte fs:[edx], ch
add byte [eax + eax + 0x41], bl
add byte [ebp], al
cmp al, byte [eax]
pop esp
add byte [esi], dh
add byte [ebx], dh
add byte [ecx], bh
add byte [ecx], bh
add byte [eax + eax - 0x70], bl
add bl, byte [edx + 0x5c]
add byte [ebp], cl
push ebx
add byte [edi], al
add byte cs:[esi], dh
bound eax, qword [eax]
jo 0x55af54
nop
add byte [ecx], dl
push ecx
add byte [edx], bh
add byte [eax], al
add byte [esi], cl
add byte [eax], al
add byte [edx], dl
xor byte [eax], al
push edx
add byte [esi], ch
add byte [eax + eax + 0x78], dh
add byte [ebp + 0x21], dh
inc ecx
jne 0x55afe8
outsd dx, dword [esi]
jb 0x55afec
outsb dx, byte [esi]
inc edx
dec eax
add byte [edx], al
add byte [eax], al
add byte [ecx + ebx*2 + 2], bh
or byte [ebx - 0x2f], 0x18
jae 0x55afb0
or eax, dword [eax]
add ch, al
adc byte [ebx], ch
cmp al, 0xc1
jne 0x55afd6
adc bh, byte [ebp + 0x2cb97c55]
push edx
pushfd
arpl word [ebx + 0x6b], di
test byte [ebx + 0x3f437c], dh
add dword [eax], eax
add byte [eax], al
shl byte [ecx], 1
push eax
push 0x73
arpl word [esi], bp
dec eax
dec eax
inc edx
add byte [ecx + 0x72617453], cl
je 0x55b02c
popal
inc ebx
add byte [ecx + 0x636d6f57], ah
outsd dx, dword [esi]
imul ebp, dword fs:[esi], 0x20041
add byte [eax], al
jg 0x55b02d
add al, byte [eax + 0x205ee55e]
js 0x55b024
pop esi
in eax, 0x5e
and byte [eax + 0x48], bh
add dword [eax], eax
and ch, byte [ebx + 0x1cf832c5]
retf
leave
pop esi
inc edi
cmp ebx, edx
sahf
invalid
ficomp dword [esi - 0x162d4539]
cmc
pop esp
add byte [eax], al
add byte [ebx], cl
adc eax, dword [eax]
add al, 0
and edx, dword [eax + 0x232a0201]
nop
add dword [edx], eax
cmc
insb byte es:[edi], dx
add byte [eax], al
add byte [ebx], cl
adc eax, dword [eax]
add al, 0
and edx, dword [eax + 0x232a0201]
nop
add dword [edx], eax
cmc
imul eax, dword [eax], 0x130b0000
add byte [eax + eax], al
and edx, dword [eax + 0x662a0201]
nop
add dword [edx], eax
sub ah, byte [esi - 0x70]
add dword [edx], eax
cmc
insd dword es:[edi], dx
add byte [eax], al
add byte [eax + edx*4], al
add dword [edx], eax
or dl, byte [eax - 0x6ffbfbff]
add dword [edx], eax
sti
nop
add dword [ebx], eax
cmc
add byte gs:[eax], al
add byte [eax + edx*4], al
add dword [edx], eax
or dl, byte [eax - 0x6ffbfbff]
add dword [edx], eax
sti
nop
add dword [ebx], eax
cmc
ja 0x55b058
add byte [eax], al
nop
add ch, dh
add byte gs:[eax], al
add byte [eax + edx*4], al
add dword [edx], eax
or cl, byte [ecx]
add byte [eax], cl
add byte [eax + edx*4], al
add dword [edx], eax
cmc
insd dword es:[edi], dx
add byte [eax], al
add byte [eax + edx*4], al
add dword [edx], eax
or cl, byte [ecx]
add byte [eax], cl
add byte [eax + edx*4], al
add dword [edx], eax
sti
out dx, eax
nop
add dword [edx], eax
cmc
jne 0x55b088
add byte [eax], al
or edx, dword [eax - 0x6f99fbff]
add dword [edx], eax
sti
out dx, eax
nop
add dword [edx], eax
cmc
insb byte es:[edi], dx
add byte [eax], al
add byte [ebx], cl
nop
add dword [esi], eax
nop
add dword [edx], eax
sti
out dx, eax
nop
add dword [edx], eax
cmc
add byte gs:[eax], al
add byte [eax + 0x68f500], dl
add byte [eax], al
or edx, dword [eax - 0x6f99fbff]
add dword [edx], eax
cmc
je 0x55b0c0
add byte [eax], al
add al, 0x90
add dword [edx], eax
or dl, byte [eax - 0x6ffbfbff]
add dword [edx], eax
sti
nop
add dword [ebx], eax
cmc
je 0x55b0d5
add byte [eax], al
or edx, dword [eax - 0x6f99fbff]
add dword [edx], eax
sti
nop
add dword [ebx], eax
cmc
jo 0x55b0e6
add byte [eax], al
add al, 0x90
add dword [edx], eax
or dl, byte [eax - 0x6ffbfbff]
add dword [edx], eax
sti
nop
add dword [ebx], eax
cmc
cmp al, byte [eax]
add byte [eax], al
add al, 0x90
add dword [edx], eax
or dl, byte [eax - 0x6ffbfbff]
add dword [edx], eax
sti
nop
add dword [ebx], eax
cmc
das
add byte [eax], al
add byte [ebx], cl
nop
add dword [esi], eax
nop
add dword [edx], eax
sti
nop
add dword [ebx], eax
cmc
das
add byte [eax], al
add byte [eax + 0x4121a400], dl
jne 0x55b19e
outsd dx, dword [esi]
jb 0x55b1a2
outsb dx, byte [esi]
pop edx
dec ebp
add byte [edx], al
add byte [eax], al
add byte [eax + 0x50800259], al
jmp 0x55b12a
imul esi, dword [edx + 0x65], 0x726f7463
dec ebp
je 0x55b213
jb 0x55b1d4
dec ebp
push eax
add byte [edx], al
add byte [eax], al
add byte [ebx + 0x5e800259], al
mov ah, 0xe2
mov byte [0xe28], al
retf
cmp al, 0xcf
mov ebx, 0x10022c70
add byte [eax], al
sbb dword [ecx + 2], 0xffffff80
dec esi
or byte [eax + edx], ch
sub byte [esi], cl
or byte [esi + 8], 0x2c
adc byte [eax], ch
push cs
add byte [eax], al
bnd jecxz 0x55b1c7
dec eax
xor eax, 0xd3419ddf
mov esp, 0xd931f077
movsd dword es:[edi], dword [esi]
pushfd
add al, 0x92
int1
nop
add ah, byte [eax]
add byte [eax], al
sbb dword [ecx + 2], 0xffffff80
sahf
jmp 0xe7e83ae
push 0xffffffffffffffa7
add dh, byte [eax]
add byte [eax], al
sbb dword [ecx + 2], 0xffffff80
mov bl, 0xad
and al, 0x44
sub byte [esi], cl
add byte [eax], al
xor al, 0xb6
test al, 0xf2
stosb byte es:[edi], al
sbb eax, 0x740c820b
enter 0x1586, 0x61
mov ecx, 0xc56c990d