Function at 0x14002d6e0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x188
lea rbp, [0x14024a680]
mov dword [rsp + 0x1d8], edx
mov r12, rcx
lea r13, [rsp + 0x3c]
lea rdi, [rsp + 0x3f]
mov r14, qword [r12 + 0x10]
mov rsi, qword [r12]
mov r8d, 4
mov rdx, r13
mov rcx, r14
call rsi
cmp rax, 4
jne 0x14002dee0
mov ebx, 4
jmp 0x14002d76b
xor eax, eax
mov byte [rsp + 0x3e], r8b
mov r8d, 1
mov al, dl
mov rdx, rdi
mov ah, cl
mov rcx, r14
mov word [rsp + 0x3c], ax
call rsi
cmp rax, 1
jne 0x14002dee0
add ebx, 1
cmp byte [rsp + 0x3c], 0x4f
movzx edx, byte [rsp + 0x3d]
movzx ecx, byte [rsp + 0x3e]
movzx r8d, byte [rsp + 0x3f]
jne 0x14002d740
cmp dl, 0x67
jne 0x14002d740
cmp cl, 0x67
jne 0x14002d740
cmp r8b, 0x53
jne 0x14002d740
lea r15, [rsp + 0x40]
mov r8d, 0x17
mov rcx, r14
mov rdx, r15
call rsi
cmp rax, 0x17
jne 0x14002dee0
movzx eax, word [rsp + 0x40]
movzx r8d, byte [rsp + 0x56]
mov rdx, r15
lea rcx, [rsp + 0x57]
mov dword [rsp + 0x60], 0x5367674f
mov r15d, 0x5fb0a94f
mov word [rsp + 0x64], ax
mov rax, qword [rsp + 0x42]
mov byte [rsp + 0x7c], r8b
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x4a]
mov qword [rsp + 0x70], rax
mov eax, dword [rsp + 0x52]
mov dword [rsp + 0x52], 0
mov dword [rsp + 0x78], eax
nop
mov eax, r15d
add rdx, 1
shl r15d, 8
shr eax, 0x18
xor al, byte [rdx - 1]
movzx eax, al
xor r15d, dword [rbp + rax*4]
cmp rdx, rcx
jne 0x14002d800
lea rdx, [rsp + 0x7d]
movzx r8d, r8b
mov rcx, r14
mov qword [rsp + 0x28], rdx
call rsi
mov r9, rax
movzx eax, byte [rsp + 0x7c]
mov r8, rax
cmp r9, rax
jne 0x14002dee0
movzx ecx, al
lea r10d, [rbx + rcx + 0x17]
add r10, qword [r12 + 0x18]
test ecx, ecx
je 0x14002def6
lea eax, [rcx - 1]
mov rdx, qword [rsp + 0x28]
mov r11, rax
lea r9, [rsp + rax + 0x7e]
nop word [rax + rax]
mov eax, r15d
add rdx, 1
shl r15d, 8
shr eax, 0x18
xor al, byte [rdx - 1]
movzx eax, al
xor r15d, dword [rbp + rax*4]
cmp rdx, r9
jne 0x14002d870
mov qword [r12 + 0x18], r10
cmp r11d, 0xe
jbe 0x14002df3b
movdqu xmm2, xmmword [rsp + 0x7d]
pxor xmm3, xmm3
pxor xmm1, xmm1
mov eax, ecx
shr eax, 4
movdqu xmm4, xmm2
punpckhbw xmm2, xmm3
punpcklbw xmm4, xmm3
movdqu xmm5, xmm4
movdqu xmm0, xmm4
movdqu xmm4, xmm2
punpcklwd xmm5, xmm1
punpckhwd xmm0, xmm1
punpcklwd xmm4, xmm1
punpckhwd xmm2, xmm1
paddd xmm0, xmm5
paddd xmm2, xmm4
paddd xmm0, xmm2
cmp eax, 1
je 0x14002dcc0
movdqu xmm2, xmmword [rsp + 0x8d]
movdqu xmm4, xmm2
punpckhbw xmm2, xmm3
punpcklbw xmm4, xmm3
movdqu xmm5, xmm4
punpckhwd xmm4, xmm1
punpcklwd xmm5, xmm1
paddd xmm4, xmm5
movdqu xmm5, xmm2
punpckhwd xmm2, xmm1
punpcklwd xmm5, xmm1
paddd xmm2, xmm5
paddd xmm2, xmm4
paddd xmm0, xmm2
cmp eax, 2
je 0x14002dcc0
movdqu xmm2, xmmword [rsp + 0x9d]
movdqu xmm4, xmm2
punpckhbw xmm2, xmm3
punpcklbw xmm4, xmm3
movdqu xmm5, xmm4
punpckhwd xmm4, xmm1
punpcklwd xmm5, xmm1
paddd xmm4, xmm5
movdqu xmm5, xmm2
punpckhwd xmm2, xmm1
punpcklwd xmm5, xmm1
paddd xmm2, xmm5
paddd xmm2, xmm4
paddd xmm0, xmm2
cmp eax, 3
je 0x14002dcc0
movdqu xmm2, xmmword [rsp + 0xad]
movdqu xmm4, xmm2
punpckhbw xmm2, xmm3
punpcklbw xmm4, xmm3
movdqu xmm5, xmm4
punpckhwd xmm4, xmm1
punpcklwd xmm5, xmm1
paddd xmm4, xmm5
movdqu xmm5, xmm2
punpckhwd xmm2, xmm1
punpcklwd xmm5, xmm1
paddd xmm2, xmm5
paddd xmm2, xmm4
paddd xmm0, xmm2
cmp eax, 4
je 0x14002dcc0
movdqu xmm2, xmmword [rsp + 0xbd]
movdqu xmm4, xmm2
punpckhbw xmm2, xmm3
punpcklbw xmm4, xmm3
movdqu xmm5, xmm4
punpckhwd xmm4, xmm1
punpcklwd xmm5, xmm1
paddd xmm4, xmm5
movdqu xmm5, xmm2
punpckhwd xmm2, xmm1
punpcklwd xmm5, xmm1
paddd xmm2, xmm5
paddd xmm2, xmm4
paddd xmm0, xmm2
cmp eax, 5
je 0x14002dcc0
movdqu xmm2, xmmword [rsp + 0xcd]
movdqu xmm4, xmm2
punpckhbw xmm2, xmm3
punpcklbw xmm4, xmm3
movdqu xmm5, xmm4
punpckhwd xmm4, xmm1
punpcklwd xmm5, xmm1
paddd xmm4, xmm5
movdqu xmm5, xmm2
punpckhwd xmm2, xmm1
punpcklwd xmm5, xmm1
paddd xmm2, xmm5
paddd xmm2, xmm4
paddd xmm0, xmm2
cmp eax, 6
je 0x14002dcc0
movdqu xmm2, xmmword [rsp + 0xdd]
movdqu xmm4, xmm2
punpckhbw xmm2, xmm3
punpcklbw xmm4, xmm3
movdqu xmm5, xmm4
punpckhwd xmm4, xmm1
punpcklwd xmm5, xmm1
paddd xmm4, xmm5
movdqu xmm5, xmm2
punpckhwd xmm2, xmm1
punpcklwd xmm5, xmm1
paddd xmm2, xmm5
paddd xmm2, xmm4
paddd xmm0, xmm2
cmp eax, 7
je 0x14002dcc0
movdqu xmm2, xmmword [rsp + 0xed]
movdqu xmm4, xmm2
punpckhbw xmm2, xmm3
punpcklbw xmm4, xmm3
movdqu xmm3, xmm4
punpckhwd xmm4, xmm1
punpcklwd xmm3, xmm1
paddd xmm4, xmm3
movdqu xmm3, xmm2
punpckhwd xmm2, xmm1
punpcklwd xmm3, xmm1
paddd xmm2, xmm3
paddd xmm2, xmm4
paddd xmm0, xmm2
cmp eax, 8
je 0x14002dcc0
movdqu xmm3, xmmword [rsp + 0xfd]
pxor xmm2, xmm2
movdqu xmm4, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm4, xmm2
movdqu xmm5, xmm4
punpckhwd xmm4, xmm1
punpcklwd xmm5, xmm1
paddd xmm4, xmm5
movdqu xmm5, xmm3
punpckhwd xmm3, xmm1
punpcklwd xmm5, xmm1
paddd xmm3, xmm5
paddd xmm3, xmm4
paddd xmm0, xmm3
cmp eax, 9
je 0x14002dcc0
movdqu xmm3, xmmword [rsp + 0x10d]
movdqu xmm4, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm4, xmm2
movdqu xmm5, xmm4
punpckhwd xmm4, xmm1
punpcklwd xmm5, xmm1
paddd xmm4, xmm5
movdqu xmm5, xmm3
punpckhwd xmm3, xmm1
punpcklwd xmm5, xmm1
paddd xmm3, xmm5
paddd xmm3, xmm4
paddd xmm0, xmm3
cmp eax, 0xa
je 0x14002dcc0
movdqu xmm3, xmmword [rsp + 0x11d]
movdqu xmm4, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm4, xmm2
movdqu xmm5, xmm4
punpckhwd xmm4, xmm1
punpcklwd xmm5, xmm1
paddd xmm4, xmm5
movdqu xmm5, xmm3
punpckhwd xmm3, xmm1
punpcklwd xmm5, xmm1
paddd xmm3, xmm5
paddd xmm3, xmm4
paddd xmm0, xmm3
cmp eax, 0xb
je 0x14002dcc0
movdqu xmm3, xmmword [rsp + 0x12d]
movdqu xmm4, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm4, xmm2
movdqu xmm5, xmm4
punpckhwd xmm4, xmm1
punpcklwd xmm5, xmm1
paddd xmm4, xmm5
movdqu xmm5, xmm3
punpckhwd xmm3, xmm1
punpcklwd xmm5, xmm1
paddd xmm3, xmm5
paddd xmm3, xmm4
paddd xmm0, xmm3
cmp eax, 0xc
je 0x14002dcc0
movdqu xmm3, xmmword [rsp + 0x13d]
movdqu xmm4, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm4, xmm2
movdqu xmm5, xmm4
punpckhwd xmm4, xmm1
punpcklwd xmm5, xmm1
paddd xmm4, xmm5
movdqu xmm5, xmm3
punpckhwd xmm3, xmm1
punpcklwd xmm5, xmm1
paddd xmm3, xmm5
paddd xmm3, xmm4
paddd xmm0, xmm3
cmp eax, 0xd
je 0x14002dcc0
movdqu xmm3, xmmword [rsp + 0x14d]
movdqu xmm4, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm4, xmm2
movdqu xmm5, xmm4
punpckhwd xmm4, xmm1
punpcklwd xmm5, xmm1
paddd xmm4, xmm5
movdqu xmm5, xmm3
punpckhwd xmm3, xmm1
punpcklwd xmm5, xmm1
paddd xmm3, xmm5
paddd xmm3, xmm4
paddd xmm0, xmm3
cmp eax, 0xe
je 0x14002dcc0
movdqu xmm3, xmmword [rsp + 0x15d]
movdqu xmm4, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm4, xmm2
movdqu xmm5, xmm4
movdqu xmm2, xmm4
movdqu xmm4, xmm3
punpcklwd xmm3, xmm1
punpckhwd xmm5, xmm1
punpcklwd xmm2, xmm1
punpckhwd xmm4, xmm1
movdqu xmm1, xmm3
paddd xmm2, xmm5
paddd xmm1, xmm4
paddd xmm1, xmm2
paddd xmm0, xmm1
movdqu xmm1, xmm0
mov eax, ecx
psrldq xmm1, 8
and eax, 0xfffffff0
paddd xmm0, xmm1
movdqu xmm1, xmm0
psrldq xmm1, 4
paddd xmm0, xmm1
movd ebx, xmm0
test ecx, 0xffffff0f
je 0x14002de08
movsxd rdx, eax
add eax, 1
movzx edx, byte [rsp + rdx + 0x7d]
add ebx, edx
cmp eax, ecx
jge 0x14002de08
movsxd rdx, eax
movzx edx, byte [rsp + rdx + 0x7d]
add ebx, edx
lea edx, [rax + 1]
cmp edx, ecx
jge 0x14002de08
movsxd rdx, edx
movzx edx, byte [rsp + rdx + 0x7d]
add ebx, edx
lea edx, [rax + 2]
cmp edx, ecx
jge 0x14002de08
movsxd rdx, edx
movzx edx, byte [rsp + rdx + 0x7d]
add ebx, edx
lea edx, [rax + 3]
cmp edx, ecx
jge 0x14002de08
movsxd rdx, edx
movzx edx, byte [rsp + rdx + 0x7d]
add ebx, edx
lea edx, [rax + 4]
cmp edx, ecx
jge 0x14002de08
movsxd rdx, edx
movzx edx, byte [rsp + rdx + 0x7d]
add ebx, edx
lea edx, [rax + 5]
cmp edx, ecx
jge 0x14002de08
movsxd rdx, edx
movzx edx, byte [rsp + rdx + 0x7d]
add ebx, edx
lea edx, [rax + 6]
cmp edx, ecx
jge 0x14002de08
movsxd rdx, edx
movzx edx, byte [rsp + rdx + 0x7d]
add ebx, edx
lea edx, [rax + 7]
cmp edx, ecx
jge 0x14002de08
movsxd rdx, edx
movzx edx, byte [rsp + rdx + 0x7d]
add ebx, edx
lea edx, [rax + 8]
cmp edx, ecx
jge 0x14002de08
movsxd rdx, edx
movzx edx, byte [rsp + rdx + 0x7d]
add ebx, edx
lea edx, [rax + 9]
cmp edx, ecx
jge 0x14002de08
movsxd rdx, edx
movzx edx, byte [rsp + rdx + 0x7d]
add ebx, edx
lea edx, [rax + 0xa]
cmp edx, ecx
jge 0x14002de08
movsxd rdx, edx
movzx edx, byte [rsp + rdx + 0x7d]
add ebx, edx
lea edx, [rax + 0xb]
cmp ecx, edx
jle 0x14002de08
movsxd rdx, edx
movzx edx, byte [rsp + rdx + 0x7d]
add ebx, edx
lea edx, [rax + 0xc]
cmp ecx, edx
jle 0x14002de08
movsxd rdx, edx
add eax, 0xd
movzx edx, byte [rsp + rdx + 0x7d]
add ebx, edx
cmp ecx, eax
jle 0x14002de08
cdqe
movzx eax, byte [rsp + rax + 0x7d]
add ebx, eax
nop word [rax + rax]
cmp ebx, 0xff1b
ja 0x14002d70e
mov eax, dword [r12 + 0x28]
cmp dword [rsp + 0x70], eax
je 0x14002de50
test ebx, ebx
je 0x14002d70e
mov rcx, qword [r12 + 0x10]
mov r8d, 1
mov edx, ebx
call qword [r12 + 8]
test eax, eax
je 0x14002dee0
add qword [r12 + 0x18], rbx
jmp 0x14002d70e
mov r8d, ebx
lea rsi, [r12 + 0x278]
mov rcx, qword [r12 + 0x10]
mov qword [rsp + 0x28], r8
mov rdx, rsi
call qword [r12]
mov r8, qword [rsp + 0x28]
add qword [r12 + 0x18], rax
cmp rax, r8
jne 0x14002dee0
mov dword [r12 + 0x274], ebx
test ebx, ebx
je 0x14002deb6
lea eax, [rbx - 1]
mov rdx, rsi
lea rcx, [r12 + rax + 0x279]
nop dword [rax]
mov eax, r15d
add rdx, 1
shl r15d, 8
shr eax, 0x18
xor al, byte [rdx - 1]
movzx eax, al
xor r15d, dword [rbp + rax*4]
cmp rcx, rdx
jne 0x14002de98
cmp dword [rsp + 0x78], r15d
je 0x14002df54
mov eax, dword [rsp + 0x1d8]
test eax, eax
je 0x14002d70e
xor edx, edx
mov rcx, r12
call fcn.14002d6e0
nop word [rax + rax]
xor eax, eax
add rsp, 0x188
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov qword [r12 + 0x18], r10
mov eax, dword [r12 + 0x28]
cmp dword [rsp + 0x70], eax
jne 0x14002d70e
mov rcx, qword [r12 + 0x10]
lea rdx, [r12 + 0x278]
xor r8d, r8d
call qword [r12]
add qword [r12 + 0x18], rax
test rax, rax
jne 0x14002dee0
mov dword [r12 + 0x274], 0
xor ebx, ebx
jmp 0x14002deb6
movzx ebx, byte [rsp + 0x7d]
cmp r8b, 1
je 0x14002de14
mov eax, 1
jmp 0x14002dd04
lea rsi, [rsp + 0x60]
mov ecx, 0x24
mov eax, 1
lea rdi, [r12 + 0x150]
rep movsq qword [rdi], qword [rsi]
mov dword [r12 + 0x270], ebx
jmp 0x14002dee2