Function at 0x1000c190
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 0x1000c21a
mov edi, dword [ebp + 0x10]
test edi, edi
jle 0x1000c22c
push eax
push ebx
lea eax, [ebp - 0x1c]
push esi
push eax
call fcn.1000b990
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 0x1000c1fc
mov eax, dword [ebp - 0x1c]
push eax
push esi
call fcn.1000c190
mov esi, dword [ebp - 0x18]
jmp 0x1000c206
push ebx
push edx
call fcn.1000c190
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 0x1000c1b7
push eax
push ebx
push esi
call fcn.1000b690
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 0x1000c325
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 0x1000c2b0
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.1000d740
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 0x1000c270
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 4]
cmp ebx, eax
jne 0x1000c2cb
test cl, 1
jne 0x1000c2cb
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 0x1000c307
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.1000d740
mov edx, dword [ebp + 8]
test al, al
je 0x1000c307
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 0x1000c2d4
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 0x1000c250
mov ebx, dword [ebp + 0xc]
cmp ecx, 2
jl 0x1000c225
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.1000bfb0
add ebx, 0xfffffff8
add esp, 0x14
mov eax, ebx
and eax, 0xfffffff8
cmp eax, 0x10
jge 0x1000c330
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret