Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x8604d28e
add eax, 0xdb3b657
inc eax
popal
add edx, 0xa7083d2c
mov edx, 0x409a91bf
mov edx, 0
mov eax, ecx
dec edi
sub edi, 0x98e2f9b0
add edi, 0xbc907524
mov ebx, eax
not esi
mov esi, 0x8552f236
mov ecx, ebx
or esi, edi
sub esi, edi
inc edx
sub edi, 0x16cc9b0
inc edi
cmp edx, 0x100d5ec
jne 0xa789ca
add edi, 0xa2808787
and esi, edi
sub esi, edi
not eax
inc eax
and edx, edx
mov ecx, 0xa78796
add esi, 0xfa13c556
sub esi, 0xd0b9d61c
and edi, esi
mov edx, 0xa7898a
or esi, edi
sub edi, 0xa1dbcbf6
mov esi, eax
mov ebx, dword [ecx]
dec esi
add edi, 0xa9d3d80e
and ebx, 0xff
add eax, 0x8c9da68d
mov eax, esi
and edi, edi
xor dword [edx], ebx
mov edi, eax
sub edi, esi
inc edx
or esi, edi
dec esi
or esi, esi
inc ecx
dec eax
or edi, esi
mov edi, 0x3c645687
cmp edx, entry0
jl 0xa78a2d
sub esi, edi
inc edi
add edi, 1
mov edi, eax
add eax, edi
sub ebx, 1
add edi, 1
mov esi, 0xa7898e
mov edi, ecx
not edi
mov esi, dword [esi]
mov edx, 0xdc2a9678
sub ebx, ecx
mov esi, dword [esi]
dec edi
and edi, ecx
sub edx, 0x11b4c55
push esi
sub ecx, 0x64319048
not edx
mov esi, 0xa7898a
and edi, ebx
mov ecx, edx
dec edx
mov esi, dword [esi]
mov edx, ebx
add ecx, ecx
mov esi, dword [esi]
or edx, edi
add ebx, ebx
sub esp, 4
mov dword [esp], 0xa78992
add ebx, 0xc01bd22f
add ebx, 1
and edx, edi
call esi
add ecx, 0xdf02d576
and ecx, edx
pop esi
and ebx, ebx
inc ebx
and ecx, edi
push 0xa7899f
or edx, ebx
or edx, edi
add edi, 1
push eax
mov ebx, ecx
add edi, 1
call esi
add ecx, 0xa35a68a2
add edx, ebx
add edi, 0xaf7f798d
push 0x40
not ebx
sub edi, edx
sub esp, 4
mov dword [esp], 0x3000
inc ecx
mov ebx, edx
add ebx, 0x84d8efba
push 0x200002e9
mov edi, edx
mov ebx, edx
push 0
add ecx, 0x90ed9c96
not ecx
call eax
not edx
dec ebx
add eax, 0x20000271
sub edx, 0x97646cf5
inc ebx
add ecx, 1
mov esi, 0x976c92bf
add edx, ebx
mov edi, edx
mov dword [eax], esi
mov ecx, ebx
or ebx, ecx
mov esi, dword [eax]
sub edi, 1
not edx
cmp esi, 0x976c92bf
je 0xa78b7e
mov ecx, 0
mov byte [ecx], dl
add ecx, edi
add edx, edx
add edi, 0x8470d10f
mov ebx, 0x9352e091
not edi
sub edi, 0xaf1ccaad
and edx, eax
add edx, eax
add edx, 1
mov esi, section.UPX1
and eax, edx
add edx, 1
mov edx, 0xced262a2
mov ebx, 0xa78795
mov edx, 0x94024979
add edx, 0xb9482878
mov edi, 0
add edx, edx
add eax, edx
mov ecx, 0xa78796
dec edx
dec eax
add eax, 0xeb93c60f
lea ecx, [edi + ecx]
add eax, edx
not edx
mov ecx, dword [ecx]
not edx
add eax, eax
not edx
and ecx, 0xff
not eax
add eax, 0x87ab1e8
inc edi
sub eax, edx
add edx, edx
cmp edi, 0x1f4
jne 0xa78c06
mov edi, 0
and edx, edx
add eax, edx
and eax, eax
mov edx, 0x59b8a2d5
sub eax, 0xfe96a9a3
xor dword [esi], ecx
not edx
mov eax, 0x2469619c
add esi, 2
or eax, edx
add edx, 0xdbff5ec6
cmp esi, ebx
jl 0xa78bca
add eax, eax
mov edx, 0x1ebf2336
or eax, edx
inc eax
inc eax
or edx, edx
mov edx, section.UPX1
sub ecx, esi
inc ecx
sub ecx, 1
mov edi, section.UPX1
sub ecx, 0x460e9607
or esi, esi
dec ecx
mov eax, 0xa78795
sub esi, 0xf4f48e16
dec ecx
mov ebx, 0
or ecx, esi
mov esi, 0xe5b3feeb
not ecx
mov bl, byte [edi]
or ecx, esi
dec ecx
mov byte [edx], bl
inc ecx
not ecx
add edx, 1
add ecx, 0xc68dadf5
add esi, 1
add edi, 2
add ecx, 0xbf15e384
add esi, ecx
cmp edi, eax
jle 0xa78c79
mov ecx, esi
mov esi, ecx
mov eax, 0xe147de11
sub eax, 0x2738e0e2
push 0x8dc6a0
mov edx, eax
sub eax, edx
mov eax, edx
ret