Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x51fcca3f
and ecx, esi
or ecx, ecx
sub esi, 0x856e9c13
popal
sub esi, ecx
inc esi
sub esi, ecx
mov edx, 0
mov eax, esi
dec ecx
mov ebx, ecx
mov edi, eax
mov ecx, ebx
mov ecx, ebx
mov esi, edi
mov ecx, ebx
add ebx, 1
and ecx, ebx
inc edx
mov ecx, 0xd3485324
add ecx, ebx
inc ecx
cmp edx, 0x100e8cb
jne 0xa789c7
or ebx, ecx
and ecx, ebx
and ebx, ecx
sub esi, ecx
dec ecx
mov eax, 0xa78796
add ebx, ebx
and ebx, edx
or edx, ebx
mov esi, 0xa7898a
add edx, 0x83619cc9
dec edx
add edx, edx
mov ecx, dword [eax]
add edx, edi
mov edi, 0xc073fb7c
and ecx, 0xff
not edi
add edi, 0xf18960c7
xor dword [esi], ecx
not edx
mov ebx, 0x14000f23
sub edx, edi
inc esi
and edi, edx
sub ebx, edi
mov edi, 0x9dfa2499
inc eax
sub edi, edx
mov edi, edx
cmp esi, entry0
jl 0xa78a15
sub ebx, edx
sub edx, ebx
sub ebx, 0xf0e97be0
dec edi
or ebx, edx
add edx, esi
sub esi, 0x3d714806
or edi, ebx
mov ecx, 0xa7898e
mov esi, 0x5be7926d
add esi, edi
sub edx, ebx
mov ecx, dword [ecx]
or esi, esi
sub esi, edi
mov ecx, dword [ecx]
sub ebx, edi
sub edx, 0x8c874b26
push ecx
sub esi, 0x85775684
inc esi
mov ecx, 0xa7898a
mov esi, 0x7d5da2b4
mov esi, ebx
not ebx
mov ecx, dword [ecx]
add ebx, 1
add esi, edi
sub ebx, 0x1a0c6e70
mov ecx, dword [ecx]
mov esi, ebx
sub esi, ebx
sub ebx, 0xd471ac98
push 0xa78992
mov edi, ebx
inc esi
not ebx
call ecx
not esi
mov ebx, 0xd0d1e92b
and edi, esi
pop ecx
sub edi, 0x62aaf23
not esi
push 0xa7899f
add edx, 0x314a3ef7
and edi, edi
push eax
add edx, ebx
not esi
mov edi, 0x46583a2d
call ecx
or ebx, ebx
sub edi, 1
not edi
push 0x40
not ebx
inc ebx
sub esi, 0x20f025e4
sub esp, 4
mov dword [esp], 0x3000
and ebx, ebx
inc ebx
push 0x20000b44
and esi, esi
mov edx, 0x36be39ce
and edi, ebx
push 0
add edx, ebx
sub ebx, 0xcae1face
call eax
mov ebx, edi
sub ebx, esi
add eax, 0x20000a85
sub ebx, esi
and ebx, esi
mov ecx, 0x567e69b7
or edx, edx
add edi, ebx
add esi, edx
mov dword [eax], ecx
mov edx, 0xfc95f069
add esi, ebx
mov ecx, dword [eax]
sub edi, 1
add esi, 0x91cc44e8
mov ebx, 0xa6321b44
cmp ecx, 0x567e69b7
je 0xa78b76
mov ebx, 0
mov ecx, dword [ebx]
and edx, esi
inc edi
inc ebx
or ebx, edi
dec ebx
add edx, ebx
mov esi, 0x8dc7b3
mov ecx, 0x79bdffff
mov edi, section.UPX1
add esi, ecx
mov esi, ecx
inc esi
mov eax, 0xa78795
add ecx, ecx
not esi
mov ebx, 0
add ecx, 0x68ee4066
mov ecx, esi
sub ecx, esi
mov edx, 0xa78796
sub ecx, 0x36f5aee1
and ecx, esi
add ecx, ecx
lea edx, [edx + ebx]
mov ecx, 0xffe13624
inc esi
mov edx, dword [edx]
or ecx, ecx
not esi
sub esi, 0x2fc61f66
and edx, 0xff
sub esi, 0xfda18fe5
mov esi, ecx
not esi
add ebx, 1
and esi, esi
add esi, 0x8c857122
not ecx
cmp ebx, 0x1f4
jne 0xa78bfc
mov ebx, 0
add esi, esi
mov esi, 0x7b788ff2
and esi, esi
not ecx
sub ecx, 1
xor dword [edi], edx
mov esi, 0xf552cc81
sub esi, 1
add edi, 2
mov ecx, esi
add ecx, ecx
cmp edi, eax
jl 0xa78bab
and ecx, ecx
sub ecx, esi
or esi, ecx
not ecx
mov ebx, section.UPX1
sub edx, 1
or esi, edx
mov eax, section.UPX1
add edx, 0xdb9903e4
not esi
mov edi, 0xa78795
sub edx, 0x36e7ab6d
and esi, esi
mov ecx, 0
inc esi
mov esi, edx
mov esi, 0xd80ebc82
mov cl, byte [eax]
mov esi, 0xf71257f7
or esi, esi
mov byte [ebx], cl
not esi
or edx, edx
mov esi, edx
inc ebx
sub edx, esi
inc esi
sub edx, 1
add eax, 2
inc edx
not edx
dec edx
cmp eax, edi
jle 0xa78c68
and edx, esi
inc esi
sub esi, ecx
add ecx, 0xc2a33cd7
push 0x8dc6a0
or ecx, ecx
mov ecx, esi
ret