Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x79259247
inc ebx
add ebx, eax
popal
or ebx, eax
and ebx, ebx
or ebx, ebx
mov eax, 0
mov ecx, edx
or ebx, edi
or edi, ebx
add ebx, 0xcdf7d9cd
mov esi, ecx
not edi
or edi, edi
mov ebx, edi
mov edx, esi
mov edi, ebx
and ebx, edi
mov edi, ebx
add eax, 1
and edi, edi
add edi, 0x30267674
add ebx, 1
cmp eax, 0x1003249
jne 0xa789c1
or ebx, ebx
sub edi, 0x78187717
add ebx, edi
sub eax, 0x4a37d72c
add ebx, 0xd67986f9
mov ebx, 0xa78796
add esi, 0x7160b027
sub ecx, esi
add edi, 0x167d64fd
mov edx, 0xa7898a
and edi, esi
or edi, edi
sub ecx, edi
mov eax, dword [ebx]
sub edi, ecx
sub esi, edi
add esi, edi
and eax, 0xff
add esi, ecx
add esi, 0x30e06877
xor dword [edx], eax
sub ecx, 1
mov esi, ecx
inc edx
add ecx, ecx
dec edi
inc ebx
and edi, esi
or esi, esi
cmp edx, entry0
jl 0xa78a31
not edi
or esi, esi
sub edi, 1
inc edi
sub edi, 1
not ecx
dec esi
and esi, edx
mov ebx, 0xa7898e
add edi, edx
mov ecx, edx
sub edi, 0x9b42d50a
mov ebx, dword [ebx]
or edx, ecx
dec esi
mov ebx, dword [ebx]
not edx
mov edx, 0x180fd722
push ebx
sub esi, edi
sub esi, 0xd1bc491
mov ebx, 0xa7898a
dec edx
add edi, 0x2d75f61b
mov ebx, dword [ebx]
or ecx, esi
sub edx, 0x8f80381d
or esi, ecx
mov ebx, dword [ebx]
add edx, 0xef48c11c
sub esi, edx
push 0xa78992
mov esi, 0xd335972b
or edi, ecx
dec edi
call ebx
add edx, esi
mov ecx, esi
pop ebx
add esi, esi
add ecx, 0x23ed5f36
mov esi, 0x468b2c50
push 0xa7899f
inc esi
add ecx, 0xdb465633
sub ecx, 0x743d18d6
push eax
add edx, edi
not edi
dec edi
call ebx
and edi, ecx
not edx
sub esp, 4
mov dword [esp], 0x40
mov ecx, 0xe687430d
add edi, ecx
sub esp, 4
mov dword [esp], 0x3000
add edx, 0xecee5388
sub edi, edx
not esi
sub esp, 4
mov dword [esp], 0x2000030b
or esi, esi
add ecx, 0x1cf1de4e
sub edi, ecx
push 0
add edi, 0xd3ea75b0
add esi, 0x39a9802f
mov edx, ecx
call eax
and edi, esi
inc edx
inc esi
add eax, 0x20000250
add ecx, 1
sub esi, 1
mov esi, ecx
mov ebx, 0xc2c64105
mov esi, 0xe9087528
not edx
or esi, edi
mov dword [eax], ebx
add ecx, ecx
sub esi, ecx
mov ebx, dword [eax]
mov edx, ecx
dec edi
dec esi
cmp ebx, 0xc2c64105
je 0xa78b92
mov ebx, 0
mov byte [ebx], al
inc edi
sub ecx, edx
sub ecx, 0xd0a23651
add esi, 0xe5c62729
sub esi, edi
mov ebx, 0x8a043f7e
add ebx, 0xd87ae29b
mov ebx, 0x9956d639
mov esi, section.UPX1
or ebx, eax
not ebx
mov edi, 0xa78795
not ebx
add ebx, eax
mov edx, 0
add ebx, eax
or eax, ebx
sub ebx, 0xdf20c0c6
mov ecx, 0xa78796
sub ebx, eax
mov ebx, eax
lea ecx, [edx + ecx]
mov ebx, eax
inc ebx
dec ebx
mov ecx, dword [ecx]
sub eax, 0xc93e3c73
dec eax
and ecx, 0xff
or eax, ebx
and ebx, eax
sub eax, 0xcfce4085
inc edx
mov ebx, 0x30a782be
add ebx, 0x75cdbce9
cmp edx, 0x1f4
jne 0xa78c16
mov edx, 0
mov eax, ebx
mov eax, ebx
sub ebx, eax
not ebx
not eax
sub ebx, eax
xor dword [esi], ecx
or ebx, ebx
or eax, eax
add eax, 0x75083fe6
add esi, 2
add ebx, eax
and ebx, ebx
or ebx, ebx
cmp esi, edi
jl 0xa78bd4
inc ebx
sub ebx, 0xc8ccd7e
sub ebx, 0x2e60940e
not eax
mov esi, section.UPX1
sub eax, ebx
or eax, eax
and eax, ebx
mov edx, section.UPX1
mov ebx, 0x81cdd4b3
dec ebx
mov edi, 0xa78795
sub eax, 0xfac3a945
or eax, eax
mov ecx, 0
mov ebx, eax
mov ebx, eax
mov cl, byte [edx]
not ebx
mov ebx, eax
and ebx, eax
mov byte [esi], cl
inc ebx
sub ebx, eax
add esi, 1
sub ebx, eax
add ebx, 1
add edx, 2
sub ebx, eax
sub eax, 0x695e1c43
mov ebx, eax
cmp edx, edi
jle 0xa78c7d
and ebx, ebx
mov eax, ebx
mov ebx, eax
or eax, ebx
push 0x8dc6a0
mov ebx, 0xfe2474cc
add ebx, 1
mov ebx, eax
ret