Function at 0x4014f7
Capabilities:
Encode data using xor

Disassembly:
add byte [eax], dh
add byte [edx], dh
add byte [ecx], dh
add byte [eax + eax], dh
add byte [eax], al
xor byte [ecx + 0x2b0a0688], al
push es
add dword [ecx + eax], eax
xor byte [edi], 0xc
add al, byte [ecx]
add al, 0x7a
xor byte [eax + 0x1e], bh
or al, byte [eax]
dec eax
add byte [edi], dl
dec ecx
add byte [eax + eax + 0x31], al
add al, byte [eax + edx]
add dword [eax], eax
add dword [esp], eax
push 0x61006400
add byte [ebp], dh
add byte fs:[ecx], ch
outsd dx, dword [esi]
add byte [eax + eax + 0x66], bl
add byte [ebp], dh
outsb dx, byte [esi]
add byte [ebx], ah
pop edi
add byte [eax], dh
add byte [ecx], dh
add byte [esi], ah
add byte [esi], dh
add byte gs:[esi], ch
pop edi
add byte [ecx], dh
add byte [ecx], dh
add byte [eax + eax + 0x34], ah
add byte [esi], ah
add byte [eax + eax + 0x65], ah
add byte [esi], dh
pop edi
add byte [ecx], dh
add byte [ecx], bh
add byte [eax], bh
add byte [eax + eax], dh
add byte es:[ebx], dh
jne 0x401571
bound eax, qword [eax]
jae 0x401575
jns 0x401577
jae 0x401579
pop edi
add byte [ecx], dh
add byte [eax], dh
add byte [edx], dh
add byte [eax], bh
add byte [eax], dh
add byte [edx], dh
add byte [ecx], dh
add byte [ecx], dh
add byte [eax], al
add byte [eax + 0x30d41f82], ah
add byte [edx + edx], 0x30
add byte [edx], 0xfa
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 0x4015f2
sub esi, dword [eax]
sub dword [esi], eax
add edx, dword [ebp + 4]
or edx, dword [ebx]
and al, byte [ebx + 0x6f]
jo 0x401648
jb 0x40163a
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 0x401654
je 0x401608
inc ebx
outsd dx, dword [esi]
jb 0x40165c
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 0x40166e
je 0x401622
inc ebx
outsd dx, dword [esi]
jb 0x401676
outsd dx, dword [esi]
jb 0x40166a
popal
je 0x401674
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 0x40168e
je 0x401642
push edx
outsd dx, dword [esi]
outsd dx, dword [esi]
je 0x401647
inc ecx
jne 0x40169e
push 0x7469726f
jns 0x401661
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 0x4016da
jb 0x4016cc
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 0x4016e6
outsd dx, dword [esi]
je 0x40169a
inc ebx
outsd dx, dword [esi]
jb 0x4016ee
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 0x401700
je 0x4016b4
inc ebx
outsd dx, dword [esi]
jb 0x401708
outsd dx, dword [esi]
jb 0x4016fc
popal
je 0x401706
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 0x401720
je 0x4016d4
push edx
outsd dx, dword [esi]
outsd dx, dword [esi]
je 0x4016d9
inc ecx
jne 0x401730
push 0x7469726f
jns 0x4016f3
add byte [ecx], 0x22
xor byte [0x862a0906], cl
dec eax
xchg bh, dh
or eax, 0x5010101
add byte [ebx], al
add byte [ecx], 0xf
add byte [eax], dh
add byte [ecx], 0xa
xor byte [edx - 0x7dfdf5ff], al
add dword [ecx], eax
add byte [ecx + 0x70c1bd02], ch
out 0x3b, al
add al, byte [edx - 0x56fffeff]
add bh, byte [ebp + 0x3be670c1]
sal dword [eax - 0x1a], 0x3b
dec esi
sbb ebp, dword [eax]
lahf
xchg edi, eax
js 0x401750
xor dl, ch
mov byte [0x5f258da9], al
clc
invalid
ljmp 0xf85f:0x258da9a2
dec esp
mov dword [0xa29dfeb7], eax
and byte [esi], bh
jl 0x401757
popfd
mov byte [0x517c3e20], al
mov byte [0x608fa29b], al
xor ch, byte [ebx - 0x2f]
inc edx
jns 0x401700
mov byte [0x6b32608f], al
rol dword [edx + 0x64], 1
jns 0x401700
lodsb al, byte [esi]
jbe 0x4016de
push esp
invalid
mov bl, 0xc5
imul edi, dword [edx + 0x62], 0x23
salc
sbb eax, 0x10fde3c
xchg edx, eax
call 0x2dffdbc8
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
jecxz 0x4016d6
btc dword [edx - 0x539eaa94], ebx
popal
lodsb al, byte [esi]
cmp byte [ecx + 0x60], 0x2d
ja 0x4017ac
jmp 0x3ba4cbfe
cmp al, 0x56
call [ebx - 5]
movsb byte es:[edi], byte [esi]
or cl, byte [eax]
cmpsb byte [esi], byte es:[edi]
rol byte [ecx - 0x4910a8aa], cl
cmp ebx, dword [esi + 0x16]
xor dword [edi + 4], 0xaebef6da
adc byte [ebp + 0x7fcdb0fe], 0xd6
cmpsd dword [esi], dword es:[edi]
sbb dh, byte [edx + 0x5c]
cmp al, 0xca
mov esp, 0x22a308f0
xor byte [ebx - 0x4c367afa], dh
and byte [edi + 0x13], dh
test edi, ebx
add al, byte [ebx]
add dword [eax], eax
add dword [ebx - 0x7ecf577f], esp
movsd dword es:[edi], dword [esi]
xor byte [ecx + 0x550306a2], al
sbb eax, 0x9a810401
xor byte [ecx + 0x5b108097], al
sal byte [eax - 0x11], 1
imul esi, dword [edx - 0x62], 0x147e5123
mov dl, 0x4d
invalid