Function at 0x1400ee221
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
mov eax, dword [rcx + 0x170]
add eax, dword [rcx + 0x150]
mov rbx, rcx
mov rsi, rdx
cmp eax, 2
je 0x1400ee286
mov rdx, qword [rcx + 0x350]
lea r8, [0x144c04a80]
mov rdi, qword [rdx]
mov rcx, rdi
and ecx, 0xfff
imul rbp, rcx, 0x18
add rbp, r8
mov r11, qword [rbp + 8]
cmp rdi, qword [rbp]
je 0x1400ee27d
test r11, r11
jne 0x1400ee28d
jmp 0x1400ee282
test r11, r11
jne 0x1400ee293
xor edi, edi
mov dword [rsi], edi
xor eax, eax
jmp 0x1400ee846
add rbp, 0x18
jmp 0x1400ee26c
mov rdx, rbx
mov rcx, r11
mov qword [rsp + 0x20], r11
call fcn.1400edb69
test rax, rax
je 0x1400ee282
mov r11, qword [rsp + 0x20]
mov esi, dword [rbx + 0x35c]
xor r10d, r10d
mov r9, qword [r11 + 0x20]
cmp r9, qword [r11 + 0x28]
jne 0x1400ee2c6
test esi, esi
setne r10b
mov r12, qword [rbx + 0x350]
cmp qword [r12], r9
setne r13b
or r13d, r10d
movzx r14d, r13b
lea r15d, [r14*8]
mov r10d, r14d
xor esi, r14d
vmovd xmm2, r15d
mov r15b, byte [r11 + 0x34]
neg r10d
lea r14, [rsp + 0x58]
and r10d, 0x38
test r15b, r15b
je 0x1400ee3a4
vmovd eax, xmm2
xor eax, dword [r11 + 0xb8]
mov rdx, r14
sar eax, 3
cdqe
mov rdi, qword [rbx + rax*8 + 0x140]
and rdi, qword [rbx + 0x108]
mov rbp, rdi
tzcnt rcx, rbp
add rdx, 4
xor ecx, r10d
mov dword [rdx - 4], ecx
blsr rbp, rbp
jne 0x1400ee32d
mov r9d, 1
popcnt r12, rdi
test rdi, rdi
mov rbp, r14
cmove r12d, r9d
mov r9, r14
movsxd r13, r12d
lea r13, [r14 + r13*4]
add rbp, 4
mov ecx, dword [r9]
cmp r13, rbp
je 0x1400ee37e
mov edx, dword [rbp]
call fcn.1400e860b
test al, al
cmovne r9, rbp
jmp 0x1400ee362
mov r8d, dword [rsp + 0x58]
mov dword [rsp + 0x58], ecx
mov eax, 7
mov dword [r9], r8d
mov r8d, dword [rsp + 0x58]
and r8d, 7
sub eax, r8d
cmp eax, r8d
cmovle r8d, eax
jmp 0x1400ee3ac
xor r8d, r8d
xor edi, edi
xor r12d, r12d
mov rbp, qword [rbx + 0x100]
mov r13, r14
movsxd r9, r12d
mov qword [rsp + 0x20], r13
mov rdx, r9
mov r14, r9
mov r9d, r8d
mov rcx, rbp
xor rcx, rdi
mov rax, rcx
mov r8, rcx
tzcnt r13, rax
mov ecx, r10d
xor ecx, r13d
mov dword [rsp + rdx*4 + 0x58], ecx
vmovd ecx, xmm2
xor ecx, dword [rbx + r13*4]
mov dword [rsp + rdx*4 + 0x74], ecx
inc rdx
blsr rax, rax
jne 0x1400ee3d3
cmp rbp, rdi
mov r10, r8
mov eax, esi
mov rbx, qword [rsp + 0x20]
setne dil
xor ebp, ebp
popcnt rcx, r10
dec ecx
test dil, dil
mov r13d, 2
mov r8d, r9d
mov r9, r14
cmove ecx, ebp
mov r14, rbx
mov ebx, ebp
mov qword [rsp + 0x40], r9
lea edx, [r12 + rcx + 1]
add ecx, r12d
mov dword [rsp + 0x20], edx
cdq
idiv r13d
test r15b, r15b
cmovne ebx, r8d
movsxd rbp, ebx
mov dword [rsp + 0x4c], ebx
imul r13, rbp, 0x108
movsxd rsi, edx
imul rdi, rsi, 0x420
mov qword [rsp + 0x28], rsi
lea r10, [r13 + rdi + 0x38]
lea rsi, [r13 + rdi]
lea r8, [r11 + r10]
add rsi, r11
mov r10, r9
mov qword [rsp + 0x38], r8
cmp ecx, r10d
jle 0x1400ee506
lea rbx, [r10 + 1]
mov qword [rsp + 0x30], r14
mov r14, rbp
mov ebp, edx
mov r8, rbx
cmp dword [rsp + 0x20], r8d
jle 0x1400ee4f4
lea rdx, [r8 + 1]
lea rax, [rsp + 0x74]
mov r9d, dword [rsp + rdx*4 + 0x70]
cmp dword [rsi + r10*4 + 0xb8], r9d
jne 0x1400ee4ef
vmovd xmm1, dword [rax + r10*4]
movsxd r8, r8d
mov dword [rax + r10*4], r9d
mov edx, ebp
lea rax, [rsp + 0x58]
mov r9d, dword [rsp + r8*4 + 0x58]
mov rbp, r14
mov r14, qword [rsp + 0x30]
vmovd xmm0, dword [rax + r10*4]
vmovd dword [rsp + r8*4 + 0x74], xmm1
mov dword [rax + r10*4], r9d
vmovd dword [rsp + r8*4 + 0x58], xmm0
jmp 0x1400ee4fe
mov r8, rdx
jmp 0x1400ee495
mov edx, ebp
mov rbp, r14
mov r14, qword [rsp + 0x30]
mov r10, rbx
jmp 0x1400ee47b
mov r9, qword [rsp + 0x40]
movsxd rax, dword [rsp + 0x4c]
test byte [rsp + 0x58], 4
jne 0x1400ee570
movsxd r8, dword [rsp + 0x58]
test r15b, r15b
je 0x1400ee5ac
mov qword [rsp + 0x20], r11
mov r11, r9
lea rcx, [rsp + 0x5c]
lea rbx, [0x144c03120]
shl r11, 6
lea rdx, [rsp + r9*4 + 0x58]
mov r15d, 1
add r8, r11
movsxd rbx, dword [rbx + r8*4]
lea r8, [fcn.1400e860b]
call fcn.1400ec3c9
mov r11, qword [rsp + 0x20]
lea rcx, [0x144c03820]
lea rax, [0x144c03720]
jmp 0x1400ee585
xor ebx, ebx
xor dword [rsp + rbx*4 + 0x58], 7
inc rbx
lea r10d, [rbx - 1]
cmp ecx, r10d
jg 0x1400ee572
jmp 0x1400ee517
cmp r12d, r15d
jle 0x1400ee74b
movsxd rdx, dword [r14 + r15*4]
movsxd r9, r15d
inc r15
shl r9, 6
movsxd r8, dword [rax + rdx*4]
add r9, r8
movsxd r10, dword [rcx + r9*4]
add rbx, r10
jmp 0x1400ee585
cmp r8d, 0x1f
lea r9, [rsp + 0x58]
jg 0x1400ee5d7
movsxd r14, edx
imul rcx, rax, 0x108
xor eax, eax
imul rdx, r14, 0x420
add rcx, rdx
mov ebx, dword [r11 + rcx + 0x118]
jmp 0x1400ee60a
xor r12d, r12d
xor dword [r9 + r12*4], 0x38
inc r12
lea r15d, [r12 - 1]
cmp ecx, r15d
jg 0x1400ee5da
jmp 0x1400ee5b7
mov r12d, dword [rsp + rax*4 + 0x58]
lea r8, [rax + 1]
mov r10d, r12d
and r12d, 7
sar r10d, 3
cmp r10d, r12d
jne 0x1400ee610
mov rax, r8
cmp ebx, eax
jg 0x1400ee5ee
jmp 0x1400ee614
cdqe
jg 0x1400ee62a
cmp byte [r11 + 0x35], 0
movsxd rdx, dword [rsp + 0x58]
movsxd rax, dword [rsp + 0x5c]
jne 0x1400ee64f
jmp 0x1400ee72e
cmp dword [rsp + 0x20], eax
jle 0x1400ee614
mov r15d, dword [r9 + rax*4]
mov r14d, r15d
shl r15d, 3
sar r14d, 3
or r14d, r15d
and r14d, 0x3f
mov dword [r9 + rax*4], r14d
inc rax
jmp 0x1400ee62a
movsxd r9, dword [rsp + 0x60]
xor r10d, r10d
cmp edx, eax
mov r14d, edx
setl r10b
xor r8d, r8d
mov ecx, edx
cmp r9d, edx
setg r8b
xor r15d, r15d
cmp r9d, eax
setg r15b
sar r14d, 3
and ecx, 7
add r8d, r15d
cmp r14d, ecx
je 0x1400ee6a7
lea r14, [0x144c04820]
sub eax, r10d
imul ecx, dword [r14 + rdx*4], 0x3f
add ecx, eax
imul edx, ecx, 0x3e
add edx, r9d
sub edx, r8d
movsxd rbx, edx
jmp 0x1400ee74b
mov edx, eax
mov r12d, eax
sar edx, 3
and r12d, 7
cmp edx, r12d
je 0x1400ee6dd
imul r12d, r14d, 0x1c
lea rbx, [0x144c04920]
mov eax, dword [rbx + rax*4]
lea r10d, [r12 + rax + 0x17a]
imul r15d, r10d, 0x3e
add r15d, r9d
sub r15d, r8d
movsxd rbx, r15d
jmp 0x1400ee74b
mov eax, r9d
mov ebx, r9d
sub edx, r10d
sar eax, 3
and ebx, 7
cmp eax, ebx
je 0x1400ee713
imul r8d, r14d, 0xc4
imul r14d, edx, 0x1c
lea rdx, [0x144c04920]
lea ecx, [r8 + r14 + 0x76ac]
add ecx, dword [rdx + r9*4]
movsxd rbx, ecx
jmp 0x1400ee74b
imul r10d, r14d, 0x2a
sub eax, r8d
imul r9d, edx, 6
lea r15d, [r10 + r9 + 0x79bc]
add r15d, eax
movsxd rbx, r15d
jmp 0x1400ee74b
lea rcx, [0x144c04820]
lea r12, [0x144c03e20]
movsxd rbx, dword [rcx + rdx*4]
shl rbx, 6
add rax, rbx
movsxd rbx, dword [r12 + rax*4]
imul rbp, rbp, 0x108
mov r14b, byte [r11 + 0x34]
lea r12, [rsp + 0x58]
imul r9, qword [rsp + 0x28], 0x420
add rbp, r9
add rbp, r11
movsxd r8, dword [rbp + 0x118]
imul rbx, qword [rbp + 0xd8]
lea rbp, [r12 + r8*4]
test r14b, r14b
je 0x1400ee78b
cmp byte [r11 + 0x37], 0
setne r14b
neg rdi
sub rdi, r11
sub rdi, r13
lea r13, [0x144c03820]
movsxd r10, dword [rsi + 0x11c]
test r10d, r10d
je 0x1400ee836
lea rdx, [rbp + r10*4]
mov rcx, rbp
call fcn.1400ec897
lea r10, [r14*8]
movsxd r9, dword [rsi + 0x11c]
xor ecx, ecx
and r10d, 0x7f8
xor r8d, r8d
cmp r9d, r8d
jle 0x1400ee816
movsxd rax, dword [rbp + r8*4]
xor r11d, r11d
mov rdx, r12
cmp rdx, rbp
je 0x1400ee7f5
cmp dword [rdx], eax
jge 0x1400ee7ef
inc r11
add rdx, 4
jmp 0x1400ee7e3
lea r14d, [r8 + 1]
sub rax, r11
inc r8
movsxd r15, r14d
sub rax, r10
shl r15, 6
add r15, rax
movsxd rax, dword [r13 + r15*4]
add rcx, rax
jmp 0x1400ee7d3
mov r15, qword [rdi + rsi*2 + 0xe0]
lea rbp, [rbp + r9*4]
add rsi, 4
xor r14d, r14d
imul r15, rcx
add rbx, r15
jmp 0x1400ee79b
mov rcx, qword [rsp + 0x38]
mov rdx, rbx
call fcn.1400e8768
sub eax, 2
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret