Function at 0x46a35d
Capabilities:
Encode data using xor

Disassembly:
int3
jl 0x46a350
mov eax, 0x68be89f0
fcom dword [eax - 0x2f]
mov dword [0x70eb760a], eax
pop ebx
sbb dword gs:[ebx + ebx*4], ebp
xchg edi, eax
aad 0xb3
push esp
fldcw word [edx - 0x3b4f8d49]
sal byte [eax - 0x74], 0x35
add eax, 0x77ba32d4
movsd dword es:[edi], dword [esi]
or ebx, dword [eax]
loopne 0x46a402
movsd dword es:[edi], dword [esi]
inc edi
sub al, 0xb5
jae 0x46a3a2
sub al, ah
sbb ebx, dword [edx]
xchg dword [ecx + esi], eax
pop es
xor dword [edi], eax
and bl, dl
dec ecx
loope 0x46a395
jb 0x46a3ff
sbb eax, 0x5ace92e0
xchg edx, eax
into
pop edx
pop ebp
cmp ah, byte [ecx + 0x10]
push esp
dec esp
or edi, esi
adc eax, dword [edx]
adc eax, 0xe4d1fade
add dl, byte [0xe4d1fade]
test al, 0x63
add dl, byte [esi - 0x6b1035af]
sub ebp, ebp
scasd eax, dword es:[edi]
popal
or ebp, dword [esi]
lodsd eax, dword [esi]
sbb al, byte [eax + 0x6a7f63cb]
cld
push ebx
adc edi, 0xffffff9a
nop
xchg edx, eax
pop dword [edi + 0xd]
in al, 0xf5
dec ecx
sbb ah, ah
lds esp, [ecx + 0x43]
cdq
imul edx, dword [edi], 0xffffffdb
scasd eax, dword es:[edi]
pop ds
cwde
into
xchg edi, eax
push ebp
mov byte [0x6b8e15dd], al
insb byte es:[edi], dx
push cs
push ecx
push cs
das
pop es
sahf
mov byte [ecx], dl
jle 0x46a412
retf
inc esp
jge 0x46a3d3
out dx, al
in eax, 0x42
cmp dword [eax - 0x1007e8], ecx
add al, 0xe5
pop ds
js 0x46a420
loop 0x46a3a0
lea esi, [ecx - 0x58]
jno 0x46a3bd
cmp al, 0x18
pop esp
imul esi, esi, 0x14
jg 0x46a3ac
les esp, [esi]
test byte [esi], 0x33
pop esi
sbb byte [edi - 0x1933878], 0x67
loop 0x46a467
push cs
xor ebx, dword [esi - 0x7e]
lahf
mov bh, al
insb byte es:[edi], dx
invalid
inc ebp
jp 0x46a3c8
js 0x46a490
sbb byte [esi], dh
inc ecx
mov byte [0x539999ea], al
cmpsd dword [esi], dword es:[edi]
fiadd word [edi + 0x1c53d062]
push esi
xchg edx, eax
fistp word [0x300535fe]
sub eax, dword [ecx + 0x2f3c3956]
sbb bh, byte cs:[eax + 0x64]
outsd dx, dword [esi]
loope 0x46a4a7
and bh, byte [eax - 0x449b0073]
xor dh, byte [eax - 0x36d6c609]
mov ah, 0xda
shr dword [0x675d2422], 1
and byte [ebp - 0x36], dl
and al, 0x5d
and byte [di - 0x36], dl
movsd dword es:[edi], dword [esi]
xor eax, 0xf4e4d8f1
arpl si, di
out 0x54, al
clc
out 0xdc, eax
pop edi
test dword [ebp + 0x14baf3f3], ebx
mov bl, 0x59
les edi, [edx]
mov edx, 0xc459b314
cmp al, 0xe2
jbe 0x46a47f
mov bl, byte [eax - 0x3a]
cwde
jg 0x46a4db
mov al, byte [0xe1990fb5]
setns cl
and ebp, dword [edi]
in al, 0x55
dec edi
cmpsb byte [esi], byte es:[edi]
hlt
invalid
sub ah, dh
cmpsd dword [esi], dword es:[edi]
into
loopne 0x46a55f
inc esi
xor ch, byte [edi]
stc
popal
jbe 0x46a547
or al, 0x86
push ds
stosd dword es:[edi], eax
adc byte [esi], bh
xlatb
ja 0x46a512
adc byte [edi + 0x776866aa], al
invalid
push esi
pop ebx
in eax, dx
pop esi
pushal
not byte [ebx + edx*4 + 0x2d]
test bl, bh
into
leave
mov al, byte [0x94691896]
mov edi, 0xfb0aaea4
out dx, eax
stc
push eax
dec eax
dec ebp
cdq
sub byte [edi - 0x20], al
xchg byte [ebp + 0x5b], bl
test eax, 0x79f81833
xchg esi, eax
push edi
inc eax
fcompi st(2)
lodsd eax, dword [esi]
call 0x9955e2bf
dec ebp
call 0xad5eaed2
cmp al, 0x67
sbb byte [eax], 0x65
mov ecx, 0x7785ada0
jecxz 0x46a507
push ds
mov ebx, 0xed3c2d5e
mov ebx, 0x9848af76
jae 0x46a595
add dword [eax], ecx
push esi
in eax, 0x7a
push 0x6e
jp 0x46a5cb
outsb dx, byte [esi]
mov eax, 0xeb7850c8
xchg edi, eax
cmp al, 0xdb
mov cl, 0x77
aam 0x82
enter 0xf3b, 0xffffffffffffffe0
xor dh, byte [edi - 0x3c]
jmp 0x46a597
and byte [ebp + esi*2 - 0x57459569], bl
leave
jne 0x46a530
push 0xffffffffffffffba
test al, 0xf2
leave
int3
or dword [ebp + 0x17cef0a1], 0x2a
test al, 0x52
jnp 0x46a56c
lahf
cld
cwde
mov byte [ebx], ah
sti
cwde
arpl word [ebx - 0x38], si
jnp 0x46a5f5
aam 0x23
ficomp word [edx]
mov edx, 0x58b0b63d
push 0x5d
fisubr word [edx - 0x1ee4af4a]
imul ebx, dword cs:[ecx - 0x37], 0xf544fad0
pop ecx
leave
sar dl, 1
inc esp
cmc
cmpsd dword [esi], dword es:[edi]
bnd jmp 0xb0417a25