Function at 0x512e84
Capabilities:
Encode data using xor

Disassembly:
dec eax
inc esp
outsd dx, dword [esi]
mov esp, 0x50b64998
inc ecx
cli
fcomi st(4)
lea eax, [0xf480e56e]
call dword [ebp + 0x42]
wait
adc ah, 0x72
add byte [edx - 0x7d5bdd2a], 0x30
push edx
iretd
xchg dword [ecx + 0x70e159c1], ebx
adc dl, byte [edi - 0x3d9f7bf7]
fidivr dword [ecx + 0x10]
add cl, byte [esi - 0x5c]
inc ebp
in eax, 0xac
test byte [eax + ebp - 0x12], ch
test al, 0x40
je 0x512ced
inc esp
jo 0x512d98
push eax
cmpsb byte [esi], byte es:[edi]
dec ecx
mov ah, 0xf0
or byte [ebp + 0x14], cl
and al, 0x77
lodsd eax, dword [esi]
ja 0x512cec
movsb byte es:[edi], byte [esi]
aad 0x25
sub ah, byte [0xf528d79d]
adc byte [eax], dl
cmp byte [eax + 0x7a], ah
mov eax, 0xfaa0745c
dec esp
and ah, dh
pop edx
bnd ret 0xd0f3
mov ebp, 0x597d0265
movsb byte es:[edi], byte [esi]
cmpsb byte [esi], byte es:[edi]
js 0x512d14
nop
arpl word [ebx + 0x24cd418f], dx
adc edx, dword [eax]
rcl dword [0xbccf1ea0], 0x24
pushfd
mov ebp, dword [ebx]
loop 0x512d3d
int3
cmpsb byte [esi], byte es:[edi]
jl 0x512da9
ljmp 0xffcc:0x4351b7c0
ljmp 0x835a:0x623b903e
lsl ecx, word [edi]
xor dword [ebp + 0x1f50aa57], esp
popal
mov edx, 0x46c805f3
jo 0x512dbf
jecxz 0x512d6a
sal edx, cl
out dx, eax
aad 0xa4
pop edx
push ds
insd dword es:[edi], dx
out 0xe2, al
sub bh, byte [ebx]
push edx
mov dword [0x7e4d97ae], eax
pop edx
xchg edi, eax
cmp edi, dword [eax + 0x3c5638c8]
inc esi
nop
cmp bl, byte [eax - 0xcb2ec53]
dec edx
invalid
push ebp
jle 0x512def
out 0xc7, al
salc
xchg ecx, eax
sub byte [eax], 0x92
sub byte [edx - 0x3dffad6f], dl
xchg edx, eax
xchg ecx, eax
push edx
add dl, al
ret 0x96a5
movsd dword es:[edi], dword [esi]
xchg esi, eax
and dword [edi - 0xe], edx
fidiv dword es:[ebp - 0x5e76719a]
rcl ch, cl
cdq
stc
jecxz 0x512d8a
paddw mm2, qword [edi + 7]
inc esp
sti
xor cl, al
and dl, byte [esi]
mov ch, ah
scasb al, byte es:[edi]
jno 0x512de2
jns 0x512e85
aam 0xfe
inc eax
mov al, 0x81
mov esp, 0xcc70ba19
dec edx
mov dl, 0x83
fadd dword [ebx]
fisubr word [ebp + 0x3f707dda]
invalid
lahf
xchg esi, eax
mov ch, 0xab
xchg ecx, eax
push 0xffffffffffffffc1
js 0x512deb
loope 0x512dea
aad 0xe1
cmp al, 0x10
xchg esp, eax
pop es
mov ebx, 0xb0355840
cmpsd dword [esi], dword es:[edi]
bound ebx, qword [edi - 0xb]
sbb eax, 0x169a6e90
loopne 0x512ec2
jne 0x512e99
mov word [ecx + 0x77], gs
aas
rcl byte [edi + 0x66c89645], 8
add ah, byte [esi]
scasd eax, dword es:[edi]
xchg ebx, eax
hlt
or dl, bl
xchg esi, eax
adc al, 0x6c
loope 0x512ef0
ficom dword [esi + 0x65e16c14]
xchg byte [eax + 0x45], dl
mov al, 0x64
jb 0x512eb3
mov dh, 0xf5
xchg byte [0x14ce8861], dl
shr ebp, cl
mov dh, cl
adc al, 0x3e
shr ebp, cl
retf
out dx, al
xor eax, 0x5f349237
xor al, 0x23
aaa
ror ch, 1
shl dword [esi + ecx*8 + 0x71], cl
nop
loopne 0x512e4d
loope 0x512f27
test byte [esi + 0x46729a7d], cl
movsb byte es:[edi], byte [esi]
jp 0x512f2a
lcall 0x875a, 0x7aa44672
push ebp
invalid
xchg dword [ebp - 0x10], edx
xor ebx, ecx
xor al, 0x5b
jb 0x512eca
jmp 0x8218dde8
and edi, edx
xchg ecx, eax
mov dword [ecx + ebx], esp
xor byte [esi], 0xe9
sal eax, 6
cmp dword [0xfe9a574e], eax
mov al, 0x31
imul edx, dword [ecx - 0x2efec60], 0xfffffff7
mov byte [0xcf7a3c32], al
invalid
adc ch, bh
mul dword [edx - 0x3085c3ce]
inc eax
sub esp, dword [ebx + 0x6c4f7915]
xor eax, 0x64e1aaa1
std
fmul dword [edx - 0x42d46002]
inc ecx
inc ecx
push esp
mov cl, 0x2d
into
salc
push eax
out 0, al
sbb dword [ecx + 0x78de280a], esi
aam 0xbb
lea esp, [eax - 0x5c7608c]
sub dh, bl
js 0x512efe
fidivr word [eax - 0x2c]
mov ebx, 0x9f74a08d
cmp dl, bh
push ebp
mov ch, 0xc
mov cl, 0x35
int 0x23
jb 0x512f7e
int1
cmp byte [ecx], al
cmp dword [esi + 0x25], esi
cmp eax, 0xd53b2dc9
in eax, dx
sal ecx, 0x2a
pop ebp
je 0x512ee6
pop es
sub edi, dword [ecx - 0x43]
scasd eax, dword es:[edi]
imul ecx, dword [ebp - 0x55], 0xffffff97
dec eax
aaa
push ebx
je 0x512f72
loope 0x512f26
pop ecx
enter 0xffffffffffffe3c1, 0xffffffffffffffed
int 0x11
out 0xaf, eax
push ss
shl byte [ecx + 0x25e7a325], 0x95
pop esp
sub byte [eax + 0x131a47f6], 0x29
add ebp, edi
sbb dl, byte [ebx]
sub dword [ebx], eax
out dx, eax
cmc
mov dh, 8
xlatb
test dword [ebx + 0x30c3b209], 0x6eef1ce4
mov dl, 0xc3
xor ah, ah
sbb al, 0xef
outsb dx, byte [esi]
mov eax, 0x354ef0e1
dec esi
sub al, byte [ecx - 0x3c11a24f]
dec edi
cmpsb byte [esi], byte es:[edi]
jecxz 0x512f1a
xchg ebp, eax
jl 0x512f2a
rol dword [eax], 0xd3
xchg ebp, eax
lcall 0xf2d3, 0xdcd84014
dec esp
adc esi, dword [edx + 0x42]
js 0x51301f
in al, 0xa1
push esi
fsubr dword [eax + 0x396556fc]
mov byte [eax + edx*4], bl
adc dword [ecx + 0x26], eax
sub eax, 0xcc570041
movsb byte es:[edi], byte [esi]
push 0x17
invalid
sal dword [esi], cl
iretd