Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x31a668c9
not eax
mov eax, ecx
popal
mov eax, 0xa283c353
sub ecx, eax
mov eax, 0
mov ebx, esi
mov edx, 0x399ddfa1
mov edi, edx
mov ecx, ebx
add edi, edi
add edx, 0xfd9e4481
mov esi, ecx
add edx, 0xfff7632b
add edx, 0x1f53156b
inc eax
dec edx
dec edi
add edx, edx
cmp eax, 0x100f467
jne 0xa789c3
mov edi, 0x697d3a29
inc edx
sub ecx, 0x48c9e1fe
or ecx, eax
mov edi, 0xa78796
add eax, 0x3bb50618
sub esi, ebx
mov ecx, 0xa7898a
sub ebx, eax
add eax, 0x90b28579
mov edx, dword [edi]
sub eax, 0xf39f3fb6
add esi, ebx
and edx, 0xff
dec ebx
dec esi
xor dword [ecx], edx
sub esi, 0x8be2f24f
sub esi, eax
add ecx, 1
add ebx, ebx
sub ebx, esi
add edi, 1
add ebx, 0xc6b613c0
add ebx, 0xc0adc12
sub eax, ebx
cmp ecx, entry0
jl 0xa78a1d
inc ebx
sub eax, esi
add esi, 0x79760aed
inc ebx
mov esi, 0xdcf25628
sub esi, 0xc5423a0d
mov edx, 0xa7898e
mov esi, 0x1e73fbfc
not ecx
mov edx, dword [edx]
sub edi, ecx
mov ecx, edi
mov edx, dword [edx]
and ecx, esi
mov ebx, 0x7c1f5345
sub esp, 4
mov dword [esp], edx
inc ecx
sub esi, ebx
mov edx, 0xa7898a
mov esi, ebx
mov esi, 0xc5ddb627
mov edx, dword [edx]
mov ecx, 0x5dc03966
not ebx
add edi, 0xac62fee3
mov edx, dword [edx]
and edi, ecx
mov ebx, 0xb1fefe19
not edi
push 0xa78992
and ebx, edi
mov edi, ecx
call edx
or ecx, ebx
not ecx
mov edx, dword [esp]
add esp, 4
sub edi, 0x65989dc6
mov esi, edi
push 0xa7899f
and edi, edi
inc esi
push eax
mov edi, ecx
inc ecx
and edi, edi
call edx
mov ebx, esi
add ebx, edi
mov ebx, 0xe350baaf
push 0x40
add esi, 0xe93223d
mov ebx, ecx
push 0x3000
sub ebx, esi
add ecx, 1
push 0x2000093c
add ecx, edi
not edi
sub ebx, 0x4721a4b5
push 0
add ecx, esi
sub esi, 0xbefc6aa
add ecx, 0xd9571756
call eax
or edi, edi
and ecx, edi
add eax, 0x200008d4
and esi, ecx
sub esi, 0x363e6122
mov edx, 0x38dacf70
not ebx
add edi, 0x1f6f3a8b
add edi, 0xb15928c4
mov dword [eax], edx
mov edi, ecx
or ecx, esi
and edi, edi
mov edx, dword [eax]
add ecx, 0xd220f52a
sub esi, 0x919a063
sub esi, 0xdbfc97b5
cmp edx, 0x38dacf70
je 0xa78b86
mov edx, 0
mov byte [edx], bl
sub esi, 0xf95d6720
sub esi, ecx
dec ecx
and ecx, esi
mov ecx, 0x41aea2dc
mov ebx, esi
and ecx, ecx
and eax, ecx
mov esi, section.UPX1
or ecx, ecx
add ecx, 0x207e1c24
add ecx, 0xf759569d
mov edx, 0xa78795
mov ecx, 0x8b61db68
dec eax
mov edi, 0
not ecx
add ecx, 1
mov ecx, eax
mov ebx, 0xa78796
add ecx, ecx
inc ecx
lea ebx, [ebx + edi]
mov eax, 0xc42b11ca
not eax
add ecx, eax
mov ebx, dword [ebx]
and ecx, ecx
mov eax, ecx
add ecx, ecx
and ebx, 0xff
add eax, ecx
sub ecx, 1
inc edi
and ecx, eax
or ecx, eax
sub ecx, eax
cmp edi, 0x1f4
jne 0xa78c07
mov edi, 0
dec ecx
add eax, eax
dec ecx
mov eax, ecx
inc eax
xor dword [esi], ebx
add eax, 1
add ecx, 0x648f22d4
dec ecx
add esi, 2
sub eax, 0xed294202
mov eax, 0x61981245
cmp esi, edx
jl 0xa78bc9
or eax, ecx
and ecx, ecx
inc ecx
mov ecx, eax
mov eax, 0x611ff338
or ecx, eax
mov edx, section.UPX1
sub edi, esi
sub esi, 0x9faa72e5
mov ecx, section.UPX1
not edi
add esi, edi
mov ebx, 0xa78795
sub esi, 0xa314fc43
or edi, edi
mov eax, 0
and esi, esi
or edi, edi
add edi, 0x5c3591d6
mov al, byte [ecx]
inc esi
or edi, esi
mov byte [edx], al
inc esi
and edi, edi
inc edx
sub esi, edi
dec edi
sub edi, 0x8fa08d54
add ecx, 2
dec edi
add edi, 1
mov esi, 0x37d88ca4
cmp ecx, ebx
jle 0xa78c76
mov esi, edi
not esi
or eax, ecx
sub ecx, 0x1cc5c3de
sub eax, 1
push 0x8dc6a0
and eax, eax
and ecx, eax
ret