Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x462226b1
add edx, 1
not edx
popal
dec edx
sub edx, esi
mov edi, 0
mov eax, ecx
sub esi, 0x41abbf6c
not esi
mov ebx, eax
mov esi, edx
add esi, 1
mov ecx, ebx
sub edx, esi
sub edx, 0xac733223
or esi, edx
add edi, 1
not edx
or edx, edx
or edx, edx
cmp edi, 0x100c54f
jne 0xa789c3
mov edx, 0x7d4d9874
or edx, esi
sub esi, 0xa042350b
add edx, esi
sub esi, edx
and edx, edx
mov edi, 0xa78796
add ebx, 0x11fec16a
and esi, eax
mov eax, 0xf514f2db
mov edx, 0xa7898a
add eax, 1
mov esi, ebx
mov ecx, dword [edi]
and ebx, esi
sub esi, 0x4cbb8545
and ecx, 0xff
mov esi, 0x81adbd12
add eax, 1
xor dword [edx], ecx
not esi
add ebx, 0x9a82ac95
inc edx
sub ebx, esi
sub ebx, 0xef6f22c9
inc edi
sub esi, ebx
or eax, ebx
cmp edx, entry0
jl 0xa78a2d
dec eax
inc ebx
mov esi, ebx
or esi, esi
dec eax
and ebx, esi
sub edi, ebx
mov ecx, 0xa7898e
inc edx
and edx, esi
mov ecx, dword [ecx]
dec ebx
mov edx, esi
mov edx, esi
mov ecx, dword [ecx]
add esi, edi
dec edi
push ecx
add esi, 0xd6c74bec
add edi, 0x900d4e17
add ebx, esi
mov ecx, 0xa7898a
dec ebx
mov edi, edx
sub edx, esi
mov ecx, dword [ecx]
and edi, edx
mov esi, 0xdaf8a35d
not esi
mov ecx, dword [ecx]
sub edi, esi
sub edi, edx
push 0xa78992
and esi, edx
sub esi, 0x71f268d0
add ebx, 0x1805cc2e
call ecx
add esi, 0xfaffac0a
sub edx, 1
mov ecx, dword [esp]
add esp, 4
add edi, 0xf59500b7
inc edx
not edi
push 0xa7899f
or edx, ebx
not esi
push eax
mov edi, ebx
and ebx, edx
or edx, edi
call ecx
sub esi, edx
or edi, edi
push 0x40
add edx, edx
or ebx, edi
mov edi, 0xa462e83
push 0x3000
add ebx, edx
add ebx, 1
add ebx, 1
push 0x20000e6a
sub esi, ebx
dec edx
push 0
inc edx
sub esi, 0xe8093fc8
call eax
or esi, edi
or edx, edi
add esi, edi
add eax, 0x20000dde
sub edx, 0x86c50169
sub edx, 1
mov edi, 0xd9fa211c
mov ecx, 0x9b9571bd
add esi, 1
not edi
sub ebx, esi
mov dword [eax], ecx
inc esi
add esi, esi
sub edx, esi
mov ecx, dword [eax]
not edi
not edi
sub edx, 0x42f86ca9
cmp ecx, 0x9b9571bd
je 0xa78b80
mov edx, 0
mov dword [edx], eax
add edi, 0xb301c139
and edi, edi
inc esi
add edi, esi
add edi, edx
not esi
and edx, edx
add esi, edx
add edx, 0x2b042c0b
mov edi, section..reloc
add esi, edx
add edx, esi
mov eax, 0xa78795
add edx, 1
add esi, esi
add edx, edx
mov ecx, 0
inc edx
add edx, 0xc42b5923
dec edx
mov ebx, 0xa78796
mov edx, 0x8c6946e3
add esi, esi
or esi, edx
lea ebx, [ebx + ecx]
mov edx, esi
and esi, edx
mov ebx, dword [ebx]
sub edx, esi
and esi, edx
add edx, 0x8335b242
and ebx, 0xff
mov esi, edx
not esi
not esi
inc ecx
or esi, edx
sub esi, edx
cmp ecx, 0x1f4
jne 0xa78bfd
mov ecx, 0
mov edx, 0xb4924b13
add edx, 1
mov edx, 0x7f5ad773
inc edx
xor dword [edi], ebx
mov esi, edx
dec edx
add edi, 2
not edx
sub esi, 1
and edx, esi
cmp edi, eax
jl 0xa78bbe
or esi, esi
dec esi
add edx, esi
inc esi
dec edx
mov eax, section..reloc
sub edi, 1
mov ebx, 0xc23b36a0
mov ebx, 0xe51f3b77
mov edx, section..reloc
or edi, edi
inc edi
mov esi, 0xa78795
add edi, edi
mov edi, 0x9f1b9d50
mov ecx, 0
and edi, ebx
or ebx, edi
mov cl, byte [edx]
add edi, edi
add ebx, 1
not edi
mov byte [eax], cl
or ebx, edi
not ebx
inc eax
mov ebx, 0xfff713d6
inc edi
add ebx, 1
add edx, 2
mov ebx, 0x1a07b1f5
not edi
cmp edx, esi
jle 0xa78c64
mov edi, ebx
mov ebx, edi
add edi, edi
and edx, edx
sub edx, 1
add edx, edx
push 0x8dc6a0
or edx, edx
inc esi
sub esi, 0x7770ba97
ret