Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xe9b6c440
and ecx, ecx
or edi, ecx
add edi, 1
popal
add edi, 0x854b429
mov edi, ecx
mov edx, 0
mov edi, eax
add esi, 0xccd4cd1e
sub esi, ecx
add ecx, 0x2bd16b4
mov ebx, edi
not ecx
not esi
mov eax, ebx
or esi, esi
or ecx, ecx
sub esi, 0x43d7c284
inc edx
sub esi, ecx
inc esi
and ecx, ecx
cmp edx, 0x1007ac2
jne 0xa789ca
not ecx
add ecx, ecx
add ecx, ecx
sub ecx, edi
sub ecx, 0x373cf606
mov ecx, 0xa78796
and ebx, esi
or edi, ebx
sub ebx, 0xa8b81f75
mov eax, 0xa7898a
dec edi
add esi, 0x2338577d
mov edx, dword [ecx]
sub esi, ebx
sub edi, 0x4a6d18ce
mov edi, 0xcaecf01b
and edx, 0xff
inc esi
inc ebx
xor dword [eax], edx
or ebx, esi
not ebx
inc eax
sub ebx, esi
mov esi, 0x53c09e37
dec esi
inc ecx
mov ebx, 0x48248710
add esi, edi
cmp eax, entry0
jl 0xa78a27
mov edi, ebx
mov esi, 0x1450d4dc
or esi, ebx
or edi, edi
sub ebx, 0xaaf55fea
or edx, ebx
mov ebx, 0x17876c3
mov edi, 0xa7898e
inc ecx
add edx, 0xf5cc25b5
mov edi, dword [edi]
sub esi, ebx
add edx, 0x66a49e5e
mov edi, dword [edi]
and edx, ecx
and ebx, esi
sub esi, 0xb1a0e79f
push edi
inc ecx
and edx, ebx
mov edi, 0xa7898a
mov ebx, ecx
inc edx
add esi, esi
mov edi, dword [edi]
or esi, edx
add ebx, esi
or ecx, ebx
mov edi, dword [edi]
or ebx, ecx
mov edx, esi
sub edx, 1
sub esp, 4
mov dword [esp], 0xa78992
add edx, esi
and edx, edx
call edi
mov esi, 0x2c9a0a3d
add ebx, ebx
pop edi
or ebx, edx
or ebx, ecx
push 0xa7899f
sub esi, 0x60ae0fe4
or esi, edx
push eax
and esi, ebx
not edx
call edi
and edx, ebx
sub edx, ecx
push 0x40
dec esi
add ecx, ecx
sub esp, 4
mov dword [esp], 0x3000
dec ecx
add edx, ebx
mov ebx, 0xdeeed9e
push 0x200007d5
sub ebx, 1
not edx
add esi, ebx
push 0
sub ecx, 0x98563a3
or ecx, ebx
call eax
sub ecx, esi
add edx, 0x8fd95895
add eax, 0x20000711
mov ebx, esi
inc edx
mov edi, 0xb22becda
sub edx, 0x37cb5bd7
mov edx, ecx
mov dword [eax], edi
add edx, 0x20f3f9c1
add edx, 0x284e925e
mov esi, 0xf2d783a0
mov edi, dword [eax]
add edx, 0xc40468fb
and esi, ebx
cmp edi, 0xb22becda
je 0xa78b73
mov ebx, 0
mov byte [ebx], dl
mov ebx, 0xeb18ea91
mov esi, 0x981e3166
inc ecx
mov esi, edx
or ebx, ebx
mov ecx, edi
and edi, ecx
mov edi, ecx
mov ebx, section.UPX1
add edi, edi
mov edi, 0x5a6818ee
not edi
mov esi, 0xa78795
inc ecx
sub edi, ecx
not edi
mov eax, 0
mov ecx, edi
add edi, 0x7c9f06ba
sub edi, 0xb86ff4ff
mov edx, 0xa78796
add ecx, 1
or ecx, edi
lea edx, [edx + eax]
mov ecx, edi
add edi, edi
dec edi
mov edx, dword [edx]
or ecx, edi
not ecx
add edi, ecx
and edx, 0xff
or ecx, ecx
sub ecx, 0xc1c79973
and edi, ecx
inc eax
or ecx, ecx
mov edi, ecx
cmp eax, 0x1f4
jne 0xa78bf2
mov eax, 0
and ecx, ecx
add ecx, 0x9842915b
or edi, edi
and edi, ecx
or ecx, edi
xor dword [ebx], edx
add edi, 0x58f8d0cf
or edi, edi
mov edi, 0xf4aaf22c
add ebx, 2
add edi, edi
sub ecx, 0x987b4e30
sub ecx, 1
cmp ebx, esi
jl 0xa78bb3
sub edi, ecx
mov edi, ecx
sub edi, ecx
sub ecx, 0xb000590b
mov edi, 0x6806e2a8
mov eax, section.UPX1
and edi, edi
not ecx
add ecx, edi
mov esi, section.UPX1
or ecx, edi
not edi
mov edx, 0xa78795
or ecx, edi
not edi
mov ebx, 0
or edi, edi
mov edi, 0xbb05fb5a
and edi, ecx
mov bl, byte [esi]
or edi, edi
inc ecx
not ecx
mov byte [eax], bl
add edi, ecx
not ecx
inc eax
add edi, ecx
sub edi, ecx
mov edi, 0x3272fb9c
add esi, 2
sub ecx, 1
sub ecx, edi
add ecx, 0x10ef0e73
cmp esi, edx
jle 0xa78c67
sub edi, ecx
add ecx, 0x18e909bb
mov edi, ecx
mov edi, 0x9bdbcea7
and ecx, edi
sub esp, 4
mov dword [esp], 0x8dc6a0
not ecx
add ecx, 1
add ecx, ecx
ret