Function at 0x58ec2a
Capabilities:
Encode data using xor

Disassembly:
add byte [edx], dl
test al, 0x95
push esi
add byte [ecx], al
add byte [0x756c6156], al
add al, byte gs:[eax]
add al, byte [eax]
add byte ss:[eax], ch
insb byte es:[edi], dx
insb byte es:[edi], dx
add byte [edi], al
dec ecx
outsb dx, byte [esi]
js 0x58ec98
add ax, word [eax]
pushfd
adc byte [eax], al
or byte [eax], al
add cl, byte [eax]
xor bh, ch
pop eax
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
adc ch, byte [eax + 0x1005695]
add byte [0x756c6156], al
add al, byte gs:[eax]
add al, byte [eax]
dec ebp
add byte [eax], ch
insb byte es:[edi], dx
insb byte es:[edi], dx
add byte [ebx], cl
dec ecx
outsb dx, byte [esi]
js 0x58ecce
dec cx
je 0x58ece8
insd dword es:[edi], dx
add eax, dword [eax]
pushfd
adc byte [eax], al
or byte [eax], al
add ecx, dword [eax]
xor bh, ch
pop eax
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
adc ch, byte [eax + 0x1005695]
add byte [0x756c6156], al
add al, byte gs:[eax]
add byte [edx + edx + 0x20041], cl
or dword [ecx + ebp*2 + 0x72], eax
arpl word gs:[ecx + ebp*2 + 0x6f], si
outsb dx, byte [esi]
add al, byte [eax]
add al, byte [eax]
cmp al, byte [eax]
sub byte [esp + ebp*2], ch
or ecx, dword [ecx + 0x73]
je 0x58ed14
outsb dx, byte [esi]
js 0x58ed1f
js 0x58ed1f
add ax, word [eax]
pushfd
adc byte [eax], al
or byte [eax], al
add cl, byte [eax]
xor bh, ch
pop eax
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
adc ch, byte [eax + 0x1005695]
add byte [0x756c6156], al
add al, byte gs:[eax]
add al, byte [eax]
daa
add byte [eax], ch
insb byte es:[edi], dx
insb byte es:[edi], dx
add byte [edi], al
push edx
jbe 0x58ed69
jb 0x58ed79
add eax, dword gs:[eax]
add byte [eax], al
add byte [eax], al
or byte [eax], al
add dword [eax], ecx
xor bh, ch
pop eax
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add al, byte [eax]
and al, 0
add byte [eax + eax], ah
sub byte [esp + ebp*2], ch
add al, 0x53
outsd dx, dword [esi]
jb 0x58ed9f
add eax, dword [eax]
add byte [eax], al
add byte [eax], al
or byte [eax], al
add dword [eax], ecx
xor bh, ch
pop eax
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add al, byte [eax]
aaa
add byte [eax], ch
insb byte es:[edi], dx
insb byte es:[edi], dx
add byte [ebx + edx*2], al
outsd dx, dword [esi]
jb 0x58edc3
add eax, dword [eax]
add byte [eax], al
add byte [eax], al
or byte [eax], al
add cl, byte [eax]
xor bh, ch
pop eax
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
or bl, byte [eax - 0x23]
pop eax
add byte [ecx], al
add byte [ecx], cl
inc ecx
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x58edd5
jb 0x58eddb
jb 0x58ed7a
add byte [edx], al
add al, byte [eax]
dec ecx
add byte [eax], ch
insb byte es:[edi], dx
insb byte es:[edi], dx
add byte [edx + eax*2], cl
add byte [ecx], cl
sub byte [esp + ebp*2], ch
or al, 0x42
imul ebp, dword [esi + 0x61], 0x65537972
popal
jb 0x58edf0
push 0x10000003
inc eax
add byte [eax], cl
add byte [ebx], al
or byte [eax], dh
out dx, eax
pop eax
add byte [eax], al
add byte [ebx + edx*2], al
push ebx
insb byte es:[edi], dx
add al, byte [eax]
adc ch, byte [eax + 0x1005695]
add byte [ecx + ecx*2], al
je 0x58ee15
insd dword es:[edi], dx
add al, byte [eax]
and byte [eax + edx + 0x20040], bl
add eax, 0x65646e49
js 0x58edc3
add byte [edx], al
add byte [eax + eax + 0x28], bl
insb byte es:[edi], dx
insb byte es:[edi], dx
add byte [edx + eax*2], cl
imul ebp, dword [esi + 0x61], 0x65537972
popal
jb 0x58ee39
arpl word [eax + 3], bp
add byte [eax], al
adc byte [eax], al
or al, 0
push 0x10000003
inc eax
add byte [eax + eax], cl
add al, 8
xor bh, ch
pop eax
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
adc ch, byte [eax + 0x1005695]
xchg ebp, eax
push esi
add byte [ecx], al
add byte [ecx + ecx*2], al
je 0x58ee5e
insd dword es:[edi], dx
add al, byte [eax]
and byte [eax + edx + 0x20040], bl
add eax, 0x65646e49
js 0x58ee0c
add byte [edx], cl
pop eax
fstp qword [eax]
or byte [eax], al
or dword [ecx + 0x43], eax
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x58ee7a
jb 0x58ee80
jb 0x58ee1f
add byte [edx], al
add byte [edx], ch
add byte [eax], ch
insb byte es:[edi], dx
insb byte es:[edi], dx
add byte [edx], cl
push esp
jb 0x58ee93
insd dword es:[edi], dx
inc ebp
js 0x58ee91
jae 0x58eea4
add eax, dword [eax]
add byte [eax], al
add byte [eax], al
or byte [eax], al
add dword [eax], ecx
xor bh, ch
pop eax
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add al, byte [eax]
xor al, byte [eax]
aam 0x29
pop eax
add byte [edi], al
push esp
outsd dx, dword [esi]
inc ecx
jb 0x58eec8
popal
jns 0x58ee5c
add byte [eax - 0x6a], bl
push esi
add byte [eax], cl
add byte [edx], al
or byte [eax], dh
out dx, eax
or byte [eax], al
add cl, byte [eax]
xor bh, ch
pop eax
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
inc eax
pop eax
xchg esi, eax
push esi
add byte [ecx], al
add byte [ecx], al
add dword [edx], eax
add byte [edx], al
add byte [0x6c6c2800], ch
add al, byte [eax]
sub eax, 0x6c6c2800
insb byte es:[edi], dx
add byte [0x45746547], cl
outsb dx, byte [esi]
jne 0x58eef7
jb 0x58eeee
je 0x58eefe
jb 0x58ee94
add byte [eax + 0x80058e1], ch
loope 0x58eeed
pop eax
add byte [eax], cl
add byte [ecx], al
or byte [eax], dh
out dx, eax
pop eax
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add al, byte [eax]
inc ecx
add byte [eax], ch
insb byte es:[edi], dx
insb byte es:[edi], dx
add byte [edi], al
inc edi
je 0x58eefd
je 0x58ef1b
insd dword es:[edi], dx
add eax, dword [eax]
test al, 0x95
push esi
add byte [eax], cl
add byte [ebx], al
or byte [eax], dh
out dx, eax
pop eax
add byte [eax], al
add byte [ebx + edx*2], al
push ebx
insb byte es:[edi], dx
add al, byte [eax]
add byte [eax + edx + 0x10040], bl
add eax, 0x65646e49
js 0x58eede
add byte [eax - 0x58], dl
xchg ebp, eax
test al, 0x95
push esi
add byte [edx], al
add byte [ecx], al
add dword [edx], eax
add byte [edx], al
add byte [ebp], al
sub byte [esp + ebp*2], ch
pop es
insb byte es:[edi], dx
insb byte es:[edi], dx
add byte [edi], al
push ebx
je 0x58ef3e
je 0x58ef5c
insd dword es:[edi], dx
add eax, dword [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], cl
add byte [ebx], al
or byte [eax], dh
out dx, eax
or byte [eax], al
add ecx, dword [eax]
xor bh, ch
pop eax
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add byte [eax + edx + 0x10040], bl
add eax, 0x65646e49
js 0x58ef1f
add byte [edx], dl
test al, 0x95
push esi
add byte [edx], al
add byte [0x756c6156], al
add al, byte gs:[eax]
add al, byte [eax]
add byte [edi + ebp*8], dh
pop eax
add byte [edi], al
pop edx
push esp
dec esp
imul esi, dword [ebx + 0x74], 0x7379533c
je 0x58efa6
jae 0x58efb4
insd dword es:[edi], dx
insd dword es:[edi], dx
inc edi
outsb dx, byte gs:[esi]
jb 0x58efb2
arpl word [ebx + 0x2e], si
inc ebx
outsd dx, dword [esi]
insb byte es:[edi], dx
insb byte es:[edi], dx
arpl word gs:[ecx + ebp*2 + 0x6f], si
outsb dx, byte [esi]
jae 0x58ef86
push esp
push eax
popal
imul esi, dword [edx + 0x3c], 0x616e6957
jo 0x58efcd
jb 0x58ef9a
push edi
imul ebp, dword [esi + 0x61], 0x572e6970
push edi
imul ebp, dword [esi + 0x64], 0x2e73776f
dec eax
push edi
dec esi
inc esp
sub al, 0x56
arpl word [esi + ebp + 0x54], bp
push 0x73656d65
push esp
inc ebx
push 0x43646c69
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x58effa
outsd dx, dword [esi]
insb byte es:[edi], dx
dec ecx
outsb dx, byte [esi]
outsw dx, word [esi]
invalid
sbb edx, dword [ebx + 0x79]
jae 0x58f013
insd dword es:[edi], dx
inc edi
outsb dx, byte gs:[esi]
jb 0x58f011
jb 0x58f011
arpl word [ebx + 0x2e], si
inc ebx
outsd dx, dword [esi]
insb byte es:[edi], dx
insb byte es:[edi], dx
arpl word gs:[ecx + ebp*2 + 0x6f], si
imul ebp, dword [edi + 0x6e], 0x5000073
add byte [edx], al
out dx, al
out dx, eax
outsb dx, byte [esi]
jae 0x58efb7
add byte [0xefee0200], al
pop eax
add byte [edx], al
add byte [edx], al
adc eax, esi
pop eax
add byte [edx], al
add byte [edx], al
xor eax, esi
pop eax
add byte [edx], al
add byte [edx], al
push eax
invalid
add al, byte [eax]
add dl, byte [eax - 0x10]
pop eax
add byte [edx], al
add byte [edx], al
jae 0x58efc9
pop eax
add byte [edx], al
add byte [edx], al
add byte [ecx], al
add byte [0x2b002a], al
add eax, 0x6d657449
jae 0x58efef
add byte [eax + edx + 0x27740040], bl
pushfd
adc byte [eax], al
je 0x58f01b
pop eax
add byte [edi + 0x10058], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax - 0x80000000], al
invalid
pushfd
adc byte [eax], al
or byte [eax], al
add bh, bh
test al, 0x27
inc eax
add byte [eax], cl
add byte [eax], al
jmp [eax + 0x1005827]
pop eax
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax + 0x4305ffff], al
outsd dx, dword [esi]
jne 0x58f09e
je 0x58efee
fcomp qword [eax]
pop eax
daa
pop eax
add byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax + 0x4c04ffff], al
imul esi, dword [ebx + 0x74], 0x58dd58
sbb al, 0
add bh, bh
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax - 0x80000000], al
invalid
push esp
dec esp
imul esi, dword [ebx + 0x74], 0x6c63563c
push esp
push 0x73656d65
push esp
inc ebx
push 0x43646c69
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x58f12c
outsd dx, dword [esi]
insb byte es:[edi], dx
dec ecx
outsb dx, byte [esi]
outsw dx, word [esi]
popal
jb 0x58f137
popal
jns 0x58f137
push sp
or al, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
sbb byte [ebx + 0x79], dl
jae 0x58f1b7
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], bl
push ebx
jns 0x58f1b5
je 0x58f1a9
insd dword es:[edi], dx
insd dword es:[edi], dx
inc edi
outsb dx, byte gs:[esi]
jb 0x58f1b5
arpl word [ebx + 0x2e], si
inc esp
popaw
jne 0x58f1c1
je 0x58f1ca
add dword [eax], eax
invalid
insd dword es:[edi], dx
add dword [eax], eax
invalid
int1
pop eax
add byte [edi], cl
push esp
dec esp
imul esi, dword [ebx + 0x74], 0x6c63563c
push esp
arpl word [esi + ebp + 0x54], bp
push 0x73656d65
push esp
inc ebx
push 0x43646c69
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x58f248
outsd dx, dword [esi]
insb byte es:[edi], dx
dec ecx
outsb dx, byte [esi]
outsw dx, word [esi]
push esp
inc ebp
insd dword es:[edi], dx
jo 0x58f257
jns 0x58f22b
jne 0x58f255
arpl ax, cx
inc eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebx], bl
push ebx
jns 0x58f274
je 0x58f268
insd dword es:[edi], dx
inc edi
outsb dx, byte gs:[esi]
jb 0x58f274
arpl word [ebx + 0x2e], si
inc ebx
outsd dx, dword [esi]
insb byte es:[edi], dx
insb byte es:[edi], dx
arpl word gs:[ecx + ebp*2 + 0x6f], si
je 0x58f27f
outsd dx, dword [esi]
outsb dx, byte [esi]
jae 0x58f21b
add bh, bh
inc dword [edx]
add byte [eax], al
js 0x58f214
invalid
pop eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebx + esi*8 + 0x58], dl
add byte [eax - 0x54ffa70e], al
pop eax
add byte [eax], al
add byte [eax], al
add cl, al
pop eax
add byte [eax], dl
add byte [eax], al
add al, ch
mov al, byte [0x850c0056]
inc eax
add byte [eax*4 - 0x785bffc0], dl
inc eax
call 0xc5948ed
test dword [eax], eax
adc al, 0x85
inc eax
add byte [edi + eax*4 - 0x7863ffc0], ah
inc eax
add byte [edi + eax*4 - 0x783fffc0], bh
inc eax
add ah, al
xchg dword [eax], eax
xchg dword [eax], eax
pushfd
xchg dword [eax], eax
mov esp, 0xc0004087
add byte [edi + eax*4 - 0x7843ffc0], bl
inc eax
add al, al
xchg dword [eax], eax
les eax, [edi - 0x7847ffc0]
inc eax
add ah, ah
mov eax, 0xe4004087
add dword [eax], 0
test byte [eax], al
xor al, 0x84
inc eax
add byte [eax], bh
sub eax, 0x2d780058
pop eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edx], al
add byte [eax], al
push 0x4005900
add byte [eax], al
add byte [0x73694c46], al
je 0x58f29a
add byte [eax], al
pushfd
adc byte [eax], al
or byte [eax], al
add byte [eax], al
push es
inc esi
dec ecx
outsb dx, byte [esi]
js 0x58f2ac
add byte [eax], al
add byte [edx], al
add cl, dh
pop eax
add byte [eax + eax - 0xc], al
jmp dword [esi]