Function at 0x7a7728
Capabilities:
Encode data using xor

Disassembly:
jmp 0x7a7732
pushal
call 0x7a7738
pop ebp
sub ebp, 0x10
sub ebp, 0x3a7728
mov al, byte [esp + 0x28]
cmp al, 1
je 0x7a775c
popal
xor eax, eax
inc eax
ret 0xc
jmp 0x7a7765
add byte [eax], al
pushfd
sti
movsd dword es:[edi], dword [esi]
test byte [eax + 0x3a7728], bh
mov eax, 0x3a7728
sub byte [edi + 0x3a], dh
add byte [ebx], al
lds eax, [ecx + 0x63c0]
add byte [ecx + 0x618], bh
add eax, ebp
add eax, 0x63
mov ecx, 0x618
mov edx, 0x347f9e5a
xor byte [eax], dl
inc eax
dec ecx
jne 0x7a777c
jmp 0x7a778f
rcl dword [edi + 0x5a66d3d1]
pop edx
pop edx
fistp dword [ebx + 0x5a5a5aa2]
pop ecx
xchg edi, eax
loop 0x7a77ff
pop edx
pop edx
pop edx
loopne 0x7a7818
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 0x7a775f
rcr dword [esi + 0x7e], cl
xlatb
jle 0x7a7766
rcr dword [esi + 0x7e], cl
xor bl, byte [edx + 0x325a54de]
cmp al, 0xa8
jno 0x7a7827
pop ebx
jbe 0x7a784e
xor dl, byte [eax - 0x4dde80d4]
pop edi
pop edx
pop edx
pop edx
mov bl, 0x74
je 0x7a7837
pop edx
pop edx
pop edx
femms
pop es
rcr edi, 1
push edx
pop edx
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]
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 0x7a7868
cwde
push esi
pop edx
rcl esi, 1
jle 0x7a786f
pop edx
pop edx
pop edx
xor bl, byte [edx + 0x325a54de]
cmp al, 0xa8
pop edx
xor bh, byte [eax + ebp*4]
jno 0x7a7878
pop ebx
jbe 0x7a789f
xlatb
jle 0x7a77cb
rcl dword [esi + 0x7e], cl
mov dl, 0x5f
jle 0x7a77db
pop edi
pop edx
pop edx
pop edx
mov bl, 0x1d
pop eax
pop edx
pop edx
xlatb
jle 0x7a77dc
sal dword [esi + 0x7e], cl
jbe 0x7a78b7
xlatb
jle 0x7a7897
movsd dword es:[edi], dword [esi]
das
push esi
movsd dword es:[edi], dword [esi]
das
push edx
mov dl, 0x28
pop edx
pop edx
pop edx
shl edi, 1
push edx
pop edx
pop edx
pop edx
imul edx, dword [ebx - 0xf505725], 0xa8db13b2
scasd eax, dword es:[edi]
invalid
push ebp
rcl byte [edx], cl
pop edx
pop edx
pop edx
cmp al, 0xd1
inc esi
arpl dx, bx
mov eax, dword [0x40de55b2]
rol dword [esi + 0x63], 1
fisub dword [ecx + 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 0x7a78ad
arpl word [ebx - 0x27], bx
wait
pop edi
fnstenv [edx - 0x5a184ca2]
mov bl, 0xe7
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jae 0x7a78b4
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]
pop es
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 0xdbd749a6
pushfd
pop ebx
pop edx
pop edx
pop edx
rcr byte [ebp - 0x25], cl
popfd
pop ebx
pop edx
pop edx
pop edx
loope 0x7a7933
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 0x7a7972
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 0x7a79be
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 0x7a79cb
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 0x7a79f4
pop edx
pop edx
pop edx
push ebp
fild qword [esi + 0x5a]
pop edx
pop edx
jecxz 0x7a79ff
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 0x7a797d
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