Function at 0x100ca7c0
Capabilities:
Encrypt data via sspi

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x58
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x6c]
mov ebp, dword [esp + 0x7c]
mov eax, dword [esp + 0x74]
cmp dword [edi], 1
jne 0x100ca831
lea edx, [edi + 8]
lea ecx, [esp + 0x14]
mov dword [edi + 0xa0], eax
mov dword [esp + 4], edx
call fcn.100cbb90
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
cmp dword [esp + 0x14], 1
jne 0x100ca84d
mov ebp, ebx
mov cl, bh
movzx edx, bl
and ebp, 0xffff0000
test bl, bl
je 0x100ca919
cmp bl, 1
je 0x100ca8f0
mov eax, esi
mov al, byte [esi + 8]
cmp al, 0xa
jne 0x100ca8fa
jmp 0x100caa38
add edi, 4
mov ecx, esi
mov edx, edi
push ebp
push dword [esp + 0x7c]
push eax
call fcn.10107140
add esp, 0xc
mov eax, esi
jmp 0x100caafc
test ebx, ebx
je 0x100ca925
mov ebx, dword [edi + 0x48]
mov eax, dword [edi + 0x38]
xor eax, ebx
or eax, dword [edi + 0x3c]
jne 0x100caabc
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
cmp eax, ebp
cmovb ebp, eax
lea eax, [edi + 0x40]
lea edx, [ebp + esi]
mov dword [esp + 0xc], eax
add ecx, edx
mov dword [esp + 0x10], edx
mov eax, ecx
sub eax, ebx
mov dword [esp], eax
jbe 0x100ca942
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc]
mov edx, dword [esp]
call fcn.10116c80
mov edx, dword [edi + 0x40]
mov ecx, dword [edi + 0x48]
cmp dword [esp], 2
lea eax, [edx + ecx]
jb 0x100ca92f
mov dword [esp + 8], eax
mov eax, dword [esp]
mov dword [esp + 0x44], ecx
lea ecx, [eax - 1]
push ecx
push 0
push dword [esp + 0x10]
mov dword [esp + 0x14], edx
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esp + 0x50]
add esp, 0xc
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 8]
not ebx
add eax, ebx
add eax, ecx
add edx, eax
mov eax, dword [esp]
lea ecx, [ecx + eax - 1]
mov eax, edx
jmp 0x100ca935
mov eax, ecx
cmp al, 0xa
je 0x100caa38
movzx eax, cl
mov ebx, dword [esp + 0x6c]
shl eax, 8
or ebp, eax
or ebp, edx
mov dword [ebx], 1
mov dword [ebx + 4], ebp
mov dword [ebx + 8], esi
jmp 0x100caaf0
mov dword [esp], edx
mov dword [esp + 4], ecx
jmp 0x100caa22
mov esi, 0x80090317
jmp 0x100caa0f
cmp dword [esp], 0
je 0x100ca939
inc ecx
mov byte [eax], 0
mov edx, dword [esp + 0x10]
mov ebx, ecx
mov dword [edi + 0x48], ecx
mov ecx, dword [esp + 0xc]
cmp edx, esi
jb 0x100cab04
cmp ebx, edx
jb 0x100cab15
test ebp, ebp
je 0x100ca977
mov eax, dword [ecx]
add eax, esi
push ebp
push dword [esp + 0x7c]
push eax
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esp + 0x1c]
mov ecx, ebx
add esp, 0xc
mov ebx, dword [edi + 0x48]
cmp ebx, esi
jb 0x100cab20
mov eax, ebx
sub eax, edx
jb 0x100cab2b
mov ecx, dword [ecx]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], 7
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 4
add esi, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], 1
add edx, ecx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x14]
mov dword [esp + 0x30], 6
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x54], eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x4c]
push 0
push ecx
push 0
push eax
call sub.Secur32.dll_EncryptMessage
test eax, eax
je 0x100caa94
mov esi, eax
xor ebx, ebx
xor ebp, ebp
mov dword [esp], 0
mov dword [esp + 4], 0
mov ecx, esi
call fcn.100f4550
mov ecx, dword [esp + 4]
mov edx, dword [esp]
cmp al, 0xa
jne 0x100ca8fa
mov eax, dword [esp + 0x6c]
cmp bl, 1
mov ebx, eax
mov dword [eax], 2
jbe 0x100caaf0
mov eax, dword [esi + 4]
push dword [esi]
call dword [eax]
add esp, 4
mov eax, dword [esi + 4]
cmp dword [eax + 4], 0
je 0x100caa84
mov ebx, dword [esi]
cmp dword [eax + 8], 9
jae 0x100caa70
call sub.KERNEL32.dll_GetProcessHeap
push ebx
jmp 0x100caa78
call sub.KERNEL32.dll_GetProcessHeap
push dword [ebx - 4]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov ebx, dword [esp + 0x6c]
call sub.KERNEL32.dll_GetProcessHeap
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
jmp 0x100caaf0
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x14]
add eax, dword [esp + 0x2c]
cmp dword [edi + 0x48], eax
jb 0x100caaa8
mov dword [edi + 0x48], eax
mov dword [edi + 0x3c], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0xc0], ebp
mov edx, dword [esp + 4]
lea ecx, [esp + 0x14]
call fcn.100cca50
cmp dword [esp + 0x14], 1
jne 0x100caadd
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
jmp 0x100ca801
mov eax, dword [edi + 0xc0]
mov ebx, dword [esp + 0x6c]
mov dword [ebx], 0
mov dword [ebx + 4], eax
mov eax, ebx
mov dword [edi + 0xa0], 0
add esp, 0x58
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, esi
push 0x1044af7c
call fcn.10009cc0
add esp, 4
ud2
mov ecx, edx
mov edx, ebx
push 0x1044af7c
jmp 0x100cab34
mov ecx, esi
mov edx, ebx
push 0x1044af8c
jmp 0x100cab34
mov ecx, edx
mov edx, ebx
push 0x1044af9c
call fcn.100088f0
add esp, 4
ud2