Function at 0x418260
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
movaps xmmword [rsp + 0x80], xmm6
mov rdi, rdx
mov rsi, rcx
cmp qword [rdx + 0x18], 0
je 0x418961
mov r14, rsi
lea rax, [rdi + 0x40]
mov qword [rsp + 0x58], rax
lea rbx, [rdi + 0x28]
mov r15, qword [r8]
mov ebp, 1
mov qword [rsp + 0x28], rbx
mov rdx, qword [rdi + 0x38]
test rdx, rdx
je 0x4184f0
mov rax, qword [rdi + 0x30]
mov rcx, qword [rax + 0x18]
cmp rcx, qword [rdi + 8]
jne 0x4183f0
inc rcx
mov qword [rdi + 8], rcx
lea r9, [rdx - 1]
mov qword [rdi + 0x38], r9
mov rcx, r9
shl rcx, 5
mov r8, qword [rax + rcx + 0x10]
mov qword [rsp + 0x40], r8
movupd xmm0, xmmword [rax + rcx]
movapd xmmword [rsp + 0x30], xmm0
test r9, r9
je 0x4183ff
lea r8, [rax + rcx]
mov rcx, qword [rax + rcx + 0x18]
movups xmm6, xmmword [rax]
mov r12, qword [rax + 0x10]
movupd xmm0, xmmword [r8]
movdqu xmm1, xmmword [r8 + 0x10]
movupd xmmword [rax], xmm0
sub r9, 2
mov r8d, 0
cmovb r9, r8
movdqu xmmword [rax + 0x10], xmm1
mov r8d, 1
mov r10d, 0
cmp rdx, 4
jb 0x4183c0
xor r11d, r11d
nop word [rax + rax]
mov rsi, r8
shl rsi, 5
mov rbx, qword [rax + rsi + 0x38]
xor r10d, r10d
cmp rbx, qword [rax + rsi + 0x18]
setle r10b
add r10, r8
mov r8, r10
shl r8, 5
shl r11, 5
movupd xmm0, xmmword [rax + r8]
movdqu xmm1, xmmword [rax + r8 + 0x10]
movdqu xmmword [rax + r11 + 0x10], xmm1
movupd xmmword [rax + r11], xmm0
mov r8d, r10d
and r8d, 2
mov r11, r10
or r11, 2
imul r11, r8
xor r8, 2
mov rsi, r10
and rsi, 0xfffffffffffffffd
imul rsi, r8
lea r8, [rsi + r11]
inc r8
mov r11, r10
cmp r8, r9
jbe 0x418350
add rdx, 0xfffffffffffffffe
cmp r8, rdx
jne 0x41840d
mov rdx, r8
shl rdx, 5
shl r10, 5
movupd xmm0, xmmword [rax + rdx]
movdqu xmm1, xmmword [rax + rdx + 0x10]
movdqu xmmword [rax + r10 + 0x10], xmm1
movupd xmmword [rax + r10], xmm0
jmp 0x418410
xor ecx, ecx
mov rdx, rbx
call fcn.00403250
jmp 0x4184f0
movups xmm6, xmmword [rax + rcx]
mov r12, qword [rax + rcx + 0x10]
jmp 0x4184b1
mov r8, r10
mov rdx, r8
shl rdx, 5
mov r9, qword [rsp + 0x40]
mov qword [rax + rdx + 0x10], r9
movapd xmm0, xmmword [rsp + 0x30]
movupd xmmword [rax + rdx], xmm0
mov qword [rax + rdx + 0x18], rcx
test r8, r8
mov rbx, qword [rsp + 0x28]
je 0x41848f
nop dword [rax + rax]
mov rdx, r8
or rdx, 0xfffffffffffffffe
mov r9, r8
and r9, 0xfffffffffffffffe
add rdx, r9
inc rdx
mov r9, rdx
shr r9, 1
mov r10, r9
shl r10, 5
cmp qword [rax + r10 + 0x18], rcx
jle 0x418492
shl r8, 5
movupd xmm0, xmmword [rax + r10]
movdqu xmm1, xmmword [rax + r10 + 0x10]
movdqu xmmword [rax + r8 + 0x10], xmm1
movupd xmmword [rax + r8], xmm0
mov r8, r9
cmp rdx, 2
jae 0x418440
xor r8d, r8d
shl r8, 5
mov rdx, qword [rsp + 0x40]
mov qword [rax + r8 + 0x10], rdx
movapd xmm0, xmmword [rsp + 0x30]
movupd xmmword [rax + r8], xmm0
mov qword [rax + r8 + 0x18], rcx
xor ecx, ecx
mov rdx, rbx
call fcn.00403250
mov rdx, qword [rdi + 0x50]
cmp qword [rdi + 0x40], rdx
je 0x418931
mov rax, qword [rdi + 0x48]
lea rcx, [rdx + rdx*2]
movups xmmword [rax + rcx*8], xmm6
mov qword [rax + rcx*8 + 0x10], r12
inc rdx
mov qword [rdi + 0x50], rdx
mov rdx, qword [rdi + 0x38]
test rdx, rdx
jne 0x4182b6
nop
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x418520
mov rcx, qword [rdi + 0x18]
mov rcx, qword [rcx + 0x38]
add rcx, 0x10
nop word cs:[rax + rax]
mov rdx, qword [rax + 0x10]
cmp rcx, rdx
je 0x418510
mov r12, qword [rax + 0x20]
jmp 0x418523
xor r12d, r12d
mov rsi, qword [rdi + 0x18]
xor eax, eax
lock cmpxchg qword [rsi + 0x20], rbp
test rax, rax
je 0x418550
cmp rax, 2
jne 0x4185f6
mov rcx, qword [r15]
mov rax, qword [r15 + 8]
add rax, 0x10
jmp 0x4185f4
mov rax, qword [rsi + 0x18]
test rax, rax
je 0x41859b
mov rdx, qword [rsi + 0x10]
mov rcx, qword [r15]
cmp rdx, rcx
jne 0x41859e
mov r8, qword [r15 + 8]
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [r8]
pcmpeqd xmm1, xmm0
pshufd xmm0, xmm1, 0xb1
pand xmm0, xmm1
movmskpd ecx, xmm0
cmp cl, 3
jne 0x418596
mov rcx, qword [rax + 0x10]
cmp rcx, qword [r8 + 0x10]
je 0x418906
mov rcx, rdx
jmp 0x41859e
mov rcx, qword [r15]
mov rax, qword [r15 + 8]
call qword [rax]
mov rbp, rax
mov r13, rdx
mov rax, qword [rsi + 0x18]
test rax, rax
je 0x4185ba
mov rcx, qword [rsi + 0x10]
call qword [rax + 0x18]
mov qword [rsi + 0x10], rbp
mov qword [rsi + 0x18], r13
mov eax, 1
xor ecx, ecx
lock cmpxchg qword [rsi + 0x20], rcx
je 0x4185f6
mov rcx, qword [rsi + 0x10]
mov rax, qword [rsi + 0x18]
mov qword [rsi + 0x18], 0
test rax, rax
je 0x418d44
xor edx, edx
xchg qword [rsi + 0x20], rdx
add rax, 8
call qword [rax]
xor ebp, ebp
xor ebx, ebx
nop word [rax + rax]
mov rax, qword [rdi + 0x18]
mov r13, qword [rax + 0x30]
mov rcx, qword [r13 + 0x28]
mov rdx, qword [rax + 0x38]
add rdx, 0x10
cmp r13, rdx
je 0x418620
test rcx, rcx
jne 0x41866e
jmp 0x418639
test rcx, rcx
je 0x418a95
mov r13, rcx
mov qword [rax + 0x30], rcx
mov rcx, qword [rcx + 0x28]
test rcx, rcx
jne 0x41866e
mov rcx, qword [rax + 0x28]
cmp r13, rcx
jne 0x41894a
mov rcx, qword [rax + 0x38]
mov qword [rcx + 0x38], 0
add rcx, 0x10
mov rdx, rcx
xchg qword [rax + 0x28], rdx
mov qword [rdx + 0x28], rcx
mov rcx, qword [r13 + 0x28]
test rcx, rcx
je 0x41894a
mov qword [rax + 0x30], rcx
cmp qword [r13 + 8], 0
jne 0x418691
lock dec qword [r13 - 0x10]
jne 0x418600
add r13, 0xfffffffffffffff0
mov rcx, r13
call fcn.00406280
jmp 0x418600
mov rcx, qword [rdi + 0x10]
mov rax, qword [rcx + 0x20]
mov rdx, qword [r13 + 0x10]
mov r8, qword [r13 + 0x18]
mov r9, qword [rdi + 0x18]
mov r9, qword [r9 + 0x38]
add r9, 0x10
mov qword [r13 + 0x10], r9
mov qword [r13 + 0x18], 0
test rdx, rdx
je 0x4186d0
mov qword [rdx + 0x18], r8
test r8, r8
jne 0x4186d9
mov qword [rdi + 0x10], rdx
mov rcx, rdx
jmp 0x4186dd
test r8, r8
je 0x4187a2
mov qword [r8 + 0x10], rdx
dec rax
mov qword [rcx + 0x20], rax
xor eax, eax
xchg byte [r13 + 0x38], al
test al, al
je 0x418d2a
mov byte [r13 + 0x39], 0
mov qword [rsp + 0x60], r13
lea rax, [0x00504b48]
mov qword [rsp + 0x68], rax
mov rsi, qword [r13]
mov rdx, qword [r13 + 8]
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x60]
call fcn.00428770
cmp qword [rsp + 0x30], 0
je 0x4187b9
movzx eax, byte [r13 + 0x39]
cmp al, 1
sbb rbp, 0xffffffffffffffff
mov rax, r13
xchg qword [rdi + 0x10], rax
test rax, rax
je 0x418777
mov rcx, qword [rdi + 0x18]
mov rcx, qword [rcx + 0x38]
add rcx, 0x10
nop
mov rdx, qword [rax + 0x10]
cmp rcx, rdx
je 0x418750
mov rcx, qword [rax + 0x20]
inc rcx
mov qword [r13 + 0x20], rcx
mov qword [r13 + 0x10], rax
mov qword [rax + 0x18], r13
cmp rbp, 1
jbe 0x418791
jmp 0x41894a
mov qword [r13 + 0x20], 1
mov qword [r13 + 0x10], 0
cmp rbp, 1
ja 0x41894a
inc rbx
cmp rbx, r12
jne 0x418600
jmp 0x41894a
mov qword [rdi + 0x10], rdx
xor eax, eax
xchg byte [r13 + 0x38], al
test al, al
jne 0x4186f2
jmp 0x418d2a
add r13, 0xfffffffffffffff0
movups xmm6, xmmword [rsp + 0x38]
mov r12, qword [rsp + 0x48]
mov bl, 1
xchg byte [r13 + 0x48], bl
mov rcx, qword [r13 + 0x18]
test rcx, rcx
je 0x4187f2
mov eax, 0xcc
mov edx, 0x84
lock cmpxchg qword [rcx], rdx
je 0x4187f2
mov rcx, qword [r13 + 0x18]
mov rax, qword [rcx + 0x10]
call qword [rax + 0x38]
mov qword [r13 + 0x18], 0
test bl, bl
mov ebp, 1
jne 0x418812
lock dec qword [r13]
jne 0x418812
mov rcx, r13
call fcn.00406280
cmp rsi, qword [rdi + 8]
mov rbx, qword [rsp + 0x28]
je 0x41891c
mov r13, qword [rdi + 0x38]
mov rcx, r13
cmp r13, qword [rdi + 0x28]
jne 0x41883d
mov rcx, rbx
mov rdx, r13
call fcn.00405cc0
mov rcx, qword [rdi + 0x38]
mov rax, qword [rdi + 0x30]
mov rdx, rcx
shl rdx, 5
movups xmmword [rax + rdx], xmm6
mov qword [rax + rdx + 0x10], r12
mov qword [rax + rdx + 0x18], rsi
inc rcx
mov qword [rdi + 0x38], rcx
mov rcx, r13
shl rcx, 5
mov rdx, qword [rax + rcx + 0x10]
mov qword [rsp + 0x40], rdx
movupd xmm0, xmmword [rax + rcx]
movapd xmmword [rsp + 0x30], xmm0
mov rcx, qword [rax + rcx + 0x18]
test r13, r13
je 0x4188d2
mov rdx, r13
or rdx, 0xfffffffffffffffe
mov r8, r13
and r8, 0xfffffffffffffffe
add rdx, r8
inc rdx
mov r8, rdx
shr r8, 1
mov r9, r8
shl r9, 5
cmp qword [rax + r9 + 0x18], rcx
jle 0x4188d5
shl r13, 5
movupd xmm0, xmmword [rax + r9]
movdqu xmm1, xmmword [rax + r9 + 0x10]
movdqu xmmword [rax + r13 + 0x10], xmm1
movupd xmmword [rax + r13], xmm0
mov r13, r8
cmp rdx, 1
ja 0x418883
xor r13d, r13d
shl r13, 5
mov rdx, qword [rsp + 0x40]
mov qword [rax + r13 + 0x10], rdx
movapd xmm0, xmmword [rsp + 0x30]
movupd xmmword [rax + r13], xmm0
mov qword [rax + r13 + 0x18], rcx
mov rax, qword [rdi + 0x10]
test rax, rax
jne 0x4184f9
jmp 0x418520
mov rax, qword [rax + 0x18]
mov rcx, rdx
cmp rax, qword [r8 + 0x18]
jne 0x41859e
jmp 0x4185c2
inc rsi
mov qword [rdi + 8], rsi
mov rdx, qword [rdi + 0x50]
cmp qword [rdi + 0x40], rdx
jne 0x4184c9
mov r8d, 1
mov rcx, qword [rsp + 0x58]
call fcn.00406020
mov rdx, qword [rdi + 0x50]
jmp 0x4184c9
mov rcx, qword [r15]
mov rax, qword [r15 + 8]
call qword [rax + 0x10]
mov qword [r14 + 8], 0
jmp 0x418cda
mov rbx, qword [rdi]
mov r12, qword [rdi + 8]
test r12, r12
je 0x418aaf
mov qword [rsp + 0x28], rsi
mov r14, qword [r8]
shl r12, 5
mov bpl, 1
xor esi, esi
lea r15, [rsp + 0x30]
jmp 0x4189a6
cmp eax, 1
jne 0x418cf6
add rsi, 0x20
cmp r12, rsi
je 0x418a7d
mov rax, qword [rbx + rsi]
test rax, rax
jne 0x418990
mov rdx, qword [rbx + rsi + 8]
mov rcx, r15
mov r8, r14
call fcn.00428770
cmp qword [rsp + 0x30], 0
je 0x4189cb
xor ebp, ebp
jmp 0x418999
lea r13, [rbx + rsi]
add r13, 8
lea rcx, [rsp + 0x38]
mov rax, qword [rcx + 0x10]
mov qword [rsp + 0x70], rax
movups xmm0, xmmword [rcx]
movaps xmmword [rsp + 0x60], xmm0
mov rax, qword [rbx + rsi]
cmp rax, 1
je 0x418a1a
test rax, rax
jne 0x418a5b
mov rcx, qword [r13]
mov eax, 0xcc
mov edx, 0x84
lock cmpxchg qword [rcx], rdx
je 0x418a5b
mov rcx, qword [r13]
mov rax, qword [rcx + 0x10]
call qword [rax + 0x38]
jmp 0x418a5b
cmp qword [rbx + rsi + 0x18], 0
je 0x418a5b
mov rcx, qword [r13]
test rcx, rcx
je 0x418a5b
mov rax, qword [rbx + rsi + 0x10]
call qword [rax]
mov rax, qword [rbx + rsi + 0x10]
cmp qword [rax + 8], 0
je 0x418a5b
mov r8, qword [r13]
cmp qword [rax + 0x10], 0x11
jb 0x418a4d
mov r8, qword [r8 - 8]
mov rcx, qword [0x00576170]
xor edx, edx
call sub.kernel32.dll_HeapFree
mov qword [rbx + rsi], 1
mov rax, qword [rsp + 0x70]
mov qword [r13 + 0x10], rax
movapd xmm0, xmmword [rsp + 0x60]
movupd xmmword [r13], xmm0
jmp 0x418999
test bpl, 1
jne 0x418ac3
mov rax, qword [rsp + 0x28]
mov qword [rax + 8], 0
jmp 0x418cda
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x418ca8
mov qword [r14 + 8], 0
jmp 0x418cda
mov qword [rdi], 8
mov qword [rdi + 8], 0
jmp 0x418bad
mov rbx, qword [rdi]
mov r14, qword [rdi + 8]
mov qword [rdi], 8
mov qword [rdi + 8], 0
test r14, r14
mov rsi, qword [rsp + 0x28]
je 0x418bad
movabs rax, 0x555555555555555
cmp r14, rax
ja 0x418d6d
lea rax, [r14*8]
lea rdi, [rax + rax*2]
mov rcx, qword [0x00576170]
test rcx, rcx
jne 0x418b2a
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x418d5e
mov rcx, rax
mov qword [0x00576170], rax
xor edx, edx
mov r8, rdi
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x418d5e
mov rcx, r14
shl rcx, 5
add rcx, rbx
mov qword [rsi], r14
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], 0
xor edx, edx
mov r8, rbx
nop dword [rax + rax]
cmp dword [r8], 1
jne 0x418d10
mov qword [r8], 2
movupd xmm0, xmmword [r8 + 8]
mov r9, qword [r8 + 0x18]
mov qword [rax + 0x10], r9
movupd xmmword [rax], xmm0
inc rdx
add rax, 0x18
add r8, 0x20
cmp r8, rcx
jne 0x418b60
mov qword [rsi + 0x10], rdx
test r14, r14
je 0x418bc4
lea rsi, [rbx + 0x18]
mov edi, 0x84
mov r15, r14
jmp 0x418c39
mov qword [rsi], 0
mov qword [rsi + 8], 8
mov qword [rsi + 0x10], 0
xor r14d, r14d
mov eax, r14d
and eax, 0x20
mov rcx, r14
or r14, 0x20
imul r14, rax
xor rax, 0x20
and rcx, 0xffffffffffffffdf
imul rcx, rax
add r14, rcx
je 0x418cda
mov rcx, qword [0x00576170]
xor edx, edx
mov r8, rbx
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp sub.kernel32.dll_HeapFree
mov rcx, qword [0x00576170]
xor edx, edx
call sub.kernel32.dll_HeapFree
nop word [rax + rax]
add rsi, 0x20
dec r15
je 0x418bc7
mov rax, qword [rsi - 0x18]
cmp rax, 1
je 0x418c70
test rax, rax
jne 0x418c30
mov rcx, qword [rsi - 0x10]
mov eax, 0xcc
lock cmpxchg qword [rcx], rdi
je 0x418c30
mov rcx, qword [rsi - 0x10]
mov rax, qword [rcx + 0x10]
call qword [rax + 0x38]
jmp 0x418c30
cmp qword [rsi], 0
je 0x418c30
mov rcx, qword [rsi - 0x10]
test rcx, rcx
je 0x418c30
mov rax, qword [rsi - 8]
call qword [rax]
mov rax, qword [rsi - 8]
cmp qword [rax + 8], 0
je 0x418c30
mov r8, qword [rsi - 0x10]
cmp qword [rax + 0x10], 0x11
jb 0x418c19
mov r8, qword [r8 - 8]
jmp 0x418c19
mov byte [rdi + 0x20], 1
mov rcx, qword [rsp + 0x58]
mov rax, qword [rcx + 0x10]
mov qword [r14 + 0x10], rax
movupd xmm0, xmmword [rcx]
movupd xmmword [r14], xmm0
mov qword [rdi + 0x40], 0
mov qword [rdi + 0x48], 8
mov qword [rdi + 0x50], 0
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, str.MaybeDone_polled_after_value_taken_usr_local_cargo_registry_src_index.crates.io_6f17d22bba15001f_futures_util_0.3.30_src_future_maybe_done.rs
lea r8, [0x00504728]
mov edx, 0x22
call fcn.0040f790
ud2
lea rcx, str.called__Option::unwrap____on_a__None__value
lea r8, str._usr_local_cargo_registry_src_index.crates.io_6f17d22bba15001f_futures_util_0.3.30_src_future_join_all.rs
mov edx, 0x2b
call fcn.0042f210
ud2
lea rcx, [0x0050444b]
lea r8, [0x005044d8]
mov edx, 0x16
call fcn.0042f210
ud2
lea rcx, str.called__Option::unwrap____on_a__None__value
lea r8, str._usr_local_cargo_registry_src_index.crates.io_6f17d22bba15001f_futures_core_0.3.30_src_task___internal_atomic_waker.rs
mov edx, 0x2b
call fcn.0042f210
ud2
mov edx, 8
mov rcx, rdi
call fcn.004043b0
ud2
call fcn.00403940
ud2