Function at 0x6aebc6e0
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x78
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
mov dword [eax], 0
mov ebx, edx
mov eax, dword [ebp + 0x10]
mov edi, ecx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 8], edi
mov dword [eax], 0
test byte [0x6af0b6d1], 0x80
mov esi, dword [ebp + 8]
jne 0x6aee54fa
push 0x38
lea eax, [ebp - 0x74]
push 0
push eax
call fcn.6aee0e40
add esp, 0xc
mov byte [ebp - 0x6b], 1
cmp byte [edi + 0xbe8], 0
jne 0x6aee5510
mov dword [ebp - 0x1c], 0
test esi, esi
je 0x6aebc884
jmp 0x6aebc753
mov edi, dword [ebp - 8]
mov dword [ebp - 0x18], 0
test byte [0x6af0b6d5], 0x80
jne 0x6aee55a5
mov eax, dword [ebx + 0xc]
xor edx, edx
mov esi, dword [ebx + 8]
xor ecx, ecx
mov edi, dword [ebx]
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 4]
mov dword [ebp - 0x28], eax
xor eax, eax
mov dword [ebp - 0x14], eax
xor al, al
mov dword [ebp - 0xc], edx
test esi, esi
je 0x6aebc79a
lea ebx, [ebx]
rol al, 1
xor al, byte [ecx + edi]
inc ecx
cmp ecx, esi
jb 0x6aebc790
mov ecx, dword [ebp - 8]
add ecx, 0x3e8
movzx eax, al
mov ebx, dword [ecx + eax*8]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x2c], eax
cmp ebx, eax
je 0x6aebc92d
mov eax, dword [ebx + 8]
mov dword [ebp - 0x20], eax
cmp esi, dword [eax + 8]
jne 0x6aebc7f6
push esi
push dword [eax]
push edi
call fcn.6aee0e22
add esp, 0xc
test eax, eax
jne 0x6aee55fa
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [eax + 0xc]
je 0x6aebc802
mov edx, dword [ebp - 0xc]
test edx, edx
jne 0x6aebc7f6
mov eax, dword [ebx + 0xc]
mov edx, 1
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x14], eax
mov ebx, dword [ebx]
cmp ebx, dword [ebp - 0x2c]
jne 0x6aebc7b7
mov ebx, dword [ebp - 0x14]
jmp 0x6aebc820
push ecx
push dword [eax + 4]
push dword [ebp - 0x28]
call fcn.6aee0dc0
add esp, 0xc
test eax, eax
jne 0x6aebc7e1
mov ebx, dword [ebx + 0xc]
mov edx, 2
mov dword [ebp - 0xc], edx
test byte [0x6af0b6d1], 0x80
mov esi, dword [ebp - 8]
jne 0x6aee5602
test edx, edx
js 0x6aee5648
cmp edx, 1
jle 0x6aebc8cf
cmp edx, 2
jne 0x6aee5648
test byte [0x6af0b6d1], 0x80
jne 0x6aee561c
push 1
push 7
mov edx, ebx
lea ecx, [ebp - 0x74]
call fcn.6aebc960
mov edi, eax
test edi, edi
js 0x6aebc8bc
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x10]
inc eax
add ebx, 0x10
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], ebx
cmp eax, dword [ebp + 8]
jb 0x6aebc750
mov ecx, dword [ebp + 0xc]
xor edi, edi
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
mov dword [ecx], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x64], 0
mov byte [ebp - 0x6c], 1
mov dword [ecx], eax
test byte [0x6af0b6d1], 0x80
jne 0x6aee5650
lea ecx, [ebp - 0x74]
call fcn.6aebce29
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
test byte [0x6af0b6d1], 0x80
jne 0x6aee5632
push 1
push 6
mov edx, ebx
lea ecx, [ebp - 0x74]
call fcn.6aebc960
mov esi, dword [ebp - 0x10]
mov edi, eax
test edi, edi
js 0x6aebc94e
test ebx, ebx
mov ebx, dword [ebp - 8]
je 0x6aebc934
push dword [esi + 0xc]
lea edx, [ebp - 0x74]
mov ecx, ebx
push dword [esi + 4]
call fcn.6aebc4e0
mov edi, eax
test edi, edi
js 0x6aebc8bc
mov edx, esi
mov ecx, ebx
call fcn.6aebca80
mov edi, eax
test edi, edi
js 0x6aebc8bc
xor dl, dl
mov ecx, ebx
call fcn.6aebca3c
jmp 0x6aebc867
mov ebx, edx
jmp 0x6aebc820
push dword [esi + 8]
lea edx, [ebp - 0x74]
mov ecx, ebx
push dword [esi]
call fcn.6aebc4e0
mov edi, eax
test edi, edi
jns 0x6aebc8fa
jmp 0x6aebc8bc
mov ebx, dword [ebp - 8]
jmp 0x6aebc90c
push esi
push edi
mov edx, 0x6aeb2fd8
mov ecx, 0xf
call fcn.6af083ff
jmp 0x6aebc717
test byte [0x6af0b6d1], 0x80
je 0x6aee552f
push dword [edi + 0xbec]
mov edx, 0x6aeb2fd8
mov ecx, 0x10
push edi
call fcn.6af083ff
mov edx, dword [edi + 0xbec]
lea ecx, [ebp - 0x74]
push 1
push 5
call fcn.6aebc960
mov edi, eax
test edi, edi
js 0x6aebc8bc
mov edi, dword [ebp - 8]
mov edx, dword [edi + 8]
cmp edx, dword [edi + 0xbec]
jbe 0x6aee558f
test byte [0x6af0b6d1], 0x80
je 0x6aee5576
push edx
push edi
mov edx, 0x6aeb2fd8
mov ecx, 0x11
call fcn.6af083ff
mov edx, dword [edi + 8]
push 1
push 5
lea ecx, [ebp - 0x74]
call fcn.6aebc960
mov edi, eax
test edi, edi
js 0x6aebc8bc
mov edi, dword [ebp - 8]
mov byte [edi + 0xbe8], 0
mov dword [edi + 0xbec], 0
jmp 0x6aebc738
mov eax, dword [ebx + 0xc]
cmp eax, 0x1f40
jbe 0x6aee55b4
mov eax, 0x1f40
mov ecx, dword [ebx + 8]
cmp ecx, 0x1f40
jbe 0x6aee55c4
mov ecx, 0x1f40
push dword [ebx + 4]
movzx eax, ax
mov edx, 0x6aeb2fd8
mov word [ebp - 0x34], ax
mov word [ebp - 0x32], ax
push dword [ebp - 0x34]
movzx eax, cx
mov ecx, 0xe
push dword [ebx]
mov word [ebp - 0x3c], ax
mov word [ebp - 0x3a], ax
push dword [ebp - 0x3c]
push edi
call fcn.6af08c28
jmp 0x6aebc767
mov edx, dword [ebp - 0xc]
jmp 0x6aebc7f6
push ebx
push edx
push esi
mov edx, 0x6aeb2fe8
mov ecx, 0xc
call fcn.6af08420
mov edx, dword [ebp - 0xc]
jmp 0x6aebc830
push ebx
push esi
mov edx, 0x6aeb2fd8
mov ecx, 0xc
call fcn.6af083ff
jmp 0x6aebc857
push ebx
push esi
mov edx, 0x6aeb2fd8
mov ecx, 0xd
call fcn.6af083ff
jmp 0x6aebc8dc
mov edi, dword [ebp - 0x18]
jmp 0x6aebc867
mov ecx, dword [ebp - 8]
mov edx, 0x6aeb2fd8
push ecx
mov ecx, 0x12
call fcn.6af0831c
jmp 0x6aebc8bc