Function at 0x180040f20
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0x80]
movdqa xmmword [rbp], xmm6
mov qword [rbp - 8], 0xfffffffffffffffe
mov qword [rbp - 0x58], r9
mov byte [rbp - 9], r8b
mov qword [rbp - 0x50], rdx
mov qword [rbp - 0x48], rcx
mov r13, qword [rbp + 0x80]
xor esi, esi
mov rdi, qword [0x18026a180]
lea r15, [0x18027fed8]
pcmpeqd xmm6, xmm6
jmp 0x180040f8d
movzx eax, r14b
mov dword [r12], eax
nop dword [rax]
inc rsi
cmp rsi, 8
je 0x1800414ea
cmp dword [r13 + rsi*4], 0x7b
jb 0x180040f80
movzx eax, byte [rdi]
test al, al
jne 0x180040fab
mov ecx, dword [0x180280010]
test cl, 1
je 0x18004117e
cmp qword [0x18027fed0], 0
je 0x180040f80
lea r12, [rsi*4]
add r12, r13
mov rcx, r15
mov rdx, r12
call fcn.180025ad0
mov rcx, qword [0x18027fec0]
mov rdx, rcx
and rdx, rax
shr rax, 0x39
mov r8, qword [0x18027feb8]
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
xor eax, eax
movdqu xmm1, xmmword [r8 + rdx]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r9d, xmm2
test r9d, r9d
je 0x180041040
mov r10d, dword [r12]
tzcnt r11d, r9d
add r11, rdx
and r11, rcx
shl r11, 3
mov r14, r8
sub r14, r11
cmp r10d, dword [r14 - 8]
je 0x180041062
lea r11d, [r9 - 1]
and r11w, r9w
mov r9d, r11d
jne 0x180041013
nop dword [rax + rax]
pcmpeqb xmm1, xmm6
pmovmskb r9d, xmm1
test r9d, r9d
jne 0x180040f80
add rdx, rax
add rdx, 0x10
add rax, 0x10
and rdx, rcx
jmp 0x180040ff7
movzx eax, byte [rdi]
test al, al
jne 0x180041078
mov ecx, dword [0x180280010]
test cl, 1
je 0x18004125e
cmp qword [0x18027fed0], 0
je 0x1800414d2
mov rcx, r15
mov rdx, r12
call fcn.180025ad0
mov rcx, qword [0x18027fec0]
mov r8, rcx
and r8, rax
shr rax, 0x39
mov rbx, qword [0x18027feb8]
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
xor eax, eax
movdqu xmm1, xmmword [rbx + r8]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r9d, xmm2
test r9d, r9d
je 0x180041110
mov r10d, dword [r12]
tzcnt r11d, r9d
add r11, r8
and r11, rcx
lea r14, [r11*8]
mov rdx, rbx
sub rdx, r14
cmp r10d, dword [rdx - 8]
je 0x180041130
lea edx, [r9 - 1]
and dx, r9w
mov r9d, edx
jne 0x1800410d9
nop word cs:[rax + rax]
pcmpeqb xmm1, xmm6
pmovmskb edx, xmm1
test edx, edx
jne 0x1800414d2
add r8, rax
add r8, 0x10
add rax, 0x10
and r8, rcx
jmp 0x1800410bd
neg r11
movzx r14d, byte [rbx + r11*8 - 4]
test byte [rbp - 9], 8
je 0x180040f75
movzx eax, byte [rdi]
test al, al
jne 0x180041159
mov ecx, dword [0x180280010]
test cl, 1
je 0x18004137d
movzx ecx, r14b
mov rdx, qword [0x18027fe50]
cmp rdx, rcx
jbe 0x180041545
mov rax, qword [0x18027fe48]
movzx r14d, byte [rax + rcx]
jmp 0x180040f75
cmp ecx, 0xff
ja 0x180041221
mov edx, ecx
or edx, 0x20000000
mov eax, ecx
lock cmpxchg dword [0x180280010], edx
jne 0x180041221
movd xmm0, ecx
pshufd xmm0, xmm0, 0x50
lea rax, [0x180280010]
lea rcx, [0x18027fce0]
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], rax
movq qword [rbp - 0x30], xmm0
lea rcx, [rbp - 0x28]
lea rdx, [rbp - 0x40]
call fcn.180189a10
mov r8d, dword [rbp - 0x18]
mov rcx, qword [rbp - 0x20]
mov eax, r8d
or eax, 0x20000000
mov edx, dword [rbp - 0x14]
lock cmpxchg dword [rcx], edx
je 0x180040fab
xor edx, r8d
or edx, 0x20000000
mov eax, dword [rcx]
nop dword [rax + rax]
mov r8d, eax
xor r8d, edx
lock cmpxchg dword [rcx], r8d
jne 0x180041200
cmp eax, 0x40000000
jb 0x180040fab
xor eax, edx
mov edx, eax
jmp 0x180041336
lea rcx, [rbp - 0x28]
lea rdx, [0x180280010]
lea r8, [rbp - 0xa]
lea r9, [0x18027fce0]
call fcn.180185330
mov eax, dword [rbp - 0x28]
test eax, eax
je 0x180041301
cmp eax, 2
je 0x180040fab
mov rax, qword [rbp - 0x20]
movq xmm0, qword [rbp - 0x18]
jmp 0x1800411b2
cmp ecx, 0xff
ja 0x180041340
mov edx, ecx
or edx, 0x20000000
mov eax, ecx
lock cmpxchg dword [0x180280010], edx
jne 0x180041340
movd xmm0, ecx
pshufd xmm0, xmm0, 0x50
lea rax, [0x180280010]
lea rcx, [0x18027fce0]
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], rax
movq qword [rbp - 0x30], xmm0
lea rcx, [rbp - 0x28]
lea rdx, [rbp - 0x40]
call fcn.180189a10
mov r8d, dword [rbp - 0x18]
mov rcx, qword [rbp - 0x20]
mov eax, r8d
or eax, 0x20000000
mov edx, dword [rbp - 0x14]
lock cmpxchg dword [rcx], edx
je 0x180041078
xor edx, r8d
or edx, 0x20000000
mov eax, dword [rcx]
nop dword [rax + rax]
mov r8d, eax
xor r8d, edx
lock cmpxchg dword [rcx], r8d
jne 0x1800412e0
cmp eax, 0x40000000
jb 0x180041078
xor eax, edx
mov edx, eax
jmp 0x180041450
mov rcx, qword [rbp - 0x20]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x180040fab
add edx, 0xffffff00
call fcn.180189550
jmp 0x180040fab
lea rcx, [rbp - 0x28]
lea rdx, [0x180280010]
lea r8, [rbp - 0xa]
lea r9, [0x18027fce0]
call fcn.180185330
mov eax, dword [rbp - 0x28]
test eax, eax
je 0x18004141b
cmp eax, 2
je 0x180041078
mov rax, qword [rbp - 0x20]
movq xmm0, qword [rbp - 0x18]
jmp 0x180041292
cmp ecx, 0xff
ja 0x18004145a
mov edx, ecx
or edx, 0x20000000
mov eax, ecx
lock cmpxchg dword [0x180280010], edx
jne 0x18004145a
movd xmm0, ecx
pshufd xmm0, xmm0, 0x50
lea rax, [0x180280010]
lea rcx, [0x18027fce0]
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], rax
movq qword [rbp - 0x30], xmm0
lea rcx, [rbp - 0x28]
lea rdx, [rbp - 0x40]
call fcn.180189a10
mov r8d, dword [rbp - 0x18]
mov rcx, qword [rbp - 0x20]
mov eax, r8d
or eax, 0x20000000
mov edx, dword [rbp - 0x14]
lock cmpxchg dword [rcx], edx
je 0x180041159
xor edx, r8d
or edx, 0x20000000
mov eax, dword [rcx]
mov r8d, eax
xor r8d, edx
lock cmpxchg dword [rcx], r8d
jne 0x1800413fa
cmp eax, 0x40000000
jb 0x180041159
xor eax, edx
mov edx, eax
jmp 0x1800414c8
mov rcx, qword [rbp - 0x20]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x180041078
add edx, 0xffffff00
call fcn.180189550
jmp 0x180041078
lea rcx, [rbp - 0x28]
lea rdx, [0x180280010]
lea r8, [rbp - 0xa]
lea r9, [0x18027fce0]
call fcn.180185330
mov eax, dword [rbp - 0x28]
test eax, eax
je 0x180041493
cmp eax, 2
je 0x180041159
mov rax, qword [rbp - 0x20]
movq xmm0, qword [rbp - 0x18]
jmp 0x1800413b1
mov rcx, qword [rbp - 0x20]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x180041159
add edx, 0xffffff00
call fcn.180189550
jmp 0x180041159
lea rcx, str.no_entry_found_for_key
lea r8, str.srchooks.rs
mov edx, 0x16
call fcn.1801915b0
mov r15, qword [0x18026a0a8]
test r15, r15
je 0x180041551
movabs rax, 0x8000000000000009
mov qword [rbp - 0x28], rax
lea rcx, [rbp - 0x28]
call fcn.18002f640
mov rcx, r15
call fcn.180114a60
mov qword [rsp + 0x20], r13
mov rcx, qword [rbp - 0x48]
mov rdx, qword [rbp - 0x50]
movzx r8d, byte [rbp - 9]
mov r9, qword [rbp - 0x58]
call rax
movaps xmm6, xmmword [rbp]
add rsp, 0x98
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea r8, str.srchooks.rs
call fcn.180191734
movups xmm0, xmmword [rbp - 0x20]
movabs rax, 0x8000000000000009
mov qword [rbp - 0x28], rax
movups xmmword [rbp - 0x20], xmm0
lea rax, [0x180195270]
mov qword [rsp + 0x20], rax
lea rcx, str.calling_detour_trampolineC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_retour_0.3.1_src_traits.rs
lea r9, fcn.18002f640
lea r8, [rbp - 0x28]
mov edx, 0x19
call fcn.180191980
ud2