Function at 0x91516c
Capabilities:
Encode data using xor

Disassembly:
jmp 0x915176
or byte [eax], al
or eax, 0
add byte [eax - 0x18], ah
add byte [eax], al
add byte [eax], al
pushal
call 0x91517c
pop ebp
sub ebp, 0x10
sub ebp, 0x51516c
jmp 0x915192
mov eax, 0x51516c
add eax, ebp
add eax, 0x4c
mov ecx, 0x605
add byte [ebx], al
lds eax, [ecx + 0x4cc0]
add byte [ecx + 0x605], bh
mov edx, 0x6e7ae797
xor byte [eax], dl
inc eax
dec ecx
jne 0x9151a9
jmp 0x9151bc
sbb al, 0x5a
sbb al, 0x1e
push ds
stosd dword es:[edi], eax
xchg edi, eax
xchg edi, eax
xchg edi, eax
push ss
push esi
outsd dx, dword [esi]
xchg edi, eax
xchg edi, eax
xchg edi, eax
xchg esp, eax
pop edx
das
xchg ecx, eax
xchg edi, eax
xchg edi, eax
xchg edi, eax
sub eax, 0x979797bf
pushal
jne 0x91516d
pop edi
sbb al, 0x16
wait
xchg edi, eax
xchg edi, eax
xchg edi, eax
xchg esp, eax
push edx
sbb dh, bl
mov bl, 0x6b
push ds
xchg ebx, eax
mov bl, 0x1a
mov bl, 0x6b
push ds
xchg ebx, eax
mov bl, 0xff
pop edi
sub al, 0x99
xchg edi, eax
push dword [esi]
add dl, ch
xchg edi, eax
xchg esi, eax
mov ebx, 0x2a50ffb3
or cl, byte [ecx]
jg 0x915196
xchg edi, eax
xchg edi, eax
xchg edi, eax
jle 0x9151c2
xchg edi, eax
xchg edi, eax
xchg edi, eax
sbb dh, bl
mov bl, 0x6b
push ds
mov ebx, 0x1c7b1cb3
adc bl, byte [edi + 0x1c979797]
add bl, byte [ebx + 0x1c979797]
sbb al, byte [edi + 0x56979797]
jle 0x9151bf
cmpsb byte [esi], byte es:[edi]
xchg ebp, eax
adc al, 0x55
xchg ebx, eax
ficomp word [eax + 0x68686312]
arpl word [eax + 0x68], bp
push 0x979b55ca
sbb al, 0x1b
mov bl, 0x93
xchg edi, eax
xchg edi, eax
xchg edi, eax
call [edi + 0x2c]
cdq
xchg edi, eax
push dword [esi]
add dl, ch
xchg edi, eax
xchg esi, eax
mov ebx, 0x927fc6b3
xchg edi, eax
xchg edi, eax
xchg edi, eax
jle 0x915232
xchg ebp, eax
xchg edi, eax
xchg edi, eax
sbb dh, bl
mov bl, 0x6b
push ds
mov ebx, 0x68cac3b3
loop 0x915200
push 0xef7f9fe2
xchg edi, eax
xchg edi, eax
xchg edi, eax
sbb al, 0x2a
lahf
xchg edi, eax
xchg edi, eax
xchg edi, eax
movsb byte es:[edi], byte [esi]
pop esi
push ss
leave
jb 0x915216
mov byte [esi], dl
leave
jb 0x91521c
mov byte [ebp + eax*2 - 0x206d80ec], ah
cwde
adc ebx, ecx
xchg edi, eax
xchg edi, eax
xchg edi, eax
cwde
pop ds
fist word [edi + 0x1cf19797]
mov ebp, dword [esi - 0x678093e9]
adc ecx, dword [ebp + 0x17979797]
insb byte es:[edi], dx
jle 0x91523c
adc eax, dword [esi - 0xe686869]
push ss
insb byte es:[edi], dx
push 0x821398b2
xchg edi, eax
xchg edi, eax
xchg edi, eax
salc
jle 0x915312
push 0xdbbe6868
scasb al, byte es:[edi]
xchg esi, eax
adc al, 0x56
xchg edx, eax
adc al, 0x7f
xchg ebx, eax
jle 0x9152f0
push 0xc3be6868
scasb al, byte es:[edi]
xchg ebp, eax
adc al, 0x56
xchg ecx, eax
adc al, 0x7d
xchg ebx, eax
adc al, 0x7f
xchg edx, eax
jle 0x915314
push 0xbb1c6868
mov bl, 0x1a
mov bl, 0x93
push ebp
wait
xchg edi, eax
ret 0x7b1c
lahf
imul esp, dword [0x16911d17], 0x51
xchg esi, eax
xchg edi, eax
xchg edi, eax
xchg edi, eax
pop ds
nop
push ss
push eax
xchg esi, eax
xchg edi, eax
xchg edi, eax
xchg edi, eax
sub al, 0x95
xchg edi, eax
xchg edi, eax
xchg edi, eax
xchg ebp, eax
inc ebp
cwde
adc dl, byte [edx + 0x1d979797]
adc ecx, 0x14984585
dec edi
test dword [ebp - 0x68], eax
adc al, 0x4f
push 0x45956868
cwde
adc dl, byte [edx + 0x1d979797]
adc ecx, 0x14984585
std
xchg edi, eax
xchg edi, eax
xchg edi, eax
movsb byte es:[edi], byte [esi]
push edi
xchg ebp, eax
inc ebp
cwde
adc dl, byte [edx + 0x1d979797]
adc ecx, 0x14984585
mov ebp, 0x95979796
inc ebp
cwde
adc dl, byte [edx + 0x1d979797]
adc ecx, 0x57844585
xchg ebp, eax
inc ebp
cwde
adc dl, byte [edx + 0x1d979797]
adc ecx, 0x57844585
xchg ebp, eax
inc ebp
cwde
adc dl, byte [edx + 0x1d979797]
adc ecx, 0x57844585
xchg ebp, eax
inc ebp
cwde
adc dl, byte [edx + 0x1d979797]
adc ecx, 0x57844585
cwde
adc edx, dword [ecx + 0x1c979797]
dec eax
mov esp, 0x1f941d4f
nop
shr byte [edx*4 + 0x7e979797], 1
out 0x68, eax
push 0x97962f68
xchg edi, eax
xchg edi, eax
xchg ebp, eax
inc ebp
cwde
adc dl, byte [edx + 0x1d979797]
adc ecx, 0x57844585
xchg ebp, eax
xchg edi, eax
xchg edi, eax
sbb eax, 0x4585d181
test byte [edi - 0x6b], dl
inc ebp
cwde
adc dl, byte [edx + 0x1d979797]
adc ecx, 0x15984585
dec ecx
push 0x54bc6868
sub al, 0x96
xchg edi, eax
xchg edi, eax
xchg edi, eax
cwde
adc ah, byte [ebx + 0x2e979797]
xchg esi, eax
xchg edi, eax
xchg edi, eax
xchg edi, eax
xchg ebp, eax
inc ebp
cwde
adc dl, byte [edx + 0x1d979797]
adc ecx, 0x5e844585
xchg ebp, eax
inc ebp
cwde
adc dl, byte [edx + 0x1d979797]
adc ecx, 0x15984585
dec ecx
push 0x1cc16868
pushal
mov esp, 0xc9336462
jle 0x91539d
push 0x56df6868
ja 0x9153a4
sbb eax, 0x7f1cd191
xchg esi, eax
xchg edi, eax
xchg edi, eax
xchg edi, eax
xchg ebp, eax
inc ebp
cwde
adc dl, byte [edx + 0x1d979797]
adc ecx, 0x5e844585
xchg ebp, eax
inc ebp
cwde
adc dl, byte [edx + 0x1d979797]
adc ecx, 0x15984585
dec ecx
push 0x6f166868
xchg edi, eax
ljmp 0x6868