Function at 0x140017640
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x178
movaps xmmword [rsp + 0x160], xmm7
movaps xmmword [rsp + 0x150], xmm6
mov rdi, rdx
mov rsi, rcx
mov r13d, dword [rcx + 0x28]
movzx r9d, byte [rcx + 0x2c]
movzx ecx, r9b
mov edx, 0x10
sub rdx, rcx
mov rbp, r8
sub rbp, rdx
jae 0x1400176c2
test r9b, r9b
je 0x14001772d
mov rax, rcx
add rax, r8
jb 0x140017e7d
cmp rax, 0x10
ja 0x140017e8c
test r8, r8
je 0x1400177b1
mov edx, r8d
and edx, 3
cmp r8, 4
jae 0x140017735
xor r10d, r10d
jmp 0x140017786
mov al, 1
movabs r10, 0xfffffffef
cmp rbp, r10
ja 0x140017e59
mov r10, rbp
shr r10, 4
inc r10d
add r10d, r13d
jb 0x140017e59
test r9b, r9b
je 0x14001772d
cmp r9b, 0x10
ja 0x140017ea0
lea r8, [rsi + 0x28]
lea rax, [rsi + rcx]
add rax, 0x18
sub r8, rax
cmp rdx, r8
mov r9, r8
cmovb r9, rdx
test r9, r9
je 0x140017865
cmp r8, 8
jae 0x1400177b9
xor r9d, r9d
jmp 0x140017850
mov rbp, r8
jmp 0x14001786b
and r8, 0xfffffffffffffffc
lea r9, [rcx + rsi]
add r9, 0x1b
xor r11d, r11d
nop word cs:[rax + rax]
movzx r10d, byte [r9 + r11 - 3]
xor byte [rdi + r11], r10b
movzx r10d, byte [r9 + r11 - 2]
xor byte [rdi + r11 + 1], r10b
movzx r10d, byte [r9 + r11 - 1]
xor byte [rdi + r11 + 2], r10b
movzx r10d, byte [r9 + r11]
xor byte [rdi + r11 + 3], r10b
lea r10, [r11 + 4]
mov r11, r10
cmp r8, r10
jne 0x140017750
test rdx, rdx
je 0x1400177b1
add rcx, r10
add rcx, rsi
add rcx, 0x18
add rdi, r10
xor r8d, r8d
nop dword [rax + rax]
movzx r9d, byte [rcx + r8]
xor byte [rdi + r8], r9b
inc r8
cmp rdx, r8
jne 0x1400177a0
mov byte [rsi + 0x2c], al
jmp 0x140017e57
cmp r8, 0x20
jae 0x1400177c4
xor r9d, r9d
jmp 0x14001781b
mov r9, r8
and r9, 0xffffffffffffffe0
add rcx, rsi
add rcx, 0x28
xor r10d, r10d
nop word cs:[rax + rax]
movups xmm0, xmmword [rcx + r10 - 0x10]
movups xmm1, xmmword [rcx + r10]
movups xmm2, xmmword [rdi + r10]
xorps xmm2, xmm0
movups xmm0, xmmword [rdi + r10 + 0x10]
xorps xmm0, xmm1
movups xmmword [rdi + r10], xmm2
movups xmmword [rdi + r10 + 0x10], xmm0
add r10, 0x20
cmp r9, r10
jne 0x1400177e0
cmp r8, r9
je 0x140017865
test r8b, 0x18
je 0x140017850
mov rcx, r9
mov r9, r8
and r9, 0xfffffffffffffff8
nop word cs:[rax + rax]
mov r10, qword [rax + rcx]
xor qword [rdi + rcx], r10
add rcx, 8
cmp r9, rcx
jne 0x140017830
cmp r8, r9
je 0x140017865
nop word cs:[rax + rax]
movzx ecx, byte [rax + r9]
xor byte [rdi + r9], cl
lea rcx, [r9 + 1]
mov r9, rcx
cmp rdx, rcx
jne 0x140017850
add rdi, rdx
inc r13d
mov eax, ebp
and eax, 0x7f
mov qword [rsp + 0x28], rax
mov qword [rsp + 0xb8], rbp
and rbp, 0xffffffffffffff80
je 0x140017bba
mov r14, qword [rsi]
xor r15d, r15d
mov r12, qword [0x1402df8b0]
jmp 0x140017966
mov r8d, 4
mov rcx, r14
lea rdx, [rsp + 0x30]
call fcn.14012a530
mov r8d, 4
mov rcx, r14
lea rdx, [rsp + 0x70]
call fcn.14012a530
movups xmm0, xmmword [rdi + r15]
movups xmm1, xmmword [rdi + r15 + 0x10]
movups xmm2, xmmword [rdi + r15 + 0x20]
xorps xmm0, xmmword [rsp + 0x30]
xorps xmm1, xmmword [rsp + 0x40]
movups xmm3, xmmword [rdi + r15 + 0x30]
movups xmmword [rdi + r15], xmm0
xorps xmm2, xmmword [rsp + 0x50]
movups xmmword [rdi + r15 + 0x10], xmm1
xorps xmm3, xmmword [rsp + 0x60]
movups xmmword [rdi + r15 + 0x20], xmm2
movups xmmword [rdi + r15 + 0x30], xmm3
movups xmm0, xmmword [rdi + r15 + 0x40]
xorps xmm0, xmmword [rsp + 0x70]
movups xmm1, xmmword [rdi + r15 + 0x50]
xorps xmm1, xmmword [rsp + 0x80]
movups xmmword [rdi + r15 + 0x40], xmm0
movups xmmword [rdi + r15 + 0x50], xmm1
movups xmm0, xmmword [rdi + r15 + 0x60]
xorps xmm0, xmmword [rsp + 0x90]
movups xmm1, xmmword [rdi + r15 + 0x70]
xorps xmm1, xmmword [rsp + 0xa0]
movups xmmword [rdi + r15 + 0x60], xmm0
movups xmmword [rdi + r15 + 0x70], xmm1
sub r15, 0xffffffffffffff80
add r13d, 8
cmp rbp, r15
je 0x140017bba
mov r8d, dword [rsi + 0x14]
mov eax, dword [rsi + 8]
mov ecx, dword [rsi + 0xc]
mov edx, dword [rsi + 0x10]
lea r9d, [r8 + r13]
bswap r9d
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x34], ecx
mov dword [rsp + 0x38], edx
mov dword [rsp + 0x3c], r9d
lea r9d, [r13 + r8 + 1]
bswap r9d
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x44], ecx
mov dword [rsp + 0x48], edx
mov dword [rsp + 0x4c], r9d
lea r9d, [r13 + r8 + 2]
bswap r9d
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x54], ecx
mov dword [rsp + 0x58], edx
mov dword [rsp + 0x5c], r9d
lea r9d, [r13 + r8 + 3]
bswap r9d
mov dword [rsp + 0x60], eax
mov dword [rsp + 0x64], ecx
mov dword [rsp + 0x68], edx
mov dword [rsp + 0x6c], r9d
lea r9d, [r13 + r8 + 4]
bswap r9d
mov dword [rsp + 0x70], eax
mov dword [rsp + 0x74], ecx
mov dword [rsp + 0x78], edx
mov dword [rsp + 0x7c], r9d
lea r9d, [r13 + r8 + 5]
bswap r9d
mov dword [rsp + 0x80], eax
mov dword [rsp + 0x84], ecx
mov dword [rsp + 0x88], edx
mov dword [rsp + 0x8c], r9d
lea r9d, [r13 + r8 + 6]
bswap r9d
mov dword [rsp + 0x90], eax
mov dword [rsp + 0x94], ecx
mov dword [rsp + 0x98], edx
mov dword [rsp + 0x9c], r9d
lea r8d, [r13 + r8 + 7]
bswap r8d
mov dword [rsp + 0xa0], eax
mov dword [rsp + 0xa4], ecx
mov dword [rsp + 0xa8], edx
mov dword [rsp + 0xac], r8d
movzx eax, byte [r12]
cmp al, 1
jne 0x1400178a0
movaps xmm0, xmmword [rsp + 0x30]
movaps xmm1, xmmword [rsp + 0x40]
movaps xmm2, xmmword [rsp + 0x50]
movaps xmm3, xmmword [rsp + 0x60]
movaps xmm4, xmmword [rsp + 0x70]
movaps xmm5, xmmword [rsp + 0x80]
mov eax, dword [rsp + 0x90]
mov ecx, dword [rsp + 0x94]
mov edx, dword [rsp + 0x98]
mov r8d, dword [rsp + 0x9c]
mov r9d, dword [rsp + 0xa0]
mov r10d, dword [rsp + 0xa4]
mov r11d, dword [rsp + 0xa8]
mov ebx, dword [rsp + 0xac]
movaps xmmword [rsp + 0xc0], xmm0
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xe0], xmm2
movaps xmmword [rsp + 0xf0], xmm3
movaps xmmword [rsp + 0x100], xmm4
movaps xmmword [rsp + 0x110], xmm5
mov dword [rsp + 0x120], eax
mov dword [rsp + 0x124], ecx
mov dword [rsp + 0x128], edx
mov dword [rsp + 0x12c], r8d
mov dword [rsp + 0x130], r9d
mov dword [rsp + 0x134], r10d
mov dword [rsp + 0x138], r11d
mov dword [rsp + 0x13c], ebx
mov rcx, r14
lea rdx, [rsp + 0xc0]
call fcn.140016e60
movaps xmm0, xmmword [rsp + 0xc0]
movaps xmm1, xmmword [rsp + 0xd0]
movaps xmm2, xmmword [rsp + 0xe0]
movaps xmm3, xmmword [rsp + 0xf0]
movaps xmm4, xmmword [rsp + 0x100]
movaps xmm5, xmmword [rsp + 0x110]
movaps xmm6, xmmword [rsp + 0x120]
movaps xmm7, xmmword [rsp + 0x130]
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x40], xmm1
movaps xmmword [rsp + 0x50], xmm2
movaps xmmword [rsp + 0x60], xmm3
movaps xmmword [rsp + 0x70], xmm4
movaps xmmword [rsp + 0x80], xmm5
movaps xmmword [rsp + 0x90], xmm6
movaps xmmword [rsp + 0xa0], xmm7
jmp 0x1400178c6
lea r14, [rdi + rbp]
mov rax, qword [rsp + 0xb8]
mov ecx, eax
and ecx, 0xf
mov rax, qword [rsp + 0x28]
mov rbx, rcx
sub rax, rcx
cmp rax, 0x10
mov qword [rsp + 0x148], r14
mov qword [rsp + 0xb0], rax
jae 0x140017c72
mov r15, rbx
test rbx, rbx
mov rbx, qword [rsp + 0xb8]
je 0x140017e4f
mov r12, qword [rsp + 0x148]
add qword [rsp + 0xb0], r12
mov ecx, dword [rsi + 0x10]
mov edx, dword [rsi + 0x14]
add edx, r13d
bswap edx
lea r14, [rsi + 0x18]
mov rax, qword [rsi]
mov r8, qword [rsi + 8]
mov qword [rsi + 0x18], r8
mov dword [rsi + 0x20], ecx
mov dword [rsi + 0x24], edx
mov rcx, qword [0x1402df8b0]
movzx ecx, byte [rcx]
cmp cl, 1
jne 0x140017d4e
movups xmm0, xmmword [r14]
movaps xmmword [rsp + 0xc0], xmm0
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0xc0]
mov rdx, rax
call fcn.140010c30
movaps xmm0, xmmword [rsp + 0x30]
jmp 0x140017d93
lea r12, [rsp + 0xd0]
xorps xmm6, xmm6
mov r15, rax
jmp 0x140017ce7
movaps xmmword [r12 + 0x20], xmm6
movaps xmmword [r12 + 0x10], xmm6
movaps xmmword [r12], xmm6
movaps xmmword [rsp + 0xc0], xmm0
mov r8d, 4
mov rcx, rdx
lea rdx, [rsp + 0xc0]
call fcn.14012a530
movaps xmm0, xmmword [rsp + 0xc0]
movups xmm1, xmmword [r14]
xorps xmm1, xmm0
movups xmmword [r14], xmm1
add r14, 0x10
add r15, 0xfffffffffffffff0
inc r13d
cmp r15, 0x10
jb 0x140017bf0
test r14, r14
je 0x140017bf0
movups xmm0, xmmword [rsi + 8]
movq xmm1, qword [rsi + 0x10]
mov eax, dword [rsi + 0x14]
add eax, r13d
bswap eax
movss xmm2, dword [rsi + 0xc]
unpcklps xmm0, xmm2
movd xmm2, eax
punpcklqdq xmm2, xmm1
shufps xmm0, xmm2, 0x24
mov rdx, qword [rsi]
mov rax, qword [0x1402df8b0]
movzx eax, byte [rax]
cmp al, 1
jne 0x140017c90
movaps xmmword [rsp + 0xc0], xmm0
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0xc0]
call fcn.140010c30
movaps xmm0, xmmword [rsp + 0x30]
jmp 0x140017cc7
xorps xmm0, xmm0
movaps xmmword [rsp + 0xf0], xmm0
movaps xmmword [rsp + 0xe0], xmm0
movaps xmmword [rsp + 0xd0], xmm0
movups xmm0, xmmword [r14]
movaps xmmword [rsp + 0xc0], xmm0
lea rdx, [rsp + 0xc0]
mov r8d, 4
mov rcx, rax
call fcn.14012a530
movaps xmm0, xmmword [rsp + 0xc0]
movups xmmword [r14], xmm0
add r12, qword [rsp + 0x28]
sub r12, qword [rsp + 0xb0]
cmp r12, r15
cmovae r12, r15
test r12, r12
je 0x140017e4f
and ebx, 3
cmp r15d, 4
jae 0x140017dc2
xor r8d, r8d
jmp 0x140017e17
mov rax, r15
sub rax, rbx
mov rcx, qword [rsp + 0x28]
add rcx, rbp
sub rcx, r15
add rcx, rdi
add rcx, 3
xor edx, edx
nop dword [rax]
movzx r8d, byte [rsi + rdx + 0x18]
xor byte [rcx + rdx - 3], r8b
movzx r8d, byte [rsi + rdx + 0x19]
xor byte [rcx + rdx - 2], r8b
movzx r8d, byte [rsi + rdx + 0x1a]
xor byte [rcx + rdx - 1], r8b
movzx r8d, byte [rsi + rdx + 0x1b]
xor byte [rcx + rdx], r8b
lea r8, [rdx + 4]
mov rdx, r8
cmp rax, r8
jne 0x140017de0
test rbx, rbx
je 0x140017e4f
lea rax, [r8 + rsi]
add rax, 0x18
add rbp, r8
add rbp, qword [rsp + 0x28]
sub rbp, r15
add rdi, rbp
xor ecx, ecx
nop word cs:[rax + rax]
movzx edx, byte [rax + rcx]
xor byte [rdi + rcx], dl
inc rcx
cmp rbx, rcx
jne 0x140017e40
mov byte [rsi + 0x2c], r15b
mov dword [rsi + 0x28], r13d
xor eax, eax
movaps xmm6, xmmword [rsp + 0x150]
movaps xmm7, xmmword [rsp + 0x160]
add rsp, 0x178
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str.C:Usersdreye.cargo_registry_srcindex.crates.io_6f17d22bba15001fctr_0.8.0_srclib.rsp
mov rdx, rax
call fcn.14021a530
lea r8, str.C:Usersdreye.cargo_registry_srcindex.crates.io_6f17d22bba15001fctr_0.8.0_srclib.rsp
mov edx, 0x10
mov rcx, rax
call fcn.14021a4b0
lea r8, str.C:Usersdreye.cargo_registry_srcindex.crates.io_6f17d22bba15001fctr_0.8.0_srclib.rsp
mov edx, 0x10
call fcn.14021a430
int3