Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x37dcb2a3
not ecx
dec ecx
mov ebx, 0x6ccf1e12
popal
sub ecx, ebx
not ecx
dec ecx
mov edx, 0
mov ecx, ebx
or esi, edi
not edi
and esi, edi
mov eax, ecx
inc esi
or edi, edi
sub esi, edi
mov ebx, eax
not esi
or edi, edi
inc edx
mov edi, 0xd2f9bd95
mov edi, 0xc170015e
sub edi, 0x5c39ac5f
cmp edx, 0x100bb71
jne 0xa789c5
sub edi, 0x3b37adfc
add esi, 0x4f5ed11c
add ebx, ebx
sub ebx, ecx
mov esi, 0xa78796
mov eax, 0xd8bc5e85
or eax, edx
and edi, edi
mov ebx, 0xa7898a
sub edi, 0xa59356e2
inc edi
mov ecx, dword [esi]
sub edi, 0x6c491a7f
or edi, edx
sub edx, 0x62463a26
and ecx, 0xff
add edi, edi
and edi, edi
sub eax, edi
xor dword [ebx], ecx
and edx, edi
sub edi, edx
inc ebx
sub edi, eax
inc edi
sub eax, edx
inc esi
mov edi, 0x3d1c89ca
sub edx, 1
cmp ebx, entry0
jl 0xa78a21
inc edi
add eax, edi
add edi, 0x18eea4e0
mov eax, edi
add esi, edi
inc ebx
mov edx, 0xa7898e
inc ebx
mov edi, 0x99494c25
sub ecx, esi
mov edx, dword [edx]
add ecx, esi
inc esi
mov edx, dword [edx]
mov ebx, 0xfd3eaa51
add edi, esi
push edx
sub ebx, esi
add ebx, ecx
mov edx, 0xa7898a
or edi, edi
sub esi, 0x64bf5f51
mov edx, dword [edx]
add edi, 0xe381d49
add ecx, 1
mov edx, dword [edx]
and edi, ecx
or edi, ecx
sub esp, 4
mov dword [esp], 0xa78992
and edi, esi
dec edi
and ecx, ecx
call edx
sub ebx, 0xfdff21a0
mov esi, ebx
inc edi
pop edx
add ecx, 0x1c575342
dec ebx
push 0xa7899f
inc ecx
mov edi, 0xc6960fcc
push eax
not edi
not edi
add esi, esi
call edx
sub ecx, 0xd602270e
or edi, esi
sub esp, 4
mov dword [esp], 0x40
mov esi, 0x178630c8
inc edi
and esi, esi
push 0x3000
or edi, edi
dec ecx
push 0x20000f57
sub edi, 0xddf495c1
or ecx, ebx
push 0
mov ecx, 0x6bac8b8b
not ecx
call eax
inc ecx
mov esi, ecx
inc ecx
add eax, 0x20000edf
add esi, ebx
inc edi
mov edi, ebx
mov edx, 0x9092344f
dec ecx
or esi, ecx
not ecx
mov dword [eax], edx
add esi, 0xc4416e54
add edi, ebx
mov edx, dword [eax]
sub edi, 0x1c9bfc7e
mov esi, edi
mov ecx, 0xe7ffc0e1
cmp edx, 0x9092344f
je 0xa78b64
mov ecx, 0
mov byte [ecx], al
dec edi
add ecx, 0x763bc4ad
dec esi
sub ebx, esi
sub ecx, 0xd0d39658
not ecx
mov edi, section.UPX1
add ecx, 0x1f576ee8
mov ebx, 0x9817be6
mov eax, 0xa78795
mov ebx, ecx
dec ebx
and ebx, ecx
mov esi, 0
add ecx, 0xbd747345
add ecx, 0x2d594406
mov edx, 0xa78796
add ecx, ebx
not ebx
mov ebx, 0xcf8f36e7
lea edx, [edx + esi]
inc ecx
and ecx, ebx
mov edx, dword [edx]
add ecx, 0xa00ad2e2
and ecx, ecx
and edx, 0xff
not ecx
not ebx
inc esi
mov ecx, 0xe5e7c5eb
mov ecx, 0x9a5f345b
cmp esi, 0x1f4
jne 0xa78be1
mov esi, 0
sub ebx, ecx
not ecx
sub ecx, ebx
dec ebx
and ebx, ebx
xor dword [edi], edx
sub ecx, ebx
and ecx, ecx
add edi, 2
mov ecx, ebx
not ecx
cmp edi, eax
jl 0xa78ba1
sub ecx, ebx
add ebx, 0xb9e003d0
add ecx, ebx
add ecx, 0xc228a196
mov ecx, 0x62cf85ef
sub ecx, 1
mov edx, section.UPX1
mov ebx, 0x96a8cb7
and ebx, ebx
mov eax, section.UPX1
and esi, ebx
sub ebx, 0x7b4371a1
mov edi, 0xa78795
add ebx, 1
and ebx, esi
not esi
mov ecx, 0
and ebx, ebx
or ebx, esi
mov ebx, esi
mov cl, byte [eax]
and esi, ebx
or ebx, esi
mov byte [edx], cl
add ebx, esi
add ebx, 0x588c9e49
mov ebx, 0x31e4ff90
inc edx
inc ebx
dec esi
sub esi, ebx
add eax, 2
add esi, 0x98a898b9
add ebx, 0xf32fadb1
cmp eax, edi
jle 0xa78c50
not ebx
add ebx, 0xbd9cdd31
mov ebx, esi
mov ebx, ecx
or ebx, ebx
push 0x8dc6a0
mov ebx, 0x1ea90e6c
mov ebx, ecx
sub ecx, 1
ret