Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x6c7cc473
sub esi, 0xb2addae
add esi, 0x9fbd916f
popal
add esi, 0x4b6bceaa
sub edx, 0xc798bc4b
mov esi, 0
mov eax, ebx
or ecx, edi
mov edi, ecx
and edi, ecx
mov edx, eax
mov edi, ecx
mov ecx, 0xf3844ed
mov ebx, edx
mov edi, ecx
and ecx, ecx
or edi, ecx
inc esi
dec ecx
add edi, 1
cmp esi, 0x1005fc2
jne 0xa789d0
add ecx, edi
not ecx
add edx, 0xdb6c2f8f
or edx, edx
or edx, edx
mov esi, 0xa78796
sub ebx, 0x6397b1fc
add ebx, ebx
mov edi, 0xa7898a
add ebx, 0x6ef1d5ed
dec eax
add edx, 0x42dadc40
mov ecx, dword [esi]
dec ebx
add edx, 1
and ecx, 0xff
inc eax
sub eax, 0x31d52a6d
xor dword [edi], ecx
and eax, edx
mov eax, 0x24e3574e
mov edx, 0xd8c10f3
inc edi
inc eax
dec ebx
and eax, edx
add esi, 1
mov edx, ebx
sub ebx, edx
sub ebx, 0x1dca7e7
cmp edi, entry0
jl 0xa78a2a
sub eax, ebx
mov ebx, eax
sub eax, 0x6e6be145
and edx, edx
sub eax, edx
dec edx
and ecx, edx
mov esi, 0xa7898e
sub ecx, edi
add ebx, 1
sub edi, edx
mov esi, dword [esi]
sub ecx, 0xa8fbd5cb
not edi
mov ecx, 0x57a0c465
mov esi, dword [esi]
add ebx, edx
and edi, edi
sub ebx, ecx
push esi
mov ebx, 0xc6789fc3
sub ecx, 0x821f3f1e
mov esi, 0xa7898a
and ebx, ecx
sub ecx, edx
mov esi, dword [esi]
not ecx
add ecx, 0x80dc4e27
mov ecx, 0x1ee50e54
mov esi, dword [esi]
dec edx
sub ebx, 0xd1c8921c
add edx, 0x13c5d0c7
push 0xa78992
sub edx, edi
add edx, 0x2509965e
call esi
sub ebx, edi
not ebx
mov ebx, edi
mov esi, dword [esp]
add esp, 4
mov ebx, 0x47a32121
dec edi
push 0xa7899f
inc ebx
not edi
sub ebx, 0xa5c658c5
push eax
sub ebx, 1
sub ecx, 0x4312647
call esi
sub edi, 1
or edi, ebx
add ecx, 1
push 0x40
sub ebx, ecx
or ebx, edx
and ebx, ecx
push 0x3000
mov edi, 0x8bffc0bb
mov ecx, 0xe807fc7
add edi, edx
push 0x20000f22
and edi, edx
or edi, edi
sub ebx, 0x4369ef5f
sub esp, 4
mov dword [esp], 0
mov edi, 0xcd6139ab
sub ebx, edi
call eax
sub ebx, edi
mov ecx, 0xbb74b9ac
add eax, 0x20000eaa
or edi, ecx
mov edi, 0xfb176523
mov esi, 0x70c5e6f7
not edx
or ebx, edx
mov dword [eax], esi
sub edx, edi
mov ebx, ecx
mov esi, dword [eax]
add edx, 0x9614e738
not edx
mov ecx, edi
cmp esi, 0x70c5e6f7
je 0xa78ba1
mov eax, 0
mov cl, byte [eax]
inc edi
sub ecx, 1
mov ecx, 0xf52e92e3
sub edi, 1
mov edi, ebx
dec ebx
mov edx, esi
sub edx, esi
inc edx
mov edi, section.UPX1
inc esi
not edx
mov ecx, 0xa78795
sub edx, esi
dec esi
mov ebx, 0
sub esi, 0x588783f7
add esi, edx
mov eax, 0xa78796
and edx, esi
and esi, edx
lea eax, [ebx + eax]
sub esi, edx
mov edx, 0xd77a8aff
add edx, 0x4202dc21
mov eax, dword [eax]
mov esi, 0xcec46405
dec esi
add esi, 0xe6c50e29
and eax, 0xff
or edx, esi
sub esi, 0xfbcaa536
inc ebx
not esi
add edx, esi
mov edx, esi
cmp ebx, 0x1f4
jne 0xa78c21
mov ebx, 0
mov edx, 0x353379bf
sub esi, 0x41cfcc77
mov esi, edx
mov esi, 0xd9887fa7
xor dword [edi], eax
and esi, edx
and edx, esi
add edi, 2
or edx, esi
inc edx
mov esi, edx
cmp edi, ecx
jl 0xa78bd8
add edx, esi
mov edx, 0xc394c9a4
dec edx
inc edx
not esi
add edx, esi
mov edx, section.UPX1
add esi, 0x214fd6c0
add ecx, esi
dec esi
mov edi, section.UPX1
add ecx, 0xa84ce81e
not esi
mov eax, 0xa78795
add esi, 0x74174e16
dec esi
mov ebx, 0
dec ecx
mov ecx, esi
mov bl, byte [edi]
dec ecx
sub esi, 0x4d83c6b6
mov byte [edx], bl
mov esi, 0xd0415b86
dec esi
add edx, 1
sub ecx, 1
sub esi, ecx
sub ecx, esi
add edi, 2
or ecx, ecx
add ecx, ecx
sub esi, ecx
cmp edi, eax
jle 0xa78c88
mov ecx, esi
add esi, 0xf179ca3
add edx, 1
sub edx, 0x999f183d
push 0x8dc6a0
not edx
sub edx, 1
add edx, 0xf0ca4ea4
ret