Function at 0x18020d460
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
movaps xmmword [rsp + 0x60], xmm6
mov rdi, r8
mov rbp, rdx
mov rbx, qword [r8 + 0x18]
cmp rbx, 0xffffffffffffffff
jne 0x18020d4a2
mov rcx, r8
call fcn.1800d90d0
mov rbx, rax
mov qword [rdi + 0x18], rax
test rbx, rbx
je 0x18020dc85
lea rdi, [rbx + rbx*4]
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x48], xmm0
xor eax, eax
mov qword [rsp + 0x58], rax
test rdi, rdi
je 0x18020d50e
movabs rax, 0x1fffffffffffffff
cmp rdi, rax
ja 0x18020dcaf
mov edx, 8
mov rcx, rdi
call fcn.18009de10
mov r15, rax
mov qword [rsp + 0x48], rax
lea r8, [rdi*8]
lea rdi, [r8 + rax]
mov qword [rsp + 0x58], rdi
xor edx, edx
mov rcx, rax
call fcn.180283390
mov qword [rsp + 0x50], rdi
jmp 0x18020d513
mov r15, qword [rsp + 0x48]
lea r12, [rbx*8]
lea r14, [r12 + r15]
mov r13, rbx
shl r13, 4
add r13, r15
lea rax, [rbx + rbx*2]
lea rsi, [r15 + rax*8]
mov rdi, rbx
shl rdi, 5
add rdi, r15
mov qword [rsp + 0x38], rdi
mov rdx, qword [rbp]
mov r8, qword [rbp + 8]
sub r8, rdx
sar r8, 3
cmp rbx, r8
cmovb r8, rbx
test r8, r8
je 0x18020d56f
test rdx, rdx
je 0x18020dc5b
test rsi, rsi
je 0x18020dc5b
jmp 0x18020d57e
test rdx, rdx
je 0x18020d58e
test rsi, rsi
je 0x18020d58e
test r8, r8
je 0x18020d58e
lea r8, [r8*8]
mov rcx, rsi
call fcn.180282cf0
mov rbp, qword [rsp + 0xc0]
mov rdx, qword [rbp]
mov r8, qword [rbp + 8]
sub r8, rdx
sar r8, 3
cmp rbx, r8
cmovb r8, rbx
test r8, r8
je 0x18020d5c5
test rdx, rdx
je 0x18020dc5b
test r13, r13
je 0x18020dc5b
jmp 0x18020d5d4
test rdx, rdx
je 0x18020d5e4
test r13, r13
je 0x18020d5e4
test r8, r8
je 0x18020d5e4
lea r8, [r8*8]
mov rcx, r13
call fcn.180282cf0
mov qword [r14], 1
mov rdx, qword [rbp]
mov r8, qword [rbp + 8]
sub r8, rdx
sar r8, 3
cmp rbx, r8
cmovb r8, rbx
test r8, r8
je 0x18020d61a
test rdx, rdx
je 0x18020dc5b
test rdi, rdi
je 0x18020dc5b
jmp 0x18020d629
test rdx, rdx
je 0x18020d639
test rdi, rdi
je 0x18020d639
test r8, r8
je 0x18020d639
lea r8, [r8*8]
mov rcx, rdi
call fcn.180282cf0
mov r9d, 1
xor r8d, r8d
mov rdx, rbx
mov rcx, rdi
call fcn.18014ffc0
mov r9d, 1
mov r8, r14
mov rdx, rbx
mov rcx, rdi
call fcn.18014f640
test rax, rax
jne 0x18020dcb5
mov rcx, rbp
call fcn.1800d8390
add rax, rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0xc8], 0
je 0x18020d916
nop dword [rax]
mov ebp, dword [rsi]
and ebp, 1
mov qword [rsp + 0x20], rbx
mov r9, r13
mov r8, rbx
mov rdx, rsi
mov ecx, ebp
call fcn.18020d0a0
mov rdi, rax
mov qword [rsp + 0x20], rbx
mov r9, rsi
mov r8, rbx
mov rdx, r13
mov rcx, rax
call fcn.1800d9370
lea rax, [rdi - 1]
shr rax, 0x3f
not rdi
shr rdi, 0x3f
and rax, rdi
dec rax
mov r10, rax
and r10d, 1
xor r9d, r9d
nop dword [rax]
nop word [rax + rax]
mov r8, qword [rsi + r9*8]
mov rdx, r8
not rdx
add rdx, r10
xor ecx, ecx
cmp rdx, r10
setb cl
mov r10, rcx
xor rdx, r8
and rdx, rax
xor rdx, r8
mov qword [rsi + r9*8], rdx
inc r9
cmp r9, rbx
jne 0x18020d6f0
movq xmm4, rax
punpcklqdq xmm4, xmm4
xor edx, edx
mov rcx, rax
cmp rbx, 4
jb 0x18020d7da
lea r8, [r15 - 8]
add r8, r12
lea rcx, [r14 - 8]
add rcx, r12
cmp r15, rcx
ja 0x18020d754
mov rcx, rax
cmp r8, r14
jae 0x18020d7da
mov r10, rbx
and r10, 0xfffffffffffffffc
lea r9, [r15 + 0x10]
mov r8, r14
sub r8, r15
mov rcx, rax
nop dword [rax + rax]
movdqu xmm1, xmmword [r8 + r9 - 0x10]
movdqu xmm2, xmmword [r9 - 0x10]
movdqa xmm3, xmm2
xorps xmm3, xmm1
andps xmm3, xmm4
movdqa xmm0, xmm3
xorps xmm0, xmm1
movdqu xmmword [r8 + r9 - 0x10], xmm0
xorps xmm3, xmm2
movdqu xmmword [r9 - 0x10], xmm3
movdqu xmm1, xmmword [r8 + r9]
movdqu xmm2, xmmword [r9]
movdqa xmm3, xmm1
xorps xmm3, xmm2
andps xmm3, xmm4
movdqa xmm0, xmm3
xorps xmm0, xmm1
movdqu xmmword [r8 + r9], xmm0
xorps xmm3, xmm2
movdqu xmmword [r9], xmm3
add rdx, 4
lea r9, [r9 + 0x20]
cmp rdx, r10
jne 0x18020d770
cmp rdx, rbx
je 0x18020d811
lea r10, [r15 + rdx*8]
mov rdi, r14
sub rdi, r15
mov r11, rbx
sub r11, rdx
nop word [rax + rax]
mov r8, qword [r10]
mov r9, r8
xor r9, qword [r10 + rdi]
and r9, rcx
xor qword [r10 + rdi], r9
xor r9, r8
mov qword [r10], r9
lea r10, [r10 + 8]
sub r11, 1
jne 0x18020d7f0
test rsi, rsi
je 0x18020dc5b
mov r8, r12
mov rdx, rsi
mov rcx, rsi
call fcn.180282cf0
xor r9d, r9d
lea r8, [rsi - 8]
add r8, r12
mov r10, rbx
nop word [rax + rax]
mov rdx, qword [r8]
mov rax, rdx
shr rax, 1
or rax, r9
mov qword [r8], rax
mov r9, rdx
shl r9, 0x3f
lea r8, [r8 - 8]
sub r10, 1
jne 0x18020d840
mov qword [rsp + 0x20], rbx
mov r9, r15
mov r8, rbx
mov rdx, r14
mov rcx, rbp
call fcn.18020d0a0
mov qword [rsp + 0x20], rbx
mov rcx, qword [rsp + 0xc0]
mov r9, qword [rcx]
mov r8, rbx
mov rdx, r14
mov rcx, rax
call fcn.1800d9370
mov edi, dword [r14]
and edi, 1
test r14, r14
je 0x18020dc5b
mov r8, r12
mov rdx, r14
mov rcx, r14
call fcn.180282cf0
xor r9d, r9d
lea r8, [r14 - 8]
add r8, r12
mov r10, rbx
nop
mov rdx, qword [r8]
mov rax, rdx
shr rax, 1
or rax, r9
mov qword [r8], rax
mov r9, rdx
shl r9, 0x3f
lea r8, [r8 - 8]
sub r10, 1
jne 0x18020d8c0
mov qword [rsp + 0x20], rbx
mov r9, qword [rsp + 0x38]
mov r8, rbx
mov rdx, r14
mov rcx, rdi
call fcn.1800d9370
mov rax, qword [rsp + 0xc8]
inc rax
mov qword [rsp + 0xc8], rax
cmp rax, qword [rsp + 0x40]
jne 0x18020d690
xor r8d, r8d
lea rcx, [r8 - 1]
lea r10d, [r8 + 0x3f]
movdqa xmm5, xmmword [0x180324c70]
cmp rbx, 4
jb 0x18020d9d0
mov rax, rbx
and rax, 0xfffffffffffffffc
movdqa xmm2, xmm5
movdqa xmm6, xmm5
movdqa xmm4, xmm5
movq xmm3, r10
nop dword [rax + rax]
movdqu xmm0, xmmword [rsi + r8*8]
movdqa xmm1, xmm6
paddq xmm1, xmm0
psrlq xmm1, xmm3
andnps xmm0, xmm5
psrlq xmm0, xmm3
andps xmm1, xmm0
xorps xmm0, xmm0
psubq xmm0, xmm1
andps xmm2, xmm0
movdqu xmm0, xmmword [rsi + r8*8 + 0x10]
movdqa xmm1, xmm0
paddq xmm1, xmm6
psrlq xmm1, xmm3
andnps xmm0, xmm5
psrlq xmm0, xmm3
andps xmm1, xmm0
xorps xmm0, xmm0
psubq xmm0, xmm1
andps xmm0, xmm4
movdqa xmm4, xmm0
add r8, 4
cmp r8, rax
jne 0x18020d950
andps xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 8
andps xmm2, xmm0
movq rcx, xmm2
cmp r8, rbx
je 0x18020d9f4
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rsi + r8*8]
lea rdx, [rax - 1]
shr rdx, 0x3f
not rax
shr rax, 0x3f
and rdx, rax
neg rdx
and rcx, rdx
inc r8
cmp r8, rbx
jne 0x18020d9d0
mov rdx, qword [r13]
xor rdx, 1
lea rax, [rdx - 1]
shr rax, 0x3f
not rdx
shr rdx, 0x3f
and rax, rdx
neg rax
mov r9d, 1
lea rdx, [rbx - 1]
cmp rbx, r9
je 0x18020daf5
cmp rdx, 4
jb 0x18020dad0
and edx, 3
mov r8, rbx
sub r8, rdx
movdqa xmm3, xmmword [0x180324c70]
movdqa xmm6, xmm3
movdqa xmm2, xmm3
movq xmm4, r10
nop dword [rax]
movdqu xmm0, xmmword [r13 + r9*8]
movdqa xmm1, xmm0
paddq xmm1, xmm6
psrlq xmm1, xmm4
andnps xmm0, xmm5
psrlq xmm0, xmm4
andps xmm1, xmm0
xorps xmm0, xmm0
psubq xmm0, xmm1
andps xmm3, xmm0
movdqu xmm0, xmmword [r13 + r9*8 + 0x10]
movdqa xmm1, xmm0
paddq xmm1, xmm6
psrlq xmm1, xmm4
andnps xmm0, xmm5
psrlq xmm0, xmm4
andps xmm1, xmm0
xorps xmm0, xmm0
psubq xmm0, xmm1
andps xmm2, xmm0
add r9, 4
cmp r9, r8
jne 0x18020da50
andps xmm2, xmm3
movdqa xmm0, xmm2
psrldq xmm0, 8
andps xmm2, xmm0
movq rdx, xmm2
and rax, rdx
cmp r9, rbx
je 0x18020daf5
nop dword [rax]
nop word [rax + rax]
mov rdx, qword [r13 + r9*8]
lea r8, [rdx - 1]
shr r8, 0x3f
not rdx
shr rdx, 0x3f
and r8, rdx
neg r8
and rax, r8
inc r9
cmp r9, rbx
jne 0x18020dad0
test rcx, rcx
je 0x18020dc31
mov rdx, rax
not rdx
xor ecx, ecx
cmp rbx, 8
jb 0x18020db70
movq xmm2, rdx
punpcklqdq xmm2, xmm2
mov r8, rbx
and r8, 0xfffffffffffffff8
andnps xmm2, xmm5
lea rdx, [r15 + 0x20]
movdqu xmm0, xmmword [rdx - 0x20]
andps xmm0, xmm2
movdqu xmmword [rdx - 0x20], xmm0
movdqu xmm0, xmmword [rdx - 0x10]
andps xmm0, xmm2
movdqu xmmword [rdx - 0x10], xmm0
movdqu xmm1, xmmword [rdx]
andps xmm1, xmm2
movdqu xmmword [rdx], xmm1
movdqu xmm0, xmmword [rdx + 0x10]
movdqa xmm1, xmm2
andps xmm1, xmm0
movdqu xmmword [rdx + 0x10], xmm1
add rcx, 8
lea rdx, [rdx + 0x40]
cmp rcx, r8
jne 0x18020db23
cmp rcx, rbx
je 0x18020db7c
nop dword [rax + rax]
and qword [r15 + rcx*8], rax
inc rcx
cmp rcx, rbx
jne 0x18020db70
shl rbx, 5
test rbx, rbx
je 0x18020db92
mov r8, rbx
xor edx, edx
mov rcx, r14
call fcn.180283390
mov rbx, qword [rsp + 0xb0]
mov qword [rbx], 0
mov qword [rbx + 8], 0
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0xffffffffffffffff
mov dword [rbx + 0x20], 1
lea rax, [rsp + 0x48]
cmp rbx, rax
je 0x18020dbe6
mov qword [rbx], r15
xor r15d, r15d
mov rax, qword [rsp + 0x50]
mov qword [rbx + 8], rax
mov rax, qword [rsp + 0x58]
mov qword [rbx + 0x10], rax
xor eax, eax
jmp 0x18020dbeb
mov rax, qword [rsp + 0x58]
mov qword [rbx + 0x18], 0xffffffffffffffff
test r15, r15
je 0x18020dc11
sub rax, r15
sar rax, 3
mov r8d, 8
mov rdx, rax
mov rcx, r15
call fcn.18009df10
nop
mov rax, rbx
mov rbx, qword [rsp + 0xb8]
movaps xmm6, xmmword [rsp + 0x60]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov dword [rsp + 0x20], reloc.WS2_32.dll_WSAGetLastError
lea r9, [0x1803e2420]
lea r8, str.inverse_mod_odd_modulus
lea rdx, str.A_is_zero
lea rcx, str.a_is_0.is_set__
call fcn.1800d1f70
int3
mov dword [rsp + 0x20], 0x7b
lea r9, [0x1803e49b0]
lea r8, str.copy_mem
lea rdx, str.If_n___0_then_args_are_not_null
lea rcx, str.n___0_implies_in___nullptr__out___nullptr
call fcn.1800d1f70
nop
mov dword [rsp + 0x20], 0x2d
lea r9, [0x1803e2420]
lea r8, str.inverse_mod_odd_modulus
lea rdx, str.Not_empty
lea rcx, str.mod_words___0
call fcn.1800d1f70
int3
call fcn.18007a2a0
nop
mov dword [rsp + 0x20], 0x43
lea r9, [0x1803e2420]
lea r8, str.inverse_mod_odd_modulus
lea rdx, [0x1803c6beb]
lea rcx, str.carry__0
call fcn.1800d1f70
int3