Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x29d7a8a2
and edi, eax
add edi, 0x1fa4e0f4
sub edi, eax
popal
dec edi
not eax
dec eax
mov ebx, 0
mov edx, edi
mov esi, 0x5265d23f
not esi
dec esi
mov eax, edx
sub ecx, esi
sub esi, 0x9d6630b3
mov esi, 0xe9ef8c26
mov edi, eax
not ecx
mov ecx, 0x249e980
sub ecx, esi
inc ebx
not ecx
or esi, ecx
not ecx
cmp ebx, 0x100a700
jne 0xa789c6
mov ecx, esi
sub ecx, esi
add eax, 0x88f2b59e
sub edi, 0xf867f915
mov eax, edi
mov ebx, 0xa78796
sub edi, 0x2a30d669
mov ecx, edx
not edx
mov eax, 0xa7898a
dec ecx
or ecx, ecx
mov edx, 0x4586ef6e
mov esi, dword [ebx]
not ecx
inc ecx
and esi, 0xff
sub ecx, 0xada0f168
or edx, edx
xor dword [eax], esi
not ecx
and edi, edx
add eax, 1
sub ecx, 0x74b67d50
sub edi, 0x71e2d8ea
add edx, 1
inc ebx
not edi
and edx, edx
cmp eax, entry0
jl 0xa78a2b
sub edi, edx
add edx, edi
add ecx, 0xd8b5f6ac
mov edi, ecx
add esi, edx
mov ebx, edi
not edx
mov ecx, 0xa7898e
sub esi, edx
or edx, edi
mov ecx, dword [ecx]
add esi, edx
sub edx, 1
or ebx, edx
mov ecx, dword [ecx]
or edi, edx
or edx, edx
sub esp, 4
mov dword [esp], ecx
sub esi, 0x39c0537f
sub ebx, edx
add edx, 0x16b16141
mov ecx, 0xa7898a
sub edx, ebx
inc esi
mov ecx, dword [ecx]
sub ebx, 0xf908e4bf
add edi, 0xe06c2d81
mov ecx, dword [ecx]
not ebx
mov edx, ebx
push 0xa78992
add edx, 0x879f5339
sub ebx, 0x8870e3c6
add edx, 0x7cdae36
call ecx
not edi
add esi, ebx
pop ecx
inc ebx
or edx, esi
sub esp, 4
mov dword [esp], 0xa7899f
sub edi, 0x607b5761
sub ebx, 0x76501f5d
push eax
sub edx, 0x3ac9ad7a
sub edx, 0x86df8891
call ecx
not ebx
add ebx, esi
push 0x40
dec ebx
and esi, edi
mov esi, ebx
push 0x3000
add esi, 0xe303793f
or edx, esi
inc edi
push 0x20000ffa
add edx, 0x977ca457
mov ebx, esi
dec edx
push 0
sub ebx, 0x6fe83b19
not ebx
dec ebx
call eax
not edi
dec esi
dec ebx
add eax, 0x20000f7e
sub edx, 0xd5d2907f
and ebx, ebx
mov ecx, 0xe685bd0
add ebx, esi
dec edi
sub esi, 0xab4d99a2
mov dword [eax], ecx
mov edx, esi
add esi, esi
mov ecx, dword [eax]
add edi, ebx
mov esi, ebx
cmp ecx, 0xe685bd0
je 0xa78b85
mov eax, 0
mov cl, byte [eax]
sub esi, edx
sub ebx, esi
add ebx, esi
or edi, ebx
dec ebx
add eax, edi
not edi
mov ebx, section.UPX1
sub eax, edi
add eax, 0x47b21316
mov edx, 0xa78795
mov eax, edi
sub eax, edi
inc edi
mov esi, 0
or eax, eax
or eax, edi
inc edi
mov ecx, 0xa78796
sub edi, 0xc7b601
not edi
add eax, eax
lea ecx, [esi + ecx]
sub eax, 0xfb58003c
sub edi, 1
mov ecx, dword [ecx]
mov edi, 0x660549ac
not edi
and ecx, 0xff
mov edi, eax
mov eax, edi
add esi, 1
or edi, eax
and eax, eax
cmp esi, 0x1f4
jne 0xa78bfb
mov esi, 0
add edi, eax
or eax, edi
not edi
and eax, edi
xor dword [ebx], ecx
add eax, 0x711fdc8
mov eax, edi
add ebx, 2
sub eax, edi
add edi, edi
not edi
cmp ebx, edx
jl 0xa78bb3
mov edi, 0xb560f736
or eax, edi
and eax, edi
add edi, edi
mov edi, section.UPX1
add ecx, esi
or ecx, ecx
not ecx
mov edx, section.UPX1
sub esi, 0xf02594d0
mov ecx, esi
mov eax, 0xa78795
dec ecx
add esi, 0x2ae826a4
add esi, 0xcf5f1ea
mov ebx, 0
sub ecx, 1
add esi, esi
mov bl, byte [edx]
not esi
mov ecx, 0x13db0718
mov ecx, esi
mov byte [edi], bl
not ecx
inc esi
not esi
inc edi
sub ecx, esi
mov esi, ecx
add esi, 0x79930690
add edx, 2
mov ecx, 0xf1b09870
or esi, ecx
cmp edx, eax
jle 0xa78c63
mov ecx, esi
and ecx, ecx
sub edi, eax
mov eax, 0x527fa0c2
inc eax
push 0x8dc6a0
and eax, edi
sub edi, 1
not edi
ret