Function at 0xf58d00
Capabilities:
Encode data using xor

Disassembly:
jmp 0xf58d0a
pushal
call 0xf58d10
pop ebp
sub ebp, 0x10
sub ebp, 0xb58d00
jmp 0xf58d26
mov eax, 0xb58d00
add eax, ebp
add eax, 0x4c
mov ecx, 0x5e0
add byte [ebx], al
lds eax, [ecx + 0x4cc0]
add byte [ecx + 0x5e0], bh
mov edx, 0x9c5cbf89
xor byte [eax], dl
inc eax
dec ecx
jne 0xf58d3d
jmp 0xf58d50
add al, byte [edx + eax]
mov ch, 0x89
mov dword [ecx - 0x768eb7f8], ecx
mov dword [ecx - 0x70cebb76], ecx
mov dword [ecx - 0x765ecc77], ecx
mov dword [ecx + 0x418a6b7e], ecx
add cl, byte [eax]
test dword [ecx + 0x4c8a8989], ecx
fld dword [ebp*8 - 0x72ff8a53]
lodsd eax, dword [esi]
loope 0xf58d81
jae 0xf58d2a
test al, 0x89
loope 0xf58d84
mov ecx, esp
call [ebx]
sbb cl, byte [ecx - 0x1e525a78]
sub eax, 0x61da0f8d
mov word [ecx - 0x429f7677], cs
mov dword [ecx - 0x5212fb77], ecx
jne 0xf58d9f
sbb ebx, dword [edx]
mov dword [eax + 0x2de1ada5], ecx
lea ecx, [edi]
fisub dword [ecx - 0x74]
mov dword [ecx - 0x76429f77], ecx
mov dword [ecx + 0x75aded04], ecx
add byte [ebp + 0x26502ad], ah
movsd dword es:[edi], dword [esi]
lodsd eax, dword [esi]
add ah, byte [ebp + 2]
or al, 0x81
mov dword [ecx - 0x7ae3fd77], ecx
mov dword [ecx - 0x66fbfd77], ecx
mov dword [ecx - 0x749fb777], ecx
mov eax, 0x8d4b0a8b
rol byte [esi + 0x76767d0c], 0x76
add ah, byte [ebp - 0x5212fb53]
lea ecx, [ebx - 0x7b]
mov dword [edx], eax
add eax, 0x89898dad
mov ecx, esp
add dword [ebx - 0x58], esi
mov ecx, esp
call [ebx]
sbb cl, byte [ecx + 0x4ada588]
in eax, dx
lodsd eax, dword [esi]
jne 0xf58de7
test dword [ebp - 0x7676739f], ebp
mov dword [eax - 0x3c], esp
mov ecx, dword [ecx - 0x1afb2377]
lodsd eax, dword [esi]
mov dword [esi - 4], esi
test dword [esi - 4], esi
and dword [ecx - 9], 0x2898989
xor al, 0x81
mov dword [ecx - 0x4c87f777], ecx
and bh, byte [edi - 0x4c87f7c0]
and bh, byte [edi + 0x840ba40]
jnp 0xf58e5b
std
out dx, al
sub cl, byte [eax]
jnp 0xf58e61
std
out dx, al
sub bh, byte [edx - 0x739ef5a5]
rol dword [esi - 0x767638f3], 0x89
xchg byte [ecx], al
ror dword [ecx + 0x2ef8989], 0x95
mov al, 9
jb 0xf58e9d
xchg byte [0x89898993], cl
or dword [edx + 0x60], esi
xchg byte [0x89898998], cl
out dx, eax
or byte [edx + 0x76], dh
lodsb al, byte [esi]
xchg byte [0x8989899c], cl
enter 0x4560, 0x76
jbe 0xf58ed2
pushfd
mov dword [ecx + 0x4560c889], ecx
jbe 0xf58ed1
jbe 0xf58dfd
mov al, byte [0xa88b0c5]
lds esi, [eax - 0x73b7f578]
or ah, byte [ecx - 0x73]
pushal
xor al, 0x76
jbe 0xf58ee1
dec eax
mov word [edx], cs
popal
lea esp, [eax + 0x34]
jbe 0xf58ee0
jbe 0xf58e0c
mov al, byte [0xa8bb0dd]
dec eax
invalid
fnsave dword [eax - 0x70b7f575]
or ah, byte [ebx - 0x73]
or ah, byte [ecx - 0x74]
pushal
and dh, byte [esi + 0x76]
jbe 0xf58e52
dec ebx
test dword [ecx - 0x209afd24], ecx
invalid
mov dword [ecx - 0x7674cd77], ecx
mov dword [ecx + 0xc865b8b], ecx
mov word [ecx - 0x60fc7677], cs
iretd
mov word [ecx - 0x60fc7677], cs
iretd
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
xchg byte [edx], cl
mov dword [0x8b898988], eax
mov ebx, dword [ebx - 0x7a]
or al, 0x8c
pop ebx
xchg byte [esp + ecx*4], cl
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
lcall 0x8c0c, 0x865b8b49
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
lcall 0x8c0c, 0x865b8b49
pop ebx
xchg byte [esp + ecx*4], cl
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
lcall 0x8c0c, 0x865b8b49
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
lcall 0x8989, 0x8f0d8649
mov dword [edx], eax
push esi
mov byte [0x18a0351], al
mov cs, esi
xor cl, byte [ebx + 0x60898989]
stc
jbe 0xf58faa
jbe 0xf58f67
mov byte [ecx + 0x5b8b8989], cl
xchg byte [esp + ecx*4], cl
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
lcall 0x8c0c, 0x865b8b49
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
xchg byte [ebx], cl
push edi
jbe 0xf58fd1
jbe 0xf58eff
dec edx
xor cl, byte [eax - 0x79767677]
or al, 0xbd
mov dword [ecx - 0x7677cf77], ecx
mov dword [ecx + 0xc865b8b], ecx
mov word [ecx - 0x60fc7677], cs
iretd
mov ebp, 0x30898989
mov byte [ecx + 0x5b8b8989], cl
mov dword [ecx - 0x767677d0], ecx
mov dword [ebx - 0x73f379a5], ecx
xchg byte [esp + ecx*4], cl
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
lcall 0x8c0c, 0x865b8b40
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
xchg byte [ebx], cl
push edi
jbe 0xf59005
jbe 0xf58f70
add bh, byte [esi - 0x5e]
jl 0xf59010
sub eax, 0x768160d7
jbe 0xf59013
ror dword [eax + 0x69], 0x81
add ecx, dword [edi + 0x306102cf]
mov byte [ecx + 0x5b8b8989], cl
xchg byte [esp + ecx*4], cl
mov dword [ebx - 0x73f379a5], ecx
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
lcall 0x8c0c, 0x865b8b40
mov dword [ecx - 0x3060fc77], ecx
wait
pop ebx
xchg byte [ebx], cl
push edi
jbe 0xf59042
jbe 0xf58fd6
jno 0xf58f59
hlt
mov dword [ecx + 0x76765008], ecx
jbe 0xf5904f
jbe 0xf5904e
jbe 0xf58fe2
or byte [ecx - 0x77], dh
jno 0xf58f65
mov word [ecx + 0x76500889], cs
jbe 0xf5905a
jbe 0xf58fee
jno 0xf58ff1
mov dword [ecx - 0x76a7f777], ecx
mov dword [ecx + 0x9710889], ecx
or byte [ecx + 9], dh
mov dword [ecx - 0x76a7f777], ecx
mov dword [ecx + 0x7e02df89], ecx
mov byte [0xd72d7a79], al
pushal
adc dh, byte [edi + 0x76]
ja 0xf5907f
jbe 0xf5900e
invalid
inc eax
dec ecx
popal
mov byte [esi - 0x76766cf3], al
mov dword [eax], ecx
pop eax
mov ecx, dword [ecx + 0x61028989]
fild word [edx]
jle 0xf58fc6
or eax, 0x89898993
or byte [eax - 0x75], bl
mov dword [ecx - 0x209efd77], ecx
add bh, byte [esi - 0x5e]
jns 0xf590a0
sub eax, 0x898832d7
mov dword [ecx + 0x7677fa60], ecx
jbe 0xf59007
mov byte [0x4e0281f4], al
salc
xlatb
add ch, byte [esp + edx*8 + 0x4b]
insb byte es:[edi], dx
aam 0x4b
or dword [ecx + 0x4adb502], 0x28daded
lodsd eax, dword [esi]
add al, 0xed
lodsd eax, dword [esi]
lea eax, [edx]
mov ebp, 0xaded04ad
lea esp, [eax - 0x73]
mov dword [ecx + 0x7975a189], ecx
jl 0xf59089
pushal
lea ecx, [ecx + 0x75a18989]
jns 0xf590d3
xor dword [ecx - 0x7576c3fc], ecx
dec esp
or byte [ecx - 0xc], cl
mov dword [esp + edi], eax
mov dword [edx - 0xbb6f7b4], ecx
cmp al, 0x89
mov cl, byte [eax + ecx + 0x49]
hlt
mov cl, byte [ecx - 0x74d9cf77]
mov dword [ecx - 0x52fa70cd], ecx
lodsd eax, dword [esi]
mov ecx, 0x86c0c999
or al, 0x7f
jbe 0xf590ed
add eax, 0x99b9adad
leave
rol byte [esi + 0x76767f0c], 0x76
pushal
jbe 0xf590d9
lea ecx, [ecx - 0x60bd7677]
lea esi, [esi - 0xefb8ef8]
mov bl, 4
xor edi, dword [eax - 0x707070d1]
invalid
das
invalid
fmul dword [edi - 0x9fb89f8]
mov ecx, dword [eax]
jbe 0xf590b8
jne 0xf5903b
invalid
dec eax
xchg dword [edi + 0x660e8f8f], ecx
xchg dword [edi + 0x760e8f8f], ecx
invalid
or dword [si], 0x6f
or byte [esi], 0x77
mov word [edi + 0xa808f8f], cs
or byte [edi + 0x4e98f8f], 0x88
push cs
outsd dx, dword [esi]
jo 0xf5906b
ja 0xf59067
invalid
invalid
mov word [ebp - 0x72], cs
xchg edi, eax
mov dh, 0xc
dec eax
lea esp, [esi + 0x47]
jo 0xf5916a
jo 0xf59162
mov ecx, dword [edi - 0x20217071]
xchg edx, eax
xlatb
aaa
pop dword [edx]
cmp cl, byte [edi + 0x4f0e4a8c]
movsd dword es:[edi], dword [esi]
mov ecx, dword [edi - 0x7272c971]
invalid
invalid
add ecx, edi
test byte [ebx - 0x5313fab2], cl
je 0xf5916d
mov word [edi + esi*2 + 0x1b95501d], gs
mov byte [ebx], cl
test dword [eax + ecx*4 - 0x77e5f379], 0xf70b8888
mov byte [eax - 0x777df279], cl
mov byte [eax - 0x776708f5], cl
xchg dword [esp], ecx
lodsb al, byte [esi]
ja 0xf5918d
push eax
xchg ebp, eax
sbb ecx, dword [eax - 0x777b08f5]
xchg dword [edx + ebx], ecx
mov byte [eax - 0x7708f478], cl
mov byte [edi - 0x77777df3], al
mov byte [ebx], cl
neg dword [eax - 0x1bf37878]
or al, 0xe4
mov byte [eax - 0x22fa2278], cl
mov byte [edi], cl
jne 0xf5919c
cmc
cwde
pcmpeqw mm1, qword [ebx - 0x770af49a]
mov byte [edi - 0x777722f4], al
mov byte [edi], cl
popal
add esp, ecx
jne 0xf59129
or si, bp
mov byte [eax - 0x7722f379], cl
mov byte [eax - 0x1efc9ef1], cl
mov byte [edi], cl
popal
fadd dword [0x174acec]
pushfd
lodsb al, byte [esi]
add dword [ecx - 0x79], 1
test byte [eax - 0x13fa7778], cl
lodsb al, byte [esi]
je 0xf591c6
test byte [ecx - 0x77777779], ch
mov eax, dword [esi + 9]
dec ecx
mov cl, byte [eax - 0x13fa7778]
lodsb al, byte [esi]
lodsb al, byte [esi]
popal
xchg dword [eax + 0x468b8888], ecx
or dword [ecx - 0x76], ecx
mov byte [eax - 0x5313fa78], cl
je 0xf591da
test byte [eax + ebx*8 - 0x6aa7e589], ch
lodsb al, byte [esi]
fdiv dword [edi + 0x1a]
pop eax
xchg ebp, eax
sbb ecx, dword [eax + 0x5ac9c03]
in al, dx
lodsb al, byte [esi]
mov word [ecx], es
int 0x88
add ecx, dword [esp + ebp*4 - 0x735313fb]
or dword [ebp - 0x74], ecx
mov byte [eax + 0x77296188], cl
ja 0xf59275
add esp, dword [esp + ebp*4 - 0x735313fb]
or dword [edi - 0x64], ecx
mov byte [eax + 0x77a66188], cl
ja 0xf59287
fsub st(4), st(0)
ja 0xf591d1
mov byte [eax - 0x5a1f7778], cl
sbb edi, dword [0x1ededd88]
add edi, eax
mov ah, 0x1e
add ecx, dword [eax + edi*4]
mov al, byte [0x8b888888]
dec esi
ja 0xf59297
fsubr st(0), st(0)
in eax, dx
test al, 0xcd
out 0xe1, al
out dx, eax
in eax, 0xe9
test al, 0xd8
cli
out 0xfc, eax
cld
in eax, dx
jmp 0xf5923d
mov dl, 0xa8
loopne 0xf59273
cld
clc
sti
mov dl, 0xa7
cmpsd dword [esi], dword es:[edi]
in eax, dx
out 0xe1, al
out dx, eax
in eax, 0xe9
clc
cli
out 0xfc, eax
cld
in eax, dx
jmp 0xf59286
loope 0xf5927d
test al, 0xb2
test al, 0xfb
std
clc
clc
out 0xfa, eax
cld
enter 0xffffffffffffe6ed, 0xffffffffffffffe1
out dx, eax
in eax, 0xe9
clc
cli
out 0xfc, eax
cld
in eax, dx
jmp 0xf592ad