Function at 0x46c544
Capabilities:
Encode data using xor

Disassembly:
bound eax, qword [ebp - 0x89b67eb]
insb byte es:[edi], dx
dec esp
cmpsb byte [esi], byte es:[edi]
imul esp, dword [0xc44a83e1], 0x4c
push edx
das
or esi, dword [esi]
dec esi
sbb al, 0x16
or bh, al
insd dword es:[edi], dx
push ss
xor eax, 0x151cd9d8
rep movsb byte es:[edi], byte [esi]
xlatb
aaa
fstp dword [edx + 0x37d7a4f3]
jg 0x46c5cf
xchg ebx, eax
push edx
pop edi
mov dword [edi - 0xbb7dff9], esp
xchg ebp, eax
adc eax, 0xd296d52
add dword [eax - 0x48e461f], ecx
mov bh, 0xd7
invalid
outsb dx, byte [esi]
pop ebx
adc eax, 0xc72f3f25
xchg bl, dl
cli
sbb eax, 0xe3d2a38e
mov al, byte [0xc4a74580]
mov dword [esi - 0x71e2052d], 0xa0e3d2a3
add byte [ebp - 0x59], 0xc4
out dx, eax
adc dword [ecx - 0xd], 0x1f
outsd dx, dword [esi]
or cl, byte [0x4f15ae77]
pop es
daa
je 0x46c561
pop ds
mov eax, 0x26a6a365
mov ah, 0x87
xchg esi, eax
push ecx
test esi, eax
rol byte [edi - 0x58465b29], cl
popal
imul esi, edx, 0x75
in eax, 0xd7
and byte [ecx + 0x57cf1423], dh
and edx, dword [edi + ecx*8]
push edi
mov ch, 0x7f
and dword [edx + 0x4c], ebx
rcl dword [ecx - 0x6d], 0x7e
loope 0x46c5c0
add byte [edx + 0x66f99784], 0xd1
mov ch, byte [ebp - 0x19]
jg 0x46c5ba
push eax
dec edx
outsd dx, dword [esi]
out 0x23, eax
jb 0x46c668
salc
std
mov bl, 0xd6
rcr dword [ebp - 0x2b436a3f], 1
push edx
leave
sal byte [ecx], cl
popfd
fimul word [ecx]
sbb al, 0xfd
les eax, [0x71c6f8e5]
sahf
popal
call [ebp + ebp + 0x5930928]
dec edi
aam 0xda
call dword [edi + 0x544ae7b6]
lcall 0x7fae, 0x4215c070
insd dword es:[edi], dx
ja 0x46c5f9
aaa
fidiv word [esi + 0x25]
movsd dword es:[edi], dword [esi]
call 0xfa4f1323
inc esi
pop edx
adc edx, dword [edi - 0x763836d1]
xor al, byte [ebp + 0x58]
in al, dx
fst st(7)
inc ebx
movsd dword es:[edi], dword [esi]
mov esi, 0x9366c7e7
add edx, dword [edi - 0xb]
xchg edx, eax
mov dword [0x44c6a4d7], eax
and byte [eax + 0x51911e72], 0x91
add esp, dword [ecx + 0x6d]
inc ecx
push ecx
add dword [edi + 0x689af687], edi
dec edi
out dx, eax
xchg ah, ah
xchg ebp, eax
add eax, 0x26325db6
xor byte [ecx + 0xa], bh
push ebp
clc
je 0x46c6b1
test ebp, edx
jae 0x46c668
lodsb al, byte [esi]
invalid
inc esi
sub al, 0x80
insb byte es:[edi], dx
push 4
jne 0x46c718
int 0xb5
push ds
or dh, bh
stosb byte es:[edi], al
retf
add esi, dword [ecx + ecx*2]
lds edx, [eax + 0x37]
add eax, 0x2df5db95
aam 0xd5
add ah, byte [esi - 0x3b99027a]
push esi
sti
sub esp, dword [ebp - 0x20bbf6ee]
dec ecx
sbb byte [ecx - 0x6b], 0xe2
and dword [esi], 0x6709b675
leave
test dword [edi + 0x22b8fae6], ebx
xchg esi, eax
les edx, [edi - 0x2b]
invalid
stc
imul edx, dword [edx], 0xffffff8e
sbb byte ss:[esi], al
xor byte [edx - 0x5e7d7e7a], dl
xor esi, eax
push ebp
rol dword [esi - 0x76], 0xc3
or eax, 0x36bd0009
imul eax, dword [esi], 0xffffff85
loop 0x46c6dc
pop es
rcl byte [edi + 0x22850f12], 0x74
inc eax
xor esp, dword [eax + edx*4 - 0x5b077a93]
std
xchg esi, eax
inc esi
cmpsd dword [esi], dword es:[edi]
mov eax, dword [0xef05bdd6]
out dx, eax
mov eax, dword [0x305784ff]
jb 0x46c7ac
jmp 0x7550bf2b
pop ss
lds esp, [ebp - 0x46b2408b]
jo 0x46c7dc
sub eax, 0x9973ac27
adc al, dh
ja 0x46c7c3
jno 0x46c74e
mov edi, 0xe5f4d3c4
and dword [edx - 0x286c5cd8], eax
sal esp, cl
in eax, 0x21
sub byte [eax], 0xa3
xchg ebx, eax
xlatb
invalid
inc edi
invalid