Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x4cdbd92f
mov esi, ebx
or ebx, ebx
popal
or ebx, esi
not ebx
mov eax, 0
mov ebx, ecx
add esi, edx
add esi, 1
not edx
mov edi, ebx
mov esi, 0xd10c5f36
or esi, esi
mov ecx, edi
inc esi
add esi, esi
inc eax
mov esi, edx
and edx, edx
cmp eax, 0x1008a95
jne 0xa789c0
mov esi, edx
sub edx, esi
dec esi
inc ebx
sub esi, ebx
add ebx, ebx
mov eax, 0xa78796
sub edx, ebx
add ecx, edx
mov edi, 0xa7898a
sub edx, ecx
or ebx, edx
sub ebx, 0x6770bae1
mov esi, dword [eax]
add ecx, 0xc84d56c3
not ebx
and esi, 0xff
inc edx
add edx, ebx
xor dword [edi], esi
sub ebx, 0x35c9f454
add edx, ebx
add edi, 1
mov ecx, edx
add ebx, 0xa0bb7eb1
or edx, ecx
inc eax
mov ebx, edx
add ecx, ecx
not edx
cmp edi, entry0
jl 0xa78a0d
mov ebx, 0xe84d71ff
mov ebx, edx
inc ecx
mov ebx, ecx
and ebx, ecx
and ecx, ebx
inc edx
mov edi, 0xa7898e
add edx, 0x867b9169
not edx
mov edi, dword [edi]
mov esi, 0x12d6c471
sub esi, 0x8112d76e
mov edi, dword [edi]
add esi, 0x1a835686
sub esi, ecx
push edi
mov edx, esi
inc ebx
mov edi, 0xa7898a
sub ecx, edx
not edx
sub ecx, 0xd2711a92
mov edi, dword [edi]
or edx, ebx
mov esi, 0x5db9aeab
mov edi, dword [edi]
inc ebx
sub ebx, edx
mov esi, ecx
push 0xa78992
mov edx, ebx
or ebx, ecx
call edi
add edx, 0x40642d44
mov edx, ecx
pop edi
add ebx, 0xa2381662
not esi
sub esp, 4
mov dword [esp], 0xa7899f
mov edx, 0xbbafdec0
mov edx, 0x31414f40
sub esp, 4
mov dword [esp], eax
mov edx, ecx
and edx, ecx
call edi
add esi, ecx
sub edx, 1
and edx, edx
sub esp, 4
mov dword [esp], 0x40
inc ebx
or edx, ebx
push 0x3000
not ebx
sub edx, esi
sub ebx, esi
push 0x200002a0
sub ebx, 0xd425aaf1
and esi, ebx
push 0
or esi, esi
mov esi, edx
call eax
sub ecx, 1
sub ecx, 0x83a55a24
sub esi, ecx
add eax, 0x200001fd
sub esi, 0xbe37590e
inc edx
mov edi, 0x32f5eba
dec ecx
sub edx, esi
mov dword [eax], edi
mov ebx, 0xd7bf5397
sub ebx, 0x30783270
sub esi, 0x10ebe608
mov edi, dword [eax]
add edx, 0x1244a20b
not ebx
add edx, 0xa59cba92
cmp edi, 0x32f5eba
je 0xa78b6e
mov eax, 0
mov dword [eax], edx
add edx, 0xaaad44e1
mov ebx, 0xdac1bcbb
add edx, ecx
not ebx
mov ecx, 0xc0768633
dec ebx
not ebx
dec ebx
mov edx, section.UPX1
add esi, 1
sub ebx, 0x3e1bea96
mov edi, 0xa78795
and esi, ebx
add esi, 1
and esi, ebx
mov eax, 0
sub esi, 0xe69f42e
add esi, 0xb7ce2a15
sub esi, ebx
mov ecx, 0xa78796
sub esi, ebx
add esi, ebx
lea ecx, [ecx + eax]
not esi
mov esi, 0x3efcd6bd
dec esi
mov ecx, dword [ecx]
or ebx, esi
add esi, 0x1de28c5a
and ecx, 0xff
or esi, esi
mov esi, ebx
and ebx, ebx
inc eax
sub ebx, 0x71fe2815
add esi, ebx
or esi, esi
cmp eax, 0x1f4
jne 0xa78bfb
mov eax, 0
sub esi, ebx
add esi, 0xc504248f
sub esi, ebx
add ebx, ebx
mov ebx, 0xdbefafe9
xor dword [edx], ecx
add ebx, esi
or ebx, esi
add edx, 2
sub ebx, esi
add ebx, 0x1432d8e
cmp edx, edi
jl 0xa78bb9
and esi, ebx
dec esi
not ebx
add ebx, ebx
not ebx
mov esi, section.UPX1
inc ecx
add ecx, 0x39d9fe6c
mov edx, section.UPX1
add eax, 0x2d7b79e3
or eax, eax
inc ecx
mov edi, 0xa78795
add ecx, eax
and ecx, eax
mov ebx, 0
sub eax, ecx
sub ecx, 0xa604f9f8
mov bl, byte [edx]
sub eax, ecx
sub eax, 0x28928f01
mov byte [esi], bl
inc eax
mov ecx, eax
inc esi
sub eax, ecx
add ecx, ecx
add ecx, 0xc66bbac3
add edx, 2
not eax
add eax, 0xac2c2ac
cmp edx, edi
jle 0xa78c61
inc eax
dec eax
and ecx, ecx
mov ebx, esi
add ebx, ebx
push 0x8dc6a0
add ebx, 0x987785bd
and esi, esi
ret