Function at 0x1010cd30
Capabilities:
Encode data using xor

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0x10]
push esi
push edi
push 0x18
push 0x564342
push ebp
call fcn.101b3d10
mov esi, dword [esp + 0x20]
push 0x10
push dword [esi]
push ebp
call fcn.101b3d10
push 0x18
push dword [esi + 4]
push ebp
call fcn.101b3d10
mov edx, dword [esi + 4]
mov eax, 1
add esp, 0x24
cmp edx, eax
jle 0x1010cd82
mov edi, dword [esi + 8]
mov cl, byte [edi + eax - 1]
test cl, cl
je 0x1010cd82
cmp byte [edi + eax], cl
jl 0x1010cd82
inc eax
cmp eax, edx
jl 0x1010cd70
push 1
cmp eax, edx
jne 0x1010ce2d
push 1
xor ebx, ebx
push ebp
mov dword [esp + 0x20], ebx
call fcn.101b3d10
mov eax, dword [esi + 8]
push 5
movsx eax, byte [eax]
dec eax
push eax
push ebp
call fcn.101b3d10
mov eax, dword [esi + 4]
lea edi, [ebx + 1]
add esp, 0x18
cmp eax, edi
jle 0x1010ce13
nop word [eax + eax]
mov eax, dword [esi + 8]
mov cl, byte [eax + edi]
mov al, byte [eax + edi - 1]
cmp cl, al
jle 0x1010ce07
movsx ebx, cl
movsx eax, al
cmp eax, ebx
jge 0x1010ce07
sub ebx, eax
nop word [eax + eax]
mov eax, dword [esi + 4]
sub eax, dword [esp + 0x14]
push eax
call fcn.1010b7e0
push eax
mov eax, edi
sub eax, dword [esp + 0x1c]
push eax
push ebp
call fcn.101b3d10
add esp, 0x10
mov dword [esp + 0x14], edi
sub ebx, 1
jne 0x1010cde0
mov eax, dword [esi + 4]
inc edi
cmp edi, eax
jl 0x1010cdc0
mov ebx, dword [esp + 0x14]
sub eax, ebx
push eax
call fcn.1010b7e0
push eax
sub edi, ebx
push edi
push ebp
call fcn.101b3d10
add esp, 0x10
jmp 0x1010ced0
push 0
push ebp
call fcn.101b3d10
mov ecx, dword [esi + 4]
add esp, 0xc
xor eax, eax
test ecx, ecx
jle 0x1010ce4f
mov edx, dword [esi + 8]
cmp byte [edx + eax], 0
je 0x1010ce4f
inc eax
cmp eax, ecx
jl 0x1010ce44
push 1
cmp eax, ecx
jne 0x1010ce83
push 0
push ebp
call fcn.101b3d10
xor edi, edi
add esp, 0xc
cmp dword [esi + 4], edi
jle 0x1010ced0
mov eax, dword [esi + 8]
push 5
movsx eax, byte [eax + edi]
dec eax
push eax
push ebp
call fcn.101b3d10
inc edi
add esp, 0xc
cmp edi, dword [esi + 4]
jl 0x1010ce67
jmp 0x1010ced0
push 1
push ebp
call fcn.101b3d10
xor edi, edi
add esp, 0xc
cmp dword [esi + 4], edi
jle 0x1010ced0
mov eax, dword [esi + 8]
cmp byte [edi + eax], 0
jne 0x1010cea5
xor eax, eax
lea ecx, [eax + 1]
jmp 0x1010cebf
push 1
push 1
push ebp
call fcn.101b3d10
mov eax, dword [esi + 8]
add esp, 0xc
mov ecx, 5
movsx eax, byte [eax + edi]
dec eax
push ecx
push eax
push ebp
call fcn.101b3d10
inc edi
add esp, 0xc
cmp edi, dword [esi + 4]
jl 0x1010ce95
push 4
push dword [esi + 0xc]
push ebp
call fcn.101b3d10
mov eax, dword [esi + 0xc]
add esp, 0xc
sub eax, 0
je 0x1010cf7d
sub eax, 1
je 0x1010cef4
sub eax, 1
jne 0x1010cefa
cmp dword [esi + 0x20], 0
jne 0x1010cf02
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
ret
push 0x20
push dword [esi + 0x10]
push ebp
call fcn.101b3d10
push 0x20
push dword [esi + 0x14]
push ebp
call fcn.101b3d10
mov eax, dword [esi + 0x18]
push 4
dec eax
push eax
push ebp
call fcn.101b3d10
push 1
push dword [esi + 0x1c]
push ebp
call fcn.101b3d10
mov eax, dword [esi + 0xc]
add esp, 0x30
sub eax, 1
je 0x1010cf48
sub eax, 1
jne 0x1010cf7d
mov ebx, dword [esi + 4]
imul ebx, dword [esi]
jmp 0x1010cf53
push esi
call fcn.1010b220
add esp, 4
mov ebx, eax
xor edi, edi
test ebx, ebx
jle 0x1010cf7d
nop dword [eax]
mov eax, dword [esi + 0x20]
push dword [esi + 0x18]
mov eax, dword [eax + edi*4]
cdq
xor eax, edx
sub eax, edx
push eax
push ebp
call fcn.101b3d10
inc edi
add esp, 0xc
cmp edi, ebx
jl 0x1010cf60
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret