Function at 0x456e82
Capabilities:
Encode data using xor

Disassembly:
jne 0x456ecf
aam 0xec
cmp ch, byte [ebp + 0x2d01ef35]
loopne 0x456ec6
xchg esi, eax
cld
dec esp
inc esp
push ebp
inc edi
movsd dword es:[edi], dword [esi]
dec ecx
mov bh, 0xb2
xchg ecx, eax
jecxz 0x456e5c
sbb esi, dword [esp + edi*8]
jmp 0x456f04
sbb ch, byte [edx - 0xc50e310]
inc ebp
outsd dx, dword [esi]
dec esi
cmpsb byte fs:[esi], byte es:[edi]
sub dword [esp + ecx*8 - 0x4ca5751], esi
test al, 0x5b
jmp ecx
mul dword [ebp - 0x72]
test esp, 0xb6abc448
cmp esp, dword [0x9aac75f5]
std
inc ebx
jl 0x456f4f
arpl cx, dx
jge 0x456e8c
aaa
jl 0x456f56
lea ebp, [eax + 0x6c]
insb byte es:[edi], dx
sbb dword [edi + esi*8 - 0x50aaf686], eax
xor dword [edi], ebp
stosb byte es:[edi], al
sub esp, esp
pop ebp
aad 0x34
jle 0x456ee7
cmpsd dword [esi], dword es:[edi]
test dword [edi - 0x31], esi
mov cl, 0xb1
cmp al, 0x19
mov eax, 0x540adaa
not byte [edi + 0x42]
fdivr dword [ebp + 0xa]
jne 0x456f00
xchg ebp, eax
mov edx, 0xa9b53a33
sal byte [ecx + edx*8 - 0x10346848], 1
into
jae 0x456ef8
mov al, 0xc5
std
mov edx, 0x3b395125
cdq
pop edx
cmp dword [ebx + 0x79247f63], esp
imul ebp, dword [edx], 0xa865bd51
mov bl, 0xc9
mov ebp, 0xc9b3a865
in eax, 0xdc
lodsb al, byte [esi]
test al, 0xc1
std
xchg ebx, eax
ja 0x456f11
xchg ebp, eax
inc edi
mov cl, bl
push cs
je 0x456f6d
push ebx
or dword [ecx + 0x3763676c], eax
jl 0x456f7e
in eax, dx
inc ebx
or eax, 0x8bc16ded
mov ch, 0x8a
pop ss
cmp dh, byte [0x2b4e1e9]
pushfd
fistp word [ecx + 0x4b535a31]
xchg ebp, eax
sub al, 0xa5
cmp bh, byte [ebp + 0xe0a63b2]
pop ebp
cwde
push ebx
inc esi
mov dword [0xeee0b7a4], eax
xor ch, 0xb4
or al, 0xf0
adc eax, dword [edx + ecx*2]
loope 0x456f91
mov ch, 0x79
movsd dword es:[edi], dword [esi]
pop eax
xchg esi, eax
pushfd
xor esp, dword [esi]
inc ebx
jl 0x456fbf
push cs
daa
push edi
mov esp, 0x88646d89
xor eax, 0xe5fa56b8
pop edi
push esp
cwde
insd dword es:[edi], dx
leave
mov esp, 0x744da38b
sbb al, 0xc6
mov esp, dword [ebx - 0x39e38bb3]
test eax, 0xbf110995
add byte [ecx - 0x573f55ab], dh
xor byte [ecx], 0xd2
call 0xe8f59999
mov eax, dword [0x91dffd20]
out dx, al
mov dword [eax], ebp
test al, 0x23
sbb al, 0x53
wait
jge 0x456f6f
mov al, 0x65
or byte [esi], ah
pushfd
jp 0x456fec
jbe 0x456f85
or eax, 0x4ca2943c
insd dword es:[edi], dx
sar ecx, 1
out dx, eax
mov ebp, 0x2cf09975
test esi, esi
jns 0x45701b
add dword gs:[ecx + 0x9c83e2b], edx
popfd
jae 0x457081
add al, 0x78
cmpsb byte [esi], byte es:[edi]
popal
mov byte [0x58e076bc], al
cmc
inc ebx
out dx, eax
pop es
fcmovnb st(0), st(0)
cdq
stosd dword es:[edi], eax
les eax, [eax + ebp*8]
sbb dword [ecx], edi
inc edx
adc eax, 0x6d49f887
sub bl, bh
push ebp
into
test eax, 0xb44c6ea7
sbb edi, ebx
mov ebx, 0x57959ae4
out dx, eax
mov eax, 0xfdfcabb9
aam 0xf8
and eax, 0x575a3d68
outsb dx, byte [esi]
fdivr dword [ecx]
xor eax, 0x6bda862c
inc ebp
iretd
stosd dword es:[edi], eax
pop ss
push 0x1e
pop esp
jecxz 0x4570f1
into
inc esi
mov eax, 0x12d52d62
jecxz 0x45709f
test esp, 0x19fc54c5
push 0xffffffffffffffc3
lea esi, [esp + ebp*4 - 0x2773793b]
push ebp
cmp cl, byte [ecx + 0x2c]
xchg byte [eax + ebx*8 + 0x2c493a55], cl
pop ds
out dx, al
add byte [edi], bl
outsd dx, dword [esi]
pop ds
or eax, 0xa218b5e8
das
xchg ebx, eax
cwde
mov cl, 0xc5
fdiv st(6), st(0)
scasb al, byte es:[edi]
mov dword [eax - 0x5d047318], esp
dec edx
xor byte [edx], bh
xor ch, byte [eax + 0x24]
or ebp, edx
cmp edi, dword [eax + 0x591070b3]
test al, 0x8f
pop ebx
cmpsd dword [esi], dword es:[edi]
leave
xchg ecx, eax
pop edx
inc eax
in al, dx
xchg ebx, eax
mov fs, ebx
xor bl, cl
fmul st(5), st(0)
add dword [eax + edi*8], 0x97093960
adc al, 0x39
adc eax, 0x6b84c23f
fnsave dword [edx + 0x26]
adc bh, ah
sub dword [esi - 0x6d], esp
xchg bx, ax
popfd
test byte [ecx], dh
clc
loopne 0x457123
jnp 0x457135
push ebx
iretd
mov bh, 3
mov byte [0x215a6ea2], al
lodsd eax, dword [esi]
sbb byte [esi], dh
dec eax
adc al, 0x20
in al, 0xd0
jae 0x4571aa
inc ebx
adc dword [ecx - 0x16327e51], 0x7f68d9dd
js 0x4571a9
dec eax
push es
cmp byte [eax + esi*2 + 0x54], al
pushal
cmpsd dword [esi], dword es:[edi]
dec ebp
imul ebx, esi, 0xb840edef
mov esi, 0x837ca328
js 0x45712b
or byte [edx], ch
js 0x4570db
xor ax, 0xd0b0
mov edx, 0x52322305
adc al, 0x6c
add eax, 0x14523223
insb byte es:[edi], dx
push ebp
push ebp
cli
inc ecx
js 0x45719b
and eax, 0x9519a778
mov ecx, 0x2cdd84c1
cdq
jmp 0x457160
xchg edi, eax
invalid
pop edx
cmpsb byte [esi], byte es:[edi]
sub al, 0x49
sbb al, 0x1a
xchg esp, eax
mov ah, 0xcd
mov bh, 0xdd
lcall 0xe49c, 0xe53644d0
mov byte [esi], al
mov edx, 0xf2f598ef
xor eax, 0x15770c04
popfd
in eax, 0x4e
mov byte [eax + edi*4], cl
das
imul ecx, dword [0xfe744c62], 0x89b4ece5
loopne 0x4571c8
sub byte [eax + edx*8 + 0x21f8737d], dl
mov ebp, 0x6c134d21
and eax, 0x73a77078
push ss
jns 0xd96dd9f3
mov ah, 0x49
mov al, al
push ebx
mov ebp, 0x834f6471
test ecx, ebp
ror esp, 1
cmpsb byte [esi], byte es:[edi]
lcall 0xec60, 0x18d55b68
insd dword es:[edi], dx
or byte [edx + ebx], dl
or eax, 0x603568a9
invalid