Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x407c6963
not edi
and edx, edx
popal
add edx, edi
sub edi, 0x3b8c0ecb
add edx, 1
mov ebx, 0
mov edi, ecx
or eax, edx
add edx, 0xcc4ce91a
mov esi, edi
add eax, 0x7c8ebde6
add eax, 0xb5720a87
mov ecx, esi
sub edx, 1
not eax
inc ebx
add eax, 1
add edx, edx
cmp ebx, 0x100457e
jne 0xa789ca
not eax
dec edx
mov edx, edi
sub edi, 0xe09b78ef
add edx, 0xb5ca5d37
mov esi, 0xa78796
add edx, ebx
mov edi, 0x1753e50
add edi, 0xd8630479
mov ecx, 0xa7898a
and edi, ebx
sub edx, edi
mov eax, dword [esi]
mov ebx, edx
or ebx, edx
and eax, 0xff
not edx
dec edx
mov edx, edi
xor dword [ecx], eax
add edx, 0x3b811460
mov edx, edi
add edx, 0xc639eeb1
inc ecx
and ebx, edx
inc ebx
mov edx, 0xf87d160f
add esi, 1
inc edi
not edi
dec edx
cmp ecx, entry0
jl 0xa78a2d
mov edi, ebx
mov edx, ebx
sub edi, 0xa6448c7c
and ebx, edi
sub ebx, edx
and edi, edi
not edi
sub edx, 1
mov ebx, 0xa7898e
mov edi, esi
mov edi, 0xdc6377b9
mov ebx, dword [ebx]
mov esi, edx
add edx, 1
mov edx, 0x7eabae37
mov ebx, dword [ebx]
mov edx, 0xadb08cd2
sub edi, esi
and esi, edi
push ebx
add edx, 0xf06cc1a0
and edi, edi
mov ebx, 0xa7898a
sub ecx, 0x37dce52e
add ecx, 0x127d4f94
mov edx, 0x7ac32115
mov ebx, dword [ebx]
not esi
and edi, esi
mov ebx, dword [ebx]
inc edi
sub edx, 1
dec esi
push 0xa78992
mov ecx, 0xc501c2af
or ecx, esi
sub ecx, edi
call ebx
add ecx, 0x26644fd9
sub edi, edx
add edi, ecx
mov ebx, dword [esp]
add esp, 4
dec edx
add edx, 0x6fbf0ad1
push 0xa7899f
sub edx, 0x7b584d35
or ecx, esi
push eax
add edi, 0xb26e0061
sub ecx, edx
call ebx
sub edx, edi
mov ecx, esi
add esi, 0x95698000
push 0x40
and ecx, edi
sub edi, 0x83203ab9
not ecx
push 0x3000
add ecx, edi
dec edx
push 0x20000e01
add ecx, 0xc9625ecd
sub esi, 0x41c29650
sub esp, 4
mov dword [esp], 0
or ecx, ecx
sub ecx, 1
sub ecx, edi
call eax
sub edi, ecx
mov edi, 0xc5bd8fab
mov edx, edi
add eax, 0x20000d76
add edx, 0xf43e0a53
not ecx
dec edi
mov ebx, 0xd8059d9d
and ecx, edi
add esi, ecx
sub esi, ecx
mov dword [eax], ebx
add edi, edx
and ecx, ecx
add esi, esi
mov ebx, dword [eax]
dec ecx
not edx
add edx, 0x18bb8423
cmp ebx, 0xd8059d9d
je 0xa78ba6
mov ecx, 0
mov dl, byte [ecx]
inc edi
mov ecx, 0xe27a630e
sub ecx, 0xe85b4781
sub ecx, 0xce81592c
not edx
add edi, edx
inc edi
mov edi, edx
mov esi, section.UPX1
or edx, edi
and edi, edx
add edi, 0xe32933f1
mov eax, 0xa78795
inc edx
sub edi, edx
mov ecx, 0
add edx, edx
mov edi, 0x4cf5572c
sub edx, edi
mov ebx, 0xa78796
inc edx
or edx, edx
or edx, edx
lea ebx, [ecx + ebx]
sub edi, edx
not edx
mov ebx, dword [ebx]
mov edi, 0x982be21e
sub edi, edx
and ebx, 0xff
inc edi
and edx, edx
add ecx, 1
sub edi, 0x36649bff
sub edi, 0x652e8ea3
cmp ecx, 0x1f4
jne 0xa78c26
mov ecx, 0
inc edi
and edi, edi
and edx, edi
sub edx, 0x80862248
mov edx, edi
xor dword [esi], ebx
add edx, 0x6e04b589
or edx, edi
add esi, 2
add edx, edx
sub edi, edx
and edi, edi
cmp esi, eax
jl 0xa78be4
not edx
and edx, edx
sub edi, edx
dec edi
add edi, 0xa0fe9eb7
mov edx, section.UPX1
mov esi, eax
inc eax
mov edi, section.UPX1
or esi, esi
sub eax, 0xf7e2da8
not eax
mov ecx, 0xa78795
or esi, eax
mov eax, esi
mov ebx, 0
add esi, 0x2df187a0
sub eax, 1
add eax, 0x19e0c4e0
mov bl, byte [edi]
sub eax, 0xe80628ce
add eax, 0xa57fcf2
mov byte [edx], bl
mov esi, 0xa3a470df
sub eax, esi
and eax, eax
inc edx
mov eax, 0x2108daa
sub esi, 0x4206ad2c
inc esi
add edi, 2
mov eax, esi
or eax, esi
mov esi, 0xe2177c8c
cmp edi, ecx
jle 0xa78c95
add esi, esi
mov esi, eax
sub edx, edi
dec edx
sub edi, edx
push 0x8dc6a0
add edx, edi
or edi, edx
mov edi, edx
ret