Function at 0x14014d9e0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x368
mov r13, r9
mov rbp, r8
mov rsi, rdx
mov rdi, rcx
movzx ebx, byte [rsp + 0x3d8]
mov r12, qword [rsp + 0x3d0]
movabs r15, 0x8000000000000000
mov qword [rsp + 0xf8], 0
mov qword [rsp + 0x100], 1
mov qword [rsp + 0x108], 0
lea rcx, [rsp + 0xf8]
mov r8d, 0x20
xor edx, edx
call fcn.1400670d0
mov r8, qword [rsp + 0x100]
mov rdx, qword [rsp + 0x108]
movdqu xmm0, xmmword [r12 + 0x18]
movdqu xmm1, xmmword [r12 + 0x28]
movdqu xmmword [r8 + rdx + 0x10], xmm1
movdqu xmmword [r8 + rdx], xmm0
mov r14, qword [rsp + 0xf8]
test rdx, rdx
jne 0x14014e579
lea rax, [rsi + 0x1c8]
movdqu xmm0, xmmword [r8]
movdqu xmm1, xmmword [r8 + 0x10]
movdqu xmmword [rax + 0x10], xmm1
movdqu xmmword [rax], xmm0
test r14, r14
je 0x14014dabc
mov rcx, qword [0x1402f90f8]
xor edx, edx
call fcn.1401d02bc
test bl, bl
je 0x14014dba9
movabs rax, 0x14452474e574f44
cmp qword [rsi + 0x1e0], rax
jne 0x14014dba9
mov rbx, qword [rbp]
mov word [rsp + 0x1b0], 4
mov qword [rsp + 0xf8], r15
mov dword [rsp + 0x100], 0xd0001
cmp byte [rbx + 0x40], 2
sete r8b
lea rdx, [rsp + 0xf8]
mov rcx, rbx
call fcn.140139470
mov byte [rbx + 0x141], 1
mov word [rdi], 8
mov rax, qword [rsi + 0x1a0]
lock dec qword [rax]
jne 0x14014db39
lea rcx, [rsi + 0x1a0]
call fcn.14014b7c0
cmp qword [rsi], r15
je 0x14014db46
mov rcx, rsi
call fcn.140141a50
cmp byte [rsi + 0x180], 0
jne 0x14014db6e
cmp qword [rsi + 0x188], 0
je 0x14014db6e
mov r8, qword [rsi + 0x190]
mov rcx, qword [0x1402f90f8]
xor edx, edx
call fcn.1401d02bc
mov rax, qword [rsi + 0x90]
shl rax, 1
test rax, rax
je 0x14014dfd5
mov r8, qword [rsi + 0x98]
mov rcx, qword [0x1402f90f8]
xor edx, edx
add rsp, 0x368
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.1401d02bc
mov qword [rsp + 0x38], r13
mov rcx, qword [r12 + 0x10]
test rcx, rcx
mov qword [rsp + 0x60], rbp
je 0x14014dcdd
mov rax, qword [r12 + 8]
lea rdx, [rcx*8]
lea rdx, [rdx + rdx*4]
xor r8d, r8d
mov r9d, 0x3f7f
jmp 0x14014dbe9
add r8, 0x28
cmp rdx, r8
je 0x14014dc08
movzx r10d, word [rax + r8]
mov r13b, 1
bt r9d, r10d
jb 0x14014dbe0
cmp r10d, 0xe
jne 0x14014dc0b
cmp word [rax + r8 + 0x20], 0x13
jne 0x14014dbe0
jmp 0x14014dc0b
xor r13d, r13d
mov byte [rsi + 0x1e8], r13b
xor r8d, r8d
jmp 0x14014dc29
add r8, 0x28
cmp rdx, r8
je 0x14014dc52
movzx r9d, word [rax + r8]
lea r10d, [r9 - 3]
cmp r10d, 0xb
jb 0x14014dc20
cmp r9d, 2
jb 0x14014dc20
mov bpl, 1
cmp r9d, 0xe
jne 0x14014dc54
cmp word [rax + r8 + 0x20], 0x14
jne 0x14014dc20
jmp 0x14014dc54
xor ebp, ebp
xor r8d, r8d
mov r9d, 0x3eff
jmp 0x14014dc69
add r8, 0x28
cmp rdx, r8
je 0x14014dc87
movzx r10d, word [rax + r8]
mov bl, 1
bt r9d, r10d
jb 0x14014dc60
cmp r10d, 0xe
jne 0x14014dc89
cmp word [rax + r8 + 0x20], 5
jne 0x14014dc60
jmp 0x14014dc89
xor ebx, ebx
lea rcx, [rcx + rcx*4]
lea rcx, [rcx*8 - 0x28]
mov edx, 0x3dff
lea r8, [rax + 0x28]
movzx r9d, word [rax]
bt edx, r9d
jae 0x14014dcca
nop dword [rax + rax]
test rcx, rcx
je 0x14014dceb
add rcx, 0xffffffffffffffd8
mov rax, r8
lea r8, [rax + 0x28]
movzx r9d, word [rax]
bt edx, r9d
jb 0x14014dcb0
cmp r9d, 0xe
jne 0x14014ddb0
cmp word [rax + 0x20], 0x11
jne 0x14014dcb0
jmp 0x14014dceb
mov byte [rsi + 0x1e8], 0
xor r13d, r13d
xor ebp, ebp
xor ebx, ebx
mov qword [rsp + 0x40], r15
lea r14, [rsi + 0x1a8]
cmp qword [rsi], r15
je 0x14014de91
mov rax, qword [rsi + 0x80]
cmp rax, qword [r12 + 0x58]
jne 0x14014de91
lea r15, [r12 + 0x38]
test rax, rax
je 0x14014dfe9
lea rcx, [rax - 0x21]
cmp rcx, 0xffffffffffffffe0
jb 0x14014e561
cmp rax, 8
jae 0x14014dd3d
xor edx, edx
xor ecx, ecx
jmp 0x14014de70
cmp rax, 0x10
jae 0x14014ddf2
xor edx, edx
xor ecx, ecx
mov r8, rcx
mov ecx, eax
and ecx, 0x38
movzx edx, dl
movd xmm0, edx
nop word [rax + rax]
mov rdx, qword [r15 + r8]
xor rdx, qword [rsi + r8 + 0x60]
movq xmm1, rdx
por xmm0, xmm1
add r8, 8
cmp rcx, r8
jne 0x14014dd60
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
por xmm1, xmm0
movd edx, xmm1
cmp rax, rcx
jne 0x14014de70
jmp 0x14014de89
mov r8, qword [rax + 0x18]
test r8, r8
je 0x14014dde8
mov rdx, qword [rax + 0x10]
lea rax, [r8*8]
lea rax, [rax + rax*2]
mov rcx, rdx
nop dword [rax]
test rax, rax
je 0x14014e525
add rax, 0xffffffffffffffe8
cmp qword [rcx + 0x10], 0
lea rcx, [rcx + 0x18]
jne 0x14014ddd0
mov word [rdi], 0x1908
jmp 0x14014db20
mov ecx, eax
and ecx, 0x30
movdqu xmm1, xmmword [rsi + 0x60]
movdqu xmm0, xmmword [r12 + 0x38]
pxor xmm0, xmm1
pxor xmm1, xmm1
cmp rcx, 0x10
je 0x14014de21
movdqu xmm2, xmmword [rsi + 0x70]
movdqu xmm1, xmmword [r12 + 0x48]
pxor xmm1, xmm2
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movdqa xmm1, xmm0
psrld xmm1, 0x10
por xmm1, xmm0
movdqa xmm0, xmm1
psrlw xmm0, 8
por xmm0, xmm1
movd edx, xmm0
cmp rax, rcx
je 0x14014de89
test al, 8
jne 0x14014dd4b
nop word cs:[rax + rax]
movzx r8d, byte [r15 + rcx]
xor r8b, byte [rsi + rcx + 0x60]
lea r9, [rcx + 1]
or dl, r8b
mov rcx, r9
cmp rax, r9
jne 0x14014de70
test dl, dl
je 0x14014dfe9
mov r15, qword [rsi + 0x1a0]
lea rdx, [rsi + 0x90]
lea rcx, [rsp + 0x188]
mov r8d, 0xf0
call sub.msvcrt.dll_memcpy
movaps xmm0, xmmword [rsp + 0x40]
movups xmmword [rsp + 0x278], xmm0
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x288], rax
mov qword [rsp + 0x2b0], r15
lea rcx, [rsp + 0xf8]
mov r8d, 0x90
mov rdx, rsi
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [r12 + 0x38]
movups xmm1, xmmword [r12 + 0x48]
movups xmmword [rsp + 0x2d0], xmm1
movups xmmword [rsp + 0x2c0], xmm0
mov rax, qword [r12 + 0x58]
mov qword [rsp + 0x2e0], rax
movups xmm0, xmmword [rsi + 0x180]
movups xmm1, xmmword [rsi + 0x190]
movups xmmword [rsp + 0x290], xmm0
movups xmmword [rsp + 0x2a0], xmm1
movdqu xmm0, xmmword [r14]
movdqu xmm1, xmmword [r14 + 0x10]
movdqu xmm2, xmmword [r14 + 0x20]
movups xmm3, xmmword [r14 + 0x30]
movdqu xmmword [rsp + 0x2e8], xmm0
movups xmmword [rsp + 0x318], xmm3
movdqu xmmword [rsp + 0x308], xmm2
movdqu xmmword [rsp + 0x2f8], xmm1
mov byte [rsp + 0x328], r13b
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x2b8], rax
mov byte [rsp + 0x329], bl
mov byte [rsp + 0x32a], bpl
movzx eax, byte [0x1402f9139]
mov edx, 0x238
xor ecx, ecx
call fcn.1401860d0
test rax, rax
je 0x14014e593
mov rsi, rax
lea rdx, [rsp + 0xf8]
mov r8d, 0x238
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov qword [rdi + 8], rsi
lea rax, fcn.140157f30
mov qword [rdi + 0x10], rax
mov byte [rdi], 0x14
add rsp, 0x368
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rsi + 0x58]
movzx edx, word [rcx + 8]
mov al, 0x2a
mov r8, qword [rsp + 0x38]
cmp dx, word [r8 + 8]
jne 0x14014e033
movzx edx, dx
cmp edx, 0x178
jne 0x14014e019
movzx ecx, word [rcx + 0xa]
mov rdx, qword [rsp + 0x38]
cmp cx, word [rdx + 0xa]
jne 0x14014e033
cmp byte [rsi + 0x88], 0
setne cl
test r13b, r13b
setne dl
mov al, 0x2b
cmp cl, dl
je 0x14014e0bc
mov byte [rdi], 8
mov byte [rdi + 1], al
mov rbx, qword [rsp + 0x40]
movabs r15, 0x8000000000000000
cmp rbx, r15
je 0x14014db20
mov rdi, qword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
test r14, r14
je 0x14014e093
lea r15, [rdi + 8]
jmp 0x14014e079
add r15, 0x18
dec r14
je 0x14014e093
cmp qword [r15 - 8], 0
je 0x14014e070
mov r8, qword [r15]
mov rcx, qword [0x1402f90f8]
xor edx, edx
call fcn.1401d02bc
jmp 0x14014e070
test rbx, rbx
movabs r15, 0x8000000000000000
je 0x14014db20
mov rcx, qword [0x1402f90f8]
xor edx, edx
mov r8, rdi
call fcn.1401d02bc
jmp 0x14014db20
mov rdx, qword [rsi + 0x28]
cmp rdx, 0x30
jne 0x14014e5a4
mov rax, qword [rsi + 0x20]
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x68], rcx
lea r9, [rsp + 0x70]
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmm2, xmmword [r14 + 0x20]
movups xmm3, xmmword [r14 + 0x30]
movups xmmword [rsp + 0xa0], xmm3
movups xmmword [rsp + 0x90], xmm2
movups xmmword [rsp + 0x80], xmm1
movups xmmword [rsp + 0x70], xmm0
lea rdx, [rsp + 0xb0]
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + 0x10]
movdqu xmm2, xmmword [rax + 0x20]
movdqu xmmword [rsp + 0xb0], xmm0
movdqu xmmword [rsp + 0xc0], xmm1
movdqu xmmword [rsp + 0xd0], xmm2
mov r12, qword [rsi + 0x1a0]
mov rax, qword [r12 + 0xa0]
mov rcx, qword [r12 + 0xa8]
mov r8, qword [rcx + 0x10]
mov r10, qword [rcx + 0x18]
dec r8
and r8, 0xfffffffffffffff0
lea rcx, [rax + r8]
add rcx, 0x10
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], 0x30
mov qword [rsp + 0x20], 0x20
lea rdx, [0x14026cd3d]
mov r8d, 0xd
call r10
mov rax, qword [rsp + 0x60]
mov r14, qword [rax]
lea rdx, [rsp + 0x68]
mov rcx, r14
call fcn.1401580a0
mov rdx, qword [rsi + 0x38]
mov r8, qword [rsi + 0x40]
lea rcx, [rsp + 0xf8]
call fcn.140142370
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0xf0], rax
movups xmm0, xmmword [rsp + 0xf8]
movaps xmmword [rsp + 0xe0], xmm0
lea r13, [r14 + 0x100]
mov rbx, qword [r14 + 0x100]
movabs rax, 0x8000000000000000
cmp rbx, rax
je 0x14014e264
mov qword [rsp + 0x60], r12
mov rax, qword [r14 + 0x108]
mov qword [rsp + 0x38], rax
mov r14, qword [r14 + 0x110]
test r14, r14
je 0x14014e247
mov rax, qword [rsp + 0x38]
lea r12, [rax + 8]
jmp 0x14014e22b
add r12, 0x18
dec r14
je 0x14014e247
cmp qword [r12 - 8], 0
je 0x14014e222
mov r8, qword [r12]
mov rcx, qword [0x1402f90f8]
xor edx, edx
call fcn.1401d02bc
jmp 0x14014e222
test rbx, rbx
mov r12, qword [rsp + 0x60]
je 0x14014e264
mov rcx, qword [0x1402f90f8]
xor edx, edx
mov r8, qword [rsp + 0x38]
call fcn.1401d02bc
mov rax, qword [rsp + 0xf0]
mov qword [r13 + 0x10], rax
movaps xmm0, xmmword [rsp + 0xe0]
movups xmmword [r13], xmm0
lea rbx, [rsi + 0x180]
lea rdx, [rsi + 0x90]
test bpl, bpl
je 0x14014e3cb
movzx ebp, byte [rsi + 0x1e8]
lea rcx, [rsp + 0x188]
mov r8d, 0xf0
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0x298], r12
movups xmm0, xmmword [rsp + 0x68]
movups xmm1, xmmword [rsp + 0x78]
movdqu xmm2, xmmword [rsp + 0x88]
movups xmm3, xmmword [rsp + 0x98]
movups xmmword [rsp + 0x2a0], xmm0
movups xmmword [rsp + 0x2b0], xmm1
movdqu xmmword [rsp + 0x2c0], xmm2
movups xmmword [rsp + 0x2d0], xmm3
movups xmm0, xmmword [rsp + 0xa8]
movups xmmword [rsp + 0x2e0], xmm0
movups xmm0, xmmword [rsp + 0xb8]
movups xmmword [rsp + 0x2f0], xmm0
movups xmm0, xmmword [rsp + 0xc8]
movups xmmword [rsp + 0x300], xmm0
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x310], rax
lea rcx, [rsp + 0xf8]
mov r8d, 0x90
mov rdx, rsi
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmmword [rsp + 0x318], xmm0
movups xmmword [rsp + 0x328], xmm1
mov rax, qword [r15 + 0x20]
mov qword [rsp + 0x338], rax
movdqu xmm0, xmmword [rbx]
movdqu xmm1, xmmword [rbx + 0x10]
movdqu xmmword [rsp + 0x278], xmm0
movdqu xmmword [rsp + 0x288], xmm1
mov byte [rsp + 0x340], bpl
mov byte [rsp + 0x341], 1
mov ecx, 0x250
call fcn.140088970
mov rsi, rax
lea rdx, [rsp + 0xf8]
mov r8d, 0x250
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov qword [rdi + 8], rsi
lea rax, fcn.1401586e0
jmp 0x14014e50f
movzx ebp, byte [rsi + 0x1e8]
lea rcx, [rsp + 0x188]
mov r8d, 0xf0
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0x2b8], r12
movups xmm0, xmmword [rsp + 0x68]
movups xmm1, xmmword [rsp + 0x78]
movdqu xmm2, xmmword [rsp + 0x88]
movups xmm3, xmmword [rsp + 0x98]
movups xmmword [rsp + 0x2c0], xmm0
movups xmmword [rsp + 0x2d0], xmm1
movdqu xmmword [rsp + 0x2e0], xmm2
movups xmmword [rsp + 0x2f0], xmm3
movups xmm0, xmmword [rsp + 0xa8]
movups xmmword [rsp + 0x300], xmm0
movups xmm0, xmmword [rsp + 0xb8]
movups xmmword [rsp + 0x310], xmm0
movups xmm0, xmmword [rsp + 0xc8]
movups xmmword [rsp + 0x320], xmm0
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x330], rax
lea rcx, [rsp + 0xf8]
mov r8d, 0x90
mov rdx, rsi
call sub.msvcrt.dll_memcpy
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmmword [rsp + 0x338], xmm0
movups xmmword [rsp + 0x348], xmm1
mov rax, qword [r15 + 0x20]
mov qword [rsp + 0x358], rax
movdqu xmm0, xmmword [rbx]
movdqu xmm1, xmmword [rbx + 0x10]
movdqu xmmword [rsp + 0x298], xmm0
movdqu xmmword [rsp + 0x2a8], xmm1
mov byte [rsp + 0x360], bpl
movabs rax, 0x8000000000000000
mov qword [rsp + 0x278], rax
mov byte [rsp + 0x361], 1
mov ecx, 0x270
call fcn.140088970
mov rsi, rax
lea rdx, [rsp + 0xf8]
mov r8d, 0x270
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov qword [rdi + 8], rsi
lea rax, fcn.140158590
mov qword [rdi + 0x10], rax
mov byte [rdi], 0x14
lea rcx, [rsp + 0x40]
call fcn.140153e00
jmp 0x14014dfd5
lea rcx, [rsp + 0xf8]
call fcn.140152d20
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x50], rax
movups xmm0, xmmword [rsp + 0xf8]
movaps xmmword [rsp + 0x40], xmm0
lea r14, [rsi + 0x1a8]
cmp qword [rsi], r15
jne 0x14014dd00
jmp 0x14014de91
lea r8, [0x14026b038]
mov ecx, 0x20
mov edx, 0x20
call fcn.140028700
jmp 0x14014e5b5
mov rbx, r8
add rdx, 0x20
lea r8, [0x14026b020]
mov ecx, 0x20
call fcn.14002e0c0
jmp 0x14014e5b5
mov ecx, 8
mov edx, 0x238
call fcn.140025820
jmp 0x14014e5b5
lea r8, [0x14026bfd0]
mov ecx, 0x30
call fcn.14002e0c0
ud2