Function at 0x140096110
Capabilities:
Encrypt data via sspi

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov r12, r9
mov rsi, rdx
mov rdi, rcx
mov r15, qword [rsp + 0xf0]
mov qword [rdx + 0x38], r8
lea rcx, [rsp + 0x30]
call fcn.140063850
mov eax, dword [rsp + 0x30]
cmp eax, 2
jne 0x140096155
mov r15, qword [rsp + 0x38]
jmp 0x1400962bb
test eax, eax
je 0x1400962b1
mov rax, qword [rsi + 0x90]
mov r14, qword [rsi + 0x98]
cmp r14, rax
jne 0x140096396
mov rbx, qword [rsp + 0x38]
mov r13d, ebx
shr rbx, 0x20
cmp r15, rbx
cmovb rbx, r15
mov r15d, dword [rsp + 0x34]
lea rbp, [rbx + r15]
add r13, rbp
sub r13, r14
jbe 0x1400961e7
mov rax, qword [rsi + 0x80]
sub rax, r14
cmp rax, r13
jb 0x14009644c
mov rax, qword [rsi + 0x88]
lea rcx, [rax + r14]
cmp r13, 2
jb 0x1400961da
lea r8, [r13 - 1]
xor edx, edx
mov qword [rsp + 0x70], rax
call sub.msvcrt.dll_memset
add r14, r13
dec r14
mov rcx, qword [rsp + 0x70]
add rcx, r14
mov byte [rcx], 0
inc r14
mov qword [rsi + 0x90], r14
cmp rbp, r14
ja 0x14009647f
mov rcx, qword [rsi + 0x88]
add rcx, r15
mov rdx, r12
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov rax, qword [rsi + 0x90]
cmp rax, r15
jb 0x14009647f
cmp rax, rbp
jb 0x14009647f
mov rcx, qword [rsi + 0x88]
lea rdx, [rcx + r15]
sub eax, ebp
add rbp, rcx
mov dword [rsp + 0x30], r15d
mov dword [rsp + 0x34], 7
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x40], ebx
mov dword [rsp + 0x44], 1
mov qword [rsp + 0x48], rdx
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x54], 6
mov qword [rsp + 0x58], rbp
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
movabs rax, 0x400000000
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x80], rax
lea rcx, [rsi + 0xf0]
lea r8, [rsp + 0x78]
xor edx, edx
xor r9d, r9d
call sub.secur32.dll_EncryptMessage
test eax, eax
je 0x14009635f
mov r15d, eax
shl r15, 0x20
or r15, 2
jmp 0x1400962bb
movabs r15, 0x8009031700000002
mov rcx, r15
call fcn.140049bd0
cmp al, 0xd
jne 0x14009634f
mov qword [rdi], 2
mov qword [rsi + 0x38], 0
mov eax, r15d
and eax, 3
lea rcx, [rax - 2]
cmp rcx, 2
jb 0x140096429
test rax, rax
je 0x140096429
lea rsi, [r15 - 1]
mov rdi, qword [r15 - 1]
mov rbx, qword [r15 + 7]
mov rcx, rdi
call qword [rbx]
cmp qword [rbx + 8], 0
je 0x14009632b
cmp qword [rbx + 0x10], 0x11
jb 0x14009631a
mov rdi, qword [rdi - 8]
mov rcx, qword [0x140206128]
xor edx, edx
mov r8, rdi
call sub.kernel32.dll_HeapFree
mov rcx, qword [0x140206128]
xor edx, edx
mov r8, rsi
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp sub.kernel32.dll_HeapFree
mov qword [rdi], 1
mov qword [rdi + 8], r15
jmp 0x140096421
mov ecx, dword [rsp + 0x40]
add ecx, dword [rsp + 0x30]
add ecx, dword [rsp + 0x50]
mov rax, qword [rsi + 0x90]
cmp rax, rcx
jb 0x140096381
mov qword [rsi + 0x90], rcx
mov rax, rcx
mov qword [rsi + 0x98], 0
mov qword [rsi + 0x118], rbx
xor r14d, r14d
cmp r14, rax
je 0x14009640f
lea rbx, [rsi + 0x10]
lea r12, [rsp + 0x30]
nop word cs:[rax + rax]
sub rax, r14
jb 0x14009647f
mov r8, qword [rsi + 0x38]
test r8, r8
je 0x14009647f
mov r9, qword [rsi + 0x88]
add r9, r14
mov qword [rsp + 0x20], rax
mov rcx, r12
mov rdx, rbx
call fcn.1400fddb0
mov rax, qword [rsp + 0x30]
cmp rax, 2
je 0x14009643d
mov r15, qword [rsp + 0x38]
test rax, rax
jne 0x1400962bb
add r14, r15
mov qword [rsi + 0x98], r14
mov rax, qword [rsi + 0x90]
cmp r14, rax
jne 0x1400963b0
mov rax, qword [rsi + 0x118]
mov qword [rdi], 0
mov qword [rdi + 8], rax
mov qword [rsi + 0x38], 0
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movabs r15, 0xd00000003
jmp 0x1400962bb
lea rcx, [rsi + 0x80]
mov rdx, r14
mov r8, r13
call fcn.140110050
mov r14, qword [rsi + 0x90]
mov rax, qword [rsi + 0x88]
lea rcx, [rax + r14]
cmp r13, 2
jae 0x1400961bc
jmp 0x1400961da
ud2