Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xa0f527db
sub edi, ecx
mov ecx, edi
popal
sub edi, ecx
sub ecx, 0xb22e57d9
mov esi, 0
mov edx, ebx
sub eax, edi
not eax
and edi, eax
mov ecx, edx
add edi, eax
sub edi, 0x22d8516f
inc edi
mov ebx, ecx
add edi, edi
sub eax, 0xaccfb569
or edi, eax
add esi, 1
sub eax, 0x14c13041
inc eax
and eax, edi
cmp esi, 0x1000b6e
jne 0xa789c4
and eax, eax
sub edi, eax
sub edi, 0x48f01087
dec edi
sub ecx, edi
mov ebx, 0xa78796
mov esi, edx
dec edx
sub edx, 1
mov ecx, 0xa7898a
mov edx, 0x870b362c
sub edi, 0x8b054f93
mov eax, dword [ebx]
sub edx, 0xf768b7b0
dec edi
or edx, esi
and eax, 0xff
mov edx, 0x1ea3ec0e
and esi, esi
xor dword [ecx], eax
add esi, 0x70211353
mov edx, edi
inc ecx
sub esi, 0x74e11f73
sub edi, esi
inc ebx
mov esi, 0xbdfdf6c4
mov edx, edi
cmp ecx, entry0
jl 0xa78a29
inc esi
sub edi, 1
sub edi, 0x9e7a54d4
add esi, 0x22f246fc
mov esi, edx
sub edi, 0x61f963b3
add edi, edi
sub edi, 0x61223915
mov ecx, 0xa7898e
not edx
or edx, edx
mov ecx, dword [ecx]
add ebx, 0xcff4fd5c
sub edx, 0x329e5c96
sub edi, edx
mov ecx, dword [ecx]
not esi
sub edx, edi
mov ebx, edi
push ecx
add ebx, 0xc9327b0c
sub esi, edi
mov ecx, 0xa7898a
mov esi, 0xe0bdb5dc
sub ebx, esi
mov ecx, dword [ecx]
add esi, ebx
mov esi, ebx
mov ecx, dword [ecx]
or edx, esi
sub edx, 1
push 0xa78992
and ebx, ebx
inc esi
or esi, esi
call ecx
add edx, ebx
mov edx, edi
add ebx, esi
pop ecx
sub esi, edi
not ebx
add edi, esi
push 0xa7899f
inc ebx
mov edi, esi
and esi, ebx
push eax
add esi, 0x9825d128
dec edi
call ecx
or edx, ebx
dec edi
sub ebx, edx
sub esp, 4
mov dword [esp], 0x40
dec ebx
add edx, edx
sub esi, edi
sub esp, 4
mov dword [esp], 0x3000
and ebx, ebx
not ebx
add ebx, edx
push 0x20000ba2
add ebx, 0x72e005a8
sub edx, ebx
sub esp, 4
mov dword [esp], 0
mov esi, ebx
and ebx, edx
call eax
add edi, edi
not edx
add eax, 0x20000ae3
add edi, edi
add esi, esi
mov ebx, 0x18541b69
mov ecx, 0xc85ccf38
add ebx, 1
and edi, edi
mov dword [eax], ecx
inc ebx
dec edx
add edi, ebx
mov ecx, dword [eax]
inc esi
sub esi, 0x9fefb424
not edx
cmp ecx, 0xc85ccf38
je 0xa78b7f
mov ecx, 0
mov edx, dword [ecx]
or edx, edi
add esi, 0x47c0b869
dec edx
sub edx, 0x5ec289e9
sub ebx, 0x5c835b62
dec edi
not ecx
sub edi, 0xf6312354
mov esi, section.UPX1
sub edi, ecx
add edi, 0xb06f174c
mov ecx, 0xfb79ce04
mov eax, 0xa78795
and edi, ecx
mov edi, ecx
or edi, edi
mov ebx, 0
add edi, 0xef3f5434
inc ecx
mov edx, 0xa78796
inc edi
dec ecx
lea edx, [edx + ebx]
add edi, edi
mov ecx, edi
mov edi, ecx
mov edx, dword [edx]
not ecx
sub ecx, edi
and edx, 0xff
or edi, edi
inc ecx
add ecx, 0x45f79ff5
inc ebx
sub ecx, edi
sub ecx, edi
cmp ebx, 0x1f4
jne 0xa78bfd
mov ebx, 0
inc edi
sub ecx, edi
add ecx, 0x2ff36585
not ecx
add ecx, 0xa7ae42c
xor dword [esi], edx
sub ecx, 0x82ccf3ad
sub ecx, edi
inc edi
add esi, 2
dec edi
add edi, 0xce3f84bd
cmp esi, eax
jl 0xa78bc6
and edi, ecx
inc ecx
add ecx, edi
sub ecx, 0x59b3969f
inc ecx
mov edx, section.UPX1
sub edi, ebx
add edi, 0x1d1ddb6c
inc ebx
mov eax, section.UPX1
add ebx, 0x909049b9
add ebx, ebx
mov esi, 0xa78795
add edi, 0xd6d936ec
mov edi, 0x29e0edca
and ebx, edi
mov ecx, 0
mov ebx, 0x528b62bd
and edi, ebx
mov cl, byte [eax]
and ebx, edi
add edi, 0x19c4f9f3
sub edi, 0x5d2e10ea
mov byte [edx], cl
not edi
not ebx
not edi
inc edx
or ebx, edi
sub ebx, edi
add eax, 2
add edi, 1
sub ebx, 0x2874d13a
cmp eax, esi
jle 0xa78c73
add ebx, 0xbfbdb235
sub edi, ebx
and edi, ebx
and edi, edi
add edi, edi
dec ecx
push 0x8dc6a0
not edi
mov ecx, edi
ret