Function at 0x140004970
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
mov eax, 0x10b8
call fcn.140027510
sub rsp, rax
cmp r8, qword [rsp + 0x1120]
jne 0x140004ebf
mov r14, rcx
cmp byte [rcx + 0x850], 0
jne 0x140004ed7
mov rsi, r9
mov rdi, r8
mov rbx, rdx
mov byte [r14 + 0x850], 1
lea rdx, [r14 + 0x20]
lea r15, [rsp + 0x50]
mov r8d, 0x830
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
cmp byte [rsp + 0x879], 0
jne 0x140004eef
lea r12, [rsp + 0x868]
mov eax, dword [rsp + 0x869]
mov ecx, dword [rsp + 0x86d]
mov edx, dword [rsp + 0x871]
mov r9d, dword [rsp + 0x875]
cmp byte [rsp + 0x868], 0
mov byte [rsp + 0x868], 0
je 0x140004acd
bswap eax
bswap ecx
bswap edx
bswap r9d
xor r9d, dword [rsp + 0x850]
xor edx, dword [rsp + 0x854]
xor ecx, dword [rsp + 0x858]
xor eax, dword [rsp + 0x85c]
pxor xmm0, xmm0
mov r8d, 0x800
nop dword [rax + rax]
mov r10d, eax
shld r10d, ecx, 0x1f
shld ecx, edx, 0x1f
shld edx, r9d, 0x1f
and r9d, 1
neg r9d
movdqu xmm1, xmmword [rsp + r8 + 0x30]
movdqu xmm2, xmmword [rsp + r8 + 0x40]
movd xmm3, r9d
pshufd xmm3, xmm3, 0
pand xmm3, xmm2
mov r11d, eax
shr r11d, 1
shld r11d, r10d, 0x1f
shld r10d, ecx, 0x1f
shld ecx, edx, 0x1f
pxor xmm3, xmm0
and edx, 1
neg edx
movd xmm0, edx
pshufd xmm0, xmm0, 0
pand xmm0, xmm1
pxor xmm0, xmm3
shr eax, 2
mov r9d, ecx
mov edx, r10d
mov ecx, r11d
add r8, 0xffffffffffffffe0
jne 0x140004a50
movdqu xmmword [rsp + 0x850], xmm0
mov qword [rsp + 0x38], 0
lea rcx, [rsp + 0x850]
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r12
lea rdx, [rsp + 0x38]
mov r8, rbx
mov r9, rdi
call fcn.140004f70
lea rcx, [rsp + 0x880]
mov r13d, 0x800
mov r8d, 0x800
mov rdx, r15
call sub.VCRUNTIME140.dll_memcpy
movups xmm0, xmmword [rsp + 0x850]
movups xmmword [rsp + 0x1080], xmm0
mov rax, qword [rsp + 0x860]
movzx ecx, byte [r12 + 0x10]
mov byte [rsp + 0x10b0], cl
movdqu xmm0, xmmword [r12]
movdqu xmmword [rsp + 0x10a0], xmm0
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x1090], rax
mov qword [rsp + 0x1098], rcx
mov edx, dword [rsp + 0x10a1]
mov r8d, dword [rsp + 0x10a5]
mov r10d, dword [rsp + 0x10a9]
mov r11d, dword [rsp + 0x10ad]
cmp byte [rsp + 0x10a0], 0
mov byte [rsp + 0x10a0], 0
mov r9d, dword [rsp + 0x1080]
je 0x140004c7a
bswap edx
bswap r8d
bswap r10d
bswap r11d
xor r10d, dword [rsp + 0x1084]
xor r8d, dword [rsp + 0x1088]
xor r9d, r11d
xor edx, dword [rsp + 0x108c]
pxor xmm0, xmm0
nop word cs:[rax + rax]
mov r11d, edx
shld r11d, r8d, 0x1f
shld r8d, r10d, 0x1f
shld r10d, r9d, 0x1f
and r9d, 1
neg r9d
movdqu xmm1, xmmword [rsp + r13 + 0x860]
movdqu xmm2, xmmword [rsp + r13 + 0x870]
movd xmm3, r9d
pshufd xmm3, xmm3, 0
pand xmm3, xmm2
mov ebp, edx
shr ebp, 1
shld ebp, r11d, 0x1f
shld r11d, r8d, 0x1f
shld r8d, r10d, 0x1f
pxor xmm3, xmm0
and r10d, 1
neg r10d
movd xmm0, r10d
pshufd xmm0, xmm0, 0
pand xmm0, xmm1
pxor xmm0, xmm3
shr edx, 2
mov r9d, r8d
mov r10d, r11d
mov r8d, ebp
add r13, 0xffffffffffffffe0
jne 0x140004bd0
movdqu xmmword [rsp + 0x1080], xmm0
movd r9d, xmm0
pshufd xmm1, xmm0, 0x55
movd ebp, xmm1
pshufd xmm1, xmm0, 0xee
movd r11d, xmm1
pshufd xmm0, xmm0, 0xff
movd r15d, xmm0
jmp 0x140004c91
mov ebp, dword [rsp + 0x1084]
mov r11d, dword [rsp + 0x1088]
mov r15d, dword [rsp + 0x108c]
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rsi
lea r10d, [rax*8]
xor r10d, r11d
lea r11d, [rcx*8]
xor r11d, r9d
shr rcx, 0x1d
shr rax, 0x1d
xor ecx, ebp
xor eax, r15d
pxor xmm0, xmm0
mov r9d, 0x800
nop dword [rax + rax]
mov ebp, eax
shld ebp, r10d, 0x1f
shld r10d, ecx, 0x1f
shld ecx, r11d, 0x1f
and r11d, 1
neg r11d
movdqu xmm1, xmmword [rsp + r9 + 0x860]
movdqu xmm2, xmmword [rsp + r9 + 0x870]
movd xmm3, r11d
pshufd xmm3, xmm3, 0
pshufd xmm2, xmm2, 0x1b
pand xmm2, xmm3
pxor xmm2, xmm0
mov r15d, eax
shr r15d, 1
shld r15d, ebp, 0x1f
shld ebp, r10d, 0x1f
shld r10d, ecx, 0x1f
and ecx, 1
neg ecx
movd xmm0, ecx
pshufd xmm3, xmm0, 0
pshufd xmm0, xmm1, 0x1b
pand xmm0, xmm3
pxor xmm0, xmm2
shr eax, 2
mov r11d, r10d
mov ecx, ebp
mov r10d, r15d
add r9, 0xffffffffffffffe0
jne 0x140004cd0
pxor xmm1, xmm1
movdqa xmm2, xmm0
punpckhbw xmm2, xmm1
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
punpcklbw xmm0, xmm1
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm2
movdqa xmmword [rsp + 0x50], xmm0
movzx ebp, byte [rsp + 0x50]
movzx r15d, byte [rsp + 0x51]
movzx r12d, byte [rsp + 0x52]
movzx r13d, byte [rsp + 0x53]
movzx esi, byte [rsp + 0x54]
movzx ebx, byte [rsp + 0x55]
movzx r8d, byte [rsp + 0x56]
movzx edx, byte [rsp + 0x57]
movzx r11d, byte [rsp + 0x58]
movzx r9d, byte [rsp + 0x59]
movzx r10d, byte [rsp + 0x5a]
movzx ecx, byte [rsp + 0x5b]
movzx eax, byte [rsp + 0x5c]
xor bpl, byte [r14]
mov byte [rsp + 0x50], bpl
xor r15b, byte [r14 + 1]
xor r12b, byte [r14 + 2]
mov byte [rsp + 0x51], r15b
mov byte [rsp + 0x52], r12b
xor r13b, byte [r14 + 3]
mov byte [rsp + 0x53], r13b
xor sil, byte [r14 + 4]
mov byte [rsp + 0x54], sil
xor bl, byte [r14 + 5]
xor r8b, byte [r14 + 6]
mov byte [rsp + 0x55], bl
mov byte [rsp + 0x56], r8b
xor dl, byte [r14 + 7]
mov byte [rsp + 0x57], dl
xor r11b, byte [r14 + 8]
mov byte [rsp + 0x58], r11b
xor r9b, byte [r14 + 9]
xor r10b, byte [r14 + 0xa]
mov byte [rsp + 0x59], r9b
mov byte [rsp + 0x5a], r10b
xor cl, byte [r14 + 0xb]
mov byte [rsp + 0x5b], cl
movzx ecx, word [rsp + 0x5e]
movd xmm0, ecx
movd xmm1, dword [r14 + 0xc]
movzx ecx, byte [rsp + 0x5d]
shl ecx, 8
or ecx, eax
movd xmm2, ecx
punpcklwd xmm2, xmm0
pxor xmm2, xmm1
movd dword [rsp + 0x5c], xmm2
cmp qword [rsp + 0x1130], 0x10
jne 0x140004e88
lea rcx, [rsp + 0x50]
mov r8d, 0x10
mov rdx, qword [rsp + 0x1128]
call fcn.140027213
test eax, eax
je 0x140004e9e
xor eax, eax
add rsp, 0x10b8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [r14 + 0x10]
mov rax, qword [r14 + 0x18]
mov qword [rsp + 0x20], rdi
mov rdx, qword [rsp + 0x40]
mov r8, rdi
mov r9, qword [rsp + 0x48]
call qword [rax + 0x18]
mov al, 1
jmp 0x140004e8a
lea rcx, str.assertion_failed:_input.len____output.len__
lea r8, [0x14002bfc0]
mov edx, 0x2d
call fcn.140028c30
lea rcx, str.assertion_failed:__self.finishedC:Usersp.farzam.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_srcghash.rsassertion_failed:_nonce.len____12C:Usersp.farzam.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_aes_gcm.rs
lea r8, [0x14002bfd8]
mov edx, 0x20
call fcn.140028c30
lea rcx, str.assertion_failed:__self.finishedC:Usersp.farzam.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_srcghash.rsassertion_failed:_nonce.len____12C:Usersp.farzam.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_aes_gcm.rs
lea r8, [0x14002bff0]
mov edx, 0x20
call fcn.140028c30
int3