Function at 0x45ab23
Capabilities:
Encode data using xor

Disassembly:
sub esi, dword [edi + 0x5eab278e]
sbb byte [ebp + 0xf], cl
cmpsd dword [esi], dword es:[edi]
invalid
add dword [esi], 0xfffffff2
dec edx
mov ebp, dword [edi + 0x12]
outsd dx, dword [esi]
adc bh, ch
outsd dx, dword [esi]
adc bh, ch
xor eax, 0xe82b9ef6
add eax, ecx
pop edx
in eax, dx
push es
loop 0x45ab1e
mov bl, 0x69
imul esp, edx, 0xffffffc4
jg 0x45ab49
scasb al, byte es:[edi]
invalid
mov al, 0x98
lahf
jg 0x45ab7b
pushfd
das
mov eax, dword [0x810c121]
imul esi, dword [eax], 0xe75752fe
cld
xor dh, bh
push edx
push edi
out 0xfc, eax
mov byte [0xdf50b059], al
mov eax, 0x69735919
inc esp
ja 0x45ab75
sbb byte [edx - 0x55], dh
jb 0x45ab0a
mov bh, 0x16
cmp ch, ch
mov eax, dword [0x4a417be0]
cmp byte [esi], 0x53
fist word [esi]
mov edi, 0xbf6e46c9
call 0xad64c757
pop ds
lodsd eax, dword [esi]
ja 0x45abdd
jge 0x45ab5c
loopne 0x45ab85
or byte [eax], ah
or dword [esi + 0x4d0c8a7f], eax
and byte [ecx], cl
xchg byte [edi - 0x76], bh
or al, 0x4d
inc esi
mov ebx, edx
mov al, byte [0x6ec13bff]
nop
pop esp
mov dh, 0x5f
cmpsb byte [esi], byte es:[edi]
dec ebx
jge 0x45abdc
xor bh, bl
daa
pop eax
int1
in eax, dx
jno 0x45ab3c
push 0x1a7b5116
jnp 0x45abbb
inc ebp
xchg byte [edx], ch
dec edx
cdq
sub eax, 0x51cb5744
mov edx, 0x2cb1c533
salc
invalid
fistp dword [eax + 0x45]
pop eax
inc ebp
lcall 0x8a4, 0x6dd0533d
xchg ecx, eax
cmp dword [ebx + ecx*8 + 0x5b9314e7], ecx
mov ch, bh
js 0x45ab63
jp 0x45abbc
out 0x55, al
sub byte [esi], dl
cmp ah, al
pop esp
or dword [eax], edx
test al, 0x53
push ebx
sbb eax, 0x468fa84c
inc eax
dec edi
push 0xffffffffffffff85
sbb cl, dh
jns 0x45ab9f
sbb eax, 0xe97d52db
test byte [esi + 0xe], al
aas
aaa
leave
adc al, 0x10
imul edx, ebp, 0xf5a96d8d
mov ebx, esi
int1
pop es
xor al, 0xad
jnp 0x45ac3e
xchg dword [esi], esp
push ecx
pop edi
mov bh, 0xf5
dec ebx
fnstenv [eax]
adc dword [ecx], esi
rcl byte [edx], cl
sub eax, 0x91a44da1
in eax, 0x4e
jge 0x45ac83
jl 0x45abcf
dec esi
jae 0x45ac67
mov edi, eax
inc ebp
mov bl, 0x8e
test byte [edi], bl
or edi, dword [edx - 0x2d]
mov dword [0x85211538], eax
jae 0x45ac98
mov es, word [edi + ebx - 0x5c2c85f5]
cmp byte [0x66738521], dl
wait
add eax, 0x807f045a
in al, 0xc0
fdiv dword [edx + 0x14]
fisub word [ecx]
sbb eax, ecx
add eax, 0x5d64a5a0
and dword [ecx], ebx
enter 0xffffffffffffa005, 0xffffffffffffffa5
pop ebp
jecxz 0x45aca9
or esi, dword [esi + 0x6aa3c9cb]
enter 0xffffffffffffcaff, 0xffffffffffffffba
cmpsd dword [esi], dword es:[edi]
and ebp, dword [esi]
dec esp
popal
ret
fucompi st(5)
pop ecx
inc ecx
int 0xd2
stosd dword es:[edi], eax
lds esp, [eax]
arpl word [edi + 0x311d7e9], bp
sub esi, eax
add dword [edx + 0x76], ecx
invalid
pop ss
add byte [edx], dl
pushfd
push esp
mov ch, 0x38
in al, dx
pop ecx
movsd dword es:[edi], dword [esi]
jne 0x45ac25
test dword [eax], eax
or eax, 0xf6cd301
sbb dword [ecx - 0x4d], eax
mov edx, ebx
add esp, dword [edi + eax - 0x2d4e551a]
mov bl, 0x89
fiadd dword [ebx]
movsb byte es:[edi], byte [esi]
pop es
out 0xaa, al
mov cl, 0xd2
lcall 0x620, 0x41398076
add dword [edx + ebp*8 + 0x16e4ba4f], esp
mov cs, word [eax]
imul edi, ebx, 0xee4eb90e
mov esi, 0x3a1abb27
in al, dx
imul eax, dword [edx + 0x702cff4a], 0xa44a50eb
cmp edi, dword [eax + eax*8]
or dh, byte [ecx + 0x31ce2c3f]
xor edx, dword [edi + eax*8 - 0x3e85aa7c]
pop edi
out 0xc7, al
push 0x65
invalid