Function at 0x6abaff
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xac
nop
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x6b3c70
mov edx, dword fs:[0]
mov dword [ebp - 0x18], edx
mov dword fs:[0], eax
mov al, 1
mov dword [ebp - 0x20], eax
cmp byte [ecx + 0xe5], 0
je 0x6aba01
nop
cmp byte [ecx + 0x1c], 0
je 0x6ab4e5
nop
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x28], ecx
call fcn.006ae550
test al, al
mov ecx, dword [ebp - 0x28]
jne 0x6aba01
nop
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
mov dword [ebp - 0x74], 0x920fc0
mov dword [ebp - 0x10], 5
lea eax, [ebp - 0x74]
mov dword [esp], eax
mov dword [esp + 4], 0x921774
call fcn.006abcb0
sub esp, 8
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0xf
mov byte [ebp - 0x4c], 0
movzx eax, byte [0xa0fce8]
cmp al, 0x68
je 0x6ab5db
mov cl, 0xf9
nop word cs:[eax + eax]
mov al, 0x2e
lock cmpxchg byte [0xa0fce8], cl
je 0x6ab562
cmp al, 0x68
jne 0x6ab550
jmp 0x6ab5db
xor ebx, ebx
mov ecx, 0x8ecb8425
mov esi, 0x8ecb8424
nop
mov eax, ecx
mov edx, 0xb21642c9
mul edx
mov edi, edx
mov eax, esi
mov edx, 0xb21642c9
mul edx
shr edx, 4
imul eax, edx, 0xffffffe9
movzx edx, byte [ebx + 0xa0fcd0]
xor dl, byte [eax + ebx - 0x709a566c]
shr edi, 4
imul eax, edi, 0xffffffe9
xor dl, 0xde
mov byte [ebx + 0xa0fcd0], dl
movzx edx, byte [ebx + 0xa0fcd1]
xor dl, byte [eax + ebx - 0x709a566b]
xor dl, 0xde
mov byte [ebx + 0xa0fcd1], dl
add ebx, 2
add ecx, 2
add esi, 2
cmp ebx, 0x18
jne 0x6ab570
mov al, 0x68
xchg byte [0xa0fce8], al
mov dword [ebp - 0x10], 5
nop
mov dword [ebp - 0x10], 5
movzx eax, byte [ebp - 0x90]
mov byte [esp + 4], al
mov dword [esp + 8], 0xa0fcd0
mov dword [esp], 0x17
lea ecx, [ebp - 0x4c]
call fcn.0066cb40
sub esp, 0xc
lea eax, [ebp - 0x70]
mov dword [ebp - 0x50], 0x920fc0
mov edx, dword [ebp - 0x70]
cmp dword [ebp - 0x5c], 0x10
cmovae eax, edx
cmp byte [0xa57014], 0
mov ecx, dword [ebp - 0x60]
cmovne eax, edx
mov edi, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
mov esi, edx
sub esi, edi
cmp esi, ecx
jae 0x6ab665
nop
mov dword [ebp - 0x10], 6
movzx edx, byte [ebp - 0x90]
mov byte [esp + 4], dl
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov dword [esp], ecx
lea ecx, [ebp - 0x4c]
call fcn.0066d8c0
sub esp, 0x10
jmp 0x6ab826
mov esi, edi
mov dword [ebp - 0x28], edi
add edi, ecx
mov esi, edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x3c], edi
cmp edx, 0x10
jb 0x6ab67f
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x28]
add esi, edx
mov edi, esi
sub edi, eax
jae 0x6ab77f
test ecx, ecx
je 0x6ab81b
xor edx, edx
cmp ecx, 8
jb 0x6ab70a
cmp edi, 0x20
jb 0x6ab70a
xor edx, edx
cmp ecx, 0x20
jb 0x6ab6e7
mov ebx, ecx
and ebx, 0xffffffe0
mov edx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x28]
add edi, edx
add edi, 0x10
mov edx, ebx
xor ebx, ebx
nop
movups xmm0, xmmword [eax + ebx]
movups xmm1, xmmword [eax + ebx + 0x10]
movups xmmword [edi + ebx - 0x10], xmm0
movups xmmword [edi + ebx], xmm1
add ebx, 0x20
cmp edx, ebx
jne 0x6ab6c0
cmp ecx, edx
je 0x6ab81b
test cl, 0x18
je 0x6ab70a
mov edi, edx
mov edx, ecx
and edx, 0xfffffff8
nop
nop
movsd xmm0, qword [eax + edi]
movsd qword [esi + edi], xmm0
add edi, 8
cmp edx, edi
jne 0x6ab6f0
cmp ecx, edx
je 0x6ab81b
mov edi, edx
mov ebx, ecx
mov dword [ebp - 0x24], edx
and ebx, 3
je 0x6ab72c
mov edi, dword [ebp - 0x24]
nop dword [eax]
nop
movzx edx, byte [eax + edi]
mov byte [esi + edi], dl
inc edi
dec ebx
jne 0x6ab720
mov edx, dword [ebp - 0x24]
sub edx, ecx
cmp edx, 0xfffffffc
ja 0x6ab81b
mov edx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x28]
add edx, esi
add edx, 3
nop word cs:[eax + eax]
nop
movzx ebx, byte [eax + edi]
mov byte [edx + edi - 3], bl
movzx ebx, byte [eax + edi + 1]
mov byte [edx + edi - 2], bl
movzx ebx, byte [eax + edi + 2]
mov byte [edx + edi - 1], bl
movzx ebx, byte [eax + edi + 3]
mov byte [edx + edi], bl
add edi, 4
cmp ecx, edi
jne 0x6ab750
jmp 0x6ab81b
test ecx, ecx
je 0x6ab81b
cmp ecx, 4
jb 0x6ab799
mov edx, eax
sub edx, esi
cmp edx, 0x10
jae 0x6aba19
mov edi, ecx
lea ecx, [edi - 1]
mov dword [ebp - 0x24], ecx
mov edx, edi
and edx, 3
je 0x6ab7d8
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x28]
add esi, ecx
dec esi
nop word cs:[eax + eax]
lea ecx, [edi - 1]
movzx ebx, byte [eax + edi - 1]
mov byte [esi + edi], bl
dec edx
mov edi, ecx
jne 0x6ab7c0
cmp dword [ebp - 0x24], 3
jae 0x6ab7e0
jmp 0x6ab81b
mov ecx, edi
cmp dword [ebp - 0x24], 3
jb 0x6ab81b
mov edx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x28]
add edx, esi
dec edx
mov esi, ecx
nop dword [eax + eax]
nop
movzx ebx, byte [eax + ecx - 1]
mov byte [edx + ecx], bl
movzx ebx, byte [eax + ecx - 2]
mov byte [edx + ecx - 1], bl
movzx ebx, byte [eax + ecx - 3]
mov byte [edx + ecx - 2], bl
add esi, 0xfffffffc
movzx ebx, byte [eax + ecx - 4]
mov byte [edx + ecx - 3], bl
mov ecx, esi
jne 0x6ab7f0
nop
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x30]
mov byte [eax + ecx], 0
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0xf
mov byte [ebp - 0x8c], 0
movzx eax, byte [0xa0fd02]
cmp al, 5
je 0x6ab8c3
mov dl, 0x9f
nop
mov al, 0xc3
lock cmpxchg byte [0xa0fd02], dl
je 0x6ab862
cmp al, 5
jne 0x6ab850
jmp 0x6ab8c3
mov eax, 5
nop word [eax + eax]
mov edx, eax
not edx
lea esi, [eax - 1]
and esi, 0xe
xor esi, 0xf
movzx ebx, byte [eax + 0xa0fceb]
xor bl, byte [esi + 0x9a2590]
xor bl, 0x4b
mov byte [eax + 0xa0fceb], bl
and edx, 0xe
movzx ebx, byte [eax + 0xa0fcec]
xor bl, byte [edx + 0x9a2590]
xor bl, 0x4b
mov byte [eax + 0xa0fcec], bl
add eax, 2
cmp eax, 0x17
jne 0x6ab870
mov al, 5
xchg byte [0xa0fd02], al
mov dword [ebp - 0x10], 6
nop
mov dword [ebp - 0x10], 6
movzx eax, byte [ebp - 0x58]
mov byte [esp + 4], al
mov dword [esp + 8], 0xa0fcf0
mov dword [esp], 0x11
call fcn.0066cb40
sub esp, 0xc
nop
mov dword [ebp - 0x90], 0x920fc0
mov dword [ebp - 0x10], 7
movaps xmm0, xmmword [0x9a2450]
movups xmmword [esp + 0x18], xmm0
lea eax, [ebp - 0x50]
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x90]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call fcn.006a29d0
nop
mov eax, dword [ebp - 0x78]
cmp eax, 0x10
jb 0x6ab97d
nop
mov ecx, dword [ebp - 0x8c]
lea edx, [eax + 1]
cmp edx, 0x1000
jb 0x6ab970
nop
mov esi, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, esi
cmp ecx, 0x20
jae 0x6abad8
add eax, 0x24
mov edx, eax
mov ecx, esi
nop
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.008ea1ad
nop
mov eax, dword [ebp - 0x38]
cmp eax, 0x10
jb 0x6ab9bb
nop
mov ecx, dword [ebp - 0x4c]
lea edx, [eax + 1]
cmp edx, 0x1000
jb 0x6ab9ae
nop
mov esi, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, esi
cmp ecx, 0x20
jae 0x6abae5
add eax, 0x24
mov edx, eax
mov ecx, esi
nop
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.008ea1ad
nop
mov eax, dword [ebp - 0x5c]
cmp eax, 0x10
jb 0x6ab9f9
nop
mov ecx, dword [ebp - 0x70]
lea edx, [eax + 1]
cmp edx, 0x1000
jb 0x6ab9ec
nop
mov esi, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, esi
cmp ecx, 0x20
jae 0x6abaf2
add eax, 0x24
mov edx, eax
mov ecx, esi
nop
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.008ea1ad
nop
mov dword [ebp - 0x20], 0
nop
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, dword [ebp - 0x20]
add esp, 0xac
pop esi
pop edi
pop ebx
pop ebp
ret
xor esi, esi
cmp ecx, 0x10
jb 0x6aba73
mov esi, ecx
and esi, 0xfffffff0
mov edx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x30]
add edx, edi
add edx, 0xfffffff0
mov dword [ebp - 0x24], edx
lea edx, [ecx + eax]
add edx, 0xfffffff0
mov dword [ebp - 0x2c], edx
mov ebx, esi
neg ebx
xor edx, edx
nop word cs:[eax + eax]
nop
mov edi, dword [ebp - 0x2c]
movups xmm0, xmmword [edi + edx]
mov edi, dword [ebp - 0x24]
movups xmmword [edi + edx], xmm0
add edx, 0xfffffff0
cmp ebx, edx
jne 0x6aba50
cmp ecx, esi
je 0x6ab81b
test cl, 0xc
je 0x6abad0
mov edx, ecx
and edx, 0xfffffffc
mov dword [ebp - 0x34], edx
mov edi, ecx
and edi, 3
mov edx, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x30]
add edx, ebx
add edx, 0xfffffffc
mov dword [ebp - 0x24], edx
neg esi
lea edx, [ecx + eax]
add edx, 0xfffffffc
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x34]
neg edx
mov dword [ebp - 0x54], edx
mov ebx, dword [ebp - 0x24]
nop word cs:[eax + eax]
nop
mov edx, dword [ebp - 0x2c]
mov edx, dword [edx + esi]
mov dword [ebx + esi], edx
add esi, 0xfffffffc
cmp dword [ebp - 0x54], esi
jne 0x6abab0
cmp ecx, dword [ebp - 0x34]
jne 0x6ab79b
jmp 0x6ab81b
and ecx, 0xf
jmp 0x6ab799
nop
mov dword [ebp - 0x10], 2
call fcn.008cd651
nop
mov dword [ebp - 0x10], 3
call fcn.008cd651
nop
mov dword [ebp - 0x10], 4
call fcn.008cd651
add ebp, 0xc
mov ecx, dword [ebp - 0x28]
jmp 0x6ab4e5