Function at 0x4681c9
Capabilities:
Encode data using xor

Disassembly:
cld
add byte [eax], al
add bh, al
add eax, 0xfc4cdd14
cld
add byte [eax], al
add bh, al
add eax, 0x4cdd14
std
add byte [eax], al
add bh, al
add eax, 0x44cdd14
std
add bh, al
add eax, 0x4cdc5c
add byte [eax], al
or ch, bh
add byte [eax], al
add bh, al
add byte [eax], al
or al, 0xfd
add byte [eax], al
cld
add eax, 0x4cd898
sbb ch, bh
add byte [eax], al
leave
add eax, 0x1c4cd344
std
add byte [eax], al
add bh, al
add eax, 0x204cdd14
std
add byte [eax], al
add bh, al
add eax, 0x244cdd14
std
add byte [eax], al
add bh, al
add eax, 0x284cdd14
std
add bh, al
add eax, 0x4cdc5c
add byte [eax], al
sub al, 0xfd
add byte [eax], al
add bh, al
add byte [eax], al
xor ch, bh
add byte [eax], al
xor byte [0x4ccd34], al
cmp al, 0xfd
add byte [eax], al
and dword [edi], edx
add eax, 0x404cd344
std
add byte [eax], al
add bh, al
add eax, 0x444cdd14
std
add byte [eax], al
add bh, al
add eax, 0x484cdd14
std
add bh, al
add eax, 0x4cdaa8
add byte [ebp + edi*8], cl
mov dword [0x4cdb60], 0xfd500000
add byte [eax], al
add byte [eax - 3], dl
add byte [eax], al
add bh, al
add byte [eax], al
push esp
std
add byte [eax], al
xor byte [0x4cdb20], al
pushal
std
add byte [eax], al
js 0x417d29
add eax, 0x644cdb90
std
add byte [eax], al
add bh, al
add eax, 0x684cdd14
std
add byte [eax], al
add bh, al
add eax, 0x6c4cdd14
std
add bh, al
add eax, 0x4cdb80
add byte [eax - 3], dh
add bh, al
add eax, 0x4cd968
add byte [eax], al
je 0x417d70
add byte [ebp + edi*8], dh
mov dword [0x78000080], 0xc0c700fd
add eax, 0x4cd5c8
test ch, bh
add bh, al
add eax, 0x78000080
std
add bh, al
rol byte [0x4cd5c8], 0x84
std
add bh, al
push es
sbb byte [0x884cd344], al
std
add byte [eax], al
add bh, al
add eax, 0x8c4cdd14
std
add byte [eax], al
add bh, al
add eax, 0x904cdd14
std
add bh, al
add eax, 0x4cdce8
add byte [ebp + edi*8 + 0x6805c700], dl
invalid
push ebp
mov ebp, esp
sub esp, 0x14
push edi
mov edi, ecx
push edx
dec edi
sbb al, 0x85
leave
je 0x417c7a
cmp ebx, dword [edi + 0x53f8558d]
push esi
push edx
add byte [edi], cl
push eax
or al, 0x8b
inc edi
sbb al, 0x8b
push ebp
clc
push edx
push eax
mov ecx, dword [eax]
movzx ebx, word [edx + 0x30]
mov esi, dword [edx + 0x28]
mov dword [ebp - 0x14], ebx
call dword [ecx + 0x4c]
cmp esi, 3
je 0x468278
cmp dword [edi + 4], 0
je 0x468278
test ebx, ebx
mov bh, 0x69
xor ebx, ebx
mov eax, dword [edi + 0x1c]
lea edx, [ebp - 0xc]
push edx
push ebx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x20]
test eax, eax
jne 0x468261
and dword [ebp - 4], eax
lea edx, [ebp - 4]
mov eax, dword [edi + 0x1c]
push edx
push dword [ebp - 0xc]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x38]
mov eax, dword [ebp - 4]
lea edx, [ebp - 0x10]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x10]
push edx
push eax
mov ecx, dword [eax]
mov esi, dword [edx + 0x28]
call dword [ecx + 0x4c]
cmp esi, 3
je 0x468269
call 0x8b977ea2
or bh, bh
push ecx
or byte [ebx + 0x3b], al
pop ebp
in al, dx
inc ebx
cmp ebx, dword [ebp - 0x14]
jb 0x468211
jmp 0x468278
mov eax, dword [edi + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 4]
mov dword [edi + 0x1c], eax
pop esi
pop ebx
pop edi
leave
ret