Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x27b249d6
dec edx
add eax, edx
add edx, 0x2ca16f37
popal
add edx, 0xe0559da3
inc eax
mov edx, 0x1fa9b68b
mov ecx, 0
mov edx, edi
add ebx, 1
or ebx, eax
not ebx
mov esi, edx
sub eax, 0x976ec6f7
or eax, eax
mov edi, esi
sub ebx, 0xf61962e5
sub ebx, eax
inc ecx
sub ebx, eax
add ebx, 0x404d9333
cmp ecx, 0x10047ea
jne 0xa789cd
dec ebx
or eax, ebx
sub edx, eax
add eax, 0x1c084214
add edx, 1
mov ecx, 0xa78796
inc ebx
dec esi
mov ebx, 0xf08546cf
mov eax, 0xa7898a
sub edx, ebx
or ebx, ebx
not esi
mov edi, dword [ecx]
sub ebx, esi
and edx, edx
and edi, 0xff
add esi, 1
mov esi, edx
xor dword [eax], edi
add ebx, 0x5512d76
add ebx, esi
inc eax
add edx, 0x321593c9
mov edx, 0x27f97316
add esi, 1
inc ecx
or edx, esi
or edx, esi
cmp eax, entry0
jl 0xa78a2a
and ebx, ebx
mov ebx, 0x75057513
add ebx, edx
sub esi, 0xefc7385
not ecx
inc ecx
mov esi, 0xa7898e
sub ebx, 0x2a93c7ff
mov edx, ebx
mov esi, dword [esi]
mov edi, ecx
not ebx
mov esi, dword [esi]
dec ebx
sub edx, 0xb812c0d2
push esi
mov edx, 0xfaeedf39
and edi, ecx
mov esi, 0xa7898a
dec ebx
mov ecx, edi
mov esi, dword [esi]
mov ebx, ecx
dec edx
mov esi, dword [esi]
and edx, ecx
sub ebx, 1
push 0xa78992
and ebx, ebx
mov ebx, 0x2e5562ad
mov edi, ecx
call esi
add edx, edx
not ecx
pop esi
or ecx, ebx
sub edx, 0x49629549
sub edi, ecx
push 0xa7899f
add edx, edi
and edi, edi
push eax
not edx
and ecx, edi
call esi
not edx
or edi, ecx
push 0x40
sub edi, ebx
mov ecx, edx
push 0x3000
add ecx, ecx
sub ecx, 1
inc edx
push 0x20000ad8
add edx, 1
or edx, ecx
push 0
mov ebx, edi
dec ecx
call eax
add edi, 1
sub ebx, 0xc155148
add eax, 0x20000a12
sub edi, ecx
and edi, ebx
inc ebx
mov esi, 0xd62ead93
sub edx, ecx
add ecx, ecx
sub ecx, 0xbb4dff34
mov dword [eax], esi
sub edi, ebx
sub ecx, 0x8146af13
not edx
mov esi, dword [eax]
add ecx, 0xfbdad1e1
add edi, 1
cmp esi, 0xd62ead93
je 0xa78b68
mov ecx, 0
mov ebx, dword [ecx]
sub edx, 1
sub edi, ecx
mov edi, 0xc936e258
add edi, 0xa24c41db
add edx, ebx
sub edx, eax
sub eax, edx
mov esi, section.UPX1
mov eax, 0x9d125825
and eax, eax
mov ebx, 0xa78795
sub eax, edx
add edx, 0x220ced47
mov edi, 0
mov eax, edx
add eax, 1
not eax
mov ecx, 0xa78796
add edx, 0x60d6e8eb
or edx, edx
not eax
lea ecx, [ecx + edi]
and edx, edx
mov eax, 0xd644b0cf
mov ecx, dword [ecx]
add edx, 0x76c3b4a
and eax, eax
and ecx, 0xff
not edx
mov edx, eax
inc edi
sub eax, 0x31b86ceb
not edx
mov edx, 0x905c3f5b
cmp edi, 0x1f4
jne 0xa78bf1
mov edi, 0
or eax, eax
sub edx, 0x4713cf70
mov eax, edx
sub eax, edx
or edx, edx
xor dword [esi], ecx
add eax, 0x5e3f5f7f
sub edx, 0xefcda434
add esi, 2
add edx, edx
mov edx, 0x31f1ea60
cmp esi, ebx
jl 0xa78ba9
mov eax, edx
sub edx, eax
dec eax
add edx, 0xb491bad8
mov ecx, section.UPX1
not edx
mov edi, edx
not edi
mov esi, section.UPX1
mov edx, 0x3ef313fc
and edx, edx
mov edx, 0xd2bcfae5
mov ebx, 0xa78795
add edi, edi
add edi, 0xe240364d
mov edx, edi
mov eax, 0
sub edi, 0x5729341d
inc edi
sub edx, 1
mov al, byte [esi]
and edx, edi
not edi
mov byte [ecx], al
and edi, edi
mov edx, edi
inc ecx
add edx, edi
add edi, edi
add esi, 2
and edi, edx
or edx, edi
cmp esi, ebx
jle 0xa78c6a
add edx, edi
not edi
not edx
sub edx, eax
or edx, eax
add edx, eax
push 0x8dc6a0
and eax, eax
dec edx
not eax
ret