Function at 0x140016050
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2c8
movdqa xmmword [rsp + 0x2b0], xmm8
movdqa xmmword [rsp + 0x2a0], xmm7
movdqa xmmword [rsp + 0x290], xmm6
mov r14, r8
mov r15, rdx
mov rbx, rcx
cmp r8, 0x20
ja 0x1400160b0
je 0x1400160b7
lea rax, [0x140442160]
mov qword [rsp + 0x20], rax
mov r9d, 0x20
mov rcx, r15
mov rdx, r14
xor r8d, r8d
call fcn.1402cfbe0
cmp byte [r15 + 0x20], 0xbf
jle 0x140016090
movabs r12, 0x8000000000000000
lea rdx, [0x140442178]
lea rsi, [rsp + 0x14d]
mov r8d, 0x143
mov rcx, rsi
call fcn.1402de3c8
lea r8, str.pz4FrqRzFTqiwaC5e637IucSCxeZArTGlKXvBQ2NRwfhpDE8j7K73mGaFNYZl8AU0Yhjm_2qyqgGLvGLZpJI_AL63DbwWzxTMjRt_MOdoPoQVgOP2DwiQBo9k3CnGKAYeynv22vWK9VSkwnW6uXwRVx0tsU9I4WfLEHzT9sxE6cVMRV6krqgDCzBfVniU6ZYFLLOt9osBaXhZd8GRcO2i5CX20jV5ZSWFnfdKDusshBjwBb1VvzdJ91AUrcV_Tjom78HQN0tztWrj9Orq0O_HXUHwIjKJJREagVG6MGaREbefmwdqA73flADK7wUq5jbdAVJ4Dsf1QVIRm7AfqBzwnGOsz08d4d2FL32oLDeeLGFI7dA9qp06EccY5eh3joFrQdODFSfULQY9PmK1k4lMumTsaMOP7gFRia757KVHNS9r2SqHKMQrCCSmdJ08elLAAH5fNNb7syLpnFqyQ9ORdR5Y0nYBucd9oKPeAjvgQ12y6z82BTfESXzjn85G5z1gaUR1Q65aZk4lRx82F5gaVyWEtUl9OCgwe5ayYU_oiRQbehq2hb0y7ud3Iuk0NdseSvwR_fVE4y9c8rhOhlOhNLG_BT6Jmrjeam8LR916_hVCtcsh0KUHrPXq_eOE7b6CELTQcj9B6KJ_6gzOz8vvUP9STa8_schI7i5nTOv2IZ_tESMCbcJkXfySJFr7ABh7VAakX1MhWYangYUrBlIaieL1GY2cVUUcJ53HC8o2Ryj_Vt3dVnq9YjomPKRSEA9Yv843twxFR62x8AxJoJ2lzByQpWEriP8TxBOZmzEEx_rfGZfMC63tIe2PmdYhE2Cf20NwGdb9kbrI3fEUAzHdAUywh9bHwmE8aJSAlxtRwzAu5FtghP_EbbtkarNHy85r9iNF4cA_D1lkz1iomxWYD4m6YUd8vc4Sg6UetmgwDDTsHBkPAGgx2C9WWFPVlCq_uCL7JdqRdEyLLhNnR9428UiAYXdGZUy6TIFuESRUxltJhULS2seBy_IQy_ZR7OV83XAn3P_1eK_ctn3fW_GD7cISbRwZxbLXnUp3JvNYxmdzC0U46XAEeqQfpUzslnw2ypskRugKD_svLR_8HKJt8Xe2L5o2XX1Ne04S09ZxjuGjHy_49KIPHYxVUztl0DGn2x0vXjDfHnWfye_E1sGrUjvPT0e2zPGw9FZ_jpiHcRu7ffVQClSievg6bfpWTiaT_UNRPWtVL61H6IpuOkk600UC3HRwRLGC_Jdic0O8GZ1wWzZN_E0V5iSBxcBHgCWd7kwR1ftx1MY0opsIPC8ON2reyFaotgZWsAnSzI7spysuNsxeA0VVDxHNmRHM3VqhFHFsU4APS0AvbLsCMUt5s54CyM7tDJfddfjvY0MmxyzkrG47U5URgyxCpvjdTh9yoxeDfzc8ZmtmIZHYD_9BFRwEE1VSnWy_nF5HBT13HRu3iq26f5pM0nFZjhOlnKiB7bij4RTWx_CxHaULt1kUFZkRPbRrdXJD2O9ZAgRHs99ldsXLoIUAs9bmVSgBgzvNotNwQRWX265v0blwxcf1BOqdztO3ExOpI5OgVOTf61YDN8t6apBNtkdSgtEsh0RIrIPX2hqMotFfNwSC5diXqlFTUGsFJHzO4mY4g5T_5HBcbboU2YfL3buaDWtGcf0VDkc2WkoO3McBeLHNmvvhFPdcl8Y32Q1nizbhzcT07oP0URijLoXEe9M3nqoIJyIJSdzDg7tOaBC7hrhCO9PjtzlAS9xSR1jcPZFc1XL3DH6KpTG063tfJPJ60udfA4P4dOD46xlOzas8RXqpVbpjtH9qt1RcW252cxaynBGSNESBYGYc3I_kKqmjZqs2I15XFX_uYPHorrVsKJ4LvmhAU_bHjFgwJihNjBt3pPJ__W2zcMkk0K9T8fRYft6cQXdBlAGN0GlSguJWzq34BdsKvEAp3yiuJL7p9z4hp984l8PV94waQbvWDbgKg9cWrXxLv7FCeRIvKvpCUvHP6efmWmvyU1pD0v1gXHoE7q2OKUReVR43Erdv3FZGfYvB2owJYzfCs72ih_k7wc49zrp3z3_oKMcmv5zeFlwEonOTtis2Im8j13kxblhgFY_ehyTMnM0ceDCeUSGDq6FJ2Sgu66i85sYn3tzDwojqM49I_gviYLQBkZNUS3nL84FWjdORI0r5cE4Auuo7hYq9EKSrGJk49HCVoayAgjX_T5HPk4yNOpR3YzgJPUMRff1PXATKHmwKcW1nS60qM3mocSyVomod_2_RpF1GDdmKfXTgtgrqfFGlEzP3EaSf8baBpNkSsnSX8jECJMl7cWy31pYB63a5NbntwLM2TnIkR7V5hEAJlvvmPufL1Ds3TFYHKYQZ9IkN6B0n1hYqe3X5cp9bSInTLHrDdqAJX4WUfuUUCDyCtG08plKSFYSarc_jZLyH78wP51ovOMAINKfnu0FL7kYYwVUuYnHQg66jqExPr4gRbl2nDnyGNwZrsBpvgnyUiDHz2sz4ZrhDraLZulTlWRIovZSQNfBCfnLuriSOuqZmvNIwqx9mH3PDB71d8exzBdTRKjccJXDWKIZC4uGj6hcaeCtMHbgegzIF8wutUBo8A9GOiw3RQ1daBmKHwE71g63aLQV0xaD0kFPtWxKm4INfBZoINFiptjRdl4u0Bp7Pc1uGvkyxIkewwqmYVWUVd8143ilDaVDmSqhOxVnN6HgagLJYJt9TIdb36B1oT7ZaElscasqfbTymHUNJdAVfUCYRgo4_FMInCIBj3CNMvD1KR1V9fMRxmKxjkpbHeyD2BkvuDXoX2Wa3657roeuYsL7G_oDtqxtgtgQss6AfR34zoKueONj4xP_zdhs8uHEeWmwi0NuXu3Cdyf5GQmvuWVLLhmD1iLRDNOKbAmUu68x9NEyfYrGCLUi7Ykaqz5OKsobYe90S3w7NgPoG3BOlZWav4DsKYikw8sWkvtADaC_F88WNwqWklc8kjPodsbVKL9dZA5z2HW2Dx3o1KNYM8h6AZxGz956pHOGwfP35IszNF5flgl2nJKsuTX3NwaloPZOXp0klYcrZDQAayBGPaOpgfPCJ54nIpv_K6FSzI3vtM6zkDEIzNm0ccFGYFOKchfpnF2wLwv9xFxcsG_nr7mPwSDJN8avxWcQ4cxCSOxm0NcS1VQMHoUDoiJbTzL3vQu7WGYq5_zC3LIZD_UqbIBBKM2GOxXQUf23a6ZbyfzGjAu4ZNyR2HDwo4rIKRVupz4TBVGdDAq0Ee9YZVuWY9vwD3LdP7J
lea rcx, [rsp + 0x130]
mov r9d, 0xd00
mov rdx, rsi
call fcn.140021e00
mov rsi, qword [rsp + 0x130]
cmp rsi, r12
jne 0x140016145
mov rax, qword [0x14050df18]
movzx eax, byte [rax]
mov ecx, 1
mov edx, 1
call fcn.14002b2a0
test rax, rax
je 0x140016814
mov byte [rax], 0x2d
mov qword [rbx], 1
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], 1
jmp 0x14001671c
mov rdi, qword [rsp + 0x138]
cmp r14, 0x2c
jne 0x1400161ef
mov r14, qword [rsp + 0x140]
movups xmm0, xmmword [str.expand_32_byte_ksrc_encryption.rs]
movaps xmmword [rsp + 0x50], xmm0
movdqu xmm0, xmmword [r15]
movdqu xmm1, xmmword [r15 + 0x10]
movdqa xmmword [rsp + 0x60], xmm0
movdqa xmmword [rsp + 0x70], xmm1
mov rax, qword [r15 + 0x20]
mov qword [rsp + 0x80], rax
mov eax, dword [r15 + 0x28]
mov dword [rsp + 0x88], eax
mov rbp, qword [0x1402e1030]
movzx eax, byte [rbp]
cmp al, 0xff
jne 0x140016230
lea rcx, [rsp + 0x30]
mov edx, 1
call fcn.1400b18d0
lea rcx, [rsp + 0x90]
mov edx, 7
xor r8d, r8d
call fcn.1400b1900
mov r15d, dword [rsp + 0x38]
mov eax, r15d
not eax
test eax, 0xc000000
jne 0x140016213
call fcn.140012a80
not eax
test al, 6
sete al
jmp 0x140016215
mov qword [rbx + 8], 1
lea rax, [0x1404420a0]
mov qword [rbx + 0x10], rax
mov qword [rbx], r12
test rsi, rsi
jne 0x14001670b
jmp 0x14001671c
xor eax, eax
mov ecx, dword [rsp + 0x94]
and ecx, 0x20
shr ecx, 5
shr r15d, 0x1c
and r15b, al
and r15b, cl
mov byte [rbp], r15b
movdqa xmm0, xmmword [rsp + 0x50]
movdqa xmm1, xmmword [rsp + 0x60]
movdqa xmm2, xmmword [rsp + 0x70]
movdqa xmmword [rsp + 0xb0], xmm2
movdqa xmmword [rsp + 0xa0], xmm1
movdqa xmmword [rsp + 0x90], xmm0
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0xc4], rax
mov eax, dword [rsp + 0x88]
mov dword [rsp + 0xcc], eax
pxor xmm0, xmm0
movdqa xmmword [rsp + 0xd0], xmm0
movdqa xmmword [rsp + 0xe0], xmm0
movdqa xmmword [rsp + 0xf0], xmm0
movdqa xmmword [rsp + 0x100], xmm0
movzx eax, word [rsp + 0x50]
mov word [rsp + 0x111], ax
movzx eax, byte [rsp + 0x52]
mov byte [rsp + 0x113], al
mov dword [rsp + 0xc0], 0
mov byte [rsp + 0x110], 0
xor ecx, ecx
mov r15, r14
and r15, 0x3f
setne cl
mov rax, r14
shr rax, 6
add rcx, rax
shr rcx, 0x20
jne 0x140016823
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], rax
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x50]
call fcn.140023570
test r15, r15
je 0x1400165b7
mov r13, r14
and r13, 0xffffffffffffffc0
movzx eax, byte [rbp]
cmp al, 1
jne 0x14001635c
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0x90]
call fcn.140024090
lea rax, [rdi + r13]
cmp r15d, 8
jb 0x1400164fe
cmp r15d, 0x20
jae 0x140016505
xor ecx, ecx
jmp 0x140016561
movdqa xmm4, xmmword [rsp + 0x90]
movdqa xmm2, xmmword [rsp + 0xa0]
movdqa xmm1, xmmword [rsp + 0xb0]
movdqa xmm0, xmmword [rsp + 0xc0]
mov eax, 0xa
movdqa xmm6, xmm4
movdqa xmm3, xmm2
movdqa xmm5, xmm0
movdqa xmm7, xmm1
nop word cs:[rax + rax]
paddd xmm6, xmm3
pxor xmm5, xmm6
movdqa xmm8, xmm5
psrld xmm8, 0x10
pslld xmm5, 0x10
por xmm5, xmm8
paddd xmm7, xmm5
pxor xmm3, xmm7
movdqa xmm8, xmm3
psrld xmm8, 0x14
pslld xmm3, 0xc
por xmm3, xmm8
paddd xmm6, xmm3
pxor xmm5, xmm6
movdqa xmm8, xmm5
psrld xmm8, 0x18
pslld xmm5, 8
por xmm5, xmm8
paddd xmm7, xmm5
pxor xmm3, xmm7
movdqa xmm8, xmm3
psrld xmm8, 0x19
pslld xmm3, 7
por xmm3, xmm8
pshufd xmm7, xmm7, 0x39
pshufd xmm5, xmm5, 0x4e
pshufd xmm6, xmm6, 0x93
paddd xmm6, xmm3
pxor xmm5, xmm6
movdqa xmm8, xmm5
psrld xmm8, 0x10
pslld xmm5, 0x10
por xmm5, xmm8
paddd xmm7, xmm5
pxor xmm3, xmm7
movdqa xmm8, xmm3
psrld xmm8, 0x14
pslld xmm3, 0xc
por xmm3, xmm8
paddd xmm6, xmm3
pxor xmm5, xmm6
movdqa xmm8, xmm5
psrld xmm8, 0x18
pslld xmm5, 8
por xmm5, xmm8
paddd xmm7, xmm5
pxor xmm3, xmm7
movdqa xmm8, xmm3
psrld xmm8, 0x19
pslld xmm3, 7
por xmm3, xmm8
pshufd xmm7, xmm7, 0x93
pshufd xmm5, xmm5, 0x4e
pshufd xmm6, xmm6, 0x39
dec rax
jne 0x1400163a0
paddd xmm6, xmm4
paddd xmm3, xmm2
paddd xmm7, xmm1
paddd xmm5, xmm0
movdqa xmmword [rsp + 0xd0], xmm6
movdqa xmmword [rsp + 0xe0], xmm3
movdqa xmmword [rsp + 0xf0], xmm7
movdqa xmmword [rsp + 0x100], xmm5
movd eax, xmm0
inc eax
mov dword [rsp + 0xc0], eax
lea rax, [rdi + r13]
cmp r15d, 8
jae 0x14001634b
xor ecx, ecx
jmp 0x1400165a0
mov edx, r14d
and edx, 0x1f
mov rcx, r15
sub rcx, rdx
lea r8, [rdi + r13]
add r8, 0x10
xor r9d, r9d
nop dword [rax]
movdqu xmm0, xmmword [r8 + r9 - 0x10]
movdqu xmm1, xmmword [r8 + r9]
pxor xmm0, xmmword [rsp + r9 + 0xd0]
pxor xmm1, xmmword [rsp + r9 + 0xe0]
movdqu xmmword [r8 + r9 - 0x10], xmm0
movdqu xmmword [r8 + r9], xmm1
add r9, 0x20
cmp rcx, r9
jne 0x140016520
test rdx, rdx
je 0x1400165b7
cmp edx, 8
jb 0x1400165a0
mov rdx, rcx
mov r8d, r14d
and r8d, 7
mov rcx, r15
sub rcx, r8
nop word cs:[rax + rax]
mov r9, qword [rsp + rdx + 0xd0]
xor qword [rax + rdx], r9
add rdx, 8
cmp rcx, rdx
jne 0x140016580
test r8, r8
je 0x1400165b7
nop word [rax + rax]
movzx edx, byte [rsp + rcx + 0xd0]
xor byte [rax + rcx], dl
lea rdx, [rcx + 1]
mov rcx, rdx
cmp r15, rdx
jne 0x1400165a0
lea rcx, [rsp + 0x30]
mov rdx, rdi
mov r8, r14
call fcn.1402bcae0
mov r14, qword [rsp + 0x38]
mov r9, qword [rsp + 0x40]
lea rcx, [rsp + 0x118]
lea rdx, [rsp + 0x14d]
mov r8, r14
call fcn.140021e00
mov r15, qword [rsp + 0x118]
cmp r15, r12
jne 0x14001664f
mov rax, qword [0x14050df18]
movzx eax, byte [rax]
mov r15d, 1
mov ecx, 1
mov edx, 1
call fcn.14002b2a0
test rax, rax
je 0x14001684e
mov byte [rax], 0x2d
mov qword [rbx], 1
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], 1
mov rdx, qword [rsp + 0x30]
lea rax, [rdx*2]
test rax, rax
je 0x140016706
jmp 0x1400167f8
mov r12, qword [rsp + 0x120]
mov r13, qword [rsp + 0x128]
lea rcx, [rsp + 0x50]
mov rdx, r12
mov r8, r13
call fcn.1402ce260
cmp qword [rsp + 0x50], 0
je 0x14001674c
movdqu xmm0, xmmword [rsp + 0x58]
movdqu xmmword [rsp + 0xa8], xmm0
mov qword [rsp + 0x90], r15
mov qword [rsp + 0x98], r12
mov qword [rsp + 0xa0], r13
mov rax, qword [0x14050df18]
movzx eax, byte [rax]
mov ecx, 1
mov edx, 1
call fcn.14002b2a0
test rax, rax
je 0x140016861
mov byte [rax], 0x2d
mov qword [rbx], 1
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], 1
test r15, r15
je 0x1400166f0
mov r8d, 1
mov rcx, r12
mov rdx, r15
call fcn.14002b2b0
mov rdx, qword [rsp + 0x30]
lea rax, [rdx*2]
test rax, rax
jne 0x1400167f8
test rsi, rsi
je 0x14001671c
mov r8d, 1
mov rcx, rdi
mov rdx, rsi
call fcn.14002b2b0
mov rax, rbx
movaps xmm6, xmmword [rsp + 0x290]
movaps xmm7, xmmword [rsp + 0x2a0]
movaps xmm8, xmmword [rsp + 0x2b0]
add rsp, 0x2c8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [rsp + 0x30]
lea rax, [rdx*2]
test rax, rax
je 0x14001676c
mov r8d, 1
mov rcx, r14
call fcn.14002b2b0
mov r15, qword [rsp + 0x128]
mov qword [rsp + 0x40], r15
movdqu xmm0, xmmword [rsp + 0x118]
movdqa xmmword [rsp + 0x30], xmm0
mov r14, qword [rsp + 0x38]
test r15, r15
je 0x1400167c3
js 0x140016872
mov rax, qword [0x14050df18]
movzx eax, byte [rax]
mov r12d, 1
mov edx, 1
mov rcx, r15
call fcn.14002b2a0
test rax, rax
je 0x140016854
mov r13, rax
jmp 0x1400167c9
mov r13d, 1
mov rcx, r13
mov rdx, r14
mov r8, r15
call fcn.1402de3c8
mov qword [rbx], r15
mov qword [rbx + 8], r13
mov qword [rbx + 0x10], r15
mov rdx, qword [rsp + 0x30]
lea rax, [rdx*2]
test rax, rax
je 0x140016706
mov r8d, 1
mov rcx, r14
call fcn.14002b2b0
test rsi, rsi
jne 0x14001670b
jmp 0x14001671c
mov ecx, 1
mov edx, 1
call fcn.1402ba360
lea rax, str._root_.cargo_registry_src_index.crates.io_6f17d22bba15001f_cipher_0.4.4_src_stream.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x140441968]
lea r9, [0x140441998]
lea r8, [rsp + 0x50]
mov edx, 0x2b
call fcn.1402c8020
jmp 0x140016870
mov r12d, 1
mov rcx, r12
mov rdx, r15
call fcn.1402ba360
jmp 0x140016870
mov ecx, 1
mov edx, 1
call fcn.1402ba360
ud2
xor r12d, r12d
jmp 0x140016854