Function at 0x1401d6620
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0x98
mov rax, qword [0x140628fc0]
xor rax, rsp
mov qword [rbp + 7], rax
mov r14, r9
mov r12, r8
mov r15, rdx
mov rdi, rcx
mov qword [rbp - 0x29], r8
mov qword [rbp - 0x21], r9
xor r10d, r10d
mov dword [rbp - 0x55], r10d
mov rsi, qword [r8]
test rsi, rsi
je 0x1401d6a22
mov rax, qword [r9]
test rax, rax
je 0x1401d6a22
mov ecx, dword [rsi + 0x70]
mov dword [rbp - 0x31], ecx
cmp ecx, 8
jl 0x1401d6696
call fcn.14017ece0
mov dword [r15], 7
jmp 0x1401d69a7
add rsi, 0x50
lea r13, [rax + 0x50]
cmp ecx, 1
jne 0x1401d671d
mov r9d, r10d
cmp qword [rsi + 0x18], 0xf
jbe 0x1401d66b9
mov r8, qword [rsi]
mov rax, r8
add r8, qword [rsi + 0x10]
jmp 0x1401d66c3
mov r8, qword [rsi + 0x10]
add r8, rsi
mov rax, rsi
cmp rax, r8
je 0x1401d6707
mov r9d, r10d
lea r10, [0x1405cddb0]
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [rax]
movzx edx, byte [rcx + r10]
lea ecx, [r9 + 0x10]
shl ecx, 4
add ecx, edx
movzx r9d, byte [rcx + r10]
cmp r9d, 1
je 0x1401d670c
inc rax
cmp rax, r8
jne 0x1401d66e0
xor r10d, r10d
test r9d, r9d
je 0x1401d671d
call fcn.14017ece0
mov dword [r15], 5
jmp 0x1401d69a7
movzx ecx, byte [rdi + 9]
mov byte [rbp - 0x58], cl
mov rax, qword [r12]
movzx edx, byte [rax + 0x75]
mov byte [rbp - 0x59], dl
test cl, cl
jne 0x1401d67ed
mov rdi, qword [rdi + 0x98]
lea rbx, [rdi + 0x10]
mov qword [rbp - 0x19], rbx
mov rcx, rbx
call fcn.14048015c
test eax, eax
jne 0x1401d6ace
mov eax, dword [rbx + 0x4c]
cmp eax, 0x7fffffff
je 0x1401d6abe
mov r8d, dword [rdi + 0xc]
mov edx, dword [rdi + 8]
mov rcx, rdi
call fcn.1401eab30
mov edi, eax
mov rcx, rbx
call fcn.140480164
xor r8d, r8d
mov rdx, qword [rsi + 0x10]
mov rcx, r13
call fcn.1401a9e30
mov dword [rbp - 1], edi
mov rax, r13
cmp qword [r13 + 0x18], 0xf
jbe 0x1401d679d
mov rax, qword [r13]
cmp qword [rsi + 0x18], 0xf
jbe 0x1401d67b0
mov r9, qword [rsi]
add r9, qword [rsi + 0x10]
mov rsi, qword [rsi]
jmp 0x1401d67b7
mov r9, qword [rsi + 0x10]
add r9, rsi
mov r8, r9
xor r10d, r10d
mov edx, r10d
cmp rsi, r9
je 0x1401d6839
nop word [rax + rax]
movzx ecx, byte [rbp + rdx - 1]
xor cl, byte [rsi]
mov byte [rax], cl
inc rdx
and edx, 3
lea rax, [rax + 1]
inc rsi
cmp rsi, r8
jne 0x1401d67d0
jmp 0x1401d6839
mov edi, r10d
lea rbx, [rsi + 0x10]
xor r8d, r8d
mov rdx, qword [rbx]
mov rcx, r13
call fcn.1401a9e30
mov r9, r13
cmp qword [r13 + 0x18], 0xf
jbe 0x1401d6810
mov r9, qword [r13]
cmp qword [rsi + 0x18], 0xf
jbe 0x1401d6822
mov r8, qword [rsi]
mov rsi, r8
add r8, qword [rbx]
jmp 0x1401d6828
mov r8, qword [rbx]
add r8, rsi
sub r8, rsi
mov rdx, rsi
mov rcx, r9
call fcn.1404da2a0
xor r10d, r10d
mov rdx, qword [r13 + 0x10]
neg byte [rbp - 0x59]
sbb sil, sil
and sil, 0x80
mov r13d, dword [rbp - 0x31]
movzx eax, r13b
and al, 0xf
or sil, al
mov ebx, 0x80
movzx ecx, byte [rbp - 0x58]
test cl, cl
cmovne ebx, r10d
cmp rdx, 0x7d
ja 0x1401d686e
movzx eax, dl
jmp 0x1401d687a
cmp rdx, 0xffff
seta al
add al, 0x7e
or bl, al
xor eax, eax
mov qword [rbp - 0x11], rax
mov dword [rbp - 9], eax
test cl, cl
lea rcx, [rbp - 0x11]
jne 0x1401d690b
call fcn.1401743b0
movsxd rcx, eax
mov dword [rbp + rcx - 0x11], edi
mov rdi, qword [r14]
xorps xmm0, xmm0
movups xmmword [rbp - 0x51], xmm0
mov qword [rbp - 0x39], reloc.WS2_32.dll_ntohs
mov eax, 2
mov dword [rbp - 0x55], eax
mov byte [rbp - 0x51], sil
mov qword [rbp - 0x41], rax
mov byte [rbp - 0x50], bl
mov byte [rbp - 0x4f], 0
movzx edx, bl
and dl, 0x7f
cmp dl, 0x7e
jne 0x1401d68d4
mov eax, 4
jmp 0x1401d68e0
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 - 0x11]
lea rcx, [rbp - 0x51]
call fcn.14014c6f0
lea rcx, [rdi + 0x10]
lea rdx, [rbp - 0x51]
call fcn.1401a9ed0
nop
jmp 0x1401d6984
call fcn.1401743b0
mov rdi, qword [r14]
xorps xmm0, xmm0
movups xmmword [rbp - 0x51], xmm0
mov qword [rbp - 0x39], reloc.WS2_32.dll_ntohs
mov dword [rbp - 0x55], 1
mov byte [rbp - 0x51], sil
mov eax, 2
mov qword [rbp - 0x41], rax
mov byte [rbp - 0x50], bl
mov byte [rbp - 0x4f], 0
movzx edx, bl
and dl, 0x7f
cmp dl, 0x7e
jne 0x1401d694f
mov eax, 4
jmp 0x1401d695b
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 - 0x11]
lea rcx, [rbp - 0x51]
call fcn.14014c6f0
lea rcx, [rdi + 0x10]
lea rdx, [rbp - 0x51]
call fcn.1401a9ed0
nop
lea rcx, [rbp - 0x51]
call fcn.14014c690
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, [0x140629e20]
mov qword [r15 + 8], rax
mov rdi, qword [r12 + 8]
mov ebx, 0xffffffff
test rdi, rdi
je 0x1401d69e4
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x1401d69e4
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov eax, ebx
lock xadd dword [rdi + 0xc], eax
cmp eax, 1
jne 0x1401d69e4
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdi, qword [r14 + 8]
test rdi, rdi
je 0x1401d6a9b
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x1401d6a9b
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
lock xadd dword [rdi + 0xc], ebx
cmp ebx, 1
jne 0x1401d6a9b
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x1401d6a9b
call fcn.14017ece0
mov dword [r15], 6
mov qword [r15 + 8], rax
mov rdi, qword [r12 + 8]
mov ebx, 0xffffffff
test rdi, rdi
je 0x1401d6a6b
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x1401d6a6b
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov eax, ebx
lock xadd dword [rdi + 0xc], eax
cmp eax, 1
jne 0x1401d6a6b
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdi, qword [r14 + 8]
test rdi, rdi
je 0x1401d6a9b
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x1401d6a9b
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx]
lock xadd dword [rdi + 0xc], ebx
cmp ebx, 1
jne 0x1401d6a9b
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + reloc.OLEAUT32.dll_VariantClear]
mov rax, r15
mov rcx, qword [rbp + 7]
xor rcx, rsp
call fcn.1404a0a30
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
dec eax
mov dword [rbx + 0x4c], eax
mov ecx, 6
call fcn.14047fee4
int3
mov ecx, 5
call fcn.14047fee4
int3