Function at 0x1400f0780
Capabilities:
Encrypt or decrypt data via bcrypt

Disassembly:
mov r10d, dword [rcx]
test r10d, r10d
je 0x140046a94
dec r10d
je 0x140046a8e
dec r10d
je 0x140046a85
dec r10d
je 0x140046a7c
dec r10d
je 0x140046a70
dec r10d
je 0x140046a64
xor al, al
ret
add rcx, 0x128
jmp 0x1400f0be8
add rcx, 0x13c
jmp 0x1400f0978
add rcx, 0xe0
jmp 0x140046a98
add rcx, 0x98
jmp 0x140046a98
add rcx, 0x50
jmp 0x140046a98
add rcx, 8
jmp 0x1400f0780
push rbx
sub rsp, 0x50
xor ebx, ebx
mov r11, rdx
mov r10, rcx
mov eax, ebx
cmp byte [rcx + 0x40], bl
je 0x1400f07a2
cmp byte [rsp + 0x88], bl
lea ecx, [rbx + 1]
cmovne eax, ecx
mov edx, dword [r10 + 0x28]
mov rcx, qword [r10 + 0x38]
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x40], rax
mov eax, dword [rax]
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], r9
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x20], rcx
mov rcx, qword [r10 + 0x10]
xor r9d, r9d
mov rdx, r11
call qword [sym.imp.bcrypt.dll_BCryptEncrypt]
test eax, eax
setns al
add rsp, 0x50
pop rbx
ret
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r13
push r14
push r15
mov rax, qword [rsp + 0x48]
mov rsi, rdx
mov edi, r8d
mov dword [rax], r8d
movsxd r13, dword [rcx + 0x400]
movzx r14d, byte [rdi + rsi - 1]
xor edx, edx
xor r11d, r11d
mov r15, rcx
lea eax, [rdx + 0x34]
lea r12, [rdi - 1]
div rdi
lea rbp, [rax + 6]
mov eax, 0x9e3779b9
xor ebx, ebx
add r11, rax
mov r10, r11
shr r10, 2
and r10, r13
test r12, r12
je 0x1400f0a3a
movzx r9d, byte [rbx + rsi + 1]
mov rax, r14
shr rax, 5
mov dl, r9b
mov ecx, r9d
shr rcx, 3
shl dl, 2
xor dl, al
mov al, r14b
shl al, 4
xor cl, al
mov rax, rbx
add dl, cl
and eax, 3
xor rax, r10
movzx r8d, dl
mov cl, byte [rax + r15]
mov al, r11b
xor cl, r14b
xor al, r9b
add cl, al
movzx eax, byte [rbx + rsi]
movzx ecx, cl
xor ecx, r8d
add ecx, eax
mov byte [rbx + rsi], cl
inc rbx
movzx r14d, cl
cmp rbx, r12
jb 0x1400f09dd
movzx r9d, byte [rsi]
mov rax, r14
and ebx, 3
shr rax, 5
mov dl, r9b
xor rbx, r10
shl dl, 2
mov ecx, r9d
xor dl, al
shr rcx, 3
mov al, r14b
shl al, 4
xor cl, al
add dl, cl
mov cl, r11b
movzx r8d, dl
mov dl, byte [rbx + r15]
xor cl, r9b
xor dl, r14b
add dl, cl
movzx ecx, byte [rdi + rsi - 1]
movzx edx, dl
xor edx, r8d
add edx, ecx
mov byte [rdi + rsi - 1], dl
movzx r14d, dl
dec rbp
jne 0x1400f09c4
mov rbx, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov al, 1
pop r15
pop r14
pop r13
pop r12
ret
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
mov qword [rsp + 0x18], r14
mov r10b, byte [rcx + 4]
mov edi, r8d
mov r11, rcx
mov ecx, dword [rcx]
mov rbx, r9
mov r8, r9
add rdi, rdx
xor r9d, r9d
lea r14, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
test ecx, ecx
je 0x1400f0c2a
dec ecx
je 0x1400f0c5f
dec ecx
je 0x1400f0c9a
mov r8d, r9d
jmp 0x1400f0d1f
cmp rdx, rdi
je 0x1400f0d15
mov r10b, byte [rdx]
inc rdx
mov al, r10b
sar al, 2
and al, 0x3f
cmp al, 0x3f
jle 0x1400f0c49
mov al, 0x3d
jmp 0x1400f0c51
movsx rax, al
mov al, byte [rax + r14]
and r10b, 3
mov byte [r8], al
inc r8
shl r10b, 4
cmp rdx, rdi
je 0x1400f0d0c
mov cl, byte [rdx]
inc rdx
mov al, cl
sar al, 4
and al, 0xf
or r10b, al
cmp r10b, 0x3f
jle 0x1400f0c81
mov al, 0x3d
jmp 0x1400f0c89
movsx rax, r10b
mov al, byte [rax + r14]
mov r10b, cl
mov byte [r8], al
inc r8
and r10b, 0xf
shl r10b, 2
cmp rdx, rdi
je 0x1400f0d03
mov cl, byte [rdx]
inc rdx
mov al, cl
sar al, 6
and al, 3
or r10b, al
cmp r10b, 0x3f
jle 0x1400f0cb8
mov al, 0x3d
jmp 0x1400f0cc0
movsx rax, r10b
mov al, byte [rax + r14]
mov r10b, cl
mov byte [r8], al
and r10b, 0x3f
cmp r10b, 0x3f
jle 0x1400f0cd4
mov al, 0x3d
jmp 0x1400f0cdc
movsx rax, r10b
mov al, byte [rax + r14]
mov byte [r8 + 1], al
inc dword [r11 + 8]
add r8, 2
cmp dword [r11 + 8], 0x12
jne 0x1400f0c2a
mov byte [r8], 0xa
inc r8
mov dword [r11 + 8], r9d
jmp 0x1400f0c2a
mov dword [r11], 2
jmp 0x1400f0d18
mov dword [r11], 1
jmp 0x1400f0d18
mov dword [r11], r9d
mov byte [r11 + 4], r10b
sub r8d, ebx
mov r10, qword [rsp + 0x28]
mov dword [r10], r8d
cmp byte [rsp + 0x30], r9b
je 0x1400f0d93
mov edx, r8d
mov r8d, dword [r11]
add rdx, rbx
mov rcx, rdx
dec r8d
je 0x1400f0d66
dec r8d
jne 0x1400f0d89
cmp byte [r11 + 4], 0x3f
jle 0x1400f0d4f
mov al, 0x3d
jmp 0x1400f0d58
movsx rax, byte [r11 + 4]
mov al, byte [rax + r14]
lea rcx, [rdx + 1]
mov byte [rdx], al
mov byte [rcx], 0x3d
inc rcx
jmp 0x1400f0d89
cmp byte [r11 + 4], 0x3f
jle 0x1400f0d71
mov al, 0x3d
jmp 0x1400f0d7a
movsx rax, byte [r11 + 4]
mov al, byte [rax + r14]
lea rcx, [rdx + 1]
mov byte [rdx], al
mov word [rcx], 0x3d3d
add rcx, 2
mov byte [rcx], 0xa
sub ecx, edx
inc ecx
add dword [r10], ecx
cmp dword [r10], r9d
mov rbx, qword [rsp + 8]
mov rdi, qword [rsp + 0x10]
mov r14, qword [rsp + 0x18]
seta al
ret