Function at 0x5017a8e8
Capabilities:
Encode data using xor

Disassembly:
push eax
pop es
or al, 0x54
push eax
jb 0x5017a95d
jb 0x5017a956
jae 0x5017a966
inc edx
popal
jb 0x5017a8e7
cmpsd dword [esi], dword es:[edi]
pop ss
push eax
and al, 0xa1
sbb al, 0x50
cmp al, byte [eax]
or byte [ebx + 0x6f], al
insd dword es:[edi], dx
inc ebx
je 0x5017a979
insb byte es:[edi], dx
jae 0x5017a936
add byte [esi + esi*2 + 0x5b501c], al
add bh, bh
shl ch, 1
sbb al, 0x50
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
sldt word [0x67696c41]
outsb dx, byte [esi]
xchg esp, eax
xchg dword [eax + edx*2], ebx
popal
add byte [eax], al
call [ebx]
sbb al, 0x50
push eax
cmp ah, ah
sbb al, 0x50
add byte [eax], al
add byte [eax + 3], al
adc byte [eax], al
pop es
inc ecx
outsb dx, byte [esi]
arpl word [eax + 0x6f], bp
jb 0x5017a9c0
xchg esp, eax
lcall 0xff00, 0x1b0501c
sbb al, 0x83
sbb eax, 0x150
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
sbb dword [0x150], 0
add byte [eax], al
add byte [eax], al
adc dword [eax], eax
or eax, dword [edx + 0x6f]
add byte [ebx], cl
inc edx
outsd dx, dword [esi]
jb 0x5017a9d0
jb 0x5017a9c6
imul esp, dword [esp + esi*2 + 0x68], sym.imp.rtl120.bpl___xp_7Boolean
push esp
add al, byte [eax]
jmp dword [eax]
add bh, bh
and byte [ebx + 0x1d], ch
push eax
les eax, [ebx + 0x501d]
add byte [eax - 0x80000000], al
adc al, byte [eax]
push cs
inc esp
outsd dx, dword [esi]
jne 0x5017a9f4
insb byte es:[edi], dx
inc edx
jne 0x5017a9fd
jb 0x5017aa00
fdiv qword fs:[ebp + 0x1c]
push eax
jp 0x5017a9a2
add bh, bh
jp 0x5017a9a6
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax - 0xc], al
adc eax, dword [eax]
or al, byte [edx + esi*2 + 0x61]
inc ebx
jne 0x5017aa30
jae 0x5017aa2f
jb 0x5017a946
xchg byte [eax + edx*2], bl
mov eax, dword [eax]
add bh, bh
mov eax, dword [eax]
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
dec dword [ebx + 0x1ff0000]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
adc al, 0
or byte [edx + esi*2 + 0x61], al
dec ebx
imul ebp, dword [esi + 0x64], 0x501c85fc
pushfd
in al, 0x1c
push eax
pushal
add byte [eax], al
inc byte [ecx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
adc eax, 0x72440800
popal
add byte [eax], cl
inc esp
jb 0x5017aa63
dec ebp
outsd dx, dword [esi]
inc esp
jl 0x5017aa2e
push eax
dec esp
add byte [eax], al
invalid
add byte [eax], al
add bh, bh
add byte [eax], 0
invalid
inc dword [eax + 0x38ff0000]
sbb eax, 0x501d
add byte [eax - 0x80000000], al
or byte [eax], al
add al, 0x48
imul ebp, dword [esi + 0x74], 0x501c8848
jo 0x5017aa4e
add bh, bh
in al, dx
and dword [0x150], ebx
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax + 0x430b0017], al
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
jae 0x5017aadc
je 0x5017aadb
jb 0x5017aacb
popal
imul ebp, dword [esi + 0x74], 0x247c3873
push eax
or byte [edi], ch
sbb dword [eax], edx
xor dword [ecx], ebx
push eax
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
sbb byte [eax], al
add ecx, dword [ebp + 0x69]
outsb dx, byte [esi]
cmp byte [esp + 0x50], bh
inc eax
das
sbb dword [eax + 0xc], edx
xor dword [ecx], ebx
push eax
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax + 0x64], al
sbb dword [eax], eax
add ecx, dword [ebp + 0x61]
js 0x5017aa67
cmpsb byte [esi], byte es:[edi]
pop ss
push eax
js 0x5017aab2
add bh, bh
xor bl, byte fs:[ecx]
push eax
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
sbb al, byte [eax]
or ecx, dword [edi + 0x72]
imul esp, dword [ebp + 0x6e], 0x69746174
popal
je 0x5017ab37
outsd dx, dword [esi]
outsb dx, byte [esi]
inc esp
jl 0x5017aaf7
push eax
out 1, al
add bh, bh
int3
inc byte [ecx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], 0
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax + 1], al
sbb eax, dword [eax]
adc al, 0x50
popal
jb 0x5017ab54
outsb dx, byte [esi]
je 0x5017ab36
outsd dx, dword [esi]
jne 0x5017ab57
insb byte es:[edi], dx
inc edx
inc edx
jne 0x5017ab60
jb 0x5017ab63
inc esp
jl 0x5017ab26
push eax
mov al, byte [eax]
add bh, bh
mov esp, 0x1501cf4
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], 0
add byte [eax], al
sbb al, 0
push cs
push eax
popal
jb 0x5017ab83
outsb dx, byte [esi]
je 0x5017ab74
push 0x6948776f
outsb dx, byte [esi]
je 0x5017ab71
neg dword [ebx]
push eax
jl 0x5017ab2e
add bh, bh
add al, 0xf3
sbb al, 0x50
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax - 0x80000000], al
sbb eax, 0x6f500900
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax + 0x5009001d], al
outsd dx, dword [esi]
jo 0x5017abbc
jo 0x5017ab96
outsb dx, byte gs:[esi]
jne 0x5017ab85
jl 0x5017ab73
push eax
js 0x5017ab81
sbb dword [eax - 0x78], edx
xor dword [ecx], ebx
mov byte [ecx], dh
sbb dword [eax + 1], edx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
push eax
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [esi], bl
push ds
add byte [eax], cl
push eax
outsd dx, dword [esi]
jae 0x5017abd4
je 0x5017abd6
outsd dx, dword [esi]
outsb dx, byte [esi]
inc esp
jl 0x5017ab96
and al, 0x50
push eax
jns 0x5017ab77
add al, byte [eax]
invalid
add bh, bh
js 0x5017abab
sbb dword [eax + 1], edx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
pop ds
add byte [esi], al
push ebx
insd dword es:[edi], dx
outsd dx, dword [esi]
outsd dx, dword [esi]
je 0x5017abf8
or byte [edi + 0x2805017], ah
add bh, bh
mov al, byte [0x1501932]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
and byte [eax], al
add eax, 0x6c797453
push ebx
je 0x5017ac27
insb byte es:[edi], dx
cmp byte gs:[esp + 0x50], bh
jl 0x5017abb8
add bh, bh
sbb al, 0x31
sbb dword [eax + 1], edx
add byte [eax], al
add byte [eax], al
add byte [eax], al
or byte [edx], 0
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax + 0xa], al
and dword [eax], eax
cmovge esp, dword [ecx + 0x72]
jno 0x5017ac45
dec ecx
outsb dx, byte [esi]
je 0x5017ac3b
jb 0x5017ac4e
popal
insb byte es:[edi], dx
and al, 0x3f
adc dl, byte [eax - 0x7c]
add al, byte [eax]
dec dword [eax + 0x33]
sbb dword [eax + 1], edx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], ah
and al, byte [eax]
or byte [edx + 0x61], al
jb 0x5017ac3c
inc ebx
outsd dx, dword [esi]
insb byte es:[edi], dx
outsd dx, dword [esi]
jb 0x5017ac22
aas
adc dl, byte [eax - 0x78]
add al, byte [eax]
call dword [eax + 0x1501933]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], ah
and eax, dword [eax]
cmovb esp, dword [ecx + 0x63]
imul esp, dword [edi + 0x72], 0x6f
jne 0x5017ac8f
inc ebx
inc ebx
outsd dx, dword [esi]
insb byte es:[edi], dx
outsd dx, dword [esi]
jb 0x5017ac6c
inc esp
jl 0x5017ac4e
push eax
jp 0x5017ac2f
add bh, bh
invalid
add byte [eax], al
add byte [eax], al
and al, 0
add byte [eax], al
add byte [eax + eax], ah
or eax, 0x6f6f6d53
outsd dx, dword [esi]
je 0x5017acb0
push edx
jbe 0x5017acb1
jb 0x5017acc1
cmp byte gs:[esp + 0x50], bh
je 0x5017ac57
add bh, bh
aam 0x31
sbb dword [eax + 1], edx
add byte [eax], al
add byte [eax], al
add byte [eax], al
or byte [edx], 0
add byte [eax], al
and eax, 0x74530400
push ebx
je 0x5017acd2
jo 0x5017acbb
jo 0x5017acbb
cmpsd dword [esi], dword es:[edi]
pop ss
push eax
mov word [edx], es
add bh, bh
fdiv dword [ebx]
sbb dword [eax + 1], edx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
add byte es:[0x74617453], al
inc esp
jl 0x5017acb5
push eax
mov dword [eax], eax
add bh, bh
cwde
hlt
je 0x5017ac6a
mov eax, 0xfc501c86
xchg byte [eax + edx*2], bl
cld
sbb dword [0x1d847c50], 0x50
add dword [eax], eax
add byte [eax], al
sbb eax, 0x150
add byte [eax], al
add byte [eax], al
cmp bh, 0xff
invalid
add byte [eax], al
add byte [eax - 1], al
sub byte [eax], al
or byte [ecx + 0x62], dl
dec edi
jb 0x5017ad36
jb 0x5017ad19
jl 0x5017acfb
push eax
loopne 0x5017acdb
add bh, bh
xchg esp, eax
test byte [0x150], bl
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
call dword [esp + eax*4 + 0x1501d]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], ch
add byte [edi], al
sub dword [eax], eax
pop es
push esp
popal
bound edx, qword [ebx + 0x74]
outsd dx, dword [esi]
jo 0x5017ad3b
jl 0x5017ad1d
push eax
push edi
add byte [eax], al
dec dword [eax - 0xe]
sbb al, 0x50
js 0x5017ad21
sbb eax, 0x50
add byte [ecx], 0
add byte [eax], al
sub al, byte [eax]
pop es
push esi
imul esi, dword [ebx + 0x69], 0x48656c62
xchg ebx, eax
sbb al, 0x50
and byte [ecx], al
add bh, bh
and byte [ecx], al
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax - 0x80000000], al
sub eax, dword [eax]
push cs
dec edi
add dword [eax], eax
jmp dword [eax]
add dword [eax], eax
inc dword [ecx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax + 0x4f0e002b], al
outsb dx, byte [esi]
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x5017ad9f
js 0x5017adb0
je 0x5017ad8d
push eax
outsd dx, dword [esi]
jo 0x5017adb5
jo 0x5017ad4e
mov ds, word [eax + edx*2]
fadd dword [eax]
add bh, bh
fadd dword [eax]
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax - 0x80000000], al
sub al, 0
or cl, byte [edi + 0x6e]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax + 0x4f0a002c], al
outsb dx, byte [esi]
inc esp
jb 0x5017adc2
inc esp
jb 0x5017add4
jo 0x5017aceb
lea ebx, [eax + edx*2]
loopne 0x5017ad6c
add bh, bh
loopne 0x5017ad70
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax - 0x80000000], al
sub eax, 0x6e4f0a00
inc esp
jb 0x5017ade7
dec edi
jbe 0x5017adef
jb 0x5017ad40
mov ds, word [eax + edx*2]
sbb al, 0x50
clc
add byte [eax], al
invalid
add byte [eax], al
add byte [eax + 0x4f09002e], al
outsb dx, byte [esi]
inc ebp
outsb dx, byte [esi]
inc esp
outsd dx, dword [esi]
arpl word [ebx - 0x4c], bp
mov ds, word [eax + edx*2]
or byte [ecx], al
add bh, bh
or byte [ecx], al
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax - 0x80000000], al
das
add byte [ecx], cl
dec edi
add byte [eax], 0
add byte [eax + 0x4f09002f], al
outsb dx, byte [esi]
inc ebp
outsb dx, byte [esi]
inc esp
jb 0x5017ae33
insb byte es:[di], dx
and dword [eax + edx*2], 0xff0001f8
clc
add dword [eax], eax
inc dword [ecx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], al
add byte [eax + 0x4f070030], al
outsb dx, byte [esi]
inc ebp
outsb dx, byte [esi]
je 0x5017ae59
jb 0x5017ae62
and dword [eax + edx*2], 0xff000200
add byte [edx], al
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax - 0x80000000], al
xor dword [eax], eax
push es
dec edi
outsb dx, byte [esi]
inc ebp
js 0x5017ae7e
je 0x5017ae5b
mov word [eax + edx*2], ds
sub byte [ecx], al
add bh, bh
sub byte [ecx], al
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax - 0x80000000], al
xor al, byte [eax]
cmovg ebp, dword [esi + 0x4d]
dec ebp
outsd dx, dword [esi]
jne 0x5017aeaa
inc ecx
arpl word [ecx + ebp*2 + 0x76], si
popal
je 0x5017aea5
push 0xc0501c8b
add byte [eax], al
mov ebx, dword [eax + edx*2]
rol byte [eax], 0
inc eax
add byte [eax], al
inc dword [ecx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax + 0x4f0b0033], al
add byte [ebx], cl
dec edi
outsb dx, byte [esi]
dec ebp
outsd dx, dword [esi]
jne 0x5017aed4
inc esp
inc esp
outsd dx, dword [esi]
ja 0x5017aed4
insb byte es:[edi], dx
and dword [eax + edx*2], 0xff000138
cmp byte [ecx], al
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax - 0x80000000], al
xor al, 0
or al, 0x4f
outsb dx, byte [esi]
dec ebp
outsd dx, dword [esi]
jne 0x5017aefa
inc ebp
outsb dx, byte [esi]
je 0x5017aef1
jb 0x5017aefa
and dword [eax + edx*2], 0xff000130
xor byte [ecx], al
add bh, bh
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax - 0x80000000], al
xor eax, 0x6e4f0c00
dec ebp
outsd dx, dword [esi]
jne 0x5017af21
dec esp
popal
jbe 0x5017af19
loopne 0x5017ae41
sbb al, 0x50
enter 0, 0xffffffffffffffff
enter 0, 0xffffffffffffffff
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax - 0x80000000], al
add byte ss:[ebx], cl
dec edi
outsb dx, byte [esi]
dec ebp
outsd dx, dword [esi]
jne 0x5017af48
jae 0x5017af3b
dec ebp
dec ebp
outsd dx, dword [esi]
jbe 0x5017af3f
push 0xd0501c8b
add byte [eax], al
call eax
add byte [eax], al
inc dword [ecx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax + 0x4f090037], al
outsb dx, byte [esi]
xor byte [edi], 0
or dword [edi + 0x6e], ecx
dec ebp
outsd dx, dword [esi]
jne 0x5017af6e
jae 0x5017af61
push ebp
push ebp
jo 0x5017af73
nop
sbb al, 0x50
lock add byte [eax], al
push eax
add byte [eax], al
inc dword [ecx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax + 0x4f0b0038], al
dec edi
outsb dx, byte [esi]
push ebx
je 0x5017af7f
jb sym.vcl120.bpl___xp_29Comctrls_TConsistentAttribute
cmp byte [ecx], 0
dec edi
outsb dx, byte [esi]
popal
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
dec esp
scasd eax, dword es:[edi]
pop ss
popal
je 0x5017afc4