Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xcb98f03e
and eax, eax
or edx, edx
sub eax, 1
popal
sub edx, 1
and edx, eax
sub edx, eax
mov edi, 0
mov esi, ebx
or ecx, edx
sub edx, ecx
inc ecx
mov eax, esi
mov ecx, 0xbf2db973
mov edx, ecx
mov ebx, eax
not ecx
mov ecx, edx
inc edi
add ecx, 0xc94c92a5
sub edx, ecx
dec ecx
cmp edi, 0x1007e64
jne 0xa789cc
mov edx, ecx
mov edx, ecx
or ecx, ecx
sub eax, 0xa0ba1a1d
mov eax, edx
add edx, eax
mov edx, 0xa78796
mov ecx, eax
or esi, esi
add eax, esi
mov ebx, 0xa7898a
sub eax, esi
add esi, eax
mov ecx, esi
mov edi, dword [edx]
add esi, ecx
mov eax, 0x7ac233c6
and esi, eax
and edi, 0xff
add ecx, 1
inc ecx
xor dword [ebx], edi
sub ecx, 0x41983be7
mov ecx, esi
and ecx, esi
add ebx, 1
mov ecx, 0x509c2e07
dec eax
inc edx
not ecx
not esi
mov ecx, esi
cmp ebx, entry0
jl 0xa78a1e
mov esi, ecx
and esi, esi
add eax, 0xc4f2ae4
and eax, eax
or eax, esi
mov esi, 0x35da30d1
sub ebx, ecx
add ecx, 1
mov edx, 0xa7898e
add esi, 1
and ecx, ebx
add edi, 0x60423e79
mov edx, dword [edx]
add ebx, 0x173c45c6
mov ecx, 0xf1fc1e4d
mov esi, edi
mov edx, dword [edx]
mov ebx, 0xaf9df2f9
sub esi, edi
push edx
or ecx, ecx
add ecx, 0xff807b3
dec esi
mov edx, 0xa7898a
dec esi
sub esi, ecx
add ebx, esi
mov edx, dword [edx]
sub ebx, 0x14ad6c78
inc edi
mov edx, dword [edx]
add esi, 0x17083b7f
add edi, 0x68d762da
add ecx, 1
push 0xa78992
and ebx, ebx
sub esi, 0x13e0235d
add esi, 0x8f6ddd14
call edx
inc ecx
add ecx, esi
pop edx
sub edi, 1
dec esi
not esi
push 0xa7899f
sub ecx, 0xab27a780
sub edi, 0x6caeb4d7
push eax
add esi, 0xa1366ebd
or ecx, ebx
and ecx, edi
call edx
inc esi
sub esi, ebx
push 0x40
mov edi, 0xee5952d5
mov ecx, esi
push 0x3000
inc esi
sub edi, esi
push 0x20000131
or edi, ebx
add edi, ebx
mov ecx, 0x36a4a5f5
push 0
not ebx
mov ecx, 0x6e2234a1
call eax
inc edi
mov ecx, edi
add ecx, 1
add eax, 0x20000096
add ebx, 0xce617a2e
sub edi, ecx
mov edi, 0x2ff2578b
mov edx, 0x3845be6e
and esi, esi
sub esi, 0xfc341ec2
mov dword [eax], edx
mov edi, ebx
mov esi, ebx
mov edx, dword [eax]
add esi, ebx
and edi, esi
cmp edx, 0x3845be6e
je 0xa78b8f
mov edx, 0
mov bl, byte [edx]
or ebx, edi
add ecx, 0x4099132a
add ecx, 0x20d5816e
or esi, ecx
not edx
add edx, eax
mov esi, section..text
not eax
not edx
add edx, 0x8835b96e
mov edi, 0xa78795
inc edx
inc edx
and edx, eax
mov ecx, 0
dec edx
not edx
mov ebx, 0xa78796
and eax, edx
inc eax
lea ebx, [ebx + ecx]
sub edx, 0x5aa80973
mov eax, 0x17cb2156
inc eax
mov ebx, dword [ebx]
or eax, edx
mov edx, eax
add edx, 0xb4b589b3
and ebx, 0xff
or edx, eax
sub edx, eax
inc ecx
dec edx
not edx
add eax, 0x9cfc43ec
cmp ecx, 0x1f4
jne 0xa78c07
mov ecx, 0
sub eax, 0xe76f0b4c
dec eax
dec eax
sub edx, 0x840548aa
and edx, eax
xor dword [esi], ebx
mov eax, 0xbaf6700f
not edx
dec eax
add esi, 2
not eax
mov eax, 0x62307b02
not eax
cmp esi, edi
jl 0xa78bc3
mov edx, 0x9862771f
inc eax
mov edx, 0xab8e3af4
sub edx, eax
mov edi, section..text
mov ecx, 0xa3ac4c34
sub ebx, ecx
and ecx, ebx
mov edx, section..text
mov ecx, 0x84509a2b
add ebx, 0x7770fb2a
mov ecx, ebx
mov esi, 0xa78795
inc ecx
dec ebx
inc ebx
mov eax, 0
add ebx, 0xc001c8e
inc ecx
mov al, byte [edx]
or ebx, ecx
mov ecx, 0x4f3bba93
mov byte [edi], al
add ebx, ebx
mov ebx, ecx
sub ecx, ebx
add edi, 1
add ebx, 0xffba187a
mov ebx, ecx
not ecx
add edx, 2
mov ebx, ecx
and ecx, ecx
dec ebx
cmp edx, esi
jle 0xa78c79
sub ebx, ecx
not ecx
add ebx, ebx
add edx, 1
sub eax, 0xbcc97b42
mov edx, 0x550d71c0
sub esp, 4
mov dword [esp], 0x8dc6a0
add eax, edx
add edx, 1
add eax, eax
ret