Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x2f342e22
inc ecx
mov esi, ecx
add ecx, 0xf9657198
popal
add esi, 0xdcb3d16a
add esi, ecx
or ecx, ecx
mov eax, 0
mov esi, edx
add edi, 0x6221b086
not edi
sub ecx, edi
mov ebx, esi
add edi, 0x6afc92a4
mov edi, 0x92e46082
mov edx, ebx
add ecx, edi
mov edi, ecx
inc eax
mov edi, 0x411f255e
sub edi, 0xcfee2d3f
mov ecx, 0x2ad8f9d2
cmp eax, 0x100f251
jne 0xa789cb
mov edi, ecx
not edi
sub ecx, 1
sub esi, ecx
mov eax, 0xa78796
not esi
inc edx
mov edi, 0xa7898a
not ecx
mov esi, ecx
and esi, edx
mov ebx, dword [eax]
not edx
mov esi, 0x6ff56234
or ecx, esi
and ebx, 0xff
add esi, ecx
inc esi
xor dword [edi], ebx
mov edx, esi
sub edx, 1
and edx, edx
add edi, 1
dec edx
sub ecx, edx
add eax, 1
sub edx, esi
and esi, esi
cmp edi, entry0
jl 0xa78a26
and edx, ecx
add edx, 0x375f41d
sub edx, 1
sub ecx, esi
dec esi
mov ecx, esi
add esi, esi
mov edi, 0xa7898e
not ecx
and edx, ebx
and ebx, edx
mov edi, dword [edi]
and ebx, ebx
mov edx, esi
mov edi, dword [edi]
and ecx, ebx
sub esi, ecx
or esi, ebx
push edi
mov edx, ebx
not esi
mov edi, 0xa7898a
mov ecx, ebx
add esi, 1
mov edi, dword [edi]
add edx, edx
add ebx, esi
or edx, esi
mov edi, dword [edi]
and edx, ecx
inc esi
mov esi, 0xcc2ec9da
push 0xa78992
mov ebx, edx
and esi, ecx
mov ecx, 0x2ddcf81a
call edi
add ebx, ecx
sub esi, edx
pop edi
mov ecx, ebx
add ebx, ecx
push 0xa7899f
add ebx, 0x17b28ff2
add ecx, ebx
or esi, esi
push eax
sub edx, 0xa0f07e35
mov esi, 0xc3c986d1
add edx, 0xfd28f210
call edi
sub esi, edx
add ebx, 0xbc3fcbd5
add esi, ebx
push 0x40
mov esi, ecx
dec ecx
mov ecx, 0x2cca4fc7
push 0x3000
mov esi, 0x9c4d55e3
and esi, edx
not ebx
push 0x2000076e
and ecx, ecx
sub ecx, edx
push 0
mov ecx, edx
inc ecx
mov ebx, 0xf8eb676b
call eax
sub ebx, 0x23b39df
or esi, ecx
mov esi, ebx
add eax, 0x200006f1
mov ebx, edx
mov esi, ebx
mov edi, 0xdd78afe4
and esi, edx
mov ecx, ebx
mov dword [eax], edi
mov esi, ecx
dec esi
mov edx, 0xe9b0dbaa
mov edi, dword [eax]
mov edx, esi
or ebx, ecx
inc edx
cmp edi, 0xdd78afe4
je 0xa78b6d
mov ebx, 0
mov ecx, dword [ebx]
inc ecx
sub edx, 0x826374de
sub ecx, edx
or edx, esi
mov esi, 0x35618f05
sub esi, 1
dec esi
mov esi, ecx
mov eax, section.UPX1
add esi, 0x768d9b63
mov esi, ecx
dec esi
mov edi, 0xa78795
sub esi, 1
sub esi, ecx
mov ebx, 0
add ecx, ecx
not ecx
mov edx, 0xa78796
or esi, esi
mov esi, 0x5b987251
and ecx, esi
lea edx, [edx + ebx]
or ecx, esi
mov esi, 0xe45e60e4
mov edx, dword [edx]
not esi
add esi, 0x962faa3
and ecx, esi
and edx, 0xff
inc ecx
inc ecx
add ebx, 1
inc ecx
sub ecx, esi
cmp ebx, 0x1f4
jne 0xa78bec
mov ebx, 0
add ecx, ecx
inc esi
sub esi, 0x206bd17d
or esi, ecx
and esi, esi
xor dword [eax], edx
mov ecx, esi
sub ecx, esi
or esi, esi
add eax, 2
dec ecx
and ecx, ecx
add esi, ecx
cmp eax, edi
jl 0xa78baa
add ecx, esi
mov ecx, esi
and esi, esi
sub ecx, 0xffa87d50
mov eax, section.UPX1
inc edx
inc edx
add edx, 0x6775c0dd
mov ecx, section.UPX1
mov esi, edx
mov esi, 0xb13eddf7
dec esi
mov edi, 0xa78795
or edx, edx
inc edx
mov ebx, 0
mov esi, edx
add esi, esi
mov esi, edx
mov bl, byte [ecx]
or esi, edx
sub edx, 0x3514e8cb
mov byte [eax], bl
inc esi
mov edx, esi
add esi, 1
inc eax
mov edx, esi
or esi, esi
add ecx, 2
sub esi, 1
or edx, esi
cmp ecx, edi
jle 0xa78c4d
sub edx, esi
add esi, 0x508f50ec
sub edx, esi
mov ecx, 0xe123cd67
inc esi
mov ecx, 0xb9512d57
push 0x8dc6a0
add esi, ecx
sub ecx, 1
ret