Function at 0x140065820
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov rbx, r8
mov rdi, rdx
mov rsi, rcx
mov r12, qword [rcx]
mov r14, qword [rcx + 8]
sub r14, r12
movabs r15, 0x1c65fec51bf97807
mov rax, qword [0x1402f6da0]
add rax, r15
call rax
cdqe
lea rcx, reloc.WS2_32.dll_connect
movzx ecx, byte [rcx + rax*8]
sar r14, cl
mov rax, qword [0x1402f6da8]
add rax, r15
call rax
cdqe
lea rcx, reloc.WS2_32.dll_accept
mov rbp, r14
add rbp, qword [rcx + rax*8]
mov r14, qword [rsi + 0x10]
sub r14, r12
mov rax, qword [0x1402f6db0]
add rax, r15
call rax
cdqe
lea rcx, reloc.WS2_32.dll_connect
movzx ecx, byte [rcx + rax*8]
sar r14, cl
mov rax, qword [0x1402f6db8]
add rax, r15
call rax
cdqe
lea rcx, reloc.WS2_32.dll_accept
movzx ecx, byte [rcx + rax*8]
mov r13, r14
shr r13, cl
mov rax, qword [0x1402f6dc0]
add rax, r15
call rax
cdqe
lea rcx, [0x14024bbf0]
mov rax, qword [rcx + rax*8]
sub rax, r13
add r13, r14
cmp r13, rbp
mov rcx, r13
mov qword [rsp + 0x30], rbp
cmovbe rcx, rbp
mov rdx, qword [0x140294c98]
mov r8, qword [0x140294ca0]
shrd r8, rdx, 0x3d
movabs r13, 0xa1d0251b6b936cf7
xor r13, r8
cmp r14, rax
cmovbe r13, rcx
mov rax, qword [0x1402f6dc8]
add rax, r15
call rax
cdqe
lea rcx, [0x14024bc10]
cmp r13, qword [rcx + rax*8]
ja 0x140065d45
mov rax, qword [0x1402f6dd8]
add rax, r15
call rax
cdqe
lea rcx, reloc.WS2_32.dll_connect
movzx ecx, byte [rcx + rax*8]
mov r14, r13
shl r14, cl
mov rax, qword [0x1402f6de0]
add rax, r15
call rax
movabs rax, 0xaaaec43bbc45e99e
imul rax, qword [0x140294ca8]
movabs rcx, 0x45c1b1c137ca0055
imul rcx, qword [0x140294cb0]
add rcx, rax
movabs rax, 0x23bf339b69eff47a
add rax, rcx
cmp r13, rax
mov qword [rsp + 0x28], r13
jne 0x1400659ac
xor r14d, r14d
jmp 0x140065a6e
mov rax, qword [0x1402f6de8]
add rax, r15
call rax
cdqe
lea rcx, [0x14024bc50]
cmp r13, qword [rcx + rax*8]
jbe 0x140065a5c
mov rax, qword [0x1402f6df0]
add rax, r15
call rax
cdqe
lea rcx, [0x14024bc70]
cmp r13, qword [rcx + rax*8]
jae 0x140065d45
mov rax, qword [0x1402f6df8]
add rax, r15
call rax
cdqe
lea rdx, [0x14024bc90]
add r14, qword [rdx + rax*8]
mov rax, qword [0x1402f6e00]
add rax, r15
mov rcx, r14
call rax
test rax, rax
je 0x140065d4f
mov r14, rax
mov rax, qword [0x1402f6e10]
add rax, r15
call rax
cdqe
lea rcx, [0x14024bcb0]
mov rbp, qword [rcx + rax*8]
add rbp, r14
mov rax, qword [0x1402f6e18]
add rax, r15
call rax
cdqe
lea rcx, [0x14024bcd0]
and rbp, qword [rcx + rax*8]
mov qword [rbp - 8], r14
mov r14, rbp
jmp 0x140065a6e
mov rax, qword [0x1402f6e00]
add rax, r15
mov rcx, r14
call rax
mov r14, rax
mov r13, rdi
sub r13, r12
movzx eax, byte [rbx]
mov byte [r14 + r13], al
mov rax, qword [rbx + 8]
mov qword [r14 + r13 + 8], rax
mov rax, qword [0x1402f6e20]
add rax, r15
call rax
movzx eax, byte [0x140294cb8]
movzx ecx, byte [0x140294cb9]
imul eax, eax, 0x54
mov edx, ecx
shl edx, 6
sub edx, ecx
mov ecx, edx
add cl, al
add cl, 0xa7
mov byte [rbx], cl
mov qword [rbx + 8], 0
mov rbx, qword [rsi]
mov rax, qword [rsi + 8]
cmp rax, rdi
je 0x140065ba5
cmp rbx, rdi
je 0x140065b2e
xor eax, eax
mov r12, rax
movzx eax, byte [rbx + rax]
mov byte [r14 + r12], al
mov rax, qword [rbx + r12 + 8]
mov qword [r14 + r12 + 8], rax
mov rax, qword [0x1402f6e30]
add rax, r15
call rax
movzx eax, byte [0x140294cbc]
movzx ecx, byte [0x140294cbd]
shr cl, 5
shl al, 3
or al, cl
xor al, 0xfd
mov byte [rbx + r12], al
mov qword [rbx + r12 + 8], 0
lea rcx, [rbx + r12]
add rcx, 0x10
add r12, 0x10
mov rax, r12
cmp rcx, rdi
jne 0x140065ad0
mov rax, qword [rsi + 8]
cmp rax, rdi
je 0x140065c1d
mov rbx, rax
lea r12, [r14 + r13]
add r12, 0x18
xor ebp, ebp
nop word cs:[rax + rax]
movzx eax, byte [rdi + rbp]
mov byte [r12 + rbp - 8], al
mov rax, qword [rdi + rbp + 8]
mov qword [r12 + rbp], rax
mov rax, qword [0x1402f6e38]
add rax, r15
call rax
movzx eax, byte [0x140294cbe]
movzx ecx, byte [reloc.OLEAUT32.dll_VariantInit]
shr cl, 3
shl al, 5
or al, cl
add al, 0x80
mov byte [rdi + rbp], al
mov qword [rdi + rbp + 8], 0
lea rcx, [rdi + rbp]
add rcx, 0x10
add rbp, 0x10
cmp rcx, rbx
jne 0x140065b50
jmp 0x140065c1d
cmp rbx, rdi
je 0x140065d37
xor r12d, r12d
nop word cs:[rax + rax]
movzx eax, byte [rbx + r12]
mov byte [r14 + r12], al
mov rax, qword [rbx + r12 + 8]
mov qword [r14 + r12 + 8], rax
mov rax, qword [0x1402f6e28]
add rax, r15
call rax
movzx eax, byte [0x140294cba]
movzx ecx, byte [0x140294cbb]
shl eax, 5
lea eax, [rax + rax*2]
neg eax
lea ecx, [rcx + rcx*4]
neg ecx
add cl, al
add cl, 0xda
mov byte [rbx + r12], cl
mov qword [rbx + r12 + 8], 0
lea rax, [rbx + r12]
add rax, 0x10
add r12, 0x10
cmp rax, rdi
jne 0x140065bc0
mov rax, qword [rsi]
test rax, rax
je 0x140065cfd
mov rdi, qword [rsi + 8]
cmp rax, rdi
je 0x140065c67
nop word cs:[rax + rax]
mov rbx, rax
movzx edx, byte [rax]
mov rax, qword [0x1402f6e40]
add rax, r15
lea rcx, [rbx + 8]
call rax
add rbx, 0x10
mov rax, rbx
cmp rbx, rdi
jne 0x140065c40
mov r12, qword [rsi]
jmp 0x140065c6a
mov r12, rax
mov rdi, qword [rsi + 0x10]
sub rdi, r12
mov rax, qword [0x1402f6e48]
add rax, r15
call rax
cdqe
lea rcx, [0x14024bcf0]
cmp rdi, qword [rcx + rax*8]
jbe 0x140065ced
mov rbx, qword [r12 - 8]
mov rax, qword [0x1402f6e50]
add rax, r15
call rax
cdqe
lea rcx, [0x14024bd10]
add r12, qword [rcx + rax*8]
sub r12, rbx
mov rax, qword [0x1402f6e58]
add rax, r15
call rax
cdqe
lea rcx, reloc.WLDAP32.dll_Ordinal_32
cmp r12, qword [rcx + rax*8]
jae 0x140065d4f
mov rax, qword [0x1402f6e60]
add rax, r15
call rax
cdqe
lea rcx, [0x14024bd50]
add rdi, qword [rcx + rax*8]
mov rdx, rdi
mov rcx, rbx
jmp 0x140065cf3
mov rdx, rdi
mov rcx, r12
add r15, qword [0x1402f6e68]
call r15
add r13, r14
mov qword [rsi], r14
mov rcx, qword [rsp + 0x30]
shl rcx, 4
add rcx, r14
mov qword [rsi + 8], rcx
mov rcx, qword [rsp + 0x28]
shl rcx, 4
add rcx, r14
mov qword [rsi + 0x10], rcx
mov rax, r13
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, rdi
test rax, rax
jne 0x140065c29
jmp 0x140065cfd
add r15, qword [str._ta_v__]
call r15
add r15, qword [0x1402f6e08]
call r15
int3