Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xc638d8fc
and ecx, esi
or ecx, esi
popal
dec esi
not esi
not ecx
mov edi, 0
mov ecx, eax
sub edx, 0xae0a4b59
add ebx, 0x40758d75
not edx
mov esi, ecx
sub edx, ebx
add ebx, ebx
sub ebx, 1
mov eax, esi
sub edx, 0xae91726d
mov ebx, edx
inc edi
and ebx, ebx
or ebx, edx
cmp edi, 0x1004ff0
jne 0xa789c1
mov ebx, edx
inc ebx
dec ecx
and esi, ecx
mov edi, 0xa78796
inc eax
inc ecx
inc ecx
mov ebx, 0xa7898a
sub edx, ecx
or edx, eax
mov esi, dword [edi]
mov eax, 0xc6e07b16
mov edx, ecx
and esi, 0xff
and edx, eax
sub eax, edx
mov edx, 0x1de4650d
xor dword [ebx], esi
sub eax, 0x9a0291b8
and eax, edx
not eax
inc ebx
mov ecx, 0xa5f2601
sub eax, 0x1c0b9938
mov eax, edx
inc edi
sub edx, ecx
inc ecx
cmp ebx, entry0
jl 0xa78a0f
inc eax
mov eax, 0x149fc3ca
sub ecx, eax
mov eax, 0x8efe1ffd
sub ecx, eax
and ecx, edx
or edx, edi
mov edi, ebx
or esi, ebx
mov ecx, 0xa7898e
add esi, 0x43ee9da1
add edx, esi
add esi, 1
mov ecx, dword [ecx]
not ebx
inc edi
mov ecx, dword [ecx]
and edi, esi
dec esi
push ecx
mov edx, 0x11107f7c
inc edi
mov ecx, 0xa7898a
mov ebx, edx
add edx, esi
inc esi
mov ecx, dword [ecx]
sub esi, edi
add edx, 0x8fe8d6ec
or edi, edi
mov ecx, dword [ecx]
or ebx, ebx
sub edi, 0x7dee99bb
sub esp, 4
mov dword [esp], 0xa78992
sub ebx, 0x4b55169e
or ebx, ebx
call ecx
not edx
add edx, ebx
add edx, 0x990b5eec
pop ecx
sub edx, 0xeec8992b
inc esi
add edx, esi
push 0xa7899f
add esi, 1
sub esi, 0x8b058b70
or ebx, edi
sub esp, 4
mov dword [esp], eax
add esi, ebx
mov edi, esi
sub esi, 1
call ecx
add edx, ebx
mov edi, 0xc6b27b4a
sub ebx, edi
sub esp, 4
mov dword [esp], 0x40
mov esi, ebx
sub edi, edx
sub esi, 0xaf5c5ec9
push 0x3000
sub ebx, 0xbacb890
not ebx
mov edx, 0xc53b4fea
sub esp, 4
mov dword [esp], 0x20000c0f
sub edi, esi
add edx, esi
push 0
dec esi
mov esi, ebx
inc edi
call eax
mov esi, ebx
and edx, ebx
dec edx
add eax, 0x20000b77
mov esi, 0xa9fd8400
not edi
mov ecx, 0x641b9484
or esi, ebx
not esi
mov dword [eax], ecx
not edx
mov esi, edx
and ebx, edi
mov ecx, dword [eax]
not ebx
add esi, 0x185f1c40
cmp ecx, 0x641b9484
je 0xa78b7d
mov ebx, 0
mov cl, byte [ebx]
and edi, esi
add edx, 0x719e06fb
inc edi
add ebx, edx
add esi, 0xd9662844
add ebx, 0x5a69424e
sub esi, 0xc480ac47
mov esi, ecx
mov edi, section.UPX1
add ecx, 1
add ecx, esi
mov ebx, 0xa78795
inc ecx
mov esi, ecx
mov eax, 0
not esi
inc ecx
add ecx, 0x794765d2
mov edx, 0xa78796
dec ecx
dec ecx
lea edx, [eax + edx]
or ecx, esi
sub ecx, esi
mov edx, dword [edx]
mov esi, ecx
add ecx, 1
sub esi, 0x2427a553
and edx, 0xff
add esi, 0x9041c538
and ecx, esi
inc eax
and ecx, esi
mov esi, ecx
cmp eax, 0x1f4
jne 0xa78bfd
mov eax, 0
add esi, 1
not ecx
not esi
add esi, 0x47a29007
xor dword [edi], edx
sub ecx, esi
mov esi, 0x9cded041
mov ecx, esi
add edi, 2
inc esi
add ecx, 0x410840e
dec esi
cmp edi, ebx
jl 0xa78bbf
dec ecx
add esi, 0x6449aaed
sub esi, ecx
mov esi, 0x9c093a0d
and ecx, ecx
mov eax, section.UPX1
mov esi, edi
mov edi, esi
mov edi, 0x28d29f62
mov edx, section.UPX1
and edi, esi
add esi, edi
sub edi, esi
mov ebx, 0xa78795
mov esi, 0x5587e517
add edi, edi
mov esi, 0x65c6dbb9
mov ecx, 0
or edi, edi
sub esi, 0x43efe221
mov cl, byte [edx]
dec edi
inc esi
sub esi, 0xe367903f
mov byte [eax], cl
dec esi
inc esi
mov edi, 0xa15a2498
add eax, 1
add edi, esi
mov edi, esi
add edx, 2
sub edi, 0x67871159
sub edi, esi
sub esi, 0x1943bd70
cmp edx, ebx
jle 0xa78c75
add edi, esi
sub edi, 0x538625bf
or esi, esi
add esi, 0xfe55919b
sub esp, 4
mov dword [esp], 0x8dc6a0
not ecx
not esi
or ecx, ecx
ret