Function at 0x1006ca06
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0x34
pop eax
call fcn.1008bee0
push esi
push edi
xor edi, edi
cmp dword [0x100c08cc], edi
je 0x1006ca58
mov esi, 0x100a1e08
push 0xd8
push esi
push 0x13
push 5
call fcn.100448c7
call fcn.100448b4
xor ecx, ecx
cmp dword [0x100c08d0], eax
push 0xda
push esi
sete cl
push 0x13
push 6
mov dword [ebp - 4], ecx
call fcn.100448c7
add esp, 0x20
jmp 0x1006ca60
mov dword [ebp - 4], edi
mov esi, 0x100a1e08
cmp dword [ebp - 4], edi
jne 0x1006ca77
push 0xdf
push esi
push 0x12
push 9
call fcn.100448c7
add esp, 0x10
mov eax, dword [0x100c08b8]
mov edi, dword [0x100c08b4]
mov dword [ebp - 0x10], eax
mov eax, dword [0x100c08bc]
push ebx
mov dword [ebp - 0xc], eax
push 0x14
lea eax, [ebp - 0x34]
push 0x100c089c
push eax
call sub.MSVCRT.dll_memcpy
mov eax, dword [0x100c08b4]
mov ecx, 0x3ff
add eax, dword [ebp + 0xc]
add esp, 0xc
cmp eax, ecx
mov dword [0x100c08b4], eax
jl 0x1006caca
cdq
mov ebx, ecx
mov dword [0x100c08b0], ecx
idiv ebx
mov dword [0x100c08b4], edx
jmp 0x1006cadd
mov edx, dword [0x100c08b0]
cmp edx, ecx
jge 0x1006cadd
cmp eax, edx
jle 0x1006cadd
mov dword [0x100c08b0], eax
mov eax, dword [ebp + 0xc]
push 0x14
cdq
pop ecx
idiv ecx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
push 0x14
pop ebx
test edx, edx
cdq
setg cl
idiv ebx
add eax, dword [0x100c08bc]
add eax, ecx
cmp dword [ebp - 4], 0
mov dword [0x100c08bc], eax
jne 0x1006cb1b
push 0xff
push esi
push 0x12
push 0xa
call fcn.100448c7
add esp, 0x10
lea eax, [ebp - 0x20]
push eax
call fcn.10041e65
mov eax, dword [ebp + 0xc]
pop ecx
test eax, eax
jle 0x1006cc1c
push 0x14
mov dword [ebp + 0xc], eax
add eax, 0x13
xor edx, edx
pop ecx
div ecx
mov dword [ebp - 8], eax
mov esi, dword [ebp + 0xc]
cmp esi, 0x14
jle 0x1006cb4b
push 0x14
pop esi
push 0
call fcn.10042260
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.10041eb0
lea eax, [ebp - 0x34]
push 0x14
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.10041fb0
lea ebx, [esi + edi - 0x3ff]
add esp, 0x18
test ebx, ebx
jle 0x1006cba2
mov eax, esi
sub eax, ebx
push eax
lea eax, [edi + 0x100c0488]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.10041fb0
push ebx
lea eax, [ebp - 0x20]
push 0x100c0488
push eax
call fcn.10041fb0
add esp, 0x18
jmp 0x1006cbb6
lea eax, [edi + 0x100c0488]
push esi
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.10041fb0
add esp, 0xc
push esi
lea eax, [ebp - 0x20]
push dword [ebp + 8]
push eax
call fcn.10041fb0
lea eax, [ebp - 0x10]
push 8
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.10041fb0
lea eax, [ebp - 0x34]
push 0
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.10041fea
add dword [ebp + 8], esi
add esp, 0x24
inc dword [ebp - 0xc]
xor eax, eax
test esi, esi
jle 0x1006cc0a
mov cl, byte [ebp + eax - 0x34]
xor byte [edi + 0x100c0488], cl
inc edi
cmp edi, 0x3ff
jl 0x1006cc05
xor edi, edi
inc eax
cmp eax, esi
jl 0x1006cbf0
sub dword [ebp + 0xc], 0x14
dec dword [ebp - 8]
jne 0x1006cb40
mov esi, 0x100a1e08
lea eax, [ebp - 0x20]
push eax
call fcn.100421bf
cmp dword [ebp - 4], 0
pop ecx
pop ebx
jne 0x1006cc3f
push 0x12a
push esi
push 0x12
push 9
call fcn.100448c7
add esp, 0x10
xor eax, eax
mov cl, byte [ebp + eax - 0x34]
xor byte [eax + 0x100c089c], cl
inc eax
cmp eax, 0x14
jl 0x1006cc41
fld qword [0x100c08c0]
fcomp qword [0x100a1e00]
fnstsw ax
sahf
jae 0x1006cc71
fld qword [0x100c08c0]
fadd qword [ebp + 0x10]
fstp qword [0x100c08c0]
cmp dword [ebp - 4], 0
jne 0x1006cc89
push 0x135
push esi
push 0x12
push 0xa
call fcn.100448c7
add esp, 0x10
pop edi
pop esi
leave
ret