Function at 0x81d814
Capabilities:
Encode data using xor

Disassembly:
jmp 0x81d81e
pushal
call 0x81d824
pop ebp
sub ebp, 0x10
sub ebp, 0x41d814
jmp 0x81d83a
add byte [eax], al
pushfd
push eax
sub eax, 0x41d814b8
mov eax, 0x41d814
add eax, ebp
add eax, 0x4c
mov ecx, 0x61b
adc al, 0xd8
inc ecx
add byte [ebx], al
lds eax, [ecx + 0x4cc0]
add byte [ecx + 0x61b], bh
mov edx, 0xea042a5a
xor byte [eax], dl
inc eax
dec ecx
jne 0x81d851
jmp 0x81d864
add byte [eax], al
dec ebx
mov al, byte [0x97d126bc]
rcl ebx, 1
pop dx
rcl dword [edi + 0x5a66d3d1]
pop edx
pop edx
fistp dword [ebx + 0x5a5a5aa2]
pop ecx
xchg edi, eax
loop 0x81d8d3
pop edx
pop edx
pop edx
loopne 0x81d8ed
pop edx
pop edx
pop edx
lodsd eax, dword [esi]
mov eax, 0xdbd19259
push esi
pop edx
pop edx
pop edx
pop ecx
lahf
xlatb
jle 0x81d834
rcr dword [esi + 0x7e], cl
xlatb
jle 0x81d83b
rcr dword [esi + 0x7e], cl
xor bh, byte [esi + 0x26]
push esp
pop edx
xor ch, byte [edx + 0x5b5a6901]
jbe 0x81d923
xor bl, byte [ebx - 0x4d35866f]
pop edi
wait
xchg ecx, eax
jns 0x81d874
mov dl, 0x5f
pop edx
pop edx
pop edx
mov bl, 0x6e
pop edx
pop edx
pop edx
xlatb
jle 0x81d85e
sal dword [esi + 0x7e], cl
sal dword [esi + 0x5a52dfd1], 1
pop edx
pop edx
ror edi, 1
push esi
pop edx
pop edx
pop edx
rcl edi, 1
dec edx
pop edx
pop edx
pop edx
wait
mov bl, 0x58
imul ebx, dword [eax - 0x27], 0xffffff98
pop esi
adc edx, dword [ebp - 0x21]
pop eax
fstp dword [eax - 0x20aaeca2]
scasb al, byte es:[edi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sal dword [esi + 0x7e], 1
xlatb
jle 0x81d943
cwde
push esi
pop edx
rcl esi, 1
jle 0x81d94a
pop edx
pop edx
pop edx
xor bh, byte [esi + 0x26]
push esp
pop edx
xor ch, byte [edx + 0x5b5a6901]
jbe 0x81d97a
xlatb
jle 0x81d8a6
rcl dword [esi + 0x7e], cl
mov dl, 0x5f
pop edx
pop edx
pop edx
mov bl, 0xb
pop eax
pop edx
pop edx
psrlw mm6, qword [esi - 0x5aa9d05b]
das
push edx
mov dl, 0xde
pop edx
pop edx
pop edx
shl edi, 1
push edx
pop edx
pop edx
pop edx
fld xword [ebx + 0x73016235]
fld xword [ebx + 0x73016235]
imul edx, dword [ebx - 0x23505725], 0xa8db0ca8
scasd eax, dword es:[edi]
fsubr qword [eax - 0x267796f4]
mov dl, 0x5f
adc dl, byte [ebp - 0x22]
xor eax, 0xdb730162
stosd dword es:[edi], eax
xor eax, 0x69730162
xchg ebx, eax
fld xword [eax + 0xca8dcaf]
fld xword [eax + 0xca8dcaf]
imul ecx, dword [eax + 0x125fb2d9], 0x5a14de55
adc al, 0x5a
pop edx
pop edx
push ebp
rcl byte [edx], cl
pop edx
pop edx
pop edx
cmp al, 0xd1
inc esi
arpl dx, bx
mov eax, dword [0x40de55b2]
pop edx
pop edx
pop edx
fisub dword [ecx + 0x4bde55b3]
pop edx
pop edx
pop edx
cmp al, 0xdb
mov eax, dword [0xde557fa5]
dec edi
pop edx
pop edx
pop edx
sbb esi, dword [ebx - 0x5a5a5a6a]
jae 0x81d98c
arpl word [ebx - 0x27], bx
wait
pop edi
fnstenv [edx - 0x5a184ca2]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jae 0x81d993
arpl word [eax - 0x27], bx
wait
pop esp
fnstenv [eax + 0x5fb2d95e]
mov bl, 0xf1
movsd dword es:[edi], dword [esi]
pop esi
fnstenv [edx - 0x5a0e4ca1]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sal dword [esi + 0x7e], 1
xlatb
jle 0x81d9fa
cwde
push esi
pop edx
psrlw mm6, qword [esi - 0x2ef0f2f4]
das
push esi
shl dword [edi], 1
push edx
cmpsb byte [esi], byte es:[edi]
call 0xdbdeaa8b
pushfd
pop ebx
pop edx
pop edx
pop edx
rcr byte [ebp - 0x25], cl
popfd
pop ebx
pop edx
pop edx
pop edx
loope 0x81da18
pop edx
pop edx
pop edx
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
mov byte [ebp - 0x27], dl
and byte [ebp - 0x77a75a5b], 0x55
fistp word [edi + 0x5a]
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
mov byte [ebp - 0x27], dl
xor byte [edx + 0x5a], bl
pop edx
imul ebx, dword [edx - 0x20aa77a8], 0x5a5a5a5f
ror byte [esp + ebx + 0x48], 1
mov byte [ebp - 0x27], dl
jo 0x81da57
pop edx
pop edx
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
mov byte [ecx - 0x66], cl
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
dec eax
mov byte [ecx - 0x66], cl
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
mov byte [ecx - 0x66], cl
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
mov byte [ecx - 0x66], cl
push ebp
ficomp word [edx + ebx*2 + 0x5a]
pop edx
rol dword [ebp + 0x59d08271], 1
rcr byte [ebp + 0x1d], cl
loope 0x81daa3
pop edx
pop edx
pop edx
mov bl, 0x2a
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
loop 0x81dab0
pop edx
pop edx
pop edx
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
sbb al, 0x48
mov byte [ecx - 0x66], cl
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
mov byte [ebp - 0x28], dl
test byte [ebp - 0x668e5a5b], ah
loope 0x81dad9
pop edx
pop edx
pop edx
push ebp
fild qword [esi + 0x5a]
pop edx
pop edx
jecxz 0x81dae4
pop edx
pop edx
pop edx
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
mov byte [ecx - 0x6d], cl
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
mov byte [ebp - 0x28], dl
test byte [ebp - 0x2ef35a5b], ah
lodsd eax, dword [esi]
jno 0x81da62
test eax, 0x52b304fe
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
adc bl, byte [ebx + 0x5cd052ba]
sbb al, 0xd1
mov dl, 0xe3
pop ebx
pop edx
pop edx
pop edx
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
mov byte [ecx - 0x6d], cl
pop eax
mov byte [ebp - 0x21], dl
pop edi
pop edx
pop edx
pop edx
ror byte [esp + ebx + 0x48], 1
mov byte [ebp - 0x28], dl
test byte [ebp - 0x5d245a5b], ah
pop edx
daa
pop edx
pop edx
fild dword [ebx - 0x5a5a5a5b]
invalid