Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x8fa82ff5
add edx, edx
add edx, edx
not edx
popal
not edx
not esi
mov ebx, 0
mov eax, edi
not esi
add esi, 0x34744e1b
mov ecx, eax
add edx, edx
add esi, 0x7ca011ab
sub esi, edx
mov edi, ecx
mov esi, edx
not edx
add ebx, 1
or esi, edx
inc esi
cmp ebx, 0x1006f6d
jne 0xa789c2
or edx, edx
add esi, 0xf389c9d8
mov esi, edx
not esi
sub edx, 0x666c3845
mov esi, 0xa78796
sub edi, ebx
or ecx, ecx
or ebx, ecx
mov edx, 0xa7898a
not edi
sub edi, 0xbcf8dce6
or ecx, edi
mov eax, dword [esi]
and ecx, edi
or ecx, edi
mov ebx, edi
and eax, 0xff
sub ebx, 0x34a71641
and ecx, edi
xor dword [edx], eax
add ecx, ecx
inc ecx
inc edx
sub edi, ecx
add edi, edi
inc esi
add ecx, 1
sub ebx, 0x523ce3d5
cmp edx, entry0
jl 0xa78a1f
mov edi, 0xbd63ab81
add ebx, edi
mov edi, ebx
mov edi, ecx
add ecx, edi
inc esi
not edx
or ecx, ecx
mov edi, 0xa7898e
add esi, edx
sub ebx, 1
mov ebx, 0x3d0e995
mov edi, dword [edi]
inc esi
add ecx, 0x291ed429
not ecx
mov edi, dword [edi]
and ecx, ebx
or ebx, ecx
push edi
not ebx
add ebx, esi
mov esi, ecx
mov edi, 0xa7898a
sub ecx, 0x476c280d
sub ecx, 1
or esi, esi
mov edi, dword [edi]
and edx, esi
add ebx, ebx
add ecx, 0x6712ceb2
mov edi, dword [edi]
add edx, edx
sub ecx, edx
push 0xa78992
sub esi, edx
add ecx, esi
mov esi, edx
call edi
add esi, edx
mov ebx, 0xa1fbcf6f
mov edi, dword [esp]
add esp, 4
sub edx, 0xe7c7b037
sub edx, ebx
sub esp, 4
mov dword [esp], 0xa7899f
or esi, ebx
mov ebx, 0x6ef53229
add edx, 0x294da012
push eax
mov ecx, ebx
add ecx, 0xf8f4aa87
add ecx, 1
call edi
mov ebx, edx
add ecx, 0x28465ae0
sub esp, 4
mov dword [esp], 0x40
add ebx, 0x75077ca2
add esi, ebx
add esi, 0xdae30d3
push 0x3000
sub edx, 0x7e9b59f0
and ecx, ebx
push 0x20000ffe
add esi, 0x547d04cf
dec edx
push 0
dec edx
add ebx, edx
call eax
add esi, 0x692bab82
add ecx, 1
or ebx, ecx
add eax, 0x20000f5d
or ebx, esi
mov edx, ecx
mov edi, 0xe2a26b1b
mov ebx, esi
sub esi, ebx
inc edx
mov dword [eax], edi
mov esi, ecx
sub edx, esi
mov edi, dword [eax]
dec ebx
mov esi, ebx
and ecx, edx
cmp edi, 0xe2a26b1b
je 0xa78b84
mov ecx, 0
mov dword [ecx], eax
not ebx
and ebx, ecx
dec esi
or ebx, ecx
dec ecx
add ebx, 0x659a447f
sub edx, 0x810a4499
add edx, 1
sub esi, 0x69a248a8
mov edi, section.UPX1
add edx, 0xdc84ff01
sub edx, esi
sub edx, esi
mov ecx, 0xa78795
sub esi, 0x22eb5ec
sub edx, 0xeef83001
mov eax, 0
not esi
and edx, esi
sub edx, esi
mov ebx, 0xa78796
add esi, 1
add edx, 0x4a05a114
lea ebx, [ebx + eax]
add edx, 0xbb628088
sub esi, edx
add esi, 0xcefbceca
mov ebx, dword [ebx]
sub edx, 0x242e2b87
sub edx, 0x6a9b29aa
mov edx, esi
and ebx, 0xff
sub edx, 0x9ce1e577
sub edx, esi
or edx, esi
add eax, 1
dec edx
or esi, edx
cmp eax, 0x1f4
jne 0xa78c27
mov eax, 0
not esi
add edx, 0xb4769f
inc edx
or edx, esi
sub edx, 0x823e07a5
xor dword [edi], ebx
dec edx
inc edx
inc edx
add edi, 2
mov esi, edx
sub edx, 0x3b5119cb
or edx, esi
cmp edi, ecx
jl 0xa78bcf
mov esi, 0x7a278f37
mov esi, edx
mov edx, esi
mov edx, esi
not edx
mov esi, edx
mov edx, section.UPX1
mov esi, 0xc5b8155b
add ecx, 0x1ed7db71
dec esi
mov ebx, section.UPX1
add ecx, ecx
sub esi, 0xac466a1e
mov edi, 0xa78795
inc ecx
or esi, ecx
not ecx
mov eax, 0
inc esi
mov esi, ecx
mov al, byte [ebx]
or ecx, esi
or esi, ecx
not ecx
mov byte [edx], al
or esi, esi
add ecx, 0xababf40e
add esi, 0x32937c1f
inc edx
inc esi
sub ecx, 1
add ebx, 2
mov esi, 0xc490d644
add esi, 0xef4450b0
cmp ebx, edi
jle 0xa78c94
inc ecx
or ecx, ecx
or edx, edx
mov esi, 0xb2830bde
add esi, esi
push 0x8dc6a0
sub esi, edx
add edx, 1
ret