Function at 0x140102cd0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x298
movdqa xmmword [rsp + 0x280], xmm6
mov rsi, rcx
mov rax, qword [0x1406a7e00]
xor rax, rsp
mov qword [rsp + 0x278], rax
mov rdx, qword [rcx]
mov rdi, qword [rcx + 8]
mov r8d, dword [rdx + 8]
mov r13d, dword [rdx + 0x30]
mov eax, dword [rdx + 0x34]
xor ebx, ebx
cmp eax, 1
sete cl
mov ebp, dword [rdx + 0x38]
movsxd r15, dword [rdi + 8]
mov r14d, dword [rdi + 0xc]
mov qword [rsp + 0x70], 0
cmp ebp, 0x64
setl r12b
ja 0x1401026ae
cmp r13d, 2
jb 0x14010271d
mov rcx, rdi
mov edx, 4
call fcn.140071180
mov r13d, eax
xor r14d, r14d
xor ebx, ebx
xor edi, edi
test r13d, r13d
je 0x1401026ef
mov rax, rbx
shr rax, 0x20
jne 0x1401026e7
mov dword [rsi + 0x228], ebx
mov qword [rsi + 0x220], r14
mov edi, 1
jmp 0x1401026ef
mov rcx, r14
call fcn.1400726a0
mov rcx, qword [rsp + 0x278]
xor rcx, rsp
call fcn.1405602f0
mov eax, edi
movaps xmm6, xmmword [rsp + 0x280]
add rsp, 0x298
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov dword [rsp + 0x48], 0
mov dword [rsp + 0x4c], r8d
mov bl, cl
add ebx, 5
mov ecx, r14d
imul ecx, r15d
test eax, eax
cmove ebx, eax
movsxd rdx, ecx
test r13d, r13d
cmove ebx, r13d
mov ecx, 1
mov qword [rsp + 0x68], rdx
call fcn.140072640
test rax, rax
je 0x1401027a1
mov dword [rsp + 0x64], r13d
mov r13d, r15d
mov edx, dword [rdi + 0x38]
mov rcx, qword [rdi + 0x30]
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r15d
mov qword [rsp + 0x50], rax
mov r8, rax
mov r9d, r13d
call fcn.1400726d0
cmp ebp, 0x63
jg 0x1401027d8
cmp ebp, 0x46
ja 0x1401027ae
movzx eax, bpl
imul eax, eax, 0xcd
shr eax, 0xa
add al, 2
movzx r9d, al
jmp 0x1401027b6
mov rcx, rdi
mov edx, 1
jmp 0x1401026b6
lea r9d, [rbp*8 - 0x220]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0x50]
mov edx, r13d
mov r8d, r14d
call fcn.140218270
test eax, eax
je 0x140102cac
mov eax, dword [rsp + 0x48]
mov al, r12b
mov dword [rsp + 0x48], eax
call fcn.140218a00
mov rbp, qword [rdi + 0x80]
cmp ebx, 6
je 0x14010281f
mov eax, 0xffffffff
test ebx, ebx
jne 0x14010296a
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x80]
mov qword [rsp + 0x58], rcx
xor edx, edx
call fcn.140208290
jmp 0x140102ab8
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x260], xmm0
movdqa xmmword [rsp + 0x250], xmm0
movdqa xmmword [rsp + 0x240], xmm0
movdqa xmmword [rsp + 0x230], xmm0
movdqa xmmword [rsp + 0x220], xmm0
movdqa xmmword [rsp + 0x210], xmm0
movdqa xmmword [rsp + 0x200], xmm0
movdqa xmmword [rsp + 0x1f0], xmm0
movdqa xmmword [rsp + 0x1e0], xmm0
movdqa xmmword [rsp + 0x1d0], xmm0
movdqa xmmword [rsp + 0x1c0], xmm0
movdqa xmmword [rsp + 0x1b0], xmm0
movdqa xmmword [rsp + 0x1a0], xmm0
movdqa xmmword [rsp + 0x190], xmm0
movdqa xmmword [rsp + 0x180], xmm0
movdqa xmmword [rsp + 0x170], xmm0
test r14d, r14d
jle 0x14010298d
mov eax, r13d
and eax, 3
mov ecx, r13d
and ecx, 0xfffffffc
mov r9, qword [rsp + 0x50]
mov rdx, r9
add rdx, 3
xor r8d, r8d
jmp 0x1401028f2
inc r8
add rdx, r15
add r9, r15
cmp r8, r14
je 0x14010298d
test r15d, r15d
jle 0x1401028e0
xor r10d, r10d
cmp r13d, 4
jb 0x140102944
movzx r11d, byte [rdx + r10 - 3]
mov byte [rsp + r11 + 0x170], 1
movzx r11d, byte [rdx + r10 - 2]
mov byte [rsp + r11 + 0x170], 1
movzx r11d, byte [rdx + r10 - 1]
mov byte [rsp + r11 + 0x170], 1
movzx r11d, byte [rdx + r10]
mov byte [rsp + r11 + 0x170], 1
add r10, 4
cmp rcx, r10
jne 0x140102900
test rax, rax
je 0x1401028e0
add r10, r9
xor r11d, r11d
nop
movzx ebx, byte [r10 + r11]
mov byte [rsp + rbx + 0x170], 1
inc r11
cmp rax, r11
jne 0x140102950
jmp 0x1401028e0
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x80]
mov qword [rsp + 0x58], rcx
xor edx, edx
call fcn.140208290
mov ebx, 0xf
jmp 0x140102b83
mov eax, 0xc
pcmpeqd xmm1, xmm1
movdqa xmm3, xmmword [0x14059b990]
pxor xmm4, xmm4
pxor xmm2, xmm2
nop word cs:[rax + rax]
movd xmm5, dword [rsp + rax + 0x168]
movdqa xmm6, xmmword [rsp + rax + 0x164]
pcmpeqb xmm6, xmm0
pxor xmm6, xmm1
punpcklbw xmm6, xmm6
punpcklwd xmm6, xmm6
pand xmm6, xmm3
paddd xmm6, xmm4
pcmpeqb xmm5, xmm0
pxor xmm5, xmm1
punpcklbw xmm5, xmm5
punpcklwd xmm5, xmm5
pand xmm5, xmm3
paddd xmm5, xmm2
movq xmm4, qword [rsp + rax + 0x16c]
movd xmm2, dword [rsp + rax + 0x170]
pcmpeqb xmm4, xmm0
pxor xmm4, xmm1
punpcklbw xmm4, xmm4
punpcklwd xmm4, xmm4
pand xmm4, xmm3
paddd xmm4, xmm6
pcmpeqb xmm2, xmm0
pxor xmm2, xmm1
punpcklbw xmm2, xmm2
punpcklwd xmm2, xmm2
pand xmm2, xmm3
paddd xmm2, xmm5
add rax, 0x10
cmp rax, 0x10c
jne 0x1401029b0
paddd xmm2, xmm4
pshufd xmm0, xmm2, 0xee
paddd xmm0, xmm2
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd ebx, xmm1
xor eax, eax
cmp ebx, 0x11
jb 0x140102a78
mov rcx, qword [rsp + 0x50]
mov edx, r15d
mov r8d, r14d
mov r9d, r13d
call fcn.140219ba0
cmp dword [rsp + 0x4c], 4
setge cl
cmp ebx, 0xc1
setae dl
or dl, cl
movzx ebx, dl
bts ebx, eax
mov eax, 0xffffffff
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x80]
mov qword [rsp + 0x58], rcx
xor edx, edx
call fcn.140208290
cmp ebx, 1
jne 0x140102b83
lea rax, [rsp + 0x78]
mov qword [rsp + 0x40], rax
mov eax, dword [rsp + 0x4c]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x20], 0
mov rcx, qword [rsp + 0x50]
mov edx, r13d
mov r8d, r14d
mov r9d, dword [rsp + 0x64]
call fcn.140102e00
mov r13d, eax
test r13d, r13d
je 0x140102c71
test rbp, rbp
je 0x140102b71
mov eax, dword [rsp + 0x144]
mov dword [rbp + 0x94], eax
mov eax, dword [rsp + 0x148]
mov dword [rbp + 0x98], eax
mov eax, dword [rsp + 0x14c]
mov dword [rbp + 0x9c], eax
mov eax, dword [rsp + 0x150]
mov dword [rbp + 0xa0], eax
mov eax, dword [rsp + 0x154]
mov dword [rbp + 0xa4], eax
mov eax, dword [rsp + 0x158]
mov dword [rbp + 0xa8], eax
mov eax, dword [rsp + 0x15c]
mov dword [rbp + 0xac], eax
mov eax, dword [rsp + 0x160]
mov dword [rbp + 0xb0], eax
mov rax, qword [rsp + 0x58]
mov r14, qword [rax + 0x10]
mov rbx, qword [rax + 0x18]
jmp 0x140102c90
mov ecx, 1
mov rdx, qword [rsp + 0x68]
call fcn.140072640
test rax, rax
je 0x140102c7b
mov r12, rax
mov qword [rsp + 0x68], rbp
xor ebp, ebp
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
nop dword [rax]
mov r13d, 1
test bl, 1
je 0x140102c45
lea rax, [rsp + 0x170]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r12
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x20], ebp
mov rcx, qword [rsp + 0x50]
mov edx, r15d
mov r8d, r14d
mov r9d, dword [rsp + 0x64]
call fcn.140102e00
mov r13d, eax
test eax, eax
je 0x140102c30
mov rax, qword [rsp + 0x170]
cmp rax, qword [rsp + 0x78]
jae 0x140102c30
mov rcx, qword [rsp + 0x58]
call fcn.140208460
mov r8d, 0xf8
lea rcx, [rsp + 0x78]
lea rdx, [rsp + 0x170]
call fcn.140562340
jmp 0x140102c3d
lea rcx, [rsp + 0x178]
call fcn.140208460
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
test r13d, r13d
je 0x140102c5b
inc ebp
mov eax, ebx
shr eax, 1
cmp ebx, 1
mov ebx, eax
ja 0x140102bb0
mov rcx, r12
call fcn.1400726a0
mov rbp, qword [rsp + 0x68]
test r13d, r13d
jne 0x140102b04
mov rcx, qword [rsp + 0x58]
call fcn.140208460
mov rcx, rdi
mov edx, 1
call fcn.140071180
xor r14d, r14d
xor ebx, ebx
xor r13d, r13d
mov rax, qword [rdi + 0x80]
test rax, rax
je 0x140102cb4
add dword [rax], ebx
mov rax, qword [rsp + 0x70]
mov qword [rsi + 0x5bf0], rax
jmp 0x140102cb4
xor r14d, r14d
xor ebx, ebx
xor r13d, r13d
mov rcx, qword [rsp + 0x50]
call fcn.1400726a0
jmp 0x1401026c3
push rsi
push rdi
sub rsp, 0x28
cmp dword [rcx + 0x21c], 0
je 0x140102d0c
mov rsi, rcx
cmp dword [rcx + 0x5c50], 0
jle 0x140102d18
lea rdi, [rsi + 0x230]
call fcn.140207e40
mov rcx, rdi
call qword [rax + 8]
test eax, eax
je 0x140102d26
call fcn.140207e40
mov rcx, rdi
call qword [rax + 0x18]
mov eax, 1
add rsp, 0x28
pop rdi
pop rsi
ret
mov rcx, rsi
add rsp, 0x28
pop rdi
pop rsi
jmp 0x140102640
mov rcx, qword [rsi + 8]
mov edx, 1
add rsp, 0x28
pop rdi
pop rsi
jmp fcn.140071180