Function at 0x524585
Capabilities:
Encode data using xor

Disassembly:
push ss
out 0x4c, al
xor al, 0x88
and al, 0x72
or byte [edx - 0x6d], ah
push esp
invalid
pop ebx
cmp al, 0xfd
mov edi, 0xeea03722
xchg esi, eax
sbb al, 0xc2
cmp eax, 0x1cc9eb5f
inc ebp
push edx
or al, 0x7e
lds edx, [ebx + ecx*2]
mov bh, 0x44
dec ebx
adc dh, byte [edi - 0x589ba790]
dec eax
jno 0x5245a5
outsb dx, byte [esi]
mov cl, 0xd5
sbb edi, esi
sbb bh, al
pop ds
add eax, 0x87e21f73
rol byte [ebx + 0x1d2458cb], cl
aaa
out dx, al
xchg edx, eax
leave
js 0x524531
push eax
lcall 0x993, 0xa08685f7
jo 0x52453f
stosd dword es:[edi], eax
push ebx
nop
les eax, [ecx + 0x16]
adc dh, ch
loop 0x52456f
pop es
adc eax, 0x64122012
movsd dword es:[edi], dword [esi]
fbstp tbyte [ebp + ecx*2 - 0x48]
das
mov ebp, 0x87d17a5d
xor eax, 0x1c9294af
xor eax, 0x26c23469
outsb dx, byte [esi]
add esp, eax
sbb al, 0x35
imul esi, dword [edx + eax*8], 0xe0036e26
test al, 0xba
dec eax
push 0x88148897
inc edi
xor dword [esi], esi
cmp ecx, dword [ecx + 0x5d]
push ds
adc bh, byte [ecx - 0x25]
mov dword [ebx + 0x14d6e0c3], eax
mov edx, 0xf5219778
mov al, byte [0xa164926]
cmpsb byte [esi], byte es:[edi]
jno 0x524617
or ah, byte [esi + 0x295f4471]
inc edx
enter 0xfffffffffffff223, 0x59
pop edi
sub dword [edx + 0x26], eax
enter 0xfffffffffffff223, 0x59
imul esi, ebx, 0x7955a774
adc eax, 0x4ac45980
xchg edi, esi
rol dword [ecx + 0x24], cl
and cl, byte [ebx]
movsb byte es:[edi], byte fs:[esi]
cli
not ebx
inc ecx
and al, 0x22
or esp, dword [esp - 6]
cmp byte [eax], dl
adc eax, 0x8b028922
je 0x5245e7
add dl, byte [edi + 0x47]
cdq
dec esp
xchg esi, eax
mov esp, 0x98abee11
out dx, al
stosd dword es:[edi], eax
cwde
sub al, 0x34
aam 0xa3
and al, ch
jb 0x5245cf
push ebp
aad 0xee
mov byte [0x45e18b51], al
pop ds
hlt
and al, 0xd
jge 0x52465c
or eax, 0x3be417d
arpl word [esi + 0x30], cx
mov esi, 0x304e6303
push ds
mov byte [0x3a314087], al
mov ebx, 0xd28f03e6
arpl bp, ax
mov cl, 0x44
insd dword es:[edi], dx
mov bh, 0xe5
xor eax, 0xcaf07eab
sub dh, byte [esi]
imul edx, ebx, 0x4dbf13ff
bound esi, qword [ebx + 0x75d2a6ab]
pop edx
jg 0x524618
invalid
cmp ebp, dword [eax + esi*4 - 0x2b]
out dx, eax
sub byte ds:[ebx - 0x6d45382c], dh
mov ebx, 0x633087e7
sub eax, 0x6aabe9b9
das
sub al, 0x60
pushal
test byte [ebp - 0x489d9467], cl
loop 0x524601
scasd eax, dword es:[edi]
jge 0x5246af
in al, 0xe5
push esi
call 0xbf1d9789
scasb al, byte es:[edi]
xor ah, byte [edi]
add bh, byte [ebp - 0x20]
loop 0x5246d1
sbb al, 0xc8
mov dh, 0x9b
shl dword [eax], 1
outsd dx, dword [esi]
push cs
push 0x50
scasd eax, dword es:[edi]
and byte [edi + 0x35], ch
adc byte [edx - 0x14], dh
mov byte [eax - 0x80], bh
xchg edi, eax
mov eax, dword [edi + 0x4c]
mov esp, 0xe66ae7c8
adc ebp, dword [edx - 0x78eaf842]
jb 0x524726
mov esi, 0x72871507
jno 0x5246d9
and ebx, eax
jbe 0x5246e2
fdiv dword [esi + 0x29]
enter 0xffffffffffffd950, 0x6f
and eax, 0x95605f17
adc dword [edi - 0x57], ebp
add al, 0x47
xchg ebx, eax
out 0xa0, eax
dec esi
or dword [0xc62bf04f], esp
xor eax, 0x730fc3d9
aas
invalid
mov cl, 0x7a
salc
sbb dword [ebx], esp
inc esp
mov dh, 0x64
out 0x94, eax
xchg esp, eax
sbb dh, dh
lcall 0x2ab9, 0xa8c5d997
cdq
outsd dx, dword [esi]
stosd dword es:[edi], eax
cmp al, 0x79
adc al, 0x35
and ah, byte [edx]
and ebx, dword [ecx - 0x4b423041]
cmp edi, dword [edi - 0x70]
ja 0x524742
dec eax
shl byte [edi + 0x1dd0b560], 1
push ebp
stosd dword es:[di], eax
xchg edi, eax
rcr byte [0x97ab6755], 1
fdivrp st(4)
or ecx, ebx
mov bh, 0x11
or dword [eax], ebx
and dl, byte [eax + 0x30c0c851]
dec esi
ja 0x524705
cmp ah, ch
in eax, 0x60
and ecx, dword [ebp - 0x153e4160]
mov eax, dword [0xca8e66d5]
push ebp
invalid
cli
xchg edx, eax
pop ss
lodsd eax, dword [esi]
xchg dword [ebp - 0x49], eax
or dword [esi], ecx
retf 0x935e