Function at 0x4667fb
Capabilities:
Encode data using xor

Disassembly:
add byte [ebx + 0x8458bec], cl
mov ecx, dword [eax]
add byte [eax], al
test ecx, ecx
je 0x46680e
mov eax, dword [eax]
add bl, ch
add dh, byte [ebx]
rcr byte [ebp - 0x3d], 0x90
add byte [eax], al
add byte [eax], al
add eax, dword [eax]
xor dh, dh
add byte [eax], al
add byte [eax], al
mov bh, 0
add byte [eax], al
add byte [eax], al
push esp
add byte [eax], al
add byte [eax], al
cdq
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
pop es
add byte [eax], al
dec ebp
add byte [0x30097], al
pop eax
add byte [eax], al
add byte [esi + 0x74], ch
jb 0x4668b8
xor eax, eax
pop ebp
ret
insb byte es:[edi], dx
cmp al, 0
cmp dl, byte [ebx + eax*2 + 0x6f]
outsb dx, byte [esi]
je 0x4668c5
add byte [eax], al
add byte [eax], al
pop esp
dec edx
inc eax
test eax, 0
add eax, dword [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax + eax], dh
xor al, 0x40
add byte [eax + eax], al
inc eax
add byte [ecx + eax], bl
ja 0x46687c
add byte [eax], al
add byte [eax + eax], al
add byte [eax], al
add byte [eax], al
xor byte [eax], al
invalid
insb byte es:[edi], dx
add byte gs:[ecx + 0x49], ch
outsb dx, byte [esi]
je 0x466926
jb 0x466929
add byte [eax], al
cmp al, 0x43
outsd dx, dword [esi]
outsb dx, byte [esi]
mov ah, 0
outsd dx, dword [esi]
insb byte es:[edi], dx
jae 0x46690a
cmp cl, byte [ecx + 0x44]
add byte [eax], al
imul ecx, dword [ebp + 0x61], 0x6e
popal
jl 0x4668dc
jb 0x46691c
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
xor al, byte [eax]
push esi
mov esi, edx
mov ebx, eax
test ebx, ebx
add byte [eax], al
mov eax, dword [ebx]
test eax, eax
je 0x4668e4
add byte [ebx + 0x852ff10], cl
xor ecx, ecx
add byte [eax], al
test esi, 0x42000001
add bh, dh
mov byte [ecx], 0
add byte [edx], al
pop es
inc edx
add byte [edi], al
push ebx
call 0xace053
add byte [eax], al
pop ebx
ret
add byte [eax], dh
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax + eax + 0x54], al
push esp
cdq
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 al, 0
add byte [ebp], cl
add byte [eax], al
add al, ch
xchg ecx, eax
lea eax, [eax]
add byte [eax], al
pop eax
add byte [ebx + 0x6c], al
popal
cmp al, 0
jae 0x466989
cmp dl, byte [ebx + eax*2 + 0x6f]
add byte [eax], al
outsd dx, dword [esi]
outsb dx, byte [esi]
outsb dx, byte gs:[esi]
je 0x466904
add byte [edx + 0x40], cl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
xor al, 0
add byte [eax], al
add byte [eax + 0x34], bh
inc eax
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
ja 0x46697c
add byte [eax], al
add byte [ebx], al
add byte [eax], dh
add byte [eax], al
add byte [eax], al
add byte [edi + 0x390000], dh
add byte [eax], bl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebx], ch
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [eax], al
add byte [ebp + 0x5c000300], cl
add byte [ecx], bh
add byte [eax], al
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
imul eax, dword [eax], 0
add byte [eax], al
add al, byte [eax]
add byte [eax], al
add byte [eax], al
lea eax, [eax]
add eax, dword [eax]
pop esp
cmp eax, dword [eax]
insb byte es:[edi], dx
popal
jae 0x466a23
jae 0x4669ed
add byte [eax], al
push eax
jb 0x466a2c
imul esp, dword [esi], 0x746e65
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add al, 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
add byte [eax], al
add byte [eax], al
add eax, dword [eax]
xor byte [eax], al
add byte [eax], al
add byte [eax], al
mov bl, 0
add byte [edx], dh
add byte [eax], al
inc esp
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
jecxz 0x4669fc
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax], al
add byte [edi + 0x48000300], cl
inc edx
add byte [ecx + 0x73], bh
jns 0x466a81
je 0x466a75
insd dword es:[edi], dx
cmp bh, byte [edx]
add byte [eax], al
bound ebp, qword [edx + 0x65]
arpl word [esi + esi*8], si
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebp - 0x75], dl
in al, dx
add byte [eax], al
add byte [eax], al
push ebp
mov ebp, esp
sbb al, byte [eax]
invalid
or dword [eax], eax
pop ecx
inc dword [ebp - 0x71]
add ah, dh
mov cl, 0xc8
add al, ch
loop 0x466a0c
add byte [eax], al
pop ecx
inc dword [ebp - 8]
mov ebp, dword [eax + eax + 0x64]
mov dword [0], edx
add byte [eax], al
pop ebp
ret