Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xbbae96a7
add edx, edx
add ebx, 0xb368e118
sub ebx, edx
popal
add edx, 0x35b6e03
sub ebx, 0xb640df97
mov edx, 0
mov esi, ebx
or eax, edi
sub eax, edi
mov ecx, esi
sub eax, 0xa8bb4e6c
dec edi
or eax, eax
mov ebx, ecx
add edi, edi
sub eax, 1
mov eax, 0x54c510ab
inc edx
add edi, 0xc2b32c4d
inc edi
or edi, edi
cmp edx, 0x100f26d
jne 0xa789ce
or edi, eax
inc eax
mov ebx, edx
add edx, 0x812e1656
and edx, ebx
mov esi, 0xa78796
sub edi, 0xbf8538ba
mov edi, ebx
add ebx, ecx
mov eax, 0xa7898a
sub edi, ecx
or edi, edi
dec ecx
mov edx, dword [esi]
dec edi
or ebx, edi
inc ecx
and edx, 0xff
mov ecx, 0x129937ae
sub ebx, 0x74e035fb
sub ebx, edi
xor dword [eax], edx
mov ecx, 0x9ee91546
or ecx, edi
inc eax
mov edi, ebx
mov edi, 0x3a15359
inc esi
or edi, ebx
or edi, ecx
cmp eax, entry0
jl 0xa78a2a
inc ebx
add ecx, ecx
add ecx, 0xcf24e329
and ecx, ebx
or edi, ebx
or ecx, ecx
sub edx, 0x31e21ada
sub edx, edi
mov edx, edi
mov ecx, 0xa7898e
and ebx, edi
and ebx, edx
mov ecx, dword [ecx]
sub edx, ebx
add esi, 0xb246bac7
mov ecx, dword [ecx]
mov esi, 0x500fafa8
and ebx, edi
push ecx
add esi, 1
add esi, ebx
mov ecx, 0xa7898a
inc edx
sub edx, 0x80f20b69
mov ecx, dword [ecx]
add ebx, 0xb259da45
sub edx, edi
mov ecx, dword [ecx]
mov esi, 0x5a148ef2
sub esi, edx
push 0xa78992
not edx
sub ebx, 0x17cf5f70
call ecx
sub ebx, esi
mov edx, 0x6a2287bc
or edi, esi
mov ecx, dword [esp]
add esp, 4
and edx, ebx
inc edi
push 0xa7899f
sub esi, 0x9592598d
mov esi, edi
add edi, edi
push eax
sub ebx, 0x41da9a06
inc esi
call ecx
mov esi, 0x7388c922
add ebx, ebx
push 0x40
not esi
mov edx, ebx
add ebx, 1
push 0x3000
add ebx, ebx
mov ebx, 0x1d121323
dec ebx
push 0x2000026b
or edi, edx
add edi, 0x81782696
push 0
and ebx, esi
inc esi
call eax
mov edx, 0x848eab5a
add edi, edx
mov edi, 0x511a7d1c
add eax, 0x200001c2
add esi, edx
add edi, 0xcac8f7e1
mov edi, edx
mov ecx, 0x91f9e640
and esi, edi
inc ebx
sub edi, 0xe840de35
mov dword [eax], ecx
mov esi, 0x2f21840a
dec ebx
mov ecx, dword [eax]
inc esi
add esi, 0x67c0c880
add esi, esi
cmp ecx, 0x91f9e640
je 0xa78b82
mov ecx, 0
mov dl, byte [ecx]
or ebx, ebx
sub edi, esi
add ebx, 0xae4f534a
inc ebx
and esi, edx
not edi
dec ebx
or edx, ebx
mov edi, section..reltc
not edx
mov edx, 0x8e1b9432
mov ecx, 0xa78795
sub ebx, 0xfcc5e560
inc ebx
mov esi, 0
and ebx, edx
not ebx
sub edx, ebx
mov eax, 0xa78796
add ebx, ebx
sub ebx, edx
lea eax, [eax + esi]
sub ebx, edx
add edx, 0xe533cf06
or ebx, ebx
mov eax, dword [eax]
add edx, 0x89a15881
inc edx
and eax, 0xff
add edx, edx
add ebx, 0xf838101a
inc esi
add ebx, edx
sub ebx, 0x1efba9c6
mov ebx, 0x7c375c65
cmp esi, 0x1f4
jne 0xa78bff
mov esi, 0
inc ebx
or edx, edx
add ebx, 0x27f0fdff
dec ebx
or ebx, ebx
xor dword [edi], eax
mov edx, ebx
or ebx, ebx
dec ebx
add edi, 2
sub ebx, 0x7bdef255
sub ebx, 1
cmp edi, ecx
jl 0xa78bb7
and edx, ebx
or edx, ebx
inc ebx
add ebx, 1
dec edx
mov ecx, section..reltc
mov edi, esi
sub edi, 1
add edi, edi
mov eax, section..reltc
add esi, 1
dec esi
mov esi, edi
mov ebx, 0xa78795
or edi, esi
not edi
mov edx, 0
mov esi, edi
inc esi
mov dl, byte [eax]
and esi, esi
add esi, esi
mov byte [ecx], dl
or esi, esi
or edi, edi
inc ecx
add edi, 0x8a352395
not edi
add eax, 2
mov esi, 0xf93ecd78
not edi
and esi, esi
cmp eax, ebx
jle 0xa78c66
and edi, edi
mov edi, esi
mov edx, 0xae6d2333
mov edx, 0xc2d51f29
or edx, edx
push 0x8dc6a0
sub ebx, edx
and edx, ebx
dec ebx
ret