Function at 0x1000c380
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [ebp + 0x14]
push ebx
mov ebx, dword [ebp + 0xc]
mov ecx, ebx
push esi
mov esi, dword [ebp + 8]
sub ecx, esi
and ecx, 0xfffffff8
mov dword [ebp - 8], eax
push edi
cmp ecx, 0x100
jle 0x1000c40a
mov edi, dword [ebp + 0x10]
test edi, edi
jle 0x1000c41c
push eax
push ebx
lea eax, [ebp - 0x1c]
push esi
push eax
call fcn.1000bca0
mov edx, dword [ebp - 0x18]
mov eax, edi
sar eax, 2
add esp, 0x10
sar edi, 1
mov ecx, ebx
add edi, eax
sub ecx, edx
mov eax, dword [ebp - 0x1c]
and ecx, 0xfffffff8
push dword [ebp + 0x14]
sub eax, esi
and eax, 0xfffffff8
push edi
cmp eax, ecx
jge 0x1000c3ec
mov eax, dword [ebp - 0x1c]
push eax
push esi
call fcn.1000c380
mov esi, dword [ebp - 0x18]
jmp 0x1000c3f6
push ebx
push edx
call fcn.1000c380
mov ebx, dword [ebp - 0x1c]
mov eax, ebx
add esp, 0x10
sub eax, esi
and eax, 0xfffffff8
cmp eax, 0x100
mov eax, dword [ebp + 0x14]
jg 0x1000c3a7
push eax
push ebx
push esi
call fcn.1000b770
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
sub ebx, esi
mov ecx, ebx
mov dword [ebp + 0xc], ebx
sar ecx, 3
mov edx, ecx
mov dword [ebp - 4], ecx
sar edx, 1
test edx, edx
jle 0x1000c515
lea eax, [ecx - 1]
mov dword [ebp - 0x18], eax
sar eax, 1
mov dword [ebp - 0x14], eax
mov ebx, dword [esi + edx*8 - 8]
dec edx
mov dword [ebp - 0xc], ebx
mov edi, edx
mov dword [ebp + 8], edx
mov ebx, dword [esi + edx*8 + 4]
mov dword [ebp - 0x10], ebx
mov ebx, edx
cmp edx, eax
jge 0x1000c4a0
nop word [eax + eax]
mov ecx, dword [ebp - 8]
add edi, edi
push dword [esi + edi*8 + 0xc]
push dword [esi + edi*8 + 8]
push dword [esi + edi*8 + 0x14]
push dword [esi + edi*8 + 0x10]
call fcn.1000d7b0
movzx eax, al
xor eax, 1
inc eax
add edi, eax
mov eax, dword [esi + edi*8]
mov ecx, dword [esi + edi*8 + 4]
mov dword [esi + ebx*8], eax
mov eax, dword [ebp - 0x14]
mov dword [esi + ebx*8 + 4], ecx
mov ebx, edi
cmp edi, eax
jl 0x1000c460
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 4]
cmp ebx, eax
jne 0x1000c4bb
test cl, 1
jne 0x1000c4bb
mov eax, dword [esi + ecx*8 - 8]
mov ecx, dword [esi + ecx*8 - 4]
mov dword [esi + ebx*8], eax
mov dword [esi + ebx*8 + 4], ecx
mov ebx, dword [ebp - 0x18]
lea edi, [ebx - 1]
sar edi, 1
cmp edx, ebx
jge 0x1000c4f7
push dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
push dword [ebp - 0xc]
push dword [esi + edi*8 + 4]
push dword [esi + edi*8]
call fcn.1000d7b0
mov edx, dword [ebp + 8]
test al, al
je 0x1000c4f7
mov eax, dword [esi + edi*8]
mov ecx, dword [esi + edi*8 + 4]
mov dword [esi + ebx*8], eax
mov dword [esi + ebx*8 + 4], ecx
mov ebx, edi
dec edi
sar edi, 1
cmp edx, ebx
jl 0x1000c4c4
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
mov dword [esi + ebx*8], eax
mov eax, dword [ebp - 0x10]
mov dword [esi + ebx*8 + 4], eax
mov eax, dword [ebp - 0x14]
test edx, edx
jg 0x1000c440
mov ebx, dword [ebp + 0xc]
cmp ecx, 2
jl 0x1000c415
nop
mov eax, dword [esi + ebx - 8]
mov ecx, dword [esi + ebx - 4]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi]
mov dword [ebp - 0x18], ecx
mov ecx, dword [esi + 4]
mov dword [esi + ebx - 8], eax
lea eax, [ebp - 0x1c]
mov dword [esi + ebx - 4], ecx
push dword [ebp + 0x14]
push eax
lea eax, [ebx - 8]
sar eax, 3
push eax
push 0
push esi
call fcn.1000c0a0
add ebx, 0xfffffff8
add esp, 0x14
mov eax, ebx
and eax, 0xfffffff8
cmp eax, 0x10
jge 0x1000c520
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret