Function at 0x100135b0
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 0xaf0]
mov ebx, dword [edi + 0xbc]
mov dword [ebp - 0x10], eax
xor edx, edx
mov eax, ebx
mov ecx, 3
div ecx
mov dword [ebp - 0x14], 0
test edx, edx
jne 0x10013701
mov ecx, dword [edi + 0xb8]
mov eax, ecx
mov esi, 3
div esi
test edx, edx
je 0x10013701
mov esi, ecx
and esi, 1
test ebx, ebx
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], 0
jle 0x1001381c
cmp esi, ecx
mov dword [ebp - 4], esi
jge 0x100136e5
nop
imul ecx, dword [ebp - 8]
mov ebx, dword [ebp - 4]
mov esi, dword [edi + 0xf74]
add ecx, ebx
push 0x1009f7c0
push 0x1009f780
lea ebx, [ebp - 0x18]
mov dword [ebp - 0x1c], ecx
call fcn.10013500
cmp eax, 0xffffff9c
je 0x100138ff
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
mov edx, ecx
imul edx, edx, 0x70
mov ebx, dword [edx + esi]
add edx, esi
xor ebx, eax
and ebx, 1
xor dword [edx], ebx
mov ebx, dword [edx + 0x70]
sar eax, 1
xor ebx, eax
and ebx, 1
xor dword [edx + 0x70], ebx
add ecx, dword [edi + 0xb8]
mov edx, ecx
imul edx, edx, 0x70
mov ebx, dword [edx + esi]
add edx, esi
sar eax, 1
xor ebx, eax
and ebx, 1
xor dword [edx], ebx
mov ebx, dword [edx + 0x70]
sar eax, 1
xor ebx, eax
and ebx, 1
xor dword [edx + 0x70], ebx
add ecx, dword [edi + 0xb8]
imul ecx, ecx, 0x70
mov edx, dword [ecx + esi]
mov ebx, dword [ecx + esi + 0x70]
add ecx, esi
mov esi, dword [ecx]
sar eax, 1
xor edx, eax
and edx, 1
xor esi, edx
mov edx, dword [ecx + 0x70]
sar eax, 1
xor edx, eax
and edx, 1
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
xor ebx, edx
mov dword [ecx], esi
mov dword [ecx + 0x70], ebx
mov ecx, dword [edi + 0xb8]
add eax, 2
cmp eax, ecx
mov dword [ebp - 4], eax
jl 0x10013620
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov edx, dword [edi + 0xbc]
add eax, 3
cmp eax, edx
mov dword [ebp - 8], eax
jl 0x10013614
jmp 0x1001381c
mov ecx, dword [edi + 0xb8]
mov eax, ebx
and eax, 1
mov dword [ebp - 0x14], eax
xor edx, edx
mov eax, ecx
mov esi, 3
div esi
mov eax, dword [ebp - 0x14]
cmp eax, ebx
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], edx
jge 0x10013819
jmp 0x10013730
mov eax, dword [ebp - 0xc]
cmp eax, ecx
mov dword [ebp - 4], eax
jge 0x10013802
mov edi, edi
imul ecx, dword [ebp - 8]
mov ebx, dword [ebp - 4]
mov esi, dword [edi + 0xf74]
add ecx, ebx
push 0x1009f7c0
push 0x1009f780
lea ebx, [ebp - 0x18]
mov dword [ebp - 0x1c], ecx
call fcn.10013500
cmp eax, 0xffffff9c
je 0x100138ff
mov edx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x10]
mov eax, edx
imul eax, eax, 0x70
mov ebx, dword [eax + esi]
lea ecx, [eax + esi]
mov eax, dword [ebp - 0x18]
xor ebx, eax
and ebx, 1
xor dword [ecx], ebx
mov ebx, dword [ecx + 0x70]
sar eax, 1
xor ebx, eax
and ebx, 1
xor dword [ecx + 0x70], ebx
lea ecx, [edx + 2]
imul ecx, ecx, 0x70
mov ebx, dword [ecx + esi]
add ecx, esi
sar eax, 1
xor ebx, eax
and ebx, 1
xor dword [ecx], ebx
add edx, dword [edi + 0xb8]
mov ecx, edx
imul ecx, ecx, 0x70
mov ebx, dword [ecx + esi]
add ecx, esi
sar eax, 1
xor ebx, eax
add edx, 2
and ebx, 1
imul edx, edx, 0x70
xor dword [ecx], ebx
mov ebx, dword [ecx + 0x70]
sar eax, 1
xor ebx, eax
and ebx, 1
xor dword [ecx + 0x70], ebx
mov ebx, dword [edx + esi]
lea ecx, [edx + esi]
mov edx, dword [ecx]
sar eax, 1
xor edx, eax
and edx, 1
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
xor ebx, edx
mov dword [ecx], ebx
mov ecx, dword [edi + 0xb8]
add eax, 3
cmp eax, ecx
mov dword [ebp - 4], eax
jl 0x10013740
mov eax, dword [ebp - 8]
mov edx, dword [edi + 0xbc]
add eax, 2
cmp eax, edx
mov dword [ebp - 8], eax
jl 0x10013730
mov esi, dword [ebp - 0xc]
xor ebx, ebx
test esi, esi
mov dword [ebp - 4], ebx
jle 0x10013899
jmp 0x10013830
mov ecx, dword [edi + 0xf74]
push 1
call fcn.100122d0
test eax, eax
je 0x1001390b
mov eax, dword [edi + 0xbc]
xor ebx, ebx
test eax, eax
jle 0x1001388e
mov eax, dword [edi + 0xb8]
mov edx, dword [ebp - 4]
imul eax, ebx
mov ecx, dword [edi + 0xf74]
add eax, edx
mov edx, dword [ebp - 0x10]
imul eax, eax, 0x70
push 1
lea esi, [eax + edx]
call fcn.100122d0
mov edx, dword [esi]
xor eax, edx
and eax, 1
xor edx, eax
mov dword [esi], edx
mov eax, dword [edi + 0xbc]
inc ebx
cmp ebx, eax
jl 0x10013851
mov esi, dword [ebp - 0xc]
mov ebx, dword [ebp - 4]
inc ebx
cmp ebx, esi
mov dword [ebp - 4], ebx
jl 0x10013830
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x10013971
mov ecx, dword [edi + 0xf74]
push 1
call fcn.100122d0
test eax, eax
je 0x10013946
cmp esi, dword [edi + 0xb8]
mov ebx, esi
jge 0x10013971
mov eax, dword [ebp - 0x10]
imul esi, esi, 0x70
add esi, eax
nop
mov ecx, dword [edi + 0xf74]
push 1
call fcn.100122d0
mov ecx, dword [esi]
xor eax, ecx
and eax, 1
xor ecx, eax
mov dword [esi], ecx
mov eax, dword [edi + 0xb8]
inc ebx
add esi, 0x70
cmp ebx, eax
jl 0x100138d0
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xffffff9c
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0xbc]
xor eax, eax
test ecx, ecx
jle 0x10013891
jmp 0x10013920
mov ecx, dword [edi + 0xb8]
mov edx, dword [ebp - 0x10]
imul ecx, eax
add ecx, ebx
imul ecx, ecx, 0x70
add ecx, edx
and dword [ecx], 0xfffffffe
mov ecx, dword [edi + 0xbc]
inc eax
cmp eax, ecx
jl 0x10013920
jmp 0x10013891
cmp esi, dword [edi + 0xb8]
mov eax, esi
jge 0x10013971
mov ecx, dword [ebp - 0x10]
imul esi, esi, 0x70
add esi, ecx
jmp 0x10013960
and dword [esi], 0xfffffffe
mov ecx, dword [edi + 0xb8]
inc eax
add esi, 0x70
cmp eax, ecx
jl 0x10013960
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret