Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x95d79f1c
dec edi
dec edi
sub edi, ebx
popal
or edi, edi
inc edi
mov eax, 0
mov ebx, esi
add ecx, 0xc058db66
sub ecx, 0x9128ad63
mov edx, ebx
dec edi
sub ecx, edi
sub edi, 0x1c976105
mov esi, edx
dec ecx
dec edi
add eax, 1
or edi, ecx
or edi, edi
sub edi, 0x5f17826e
cmp eax, 0x100a7b2
jne 0xa789bf
or ecx, edi
sub ecx, 1
and edi, edi
add ebx, 0x4c7d4910
dec edi
sub edi, ebx
mov eax, 0xa78796
mov ecx, esi
dec ecx
not ecx
mov ebx, 0xa7898a
inc esi
add esi, ecx
mov edi, dword [eax]
add edx, 0xa6889090
add ecx, 0x9718b5d0
and edi, 0xff
dec esi
mov esi, ecx
add esi, ecx
xor dword [ebx], edi
inc edx
or edx, edx
add ebx, 1
not esi
not esi
add eax, 1
mov ecx, 0x1a4b0a8d
dec esi
sub esi, ecx
cmp ebx, entry0
jl 0xa78a1d
or edx, ecx
dec ecx
sub edx, 0x6b4ed4d
sub esi, 0xedac2061
mov edx, 0x6bc0c24d
add edx, 0xd9175965
sub edx, 0xd6cee33a
mov esi, edx
inc edx
mov edi, 0xa7898e
sub ecx, 0xc1647262
add ecx, 0x48401b97
mov edi, dword [edi]
mov esi, 0xc8ac0dca
sub edx, 0xe085140c
mov edi, dword [edi]
sub ebx, esi
not ebx
sub edx, 0x363cbf98
push edi
not esi
and ebx, edx
dec esi
mov edi, 0xa7898a
mov esi, 0xe99706b
dec esi
dec ebx
mov edi, dword [edi]
sub ecx, 1
or ebx, ebx
mov esi, edx
mov edi, dword [edi]
mov edx, esi
or ebx, ebx
push 0xa78992
add ebx, ebx
add ebx, 0x61402993
not ebx
call edi
mov edx, esi
mov ecx, ebx
mov edi, dword [esp]
add esp, 4
sub ebx, 1
sub ecx, 0xbce4a35c
sub esp, 4
mov dword [esp], 0xa7899f
mov esi, 0x68d4d99d
add esi, 0x5557a06f
sub esp, 4
mov dword [esp], eax
sub ecx, edx
sub esi, 0xe3160c92
call edi
add esi, 0xc3da493f
not ebx
add ebx, 1
push 0x40
not ebx
add esi, 1
push 0x3000
sub edx, ebx
add ebx, 0x388191b1
push 0x2000034d
and edx, ebx
sub ebx, ecx
mov ecx, 0x201eacad
sub esp, 4
mov dword [esp], 0
add edx, ecx
add edx, edx
call eax
not ecx
inc ebx
and ecx, ecx
add eax, 0x200002d8
sub esi, 0x9a66f9e
mov edx, ebx
mov ecx, edx
mov edi, 0xb9d88ab9
and ebx, esi
not ecx
mov dword [eax], edi
or ebx, edx
sub ebx, esi
mov edi, dword [eax]
mov edx, 0xdde096
sub ebx, edx
cmp edi, 0xb9d88ab9
je 0xa78b9e
mov eax, 0
mov byte [eax], bl
sub edx, ebx
not edx
add ebx, esi
inc ecx
add ecx, ecx
dec ebx
add edi, 0x3ed48e23
mov edi, ebx
mov edx, section.UPX1
inc edi
not ebx
mov ecx, 0xa78795
add edi, 0x60c91c5d
and ebx, edi
mov ebx, edi
mov esi, 0
and edi, edi
sub ebx, edi
or edi, edi
mov eax, 0xa78796
add edi, 0x50c657c2
add edi, edi
lea eax, [esi + eax]
sub edi, ebx
add edi, 1
mov eax, dword [eax]
or ebx, ebx
add edi, edi
sub edi, 1
and eax, 0xff
dec edi
or ebx, ebx
not edi
inc esi
not ebx
sub ebx, 0x8c261f75
add edi, 0xa4c5c20b
cmp esi, 0x1f4
jne 0xa78c1d
mov esi, 0
mov edi, 0x98bc7178
not edi
or edi, edi
or ebx, ebx
sub edi, ebx
xor dword [edx], eax
mov ebx, edi
or edi, edi
add edx, 2
inc ebx
sub ebx, 0xc4fee2ab
mov ebx, edi
cmp edx, ecx
jl 0xa78bd2
inc edi
add edi, ebx
sub edi, ebx
dec ebx
add edi, 0x39e5d6ce
mov edi, section.UPX1
add ebx, ecx
sub ebx, 0x35d117d9
mov esi, section.UPX1
or ebx, ecx
sub ebx, ecx
mov ecx, ebx
mov edx, 0xa78795
add ebx, ebx
mov ebx, ecx
add ecx, ecx
mov eax, 0
add ecx, 0x40680ce9
add ebx, ebx
sub ebx, 0x7b9ed3b9
mov al, byte [esi]
mov ebx, 0x1f27e7de
inc ecx
add ecx, ecx
mov byte [edi], al
mov ecx, ebx
sub ecx, ebx
mov ecx, 0x35f1e674
inc edi
dec ecx
not ecx
add ebx, 1
add esi, 2
inc ecx
add ebx, 1
or ecx, ebx
cmp esi, edx
jle 0xa78c89
not ecx
and ecx, ebx
mov edi, ebx
sub edi, 0x41a75606
sub esp, 4
mov dword [esp], 0x8dc6a0
add ebx, edi
mov edi, 0x6a59ea9a
ret