Function at 0x7ff6c0916750
Capabilities:
Encrypt data using des

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
mov ecx, 0x78
call fcn.7ff6c09158b0
mov r9, rax
mov qword [rsp + 0x38], rax
lea r10, [rax + 2]
lea r11, [0x7ff6c091bd40]
sub r11, rax
lea r8, [0x7ff6c091bd41]
sub r8, rax
lea rbx, [0x7ff6c091bd42]
sub rbx, rax
lea rsi, [0x7ff6c091bd43]
sub rsi, rax
lea rbp, [0x7ff6c091bd44]
sub rbp, rax
lea r14, [0x7ff6c091bd45]
sub r14, rax
lea r15, [0x7ff6c091bd46]
sub r15, rax
lea r12, [0x7ff6c091bd47]
sub r12, rax
lea r13, [0x7ff6c091bd48]
sub r13, rax
lea rax, [0x7ff6c091bd49]
sub rax, r9
lea rdx, [0x7ff6c091bd4a]
sub rdx, r9
mov qword [rsp + 0x20], rdx
lea rdi, [0x7ff6c091bd4b]
sub rdi, r9
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0xa8], 4
mov r9, rax
nop word [rax + rax]
movzx eax, byte [r11 + r10 - 2]
lea ecx, [rax - 1]
and ecx, 7
dec rax
sar rax, 3
mov rdi, qword [rsp + 0xa0]
movzx eax, byte [rax + rdi]
lea rdx, [0x7ff6c0900000]
test byte [rdx + rcx*4 + 0x1bdb8], al
setne al
mov byte [r10 - 2], al
movzx eax, byte [r8 + r10 - 2]
lea ecx, [rax - 1]
and ecx, 7
dec rax
sar rax, 3
movzx eax, byte [rax + rdi]
test byte [rdx + rcx*4 + 0x1bdb8], al
setne al
mov byte [r10 - 1], al
movzx eax, byte [r11 + r10]
lea ecx, [rax - 1]
and ecx, 7
dec rax
sar rax, 3
movzx eax, byte [rax + rdi]
test byte [rdx + rcx*4 + 0x1bdb8], al
setne al
mov byte [r10], al
movzx eax, byte [r8 + r10]
lea ecx, [rax - 1]
and ecx, 7
dec rax
sar rax, 3
movzx eax, byte [rax + rdi]
test byte [rdx + rcx*4 + 0x1bdb8], al
setne al
mov byte [r10 + 1], al
movzx eax, byte [rbx + r10]
lea ecx, [rax - 1]
and ecx, 7
dec rax
sar rax, 3
movzx eax, byte [rax + rdi]
test byte [rdx + rcx*4 + 0x1bdb8], al
setne al
mov byte [r10 + 2], al
movzx eax, byte [rsi + r10]
lea ecx, [rax - 1]
and ecx, 7
dec rax
sar rax, 3
movzx eax, byte [rax + rdi]
test byte [rdx + rcx*4 + 0x1bdb8], al
setne al
mov byte [r10 + 3], al
movzx eax, byte [r10 + rbp]
lea ecx, [rax - 1]
and ecx, 7
dec rax
sar rax, 3
movzx eax, byte [rax + rdi]
test byte [rdx + rcx*4 + 0x1bdb8], al
setne al
mov byte [r10 + 4], al
movzx eax, byte [r14 + r10]
lea ecx, [rax - 1]
and ecx, 7
dec rax
sar rax, 3
movzx eax, byte [rax + rdi]
test byte [rdx + rcx*4 + 0x1bdb8], al
setne al
mov byte [r10 + 5], al
movzx eax, byte [r15 + r10]
lea ecx, [rax - 1]
and ecx, 7
dec rax
sar rax, 3
movzx eax, byte [rax + rdi]
test byte [rdx + rcx*4 + 0x1bdb8], al
setne al
mov byte [r10 + 6], al
movzx eax, byte [r12 + r10]
lea ecx, [rax - 1]
and ecx, 7
dec rax
sar rax, 3
movzx eax, byte [rax + rdi]
test byte [rdx + rcx*4 + 0x1bdb8], al
setne al
mov byte [r10 + 7], al
movzx eax, byte [r10 + r13]
lea ecx, [rax - 1]
and ecx, 7
dec rax
sar rax, 3
movzx eax, byte [rax + rdi]
test byte [rdx + rcx*4 + 0x1bdb8], al
setne al
mov byte [r10 + 8], al
movzx eax, byte [r9 + r10]
lea ecx, [rax - 1]
and ecx, 7
dec rax
sar rax, 3
movzx eax, byte [rax + rdi]
lea rdi, [0x7ff6c0900000]
test byte [rdi + rcx*4 + 0x1bdb8], al
setne al
mov byte [r10 + 9], al
mov rdx, qword [rsp + 0x20]
movzx eax, byte [rdx + r10]
lea ecx, [rax - 1]
and ecx, 7
dec rax
sar rax, 3
mov rdx, qword [rsp + 0xa0]
movzx eax, byte [rax + rdx]
test byte [rdi + rcx*4 + 0x1bdb8], al
setne al
mov byte [r10 + 0xa], al
mov rdi, qword [rsp + 0x28]
movzx eax, byte [rdi + r10]
lea rcx, [rax - 1]
sar rcx, 3
movzx edx, byte [rcx + rdx]
dec eax
and eax, 7
lea rcx, [0x7ff6c0900000]
test byte [rcx + rax*4 + 0x1bdb8], dl
setne al
mov byte [r10 + 0xb], al
lea r10, [r10 + 0xe]
sub qword [rsp + 0xa8], 1
jne 0x7ff6c0916820
xor edx, edx
mov qword [rsp + 0xa8], rdx
mov r9, qword [rsp + 0x38]
lea rcx, [r9 + 0x3a]
lea r10, [0x7ff6c0900000]
nop word [rax + rax]
xor eax, eax
mov qword [r9 + 0x70], rax
movzx r8d, byte [rdx + r10 + 0x1bd78]
lea edi, [r8 + 2]
mov r11d, r8d
neg r11d
lea esi, [r11 + 5]
lea r14d, [r11 + 6]
lea r15d, [r11 + 7]
lea r12d, [r11 + 8]
lea ebp, [r11 + 9]
lea r13d, [r11 + 0xa]
lea ebx, [rax + 4]
mov r10, rcx
nop word [rax + rax]
lea eax, [r8 + r11]
mov edx, 0x38
cmp eax, 0x1c
mov eax, 0x1c
cmovl edx, eax
lea eax, [rdi - 0x1e]
mov ecx, r8d
cmp r8d, edx
cmovge ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r9]
mov byte [r10 - 2], cl
lea eax, [r11 + 1]
add eax, r8d
mov edx, 0x38
cmp eax, 0x1c
mov eax, 0x1c
cmovl edx, eax
lea eax, [rdi - 1]
mov ecx, 1
cmp eax, edx
mov eax, 0xffffffe5
cmovge ecx, eax
lea eax, [r8 + rcx]
cdqe
movzx ecx, byte [rax + r9]
mov byte [r10 - 1], cl
lea eax, [r11 + 2]
add eax, r8d
mov edx, 0x38
cmp eax, 0x1c
mov eax, 0x1c
cmovl edx, eax
lea eax, [rdi - 0x1c]
mov ecx, edi
cmp edi, edx
cmovge ecx, eax
movsxd rax, ecx
movzx ecx, byte [rax + r9]
mov byte [r10], cl
lea eax, [r11 + 3]
add eax, r8d
mov edx, 0x38
cmp eax, 0x1c
mov eax, 0x1c
cmovl edx, eax
lea eax, [rdi + 1]
mov ecx, 1
cmp eax, edx
mov eax, 0xffffffe5
cmovge ecx, eax
lea eax, [rdi + rcx]
cdqe
movzx ecx, byte [rax + r9]
mov byte [r10 + 1], cl
lea edx, [rdi + 2]
lea eax, [r11 + 4]
add eax, r8d
mov ecx, 0x38
cmp eax, 0x1c
mov eax, 0x1c
cmovl ecx, eax
cmp edx, ecx
jl 0x7ff6c0916ba8
lea edx, [rdi - 0x1a]
movsxd rax, edx
movzx ecx, byte [rax + r9]
mov byte [r10 + 2], cl
lea edx, [rdi + 3]
lea eax, [rsi + r8]
mov ecx, 0x38
cmp eax, 0x1c
mov eax, 0x1c
cmovl ecx, eax
cmp edx, ecx
jl 0x7ff6c0916bd2
lea edx, [rdi - 0x19]
movsxd rax, edx
movzx ecx, byte [rax + r9]
mov byte [r10 + 3], cl
lea edx, [rdi + 4]
lea eax, [r14 + r8]
mov ecx, 0x38
cmp eax, 0x1c
mov eax, 0x1c
cmovl ecx, eax
cmp edx, ecx
jl 0x7ff6c0916bfc
lea edx, [rdi - 0x18]
movsxd rax, edx
movzx ecx, byte [rax + r9]
mov byte [r10 + 4], cl
lea edx, [rdi + 5]
lea eax, [r15 + r8]
mov ecx, 0x38
cmp eax, 0x1c
mov eax, 0x1c
cmovl ecx, eax
cmp edx, ecx
jl 0x7ff6c0916c26
lea edx, [rdi - 0x17]
movsxd rax, edx
movzx ecx, byte [rax + r9]
mov byte [r10 + 5], cl
lea edx, [rdi + 6]
lea eax, [r12 + r8]
mov ecx, 0x38
cmp eax, 0x1c
mov eax, 0x1c
cmovl ecx, eax
cmp edx, ecx
jl 0x7ff6c0916c50
lea edx, [rdi - 0x16]
movsxd rax, edx
movzx ecx, byte [rax + r9]
mov byte [r10 + 6], cl
lea edx, [rdi + 7]
lea eax, [r8 + rbp]
mov ecx, 0x38
cmp eax, 0x1c
mov eax, 0x1c
cmovl ecx, eax
cmp edx, ecx
jl 0x7ff6c0916c7a
lea edx, [rdi - 0x15]
movsxd rax, edx
movzx ecx, byte [rax + r9]
mov byte [r10 + 7], cl
lea edx, [rdi + 8]
lea eax, [r8 + r13]
mov ecx, 0x38
cmp eax, 0x1c
mov eax, 0x1c
cmovl ecx, eax
cmp edx, ecx
jl 0x7ff6c0916ca4
lea edx, [rdi - 0x14]
movsxd rax, edx
movzx ecx, byte [rax + r9]
mov byte [r10 + 8], cl
lea edx, [rdi + 9]
lea eax, [r11 + 0xb]
add eax, r8d
mov ecx, 0x38
cmp eax, 0x1c
mov eax, 0x1c
cmovl ecx, eax
cmp edx, ecx
jl 0x7ff6c0916cd1
lea edx, [rdi - 0x13]
movsxd rax, edx
movzx ecx, byte [rax + r9]
mov byte [r10 + 9], cl
lea edx, [rdi + 0xa]
lea eax, [r11 + 0xc]
add eax, r8d
mov ecx, 0x38
cmp eax, 0x1c
mov eax, 0x1c
cmovl ecx, eax
cmp edx, ecx
jl 0x7ff6c0916cfe
lea edx, [rdi - 0x12]
movsxd rax, edx
movzx ecx, byte [rax + r9]
mov byte [r10 + 0xa], cl
lea edx, [rdi + 0xb]
lea eax, [r11 + 0xd]
add eax, r8d
mov ecx, 0x38
cmp eax, 0x1c
mov eax, 0x1c
cmovl ecx, eax
cmp edx, ecx
jl 0x7ff6c0916d2b
lea edx, [rdi - 0x11]
movsxd rax, edx
movzx ecx, byte [rax + r9]
mov byte [r10 + 0xb], cl
add r8d, 0xe
add edi, 0xe
add r10, 0xe
sub rbx, 1
jne 0x7ff6c0916ac0
xor r11d, r11d
mov ecx, r11d
lea r8, [0x7ff6c091bd89]
nop dword [rax]
movzx eax, byte [r8 - 1]
lea r10, [0x7ff6c0900000]
cmp byte [rax + r9 + 0x37], r11b
je 0x7ff6c0916d99
mov eax, 0xaaaaaaab
mul ecx
shr edx, 2
lea eax, [rdx + rdx*2]
add eax, eax
mov edi, ecx
sub edi, eax
movsxd rax, edi
mov eax, dword [r10 + rax*4 + 0x1bdb8]
sar eax, 2
or byte [rdx + r9 + 0x70], al
movzx eax, byte [r8]
cmp byte [rax + r9 + 0x37], r11b
je 0x7ff6c0916dd6
lea edx, [rcx + 1]
mov eax, 0x2aaaaaab
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
mov edi, ecx
sub edi, eax
lea eax, [rdi + 1]
movsxd rdx, edx
cdqe
mov eax, dword [r10 + rax*4 + 0x1bdb8]
sar eax, 2
or byte [rdx + r9 + 0x70], al
movzx eax, byte [r8 + 1]
cmp byte [rax + r9 + 0x37], r11b
je 0x7ff6c0916e14
lea edx, [rcx + 2]
mov eax, 0x2aaaaaab
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
mov edi, ecx
sub edi, eax
lea eax, [rdi + 2]
movsxd rdx, edx
cdqe
mov eax, dword [r10 + rax*4 + 0x1bdb8]
sar eax, 2
or byte [rdx + r9 + 0x70], al
movzx eax, byte [r8 + 2]
cmp byte [rax + r9 + 0x37], r11b
je 0x7ff6c0916e52
lea edx, [rcx + 3]
mov eax, 0x2aaaaaab
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
mov edi, ecx
sub edi, eax
lea eax, [rdi + 3]
movsxd rdx, edx
cdqe
mov eax, dword [r10 + rax*4 + 0x1bdb8]
sar eax, 2
or byte [rdx + r9 + 0x70], al
movzx eax, byte [r8 + 3]
cmp byte [rax + r9 + 0x37], r11b
je 0x7ff6c0916e90
lea edx, [rcx + 4]
mov eax, 0x2aaaaaab
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
mov edi, ecx
sub edi, eax
lea eax, [rdi + 4]
movsxd rdx, edx
cdqe
mov eax, dword [r10 + rax*4 + 0x1bdb8]
sar eax, 2
or byte [rdx + r9 + 0x70], al
movzx eax, byte [r8 + 4]
cmp byte [rax + r9 + 0x37], r11b
je 0x7ff6c0916ece
lea edx, [rcx + 5]
mov eax, 0x2aaaaaab
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
mov edi, ecx
sub edi, eax
lea eax, [rdi + 5]
movsxd rdx, edx
cdqe
mov eax, dword [r10 + rax*4 + 0x1bdb8]
sar eax, 2
or byte [rdx + r9 + 0x70], al
movzx eax, byte [r8 + 5]
cmp byte [rax + r9 + 0x37], r11b
je 0x7ff6c0916f0c
lea edx, [rcx + 6]
mov eax, 0x2aaaaaab
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
mov edi, ecx
sub edi, eax
lea eax, [rdi + 6]
movsxd rdx, edx
cdqe
mov eax, dword [r10 + rax*4 + 0x1bdb8]
sar eax, 2
or byte [rdx + r9 + 0x70], al
movzx eax, byte [r8 + 6]
cmp byte [rax + r9 + 0x37], r11b
je 0x7ff6c0916f4a
lea edx, [rcx + 7]
mov eax, 0x2aaaaaab
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
mov edi, ecx
sub edi, eax
lea eax, [rdi + 7]
movsxd rdx, edx
cdqe
mov eax, dword [r10 + rax*4 + 0x1bdb8]
sar eax, 2
or byte [rdx + r9 + 0x70], al
movzx eax, byte [r8 + 7]
cmp byte [rax + r9 + 0x37], r11b
je 0x7ff6c0916f88
lea edx, [rcx + 8]
mov eax, 0x2aaaaaab
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
mov edi, ecx
sub edi, eax
lea eax, [rdi + 8]
movsxd rdx, edx
cdqe
mov eax, dword [r10 + rax*4 + 0x1bdb8]
sar eax, 2
or byte [rdx + r9 + 0x70], al
movzx eax, byte [r8 + 8]
cmp byte [rax + r9 + 0x37], r11b
je 0x7ff6c0916fc6
lea edx, [rcx + 9]
mov eax, 0x2aaaaaab
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
mov edi, ecx
sub edi, eax
lea eax, [rdi + 9]
movsxd rdx, edx
cdqe
mov eax, dword [r10 + rax*4 + 0x1bdb8]
sar eax, 2
or byte [rdx + r9 + 0x70], al
movzx eax, byte [r8 + 9]
cmp byte [rax + r9 + 0x37], r11b
je 0x7ff6c0917004
lea edx, [rcx + 0xa]
mov eax, 0x2aaaaaab
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
mov edi, ecx
sub edi, eax
lea eax, [rdi + 0xa]
movsxd rdx, edx
cdqe
mov eax, dword [r10 + rax*4 + 0x1bdb8]
sar eax, 2
or byte [rdx + r9 + 0x70], al
movzx eax, byte [r8 + 0xa]
cmp byte [rax + r9 + 0x37], r11b
je 0x7ff6c0917042
lea edx, [rcx + 0xb]
mov eax, 0x2aaaaaab
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
mov edi, ecx
sub edi, eax
lea eax, [rdi + 0xb]
movsxd rdx, edx
cdqe
mov eax, dword [r10 + rax*4 + 0x1bdb8]
sar eax, 2
or byte [rdx + r9 + 0x70], al
movzx eax, byte [r8 + 0xb]
cmp byte [rax + r9 + 0x37], r11b
je 0x7ff6c0917081
lea edx, [rcx + 0xc]
mov eax, 0x2aaaaaab
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 2
sub eax, edx
lea eax, [rax + rax*2]
lea eax, [rcx + rax*2]
movsxd rdx, edx
cdqe
mov eax, dword [r10 + rax*4 + 0x1bdb8]
sar eax, 2
or byte [rdx + r9 + 0x70], al
movzx eax, byte [r8 + 0xc]
cmp byte [rax + r9 + 0x37], r11b
je 0x7ff6c09170bf
lea edx, [rcx + 0xd]
mov eax, 0x2aaaaaab
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
mov edi, ecx
sub edi, eax
lea eax, [rdi + 0xd]
movsxd rdx, edx
cdqe
mov eax, dword [r10 + rax*4 + 0x1bdb8]
sar eax, 2
or byte [rdx + r9 + 0x70], al
movzx eax, byte [r8 + 0xd]
cmp byte [rax + r9 + 0x37], r11b
je 0x7ff6c09170fd
lea edx, [rcx + 0xe]
mov eax, 0x2aaaaaab
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
mov edi, ecx
sub edi, eax
lea eax, [rdi + 0xe]
movsxd rdx, edx
cdqe
mov eax, dword [r10 + rax*4 + 0x1bdb8]
sar eax, 2
or byte [rdx + r9 + 0x70], al
movzx eax, byte [r8 + 0xe]
cmp byte [rax + r9 + 0x37], r11b
je 0x7ff6c091713b
lea edx, [rcx + 0xf]
mov eax, 0x2aaaaaab
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
mov edi, ecx
sub edi, eax
lea eax, [rdi + 0xf]
movsxd rdx, edx
cdqe
mov eax, dword [r10 + rax*4 + 0x1bdb8]
sar eax, 2
or byte [rdx + r9 + 0x70], al
add ecx, 0x10
add r8, 0x10
cmp ecx, 0x30
jl 0x7ff6c0916d60
movzx ecx, byte [r9 + 0x70]
shl ecx, 8
movzx eax, byte [r9 + 0x72]
or ecx, eax
shl ecx, 8
movzx eax, byte [r9 + 0x74]
or ecx, eax
shl ecx, 8
movzx eax, byte [r9 + 0x76]
or ecx, eax
mov r8, qword [rsp + 0x90]
mov rax, qword [r8 + 0x90]
mov rdx, qword [rsp + 0xa8]
mov dword [rax + rdx*8], ecx
movzx ecx, byte [r9 + 0x71]
shl ecx, 8
movzx eax, byte [r9 + 0x73]
or ecx, eax
shl ecx, 8
movzx eax, byte [r9 + 0x75]
or ecx, eax
shl ecx, 8
movzx eax, byte [r9 + 0x77]
or ecx, eax
mov rax, qword [r8 + 0x90]
mov dword [rax + rdx*8 + 4], ecx
inc rdx
mov qword [rsp + 0xa8], rdx
cmp rdx, 0x10
lea rcx, [r9 + 0x3a]
jl 0x7ff6c0916a80
cmp dword [rsp + 0x98], 1
jne 0x7ff6c091722a
mov r10d, 0x7c
nop
mov rax, qword [r8 + 0x90]
lea rdi, [rax + r10]
lea rcx, [rax + r11]
mov edx, dword [rcx]
mov eax, dword [rdi - 4]
mov dword [rcx], eax
mov dword [rdi - 4], edx
mov rax, qword [r8 + 0x90]
lea r8, [rax + r10]
lea rdx, [rax + r11]
mov edi, dword [rdx + 4]
mov eax, dword [r8]
mov dword [rdx + 4], eax
mov dword [r8], edi
sub r10, 8
lea r11, [r11 + 8]
cmp r10, 0x3c
mov r8, qword [rsp + 0x90]
jg 0x7ff6c09171e0
mov rdi, r9
xor eax, eax
mov ecx, 0x78
rep stosb byte [rdi], al
mov rcx, r9
call sub.ucrtbase.dll_free
nop
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret