Function at 0x1400dc940
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0x90
mov r14, r9
mov r12, r8
mov r15, rdx
mov rdi, rcx
xor r8d, r8d
mov dword [rbp - 0x41], r8d
mov rax, qword [r12]
test rax, rax
je 0x1400dcd3a
mov rdx, qword [r9]
test rdx, rdx
je 0x1400dcd3a
mov ecx, dword [rax + 0x70]
mov dword [rbp - 0x29], ecx
cmp ecx, 8
jl 0x1400dc9ae
call fcn.1400b70d0
mov dword [r15], 7
jmp 0x1400dcd46
lea rsi, [rax + 0x50]
lea r13, [rdx + 0x50]
cmp ecx, 1
jne 0x1400dca32
mov r9d, r8d
mov rcx, qword [rsi + 0x10]
cmp qword [rsi + 0x18], 0xf
jbe 0x1400dc9d1
mov rax, qword [rsi]
add rcx, rax
jmp 0x1400dc9d7
add rcx, rsi
mov rax, rsi
cmp rax, rcx
je 0x1400dca18
mov r9d, r8d
lea r10, [0x1401a2090]
nop word [rax + rax]
movzx edx, byte [rax]
movzx r8d, byte [rdx + r10]
lea edx, [r9 + 0x10]
shl edx, 4
add edx, r8d
movzx r9d, byte [rdx + r10]
cmp r9d, 1
je 0x1400dca1d
inc rax
cmp rax, rcx
jne 0x1400dc9f0
xor r8d, r8d
test r9d, r9d
je 0x1400dca2e
call fcn.1400b70d0
mov dword [r15], 5
jmp 0x1400dcd46
mov rax, qword [r12]
movzx ecx, byte [rdi + 9]
mov byte [rbp - 0x48], cl
movzx edx, byte [rax + 0x75]
mov byte [rbp - 0x49], dl
test cl, cl
jne 0x1400dcb0b
mov rdi, qword [rdi + 0x98]
lea rbx, [rdi + 0x10]
mov qword [rbp - 0x41], rbx
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x1400dca70
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
mov eax, dword [rbx + 0x4c]
cmp eax, 0x7fffffff
jne 0x1400dca8b
dec eax
mov dword [rbx + 0x4c], eax
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov r8d, dword [rdi + 0xc]
mov edx, dword [rdi + 8]
mov rcx, rdi
call fcn.1400f12c0
mov edi, eax
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
lea rbx, [rsi + 0x10]
xor r8d, r8d
mov rdx, qword [rbx]
mov rcx, r13
call fcn.14006e4b0
mov dword [rbp - 0x41], edi
mov r8, r13
cmp qword [r13 + 0x18], 0xf
jbe 0x1400dcac8
mov r8, qword [r13]
mov rax, qword [rbx]
cmp qword [rsi + 0x18], 0xf
jbe 0x1400dcadd
mov rcx, qword [rsi]
mov rsi, rcx
add rax, rcx
jmp 0x1400dcae0
add rax, rsi
xor r9d, r9d
mov edx, r9d
cmp rsi, rax
je 0x1400dcb57
sub r8, rsi
nop
movzx ecx, byte [rbp + rdx - 0x41]
xor cl, byte [rsi]
mov byte [r8 + rsi], cl
inc rdx
and edx, 3
inc rsi
cmp rsi, rax
jne 0x1400dcaf0
jmp 0x1400dcb57
mov edi, r8d
lea rbx, [rsi + 0x10]
xor r8d, r8d
mov rdx, qword [rbx]
mov rcx, r13
call fcn.14006e4b0
mov r9, r13
cmp qword [r13 + 0x18], 0xf
jbe 0x1400dcb2e
mov r9, qword [r13]
cmp qword [rsi + 0x18], 0xf
jbe 0x1400dcb40
mov r8, qword [rsi]
mov rsi, r8
add r8, qword [rbx]
jmp 0x1400dcb46
mov r8, qword [rbx]
add r8, rsi
sub r8, rsi
mov rdx, rsi
mov rcx, r9
call sub.VCRUNTIME140.dll_memmove
xor r9d, r9d
mov rdx, qword [r13 + 0x10]
neg byte [rbp - 0x49]
sbb sil, sil
and sil, 0x80
mov r13d, dword [rbp - 0x29]
movzx eax, r13b
and al, 0xf
or sil, al
mov ebx, 0x80
movzx ecx, byte [rbp - 0x48]
test cl, cl
cmovne ebx, r9d
cmp rdx, 0x7d
ja 0x1400dcb8c
movzx eax, dl
jmp 0x1400dcb98
cmp rdx, 0xffff
seta al
add al, 0x7e
or bl, al
xor eax, eax
mov qword [rbp - 0x39], rax
mov dword [rbp - 0x31], eax
test cl, cl
lea rcx, [rbp - 0x39]
jne 0x1400dcc50
call fcn.1400b5420
movsxd rcx, eax
mov dword [rbp + rcx - 0x39], edi
mov rdi, qword [r14]
xorps xmm0, xmm0
movups xmmword [rbp - 1], xmm0
mov qword [rbp + 0x17], reloc.WS2_32.dll_ntohs
mov eax, 2
mov dword [rbp - 0x41], eax
mov byte [rbp - 1], sil
mov qword [rbp + 0xf], rax
mov byte [rbp], bl
mov byte [rbp + 1], 0
movzx edx, bl
and dl, 0x7f
cmp dl, 0x7e
jne 0x1400dcbf6
mov eax, 4
jmp 0x1400dcc02
mov ecx, 0xa
cmp dl, 0x7f
cmove rax, rcx
lea r8, [rax + 4]
test bl, bl
cmovns r8, rax
sub r8, 2
lea rdx, [rbp - 0x39]
lea rcx, [rbp - 1]
call fcn.14004d550
lea rcx, [rdi + 0x10]
lea rax, [rbp - 1]
cmp rcx, rax
je 0x1400dcc42
lea rdx, [rbp - 1]
cmp qword [rbp + 0x17], 0xf
cmova rdx, qword [rbp - 1]
mov r8, qword [rbp + 0xf]
call fcn.14004d3e0
nop
lea rcx, [rbp - 1]
call fcn.14004d380
jmp 0x1400dcd1e
call fcn.1400b5420
mov rdi, qword [r14]
xorps xmm0, xmm0
movups xmmword [rbp - 0x21], xmm0
mov qword [rbp - 9], reloc.WS2_32.dll_ntohs
mov dword [rbp - 0x41], 1
mov byte [rbp - 0x21], sil
mov eax, 2
mov qword [rbp - 0x11], rax
mov byte [rbp - 0x20], bl
mov byte [rbp - 0x1f], 0
movzx edx, bl
and dl, 0x7f
cmp dl, 0x7e
jne 0x1400dcc94
mov eax, 4
jmp 0x1400dcca0
mov ecx, 0xa
cmp dl, 0x7f
cmove rax, rcx
lea r8, [rax + 4]
test bl, bl
cmovns r8, rax
sub r8, 2
lea rdx, [rbp - 0x39]
lea rcx, [rbp - 0x21]
call fcn.14004d550
lea rcx, [rdi + 0x10]
lea rax, [rbp - 0x21]
cmp rcx, rax
je 0x1400dcce0
lea rdx, [rbp - 0x21]
cmp qword [rbp - 9], 0xf
cmova rdx, qword [rbp - 0x21]
mov r8, qword [rbp - 0x11]
call fcn.14004d3e0
nop
mov rdx, qword [rbp - 9]
cmp rdx, 0xf
jbe 0x1400dcd1e
inc rdx
mov rcx, qword [rbp - 0x21]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400dcd19
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400dcd19
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14016d66c
mov rax, qword [r14]
mov byte [rax + 0x74], 1
mov rax, qword [r14]
mov dword [rax + 0x70], r13d
xor eax, eax
mov dword [r15], eax
lea rax, [0x140275de0]
jmp 0x1400dcd46
call fcn.1400b70d0
mov dword [r15], 6
mov qword [r15 + 8], rax
mov rdi, qword [r12 + 8]
test rdi, rdi
mov ebx, 0xffffffff
je 0x1400dcd83
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x1400dcd83
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov eax, ebx
lock xadd dword [rdi + 0xc], eax
cmp eax, 1
jne 0x1400dcd83
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdi, qword [r14 + 8]
test rdi, rdi
je 0x1400dcdb3
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x1400dcdb3
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
lock xadd dword [rdi + 0xc], ebx
cmp ebx, 1
jne 0x1400dcdb3
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, r15
mov rbx, qword [rsp + 0xd0]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret