Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x4de1637e
mov ebx, ecx
add ebx, 0xaea39077
popal
sub ebx, 1
dec ebx
and ebx, ebx
mov ebx, 0
mov ecx, edx
or edi, eax
sub edi, eax
mov esi, ecx
sub eax, 0x325dffe0
add edi, edi
mov edx, esi
add eax, eax
or edi, edi
add edi, 0xaee979e8
inc ebx
mov eax, edi
inc eax
cmp ebx, 0x100cfaf
jne 0xa789c9
add edi, eax
mov edi, 0xaa889122
add ecx, 0xb79a3e71
not ebx
mov eax, 0xa78796
add ebx, edi
mov edi, 0xae15e59f
add ebx, ebx
mov ecx, 0xa7898a
and esi, edi
not ebx
mov edx, dword [eax]
mov ebx, 0x1b72e75a
mov edi, 0xbc0897be
and edx, 0xff
mov edi, esi
sub esi, ebx
xor dword [ecx], edx
inc ebx
mov edi, 0x9de0faa4
sub esi, 0xc318bf40
inc ecx
dec ebx
not esi
mov ebx, 0x4aac22f6
inc eax
or edi, ebx
or esi, edi
not ebx
cmp ecx, entry0
jl 0xa78a1b
add edi, 1
add edi, edi
add edi, 0xbeee155f
dec edi
add edi, 0xd11f313f
add edi, 1
mov ecx, 0xa7898e
or esi, ebx
mov ebx, edx
inc edi
mov ecx, dword [ecx]
sub esi, edx
sub edi, edx
mov ecx, dword [ecx]
inc esi
or edx, edx
sub esp, 4
mov dword [esp], ecx
or esi, edx
dec ebx
mov ecx, 0xa7898a
dec edx
sub ebx, edi
mov ecx, dword [ecx]
mov edx, 0xa3672a5f
sub esi, 0xb7a6ac9b
mov ecx, dword [ecx]
sub esi, 0xd9c8365b
sub edx, edi
sub esp, 4
mov dword [esp], 0xa78992
sub edx, ebx
sub edi, 0x75bb1b97
and ebx, edi
call ecx
or edi, esi
sub ebx, 0xeef6e443
mov edi, 0x66a70851
pop ecx
mov edi, 0xb7f64cae
not ebx
push 0xa7899f
inc edx
or edi, ebx
add edi, 0x910f850e
sub esp, 4
mov dword [esp], eax
or ebx, esi
not esi
mov ebx, edi
call ecx
inc edx
mov esi, edx
push 0x40
and edi, esi
add edi, edi
and edi, edi
sub esp, 4
mov dword [esp], 0x3000
add edx, 0x25cdd89d
and edx, ebx
add esi, edi
push 0x200007a7
sub ebx, 1
add edx, ebx
sub esi, edx
push 0
add edx, 1
mov edx, edi
call eax
add edx, 1
dec edx
add eax, 0x20000710
mov edi, 0xb7923c0e
and edx, esi
add esi, ebx
mov ecx, 0x87811496
sub edi, 1
inc esi
inc edi
mov dword [eax], ecx
sub ebx, edi
not esi
inc edi
mov ecx, dword [eax]
dec edi
sub edi, 0x5c43687e
cmp ecx, 0x87811496
je 0xa78b7c
mov edx, 0
mov byte [edx], bl
and ebx, edx
mov edi, 0xea8cad4b
or ebx, edx
sub edi, 1
and esi, edi
sub ebx, esi
sub ebx, ecx
mov ebx, 0x9627d781
and ebx, ebx
mov eax, section.UPX1
not ebx
dec ecx
inc ecx
mov edx, 0xa78795
not ecx
inc ebx
mov ebx, ecx
mov esi, 0
inc ecx
and ebx, ecx
mov edi, 0xa78796
sub ecx, ebx
or ebx, ebx
lea edi, [edi + esi]
mov ecx, ebx
add ebx, 1
mov edi, dword [edi]
mov ebx, 0x543cee03
and ecx, ebx
sub ecx, 0xa1af2be7
and edi, 0xff
or ebx, ecx
add ebx, 0x3766398e
add esi, 1
sub ecx, ebx
add ecx, ebx
cmp esi, 0x1f4
jne 0xa78bfb
mov esi, 0
sub ecx, 0x4e213d96
mov ebx, 0xa592d5d6
mov ebx, 0xcf328658
add ecx, ebx
add ecx, ecx
xor dword [eax], edi
add ecx, 0x4727bb3c
mov ebx, 0x5d23ba24
add ebx, ecx
add eax, 2
and ecx, ebx
not ebx
cmp eax, edx
jl 0xa78bb3
mov ebx, ecx
inc ebx
or ecx, ecx
mov ebx, 0xb8b1de7d
mov eax, section.UPX1
mov esi, 0xbb93755
mov ecx, esi
mov edx, section.UPX1
add esi, 0x4531c66b
add esi, 0x8660f8f0
and esi, ecx
mov edi, 0xa78795
inc esi
add esi, ecx
add esi, ecx
mov ebx, 0
dec esi
mov esi, ecx
mov bl, byte [edx]
sub esi, 0x2d463a6e
or ecx, ecx
mov byte [eax], bl
add esi, 0x82427219
not ecx
inc eax
add ecx, esi
mov esi, 0xcf268829
sub ecx, esi
add edx, 2
mov ecx, esi
and ecx, ecx
sub ecx, 0xe06267aa
cmp edx, edi
jle 0xa78c6b
mov esi, ecx
mov esi, ecx
sub esi, 0xd49720b7
sub ecx, 1
add ecx, 1
push 0x8dc6a0
add ecx, 0x1bb0c982
sub ebx, ecx
mov ecx, ebx
ret