Function at 0xab1918
Capabilities:
Encode data using xor

Disassembly:
add cl, ch
push cs
cmc
and dword [ecx], esp
push cs
and dword [edi + 0x25], ebx
push cs
adc eax, 0x246c08f3
and al, 9
sub byte [ecx - 0x77], al
add al, 0xe9
fldcw word [ecx]
xchg dword [eax], eax
dec eax
and ebp, eax
adc dh, byte [esi + ebx]
xor eax, 0x246c0836
and cl, byte [ecx]
sub byte [ecx], al
mov esi, 0x9b1e904
sub byte [esp + eax*2], al
jnp 0xab17fb
adc ecx, dword [eax]
add dword [eax + 0x35], edi
jns 0xab17fc
insb byte es:[edi], dx
and al, 0x20
push ss
xchg ecx, eax
or edx, dword [eax]
mov byte [esp + 0x40], 0x7d
xor esi, ecx
inc esp
and al, 0x40
jge 0xab1832
into
add byte [edx], ah
xor dword [ebp + 0x28], edi
insb byte es:[edi], dx
and al, 0x1e
je 0xab1883
mov byte [esp + 0x3c], 0x5b
mov ecx, dword [esi]
push edi
and ch, byte [esi]
jmp 0x2517281c
lds eax, [ebx - 0x77c2240]
push ebp
ja 0xab184f
movzx edx, byte [eax + 0x6530b140]
mov al, 1
test bl, bl
jne 0xab1871
mov ecx, dword [esi + 0x64]
mov word [edi + ecx], bp
mov edx, dword [esi + 0x64]
mov ecx, dword [esp + 0x28]
mov byte [edi + edx + 2], al
mov eax, dword [esi + 0x64]
mov dword [edi + eax + 4], ecx
add edi, 8
mov eax, dword [esp + 0x18]
mov edx, dword [esi + 0x5c]
push cs
jne 0xab1898
sbb byte [ebx], bh
inc edx
or byte [edi], cl
mov word [esi + edi*8 + 0x1010e80e], es
push 0xffffffffffffffff
dec byte [esi]
call 0x15289a
lea eax, [esi + 8]
push cs
push ecx
push ds
insb byte es:[edi], dx
cmpsd dword [esi], dword es:[edi]
int1
invalid
inc esi
cmp eax, ebx
je 0xab18e9
push eax
call 0xc99828
mov dword [esi + 0x64], ebx
mov dword [esi + 0x38], 0x16007fff
mov dword [esp + eax], esp
add esp, 0xe
xchg ebp, eax
pop ss
add byte [esi + ebx - 0x6f], ah
adc eax, 0xe00e0800
or al, 0xc
lea edx, [esp + 0x6c]
push ss
rcr dword [ebx + 0x10], 0x68
call 0xfab0a34
pop ebp
or dword [esi], edi
mov dword [ebx], 0x54244c08
mov byte ss:[0xc24c4804], al
add al, 0
nop
jge 0xab1893
xor byte [ebp - 0x7f], ah
mov al, 0x30
xor dword gs:[eax + 0x2006530], 0x1d
xor dword [eax + 0x2006530], 0x1d
add dword [0x409110d], edx
add byte [eax], al
add eax, 0x90f090b
push es
add dword [ecx], eax
add dword [edx], ecx
add byte [ecx], al
add eax, 0x205a09
push cs
cmp cl, byte [0x51640109]
movzx eax, word [esp + 0xc]
add eax, 0xffffffdd
push esi
mov esi, ecx
cmp eax, 0x55
ja 0xab1c5b
movzx eax, byte [eax + 0x4621b534]
or al, 0x85
hlt
push ss
push esi
adc al, 0xe
outsd dx, dword [esi]
jl 0xab1c66
add eax, dword [eax]
adc dh, byte [ecx + 0x1c]
add byte [eax], bh
push cs
sbb al, 0
cmp byte [esi], cl
mov ebp, 0x4b8113
inc eax
push ss
cmp dword [edx], ecx
dec esp
mov dword [esp + 0x58], ebx
test byte [esp + 0x38], 4
je 0xab1c8e
and dword [esp + 0x38], 0xfffffffb
lea ecx, [esp + 0x6c]
push ss
int1
or eax, 0x840c6d01
pop esp
and al, 0x38
test byte [esp + 0x38], bl
or dword [ecx], ebx
add ch, bh
push cs
inc eax
or cl, byte [ecx]
sbb dword [eax], eax
push 0xffffffffffffffc1
xchg ebp, eax
add byte [eax], bh
add eax, 0x4b410eb4
add byte [ecx], bh
mov bl, 0x15
mov esp, 0x2444c64c
pop eax
add al, 0x3b
jne 0xab1ced
jge 0xab1fd0
mov ebx, dword [esp + 0x68]
mov eax, dword [ebx]
push cs
je 0xab1ce0
adc al, 0x3b
dec eax
or byte [edi], cl
lea eax, [edx]
add dword [ebx], edx
adc byte [ebp + 0x64], dl
cmp byte [edx + esi*8 + 0x21], 0xac
adc al, 0xf2
je 0xab1d0f
movzx eax, word [edi]
add dword [esp + ecx + 0x5015ff38], ecx
push cs
int1
pop ss
call dword [0x17f10e50]
and al, 0x4d
mov edx, dword fs:[esp + 0x30]
mov di, word [ecx + esi*8]
push cs
or cl, byte [edi]
add al, 0x70
push eax
push cs
push edx
or cl, byte [esi]
xchg edx, eax
or ah, byte [ecx]
ret 0x41c
push cs
ror dword [eax], 1
add al, 0x68
push edx
adc dword [ecx], esp
xor eax, 0xe8cd0cd1
jo 0xab1d17
and ecx, edx
or byte [edi], cl
test byte [ecx + 0x2c0db70e], bl
inc ebp
mov eax, dword fs:[eax + esi*8 + 4]
dec eax
je 0xab1d8d
dec eax
je 0xab1d5a
adc dword [esi], esi
add byte [edx], bl
invalid
invalid