Function at 0x4582a0
Capabilities:
Encode data using xor

Disassembly:
jae 0x4582a2
scasb al, byte es:[edi]
add byte [eax], ah
add byte [ecx], ch
jae 0x4582aa
and byte [eax], al
popal
add byte [eax], ah
add byte [edx], dh
add byte gs:[edi], ah
imul eax, dword [eax], 0x740073
add byte gs:[edx], dh
add byte gs:[eax + eax + 0x20], ah
add byte [eax + eax + 0x72], dh
add byte [ecx], ah
add byte fs:[ebp], ah
insd dword es:[edi], dx
add byte [ecx], ah
jb 0x4582d6
imul eax, dword [eax], 0x20
add byte [edi], ch
add byte [eax], ah
add byte [ebp], cl
imul eax, dword [eax], 0x720063
outsd dx, dword [esi]
add byte [ebx], dh
outsd dx, dword [esi]
add byte [esi], ah
je 0x4582f2
and byte [eax], al
inc ebx
add byte [edi], ch
jb 0x4582fa
jo 0x4582fc
outsd dx, dword [esi]
add byte [edx], dh
popal
add byte [eax + eax + 0x69], dh
add byte [edi], ch
outsb dx, byte [esi]
add byte [esi], ch
add byte [eax], al
add byte [eax], al
add byte [edx], al
or eax, 0x4f000100
add byte [edx], dh
imul eax, dword [eax], 0x690067
outsb dx, byte [esi]
add byte [ecx], ah
insb byte es:[edi], dx
add byte [esi], al
imul eax, dword [eax], 0x65006c
outsb dx, byte [esi]
add byte [ecx], ah
insd dword es:[edi], dx
add byte [ebp], ah
add byte [eax], al
add byte fs:[edi], dh
je 0x45833e
jb 0x458340
imul eax, dword [eax], 0x320067
xor byte [eax], al
add byte cs:[ebp], ah
js 0x45834e
add byte gs:[eax], al
add byte [eax], al
add byte [edx + 0x1003100], al
add byte [eax], dl
jb 0x45835e
outsd dx, dword [esi]
add byte [eax + eax + 0x75], ah
add byte [ebx], ah
je 0x458368
dec esi
add byte [ecx], ah
insd dword es:[edi], dx
add byte [ebp], ah
add byte [eax], al
add byte [eax], al
push edi
add byte [ecx], ah
je 0x45837a
jae 0x45837c
outsd dx, dword [esi]
add byte [esi], ch
and byte [eax], al
push ebx
add byte [ebp], dh
bound eax, qword [eax]
jae 0x45838a
arpl word [eax], ax
jb 0x45838e
imul eax, dword [eax], 0x650062
jb 0x458396
and byte [eax], al
add byte [edi], ch
jb 0x45839e
and byte [eax], al
push ebx
add byte [ebp], al
dec esi
add byte [ebx], dl
and byte [eax], al
dec esi
add byte [ebp], ah
je 0x4583b0
ja 0x4583b2
outsd dx, dword [esi]
add byte [edx], dh
imul eax, dword [eax], 0x20
add byte [esi], cl
outsd dx, dword [esi]
add byte [eax + eax + 0x69], dh
add byte [esi], ah
imul eax, dword [eax], 0x610063
je 0x4583cc
imul eax, dword [eax], 0x6e006f
jae 0x4583d4
add byte [eax], al
add byte [eax], al
cmp byte [eax], al
or al, byte [eax]
add dword [eax], eax
push eax
add byte [edx], dh
outsd dx, dword [esi]
add byte [eax + eax + 0x75], ah
add byte [ebx], ah
je 0x4583ec
push esi
add byte [ebp], ah
jb 0x4583f2
jae 0x4583f4
imul eax, dword [eax], 0x6e006f
add byte [eax], al
xor dword [eax], eax
xor dword [eax], eax
add byte cs:[eax], dh
add byte [esi], ch
add byte [eax], bh
add byte [ecx], dh
add byte [esi], dh
add byte [eax], dh
add byte [eax], al
add byte [eax + eax], al
add byte [ecx], al
add byte [esi], dl
popal
add byte [edx], dh
inc esi
add byte [ecx], ch
insb byte es:[edi], dx
add byte [ebp], ah
dec ecx
add byte [esi], ch
add byte [edi], ch
add byte [eax], al
add byte [eax], al
and al, 0
add al, 0
add byte [eax], al
push esp
add byte [edx], dh
popal
add byte [esi], ch
jae 0x458440
insb byte es:[edi], dx
add byte [ecx], ah
je 0x458446
imul eax, dword [eax], 0x6e006f
add byte [eax], al
add byte [eax], al
add byte [eax], al
in al, 4
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
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
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
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
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
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
pushal
and eax, 0x2000000
add al, byte [eax]
xor byte [edx + 0x9065125], al
sub al, byte [esi + 0xdf78648]
add dword [edi], eax
add ah, byte [eax + 0x30422582]
and byte [0x101023e], 0x31
or esi, dword [eax]
or dword [esi], eax
add eax, 0x2030e2b
sbb al, byte [0x6683000]
or ch, byte [ebx]
push es
add dword [ecx + eax], eax
xor byte [edi], 2
add dword [eax], eax
pop edx
xor byte [eax + 0x30], bl
xor eax, dword [esi]
or ch, byte [ebx]
push es
add dword [ecx + eax], eax
add al, 1
xor byte [edi], 2
add dword [edi], ecx
xor byte [0xa0000103], ah
and byte [edx + 0x1c801e], ah
cmp al, 0
cmp al, 0
cmp al, 0
dec edi
add byte [edx], ah
jae 0x45853f
outsd dx, dword [esi]
add byte [eax + eax + 0x65], ch
add byte [eax + eax + 0x65], dh
add byte [esi], bh
add byte [esi], bh
add byte [esi], bh
xor byte [ecx], ah
xor byte [ecx], cl
push es
add eax, 0x2030e2b
sbb al, byte [0x99140400]
sub edx, dword [ecx - 0x71cef6ad]
mov dword [0xc55874bf], eax
fist dword [ecx]
cdq
jle 0x458558
movsd dword es:[edi], dword [esi]
clc
mov edi, 0xd2082a0
xor byte [edx - 0x7dcfedfc], al
add bh, dl
mov al, byte [0x2010203]
add cl, byte [edi]
add cl, al
add byte [ebx + 0x11883c3c], cl
sar dword [esi], 1
mul byte [ebx - 0x14]
fild word [eax + 0x30]
or eax, 0x862a0906
dec eax
xchg bh, dh
or eax, 0x5040101
add byte [eax], dh
jo 0x4585d6
sub esi, dword [eax]
sub dword [esi], eax
add edx, dword [ebp + 4]
or edx, dword [ebx]
and al, byte [ebx + 0x6f]
jo 0x45862c
jb 0x45861e
push 0x63282074
sub dword [eax], esp
xor dword [ecx], edi
cmp dword [edi], esi
and byte [ebp + 0x69], cl
arpl word [edx + 0x6f], si
jae 0x458638
je 0x4585ec
inc ebx
outsd dx, dword [esi]
jb 0x458640
xor dword cs:[esi], ebx
xor byte [esi + eax], bl
add edx, dword [ebp + 4]
or edx, dword [ebx]
adc eax, 0x7263694d
outsd dx, dword [esi]
jae 0x458652
je 0x458606
inc ebx
outsd dx, dword [esi]
jb 0x45865a
outsd dx, dword [esi]
jb 0x45864e
popal
je 0x458658
outsd dx, dword [esi]
outsb dx, byte [esi]
xor dword [ecx], esp
xor byte [edi], bl
push es
add edx, dword [ebp + 4]
add edx, dword [ebx]
sbb byte [ebp + 0x69], cl
arpl word [edx + 0x6f], si
jae 0x458672
je 0x458626
push edx
outsd dx, dword [esi]
outsd dx, dword [esi]
je 0x45862b
inc ecx
jne 0x458682
push 0x7469726f
jns 0x458645
push ds
pop ss
or eax, 0x31303739
xor dword [eax], esi
xor byte [edi], dh
xor byte [eax], dh
xor byte [eax], dh
pop edx
pop ss
or eax, 0x32313032
xor esi, dword [ecx]
xor byte [edi], dh
xor dword [eax], esi
aaa
xor byte [eax], dh
xor byte [eax], dh
pop edx
xor byte [eax + 0x31], dh
sub esi, dword [eax]
sub dword [esi], eax
xor byte [ecx], ch
push es
add edx, dword [ebp + 4]
or edx, dword [ebx]
and al, byte [ebx + 0x6f]
jo 0x4586be
jb fcn.004586b0
push 0x63282074
sub dword [eax], esp
xor dword [ecx], edi
cmp dword [edi], esi
and byte [ecx], dh
cmp dword [ecx], edi
aaa
and byte [ebp + 0x69], cl
arpl word [edx + 0x6f], si
outsd dx, dword [esi]
jae 0x4586ca
outsd dx, dword [esi]
je 0x45867e
inc ebx
outsd dx, dword [esi]
jb 0x4586d2
xor dword cs:[esi], ebx
xor byte [esi + eax], bl
add edx, dword [ebp + 4]
or edx, dword [ebx]
adc eax, 0x7263694d
outsd dx, dword [esi]
jae 0x4586e4
je 0x458698
inc ebx
outsd dx, dword [esi]
jb 0x4586ec
outsd dx, dword [esi]
jb 0x4586e0
popal
je 0x4586ea
outsd dx, dword [esi]
outsb dx, byte [esi]
xor dword [ecx], esp
xor byte [edi], bl
push es
add edx, dword [ebp + 4]
add edx, dword [ebx]
sbb byte [ebp + 0x69], cl
arpl word [edx + 0x6f], si
jae 0x458704
je 0x4586b8
push edx
outsd dx, dword [esi]
outsd dx, dword [esi]
je 0x4586bd
inc ecx
jne 0x458714
push 0x7469726f
jns 0x4586d7
add byte [ecx], 0x22
xor byte [0x862a0906], cl
xor byte [edx - 0x7dfdf5ff], al
add dword [ecx], eax
add byte [ecx + 0x70c1bd02], ch
out 0x3b, al
sal dword [eax - 0x1a], 0x3b
ljmp 0xf85f:0x258da9a2
dec esp
mov dword [0xa29dfeb7], eax
and byte [esi], bh
jl 0x45873b
popfd
mov byte [0x517c3e20], al
mov byte [0x608fa29b], al
xor ch, byte [ebx - 0x2f]
inc edx
jns 0x4586e4
mov byte [0x6b32608f], al
rol dword [edx + 0x64], 1
jns 0x4586e4
lodsb al, byte [esi]
jbe 0x4586c2
push esp
invalid
mov bl, 0xc5
imul edi, dword [edx + 0x62], 0x23
salc
sbb eax, 0x10fde3c
xchg edx, eax
call 0x2e054bac
lcall 0x9926, 0x689a
sar byte [edx], 1
mov edi, 0x9a9a662d
push 0x3ad09926
sub al, 0xbf
or al, 0xb5
pop eax
rol dword es:[esi - 0x19], 0xa
cmp byte ds:[esi + 0x3928a92c], dl
test al, 0xec
dec ecx
add dword [edx - 0x1d], 0xffffff84
popal
lodsb al, byte [esi]