Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xde1c22cb
add esi, 1
dec ecx
popal
or esi, ecx
or ecx, ecx
add esi, 1
mov ecx, 0
mov edi, edx
sub eax, 0xd2873237
sub esi, 0xa155de4b
not eax
mov ebx, edi
mov esi, eax
dec eax
mov edx, ebx
mov eax, 0x6aa3d39a
sub esi, eax
inc ecx
mov eax, 0x25b5300b
not esi
cmp ecx, 0x100751d
jne 0xa789c9
sub eax, esi
or esi, esi
not esi
sub ecx, esi
dec esi
mov ecx, esi
mov edx, 0xa78796
or esi, eax
dec eax
or esi, esi
mov ecx, 0xa7898a
and ebx, eax
and ebx, ebx
sub ebx, eax
mov edi, dword [edx]
or ebx, esi
not eax
or esi, ebx
and edi, 0xff
mov ebx, 0x59c1ccda
add esi, esi
xor dword [ecx], edi
mov esi, 0x1a071a18
not ebx
inc ecx
add ebx, 0xbab339d5
sub eax, ebx
not eax
add edx, 1
sub esi, eax
or ebx, esi
mov eax, 0x4fa75829
cmp ecx, entry0
jl 0xa78a1b
sub ebx, esi
add ebx, esi
sub esi, ebx
inc ebx
mov eax, 0xf3546fa8
sub eax, esi
and edx, edx
mov ecx, 0xa1a0c27c
mov esi, 0xa7898e
inc edi
add ecx, 0x681aa0aa
sub edx, 1
mov esi, dword [esi]
dec ecx
dec edi
mov esi, dword [esi]
add ebx, edi
not edx
push esi
add ecx, ecx
not ebx
mov esi, 0xa7898a
dec edx
add ebx, 0x774431e2
mov esi, dword [esi]
sub ebx, edx
mov ebx, ecx
mov esi, dword [esi]
dec ebx
add ebx, 0xf661a98e
not edi
sub esp, 4
mov dword [esp], 0xa78992
mov ecx, 0xc43a7845
inc ebx
add edx, 0x4e99c7bf
call esi
dec ebx
sub ecx, 0xb4968de6
pop esi
inc ecx
add ecx, edi
or ebx, edx
push 0xa7899f
mov edi, ebx
add edi, ecx
push eax
add edi, ecx
and ecx, edi
call esi
sub ebx, edx
or edx, ebx
add edx, edi
push 0x40
sub ecx, 0xfba532c5
inc ebx
push 0x3000
inc edx
dec edx
or ecx, ebx
push 0x20000612
sub ecx, 1
sub edi, 0x1c6331cf
push 0
mov ebx, edi
mov ecx, ebx
and edx, edx
call eax
or edi, ecx
or ecx, edx
add eax, 0x20000581
inc edx
add ebx, ecx
add ecx, edx
mov esi, 0xb48bf9aa
not ecx
add ebx, 0x113ad61b
mov dword [eax], esi
sub ecx, 0x25dfe85a
mov ecx, 0x2e651db4
not edx
mov esi, dword [eax]
dec ecx
add edx, edx
mov ecx, 0xc91875d7
cmp esi, 0xb48bf9aa
je 0xa78b64
mov ebx, 0
mov al, byte [ebx]
sub ebx, 0xebc47118
dec ebx
mov ebx, edx
sub edi, edx
inc ecx
mov esi, ecx
sub esi, ecx
mov eax, section.UPX1
and esi, esi
dec ecx
sub esi, 0x2fcb3475
mov edi, 0xa78795
not ecx
not ecx
sub ecx, esi
mov ebx, 0
sub esi, 0x4ec66031
or ecx, esi
and ecx, esi
mov edx, 0xa78796
not esi
sub esi, 1
dec esi
lea edx, [ebx + edx]
or esi, esi
or esi, esi
sub ecx, 0x346ebeda
mov edx, dword [edx]
add esi, 0x2bd7a841
mov esi, ecx
and edx, 0xff
not ecx
not esi
add ebx, 1
add esi, 0xb98290d
add esi, ecx
cmp ebx, 0x1f4
jne 0xa78be6
mov ebx, 0
mov ecx, 0x292d26b7
mov esi, 0xbcaa59cb
inc ecx
not ecx
sub ecx, 0x9c22be9a
xor dword [eax], edx
and esi, ecx
or esi, ecx
add eax, 2
add esi, esi
inc ecx
add esi, 0x41555630
cmp eax, edi
jl 0xa78b9c
or ecx, esi
add ecx, ecx
sub ecx, 0xae64334a
mov ecx, 0xdc5fdf43
add ecx, ecx
mov esi, section.UPX1
or eax, ebx
inc eax
mov ecx, section.UPX1
mov ebx, 0xc2c25c27
add ebx, 0xfd934c7
mov edi, 0xa78795
add ebx, 0x44fd9231
add ebx, 0xe4a7d89b
mov edx, 0
and ebx, eax
dec ebx
mov dl, byte [ecx]
add ebx, ebx
inc eax
mov byte [esi], dl
add eax, eax
sub eax, 0x876d9189
sub eax, ebx
inc esi
sub eax, ebx
mov eax, 0xb98cb8bb
add ecx, 2
and eax, eax
or eax, ebx
cmp ecx, edi
jle 0xa78c58
or eax, ebx
dec ebx
mov esi, 0xcea1f39f
and ecx, esi
push 0x8dc6a0
add ecx, ecx
inc esi
add esi, esi
ret