Function at 0xcb35a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1c
mov edi, dword [ebp + 8]
mov dword [esp + 8], 0x18
mov dword [esp + 4], 0x564342
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.00cbb9c0
mov dword [esp + 8], 0x10
mov eax, dword [edi]
mov dword [esp + 4], eax
mov ebx, dword [ebp + 0xc]
mov dword [esp], ebx
call fcn.00cbb9c0
mov dword [esp + 8], 0x18
mov eax, dword [edi + 4]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00cbb9c0
mov ebx, dword [edi + 4]
cmp ebx, 1
jle 0xcb36c1
mov ecx, dword [edi + 8]
mov eax, dword [ecx]
test eax, eax
je 0xcb36c7
cmp eax, dword [ecx + 4]
mov edx, 1
jle 0xcb3636
jmp 0xcb36c7
mov eax, dword [ecx + edx*4 - 4]
test eax, eax
je 0xcb36c7
cmp eax, dword [ecx + edx*4]
nop
jg 0xcb36c7
add edx, 1
cmp edx, ebx
jne 0xcb3620
mov dword [esp + 8], 1
mov dword [esp + 4], 1
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.00cbb9c0
mov dword [esp + 8], 5
mov eax, dword [edi + 8]
mov eax, dword [eax]
sub eax, 1
mov dword [esp + 4], eax
mov ebx, dword [ebp + 0xc]
mov dword [esp], ebx
mov ebx, 1
call fcn.00cbb9c0
mov ecx, dword [edi + 4]
mov dword [ebp - 0x14], 0
cmp ecx, 1
jle 0xcb3926
mov esi, 1
jmp 0xcb36a1
add esi, 1
cmp ecx, esi
jle 0xcb3921
mov edx, dword [edi + 8]
lea eax, [esi*4]
mov ebx, dword [edx + eax]
mov eax, dword [edx + eax - 4]
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 0x10], eax
mov ebx, eax
jle 0xcb3696
jmp 0xcb3953
je 0xcb363d
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.00cbb9c0
mov ecx, dword [edi + 4]
cmp ecx, 0
jle 0xcb385c
mov edx, dword [edi + 8]
xor eax, eax
mov esi, dword [edx]
test esi, esi
jne 0xcb370b
jmp 0xcb3862
mov ebx, dword [edx + eax*4]
test ebx, ebx
je 0xcb3862
add eax, 1
cmp eax, ecx
jne 0xcb3700
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov ebx, dword [ebp + 0xc]
mov dword [esp], ebx
call fcn.00cbb9c0
mov eax, dword [edi + 4]
test eax, eax
jle 0xcb375e
xor ebx, ebx
mov dword [esp + 8], 5
mov eax, dword [edi + 8]
mov eax, dword [eax + ebx*4]
add ebx, 1
sub eax, 1
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.00cbb9c0
cmp dword [edi + 4], ebx
jg 0xcb3736
mov dword [esp + 8], 4
mov eax, dword [edi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.00cbb9c0
mov eax, dword [edi + 0xc]
cmp eax, 0
je 0xcb3852
jl 0xcb3905
cmp eax, 2
lea esi, [esi]
jg 0xcb3905
mov ecx, dword [edi + 0x20]
test ecx, ecx
nop
lea esi, [esi]
je 0xcb3905
mov dword [esp + 8], 0x20
mov eax, dword [edi + 0x10]
mov dword [esp + 4], eax
mov ebx, dword [ebp + 0xc]
mov dword [esp], ebx
call fcn.00cbb9c0
mov dword [esp + 8], 0x20
mov eax, dword [edi + 0x14]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00cbb9c0
mov dword [esp + 8], 4
mov eax, dword [edi + 0x18]
mov dword [esp], ebx
sub eax, 1
mov dword [esp + 4], eax
call fcn.00cbb9c0
mov dword [esp + 8], 1
mov eax, dword [edi + 0x1c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00cbb9c0
mov eax, dword [edi + 0xc]
cmp eax, 1
je 0xcb3912
cmp eax, 2
jne 0xcb3852
mov esi, dword [edi]
imul esi, dword [edi + 4]
test esi, esi
jle 0xcb3852
xor ebx, ebx
mov eax, dword [edi + 0x18]
mov dword [esp + 8], eax
mov eax, dword [edi + 0x20]
mov edx, dword [eax + ebx*4]
mov eax, dword [eax + ebx*4]
add ebx, 1
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.00cbb9c0
cmp ebx, esi
jne 0xcb3825
add esp, 0x1c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
je 0xcb3712
mov dword [esp + 8], 1
mov dword [esp + 4], 1
mov ebx, dword [ebp + 0xc]
mov dword [esp], ebx
call fcn.00cbb9c0
mov eax, dword [edi + 4]
test eax, eax
jle 0xcb375e
xor esi, esi
jmp 0xcb38b7
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.00cbb9c0
add esi, 1
cmp dword [edi + 4], esi
jle 0xcb375e
mov eax, dword [edi + 8]
lea ebx, [esi*4]
mov eax, dword [eax + ebx]
test eax, eax
je 0xcb3890
mov dword [esp + 8], 1
mov dword [esp + 4], 1
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.00cbb9c0
mov dword [esp + 8], 5
mov eax, dword [edi + 8]
mov eax, dword [eax + ebx]
sub eax, 1
mov dword [esp + 4], eax
mov ebx, dword [ebp + 0xc]
mov dword [esp], ebx
call fcn.00cbb9c0
jmp 0xcb38ab
add esp, 0x1c
mov eax, 0xffffffff
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], edi
call fcn.00cae570
mov esi, eax
jmp 0xcb381f
mov ebx, esi
sub ebx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x14]
mov dword [esp], ecx
call fcn.00cae1c0
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov ebx, dword [ebp + 0xc]
mov dword [esp], ebx
call fcn.00cbb9c0
jmp 0xcb375e
mov ecx, dword [edi + 4]
sub ecx, dword [ebp - 0x14]
add ebx, 1
mov dword [esp], ecx
call fcn.00cae1c0
mov dword [esp + 8], eax
mov eax, esi
sub eax, dword [ebp - 0x14]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.00cbb9c0
cmp ebx, dword [ebp - 0x10]
mov dword [ebp - 0x14], esi
jne 0xcb3950
mov ecx, dword [edi + 4]
jmp 0xcb3696