Function at 0x517d82
Capabilities:
Encode data using xor

Disassembly:
add dword [eax], eax
add byte [eax], al
add byte [eax], al
pushal
add dword [eax], eax
add byte [ecx], cl
dec ecx
add byte [eax], bl
add byte [eax + eax], dl
add byte [eax], al
add byte [eax], al
xor byte [eax], al
or byte [eax], al
add byte [eax], al
add byte [eax], al
mov eax, dword [0xbcc08a6d]
add al, byte [eax]
add byte [ecx - 0x433f7593], ah
add al, byte [eax]
add al, dh
or al, byte [edx]
add byte [eax], al
add byte [eax], al
add byte [eax + 1], ah
add byte [eax], al
dec ecx
add byte [ecx], cl
sbb byte [eax], al
adc al, 0
add byte [eax], al
add byte [eax], al
xor byte [eax], al
or byte [eax], al
add byte [eax], al
add byte [eax], al
mov cl, 0xb5
mov al, al
jle 0x517dd8
add byte [eax], al
mov cl, 0xb5
mov al, al
jle 0x517de0
add byte [eax], al
pushal
mov dh, 1
add byte [eax], al
add byte [eax], al
add byte [eax + 1], ah
add byte [eax], al
dec ecx
add byte [ecx], cl
sbb byte [eax], al
adc al, 0
add byte [eax], al
add byte [eax], al
xor byte [eax], al
or byte [eax], al
add byte [eax], al
sbb byte [eax], al
jno 0x517df0
mov al, al
add al, byte [eax]
add byte [ecx - 0x12], dh
mov al, al
add al, byte [eax]
add byte [eax + 0x197], al
add byte [eax], al
add byte [eax + 1], ah
add byte [eax], al
dec ecx
add byte [ecx], cl
sbb byte [eax], al
adc al, 0
add byte [eax], al
add byte [eax], al
xor byte [eax], al
or byte [eax], al
add byte [eax], al
add byte [eax], al
cmp ebx, 0x296c08a
add byte [eax], al
cmp ebx, 0x296c08a
add byte [eax], al
pushal
xlatb
add dword [eax], eax
add byte [eax], al
add byte [eax], al
pushal
add dword [eax], eax
add byte [ecx], cl
dec ecx
add byte [eax], bl
add byte [eax + eax], dl
add byte [eax], al
add byte [eax], al
xor byte [eax], al
or byte [eax], al
add byte [eax], al
add byte [eax], al
loope 0x517e66
mov eax, eax
mov al, byte [edx]
add byte [eax], al
loope 0x517e6e
mov eax, eax
mov al, byte [edx]
add byte [eax], al
loopne 0x517e38
add dword [eax], eax
add byte [eax], al
add byte [eax], al
pushal
add dword [eax], eax
add byte [ecx], cl
dec ecx
add byte [eax], bl
add byte [eax + eax], dl
add byte [eax], al
add byte [eax], al
xor byte [eax], al
or byte [eax], al
add byte [eax], al
add byte [eax], al
rcr dword [ebx], 1
mov eax, eax
out dx, eax
add al, byte [eax]
add byte [eax], dh
add byte [eax], cl
add byte [eax], al
add byte [eax], al
add cl, dl
sbb ecx, dword [ebx + 0x2efc0]
add cl, dl
sbb ecx, dword [ebx + 0x2efc0]
add al, dh
dec edx
add al, byte [eax]
add byte [eax], al
add byte [eax], al
pushal
add dword [eax], eax
add byte [ecx], cl
dec ecx
add byte [eax], bl
add byte [eax + eax], dl
add byte [eax], al
add byte [eax], al
xor byte [eax], al
or byte [eax], al
add byte [eax], al
add byte [eax], al
jno 0x517e87
nop
shl byte [eax + 2], 0
add byte [ecx - 0x3b], dh
nop
shl byte [eax + 2], 0
add byte [eax + 0x18f], dh
add byte [eax], al
add byte [eax + 1], ah
add byte [eax], al
dec ecx
add byte [ecx], cl
sbb byte [eax], al
adc al, 0
add byte [eax], al
add byte [eax], al
xor byte [eax], al
or byte [eax], al
add byte [eax], al
add byte [eax], al
out 0xb9, eax
mov edx, 0x1a4c0
add bh, ah
mov ecx, 0x1a4c0ba
add byte [eax], al
nop
mov es, word [eax]
add byte [eax], al
add byte [eax], al
add byte [eax + 1], ah
add byte [eax], al
dec ecx
add byte [ecx], cl
sbb byte [eax], al
adc al, 0
add byte [eax], al
add byte [eax], al
xor byte [eax], al
or byte [eax], al
add byte [eax], al
add byte [eax], al
push edi
mov edx, 0x1a0c0ba
add byte [eax], al
push edi
mov edx, 0x1a0c0ba
add byte [eax], al
adc byte [ecx], cl
add byte [eax], al
pushal
add dword [eax], eax
add byte [ecx], cl
dec ecx
add byte [eax], bl
add byte [eax + eax], dl
add byte [eax], al
add byte [eax], al
xor byte [eax], al
or byte [eax], al
add byte [eax], al
add byte [eax], al
aaa
int3