Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xbfd5dab1
or ebx, ebx
add esi, esi
popal
sub ebx, 0xee13f70e
sub esi, 0xcd27179c
mov eax, 0
mov edx, esi
and ebx, ebx
inc ebx
mov edi, edx
add ecx, 1
add ecx, ecx
mov esi, edi
not ecx
inc ebx
sub ecx, ebx
add eax, 1
sub ebx, 0xd3f9222a
inc ebx
cmp eax, 0x100ad43
jne 0xa789c8
or ecx, ebx
mov ecx, ebx
add esi, 0xf87e37ff
inc esi
mov esi, 0xa78796
add edx, 0x18349822
and ecx, eax
mov eax, 0x60dc7ae1
mov ebx, 0xa7898a
inc edx
mov edx, 0x164011c8
mov edi, dword [esi]
mov eax, 0xf902bed
and ecx, eax
mov edx, 0x1266ff09
and edi, 0xff
dec eax
or edx, eax
xor dword [ebx], edi
inc edx
and ecx, ecx
inc ebx
not ecx
dec eax
sub ecx, 0xf46ae3c7
inc esi
or eax, ecx
not ecx
dec edx
cmp ebx, entry0
jl 0xa78a1f
not edx
and edx, eax
mov edx, ecx
add ecx, eax
add esi, ebx
dec esi
add ecx, 0x58445635
mov edi, 0xa7898e
or ebx, esi
or esi, ebx
and ebx, ecx
mov edi, dword [edi]
add ecx, 0x67e23674
mov edx, esi
mov edi, dword [edi]
mov edx, 0x7509ee6e
mov edx, ebx
push edi
add ecx, ecx
not edx
mov edi, 0xa7898a
sub esi, 1
add edx, 0x80d5b67f
mov edi, dword [edi]
mov ecx, esi
and edx, esi
mov edi, dword [edi]
sub ecx, 0xfedf507b
sub ebx, edx
sub ebx, 0xb6ccd219
push 0xa78992
sub ebx, 1
and ebx, esi
add ebx, 0x4d0f98e2
call edi
not ebx
mov ebx, edx
pop edi
sub esi, 0x85b33953
not ebx
add esi, ecx
push 0xa7899f
add edx, 0x741797b
sub ecx, 1
dec ebx
push eax
add ebx, esi
not edx
not ebx
call edi
mov esi, 0xf4324e1e
add edx, 0x29aea622
push 0x40
sub ecx, 0x4026f5fa
sub ebx, 0xf1c0d20b
push 0x3000
mov edx, ebx
or edx, ebx
sub edx, esi
push 0x20000dc3
sub esi, edx
add ecx, ebx
or ecx, ecx
sub esp, 4
mov dword [esp], 0
inc edx
and esi, esi
call eax
add edx, esi
inc ebx
mov edx, ecx
add eax, 0x20000d4b
and edx, ecx
mov edx, esi
add ebx, ecx
mov edi, 0x3b820e9a
not ecx
sub ebx, edx
dec edx
mov dword [eax], edi
or edx, esi
sub esi, 0xb57135d0
mov edi, dword [eax]
inc ecx
add ecx, ebx
add edx, esi
cmp edi, 0x3b820e9a
je 0xa78b6d
mov ebx, 0
mov edx, dword [ebx]
add edx, 1
dec ebx
inc esi
inc ebx
add esi, ecx
mov esi, 0xd6039d93
add esi, ebx
mov ecx, section.UPX1
mov ebx, 0x40a149d8
dec esi
mov eax, 0xa78795
not esi
mov esi, ebx
and esi, ebx
mov edx, 0
add ebx, 0x86cf8905
inc ebx
mov edi, 0xa78796
sub ebx, esi
or ebx, esi
dec ebx
lea edi, [edi + edx]
sub ebx, 1
sub esi, 0x1992cc87
and esi, ebx
mov edi, dword [edi]
sub esi, ebx
add esi, 0x1fb1a349
and edi, 0xff
sub ebx, 1
not esi
inc ebx
inc edx
and esi, ebx
add ebx, 0x2dfc9072
sub ebx, 0x7c030049
cmp edx, 0x1f4
jne 0xa78bf1
mov edx, 0
and ebx, ebx
sub ebx, esi
mov ebx, 0xa5a41429
not esi
sub esi, ebx
xor dword [ecx], edi
inc ebx
sub esi, 0xf422233e
add ecx, 2
sub esi, ebx
sub ebx, 0xbeab0a3
cmp ecx, eax
jl 0xa78ba1
or esi, ebx
inc ebx
mov ebx, esi
sub esi, 0xc37ab341
mov esi, section.UPX1
mov edx, 0x92104cbe
mov edi, edx
mov ebx, section.UPX1
dec edi
and edi, edi
mov ecx, 0xa78795
sub edi, edx
sub edi, 0x7fdbfdb
mov edi, edx
mov eax, 0
or edi, edx
not edi
add edi, 0x56a6f38c
mov al, byte [ebx]
not edi
and edi, edi
sub edx, edi
mov byte [esi], al
dec edx
sub edx, edi
mov edi, 0xc96a9fc2
inc esi
sub edx, edi
or edx, edi
add ebx, 2
add edx, 1
mov edx, 0xd25c71ab
cmp ebx, ecx
jle 0xa78c5a
add edi, edx
mov edx, edi
not edx
not ebx
add esi, 0xa75ac612
add esi, 1
push 0x8dc6a0
mov esi, ebx
and ebx, ebx
add esi, 0x70a942b6
ret