Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x63ba7d6d
not edx
add ebx, ebx
add ebx, edx
popal
mov edx, 0x103ea86e
add edx, 0xe9c648bd
mov edi, 0
mov esi, ecx
sub ebx, 0x367343f7
inc edx
mov eax, esi
add ebx, 1
mov ebx, edx
mov ecx, eax
sub ebx, 0x4e05a781
sub edx, 1
inc edi
add ebx, 0xb84cde78
and ebx, ebx
mov ebx, edx
cmp edi, 0x1003bde
jne 0xa789c9
not edx
mov edx, ebx
not edx
dec edx
add ebx, edx
mov ecx, 0xa78796
sub edx, 1
mov edx, 0xde86155a
mov ebx, 0xa7898a
mov edx, 0x9e72974
add eax, 0xbc2b2966
dec edx
mov esi, dword [ecx]
add eax, eax
or edx, edi
and esi, 0xff
and edx, edx
add edi, 0xbf0433d8
xor dword [ebx], esi
mov eax, 0x1aa91bcc
not eax
add ebx, 1
mov edi, eax
or eax, eax
inc ecx
sub eax, 0x6f2640d7
not edi
cmp ebx, entry0
jl 0xa78a2b
or eax, eax
inc eax
add edx, 0x8e1ba337
dec eax
sub edx, 0xcd039b18
and ebx, ebx
not ebx
add esi, edx
mov ecx, 0xa7898e
add edx, edi
sub esi, 0x1d56e883
mov ecx, dword [ecx]
inc edx
mov edi, esi
add edx, esi
mov ecx, dword [ecx]
sub esi, ebx
mov esi, edx
sub esp, 4
mov dword [esp], ecx
not esi
mov esi, 0x3f882d0b
add edi, esi
mov ecx, 0xa7898a
and esi, ebx
sub edi, 1
mov ecx, dword [ecx]
or ebx, ebx
sub edx, esi
and ebx, edi
mov ecx, dword [ecx]
mov edi, esi
mov esi, 0xec48c5f3
add esi, 0x394b7ebc
sub esp, 4
mov dword [esp], 0xa78992
sub esi, 0xb5d5d7bb
or edi, ebx
call ecx
sub ebx, 0x7d0e8e65
add esi, esi
pop ecx
dec edx
sub esi, 0xeb88bccc
push 0xa7899f
or esi, esi
dec edi
sub esp, 4
mov dword [esp], eax
add edx, esi
add esi, esi
call ecx
dec ebx
sub esi, edi
dec esi
push 0x40
add esi, ebx
and edx, edx
push 0x3000
add ebx, edx
and ebx, edx
not edi
sub esp, 4
mov dword [esp], 0x20000525
and esi, edi
or edi, ebx
or edi, edx
push 0
or esi, edx
not edx
call eax
and edx, ebx
add edx, 0x3784ac3c
add eax, 0x2000046d
inc ebx
dec edx
mov ecx, 0x81e29c73
sub edx, ebx
not edx
mov dword [eax], ecx
or edi, ebx
sub ebx, esi
add ebx, edx
mov ecx, dword [eax]
or ebx, edx
dec ebx
cmp ecx, 0x81e29c73
je 0xa78b6a
mov ebx, 0
mov al, byte [ebx]
not edx
sub edx, ebx
sub esi, edx
sub esi, ebx
sub ebx, 0xa9183850
add ebx, edx
inc ebx
mov ecx, section.UPX1
sub ebx, edx
inc ebx
sub edx, 1
mov esi, 0xa78795
inc edx
mov edx, 0x8f6e5c2
or ebx, ebx
mov edi, 0
mov edx, 0x90a8fc35
not ebx
mov eax, 0xa78796
mov edx, ebx
and ebx, ebx
lea eax, [edi + eax]
or edx, edx
add edx, ebx
mov edx, ebx
mov eax, dword [eax]
add ebx, 1
mov edx, ebx
and eax, 0xff
sub edx, 1
dec ebx
inc edi
add ebx, ebx
add edx, 0x61b34a08
cmp edi, 0x1f4
jne 0xa78be1
mov edi, 0
dec ebx
sub edx, ebx
sub ebx, 0x10e4d3cb
sub ebx, edx
sub ebx, 0xbc6645af
xor dword [ecx], eax
sub edx, ebx
mov ebx, edx
add ecx, 2
and edx, edx
add edx, edx
cmp ecx, esi
jl 0xa78ba2
add edx, ebx
add edx, ebx
sub ebx, edx
inc edx
sub edx, ebx
mov ebx, edx
mov ecx, section.UPX1
add eax, 0xa70539d5
dec edi
mov esi, section.UPX1
add edi, 1
sub edi, eax
mov edx, 0xa78795
mov eax, edi
sub edi, 0x25364a38
mov ebx, 0
add edi, eax
sub edi, 0x8b76f3cb
sub edi, 0x46ef3f96
mov bl, byte [esi]
and eax, edi
dec edi
mov byte [ecx], bl
add edi, edi
add edi, eax
add ecx, 1
or edi, edi
mov edi, 0x9d724961
inc edi
add esi, 2
sub eax, 0x7c87482f
not eax
cmp esi, edx
jle 0xa78c4e
add edi, 0xd647ae23
inc edi
sub ebx, edx
sub edx, 0x37052f4
push 0x8dc6a0
add ebx, edx
not ebx
ret